From 0272a50b810cfec79141f60456f8dbc86f88cc89 Mon Sep 17 00:00:00 2001 From: Mike Brocchi Date: Mon, 3 Jun 2024 15:46:49 -0400 Subject: [PATCH] test: verify against multiple versions of node --- .github/workflows/ci.yml | 6 +- .github/workflows/composite/build/action.yml | 72 + .github/workflows/composite/verify/action.yml | 21 - .github/workflows/release.yml | 21 +- .github/workflows/runtime-tests.yml | 79 + apps/cli/.eslintrc.json | 1 + apps/cli/package.json | 12 +- apps/cli/project.json | 10 +- apps/cli/sea-config.json | 5 + apps/cli/src/lib/ensure-version.ts | 43 +- foo.txt | 2150 ----------------- package-lock.json | 36 +- package.json | 4 +- 13 files changed, 237 insertions(+), 2223 deletions(-) create mode 100644 .github/workflows/composite/build/action.yml delete mode 100644 .github/workflows/composite/verify/action.yml create mode 100644 .github/workflows/runtime-tests.yml create mode 100644 apps/cli/sea-config.json delete mode 100644 foo.txt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ede67a6..b77e364 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,4 +9,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: ./.github/workflows/composite/verify + - uses: ./.github/workflows/composite/build + + verify: + needs: build + uses: ./.github/workflows/runtime-tests.yml diff --git a/.github/workflows/composite/build/action.yml b/.github/workflows/composite/build/action.yml new file mode 100644 index 0000000..db0ea56 --- /dev/null +++ b/.github/workflows/composite/build/action.yml @@ -0,0 +1,72 @@ +name: 'Verify' +description: 'Verifies the current branch' + +runs: + using: 'composite' + steps: + - uses: actions/setup-node@v4 + with: + node-version: '22.x' + registry-url: 'https://registry.npmjs.org' + + - run: npm install --force + shell: bash + + - run: npm run lint:cli + shell: bash + + - run: npm run build + shell: bash + + - run: npm run test + shell: bash + + - name: cache the dist directory + uses: actions/cache/save@v4 + with: + path: ./dist/apps/cli + key: hdcli-dist-${{ github.run_id }} + + - name: package for local testing + shell: bash + working-directory: ./dist/apps/cli + run: | + npm version 0.0.0-local --no-git-tag-version + npm pack + + - name: cache the tarball + uses: actions/cache/save@v4 + with: + path: ./dist/apps/cli/herodevs-cli-0.0.0-local.tgz + key: hdcli-tarball-${{ github.run_id }} + + - name: install CLI dependencies + run: npm install + working-directory: ./dist/apps/cli + shell: bash + + - name: create commonjs bundle using esbuild + run: npx -y esbuild src/main.js --bundle --platform=node --outfile=sea.cjs --minify + working-directory: ./dist/apps/cli + shell: bash + + - name: create blob for sea + run: node --experimental-sea-config ./sea-config.json + working-directory: ./dist/apps/cli + shell: bash + + - name: copy node to use to create sea + run: cp $(command -v node) hdcli + working-directory: ./dist/apps/cli + shell: bash + + - name: inject the CLI sea into the copied node + run: npx postject hdcli NODE_SEA_BLOB sea-prep.blob --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2 + working-directory: ./dist/apps/cli + shell: bash + + - name: cache the sea + uses: actions/cache/save@v4 + with: + path: ./dist/apps/cli/hdcli + key: hdcli-sea-${{ github.run_id }} diff --git a/.github/workflows/composite/verify/action.yml b/.github/workflows/composite/verify/action.yml deleted file mode 100644 index 1ef136f..0000000 --- a/.github/workflows/composite/verify/action.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: 'Verify' -description: 'Verifies the current branch' - -runs: - using: 'composite' - steps: - - uses: actions/setup-node@v3 - with: - node-version: '20.x' - registry-url: 'https://registry.npmjs.org' - - run: npm install --force - shell: bash - - - run: npm run lint:cli - shell: bash - - - run: npm run build - shell: bash - - - run: npm run test - shell: bash diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 458d785..2406518 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,7 +9,24 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: ./.github/workflows/composite/verify + + - uses: ./.github/workflows/composite/build + + verify: + needs: build + uses: ./.github/workflows/runtime-tests.yml + + release: + runs-on: ubuntu-latest + needs: verify + steps: + - uses: actions/checkout@v4 + + - name: restore the dist directory from cache + uses: actions/cache/restore@v4 + with: + path: ./dist/apps/cli + key: hdcli-dist-${{ github.run_id }} - name: release-version uses: actions/github-script@v7 @@ -23,7 +40,7 @@ jobs: return releaseVersion; result-encoding: string - - name: set version in package.json and publish + - name: update package.json and publish working-directory: dist/apps/cli env: NODE_AUTH_TOKEN: ${{ secrets.HD_CLI_NPM_TOKEN }} diff --git a/.github/workflows/runtime-tests.yml b/.github/workflows/runtime-tests.yml new file mode 100644 index 0000000..5da7147 --- /dev/null +++ b/.github/workflows/runtime-tests.yml @@ -0,0 +1,79 @@ +name: Runtime Tests +on: + workflow_call: +env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + +jobs: + via-npx: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + node: ['14', '16', '18', '20', '22'] + name: node ${{ matrix.node }} + + steps: + - name: uncache the tarball + uses: actions/cache/restore@v4 + with: + path: ./dist/apps/cli/herodevs-cli-0.0.0-local.tgz + key: hdcli-tarball-${{ github.run_id }} + + - uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node }} + + - run: npm init -y + + - name: setup local git repo + run: | + git config --global user.email "test@herodevs.com" + git config --global user.name "Github CI" + git init + echo "test" > test.txt + git add . + git commit -m "test commit" + echo "test 2" > test.txt + git add . + git commit -m "test commit 2" + + - run: npm install ./dist/apps/cli/herodevs-cli-0.0.0-local.tgz + + - run: npx @herodevs/cli --version + + - run: npx @herodevs/cli report committers + + via-sea: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + node: ['10', '12'] + name: node ${{ matrix.node }} + + steps: + - uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node }} + + - name: uncache build output + uses: actions/cache/restore@v4 + with: + path: ./dist/apps/cli/hdcli + key: hdcli-sea-${{ github.run_id }} + + - name: setup local git repo + run: | + git config --global user.email "test@herodevs.com" + git config --global user.name "Github CI" + git init + echo "test" > test.txt + git add . + git commit -m "test commit" + echo "test 2" > test.txt + git add . + git commit -m "test commit 2" + + - name: run the cli + run: ./dist/apps/cli/hdcli report committers diff --git a/apps/cli/.eslintrc.json b/apps/cli/.eslintrc.json index c95699e..dc86baf 100644 --- a/apps/cli/.eslintrc.json +++ b/apps/cli/.eslintrc.json @@ -24,6 +24,7 @@ "includeTransitiveDependencies": true, "useLocalPathsForWorkspaceDependencies": true, "ignoredDependencies": [ + "graphql", "@herodevs/report-committers", "@herodevs/report-diagnostics", "@herodevs/tracker-init", diff --git a/apps/cli/package.json b/apps/cli/package.json index 1dad282..8952082 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -3,15 +3,15 @@ "version": "0.0.0", "bin": "./src/main.js", "dependencies": { - "tslib": "^2.3.0", - "yargs": "^17.7.2", - "get-json": "^1.0.1", - "date-fns": "^3.6.0", + "@apollo/client": "^3.10.1", "@inquirer/prompts": "^5.0.2", + "date-fns": "^3.6.0", "git-last-commit": "^1.0.1", + "graphql": "^16.8.1", + "ora": "5.3.0", "sloc": "^0.3.2", - "@apollo/client": "^3.10.1", - "ora": "5.3.0" + "tslib": "^2.3.0", + "yargs": "^17.7.2" }, "type": "commonjs", "main": "./src/main.js", diff --git a/apps/cli/project.json b/apps/cli/project.json index 42f2077..b045189 100644 --- a/apps/cli/project.json +++ b/apps/cli/project.json @@ -20,7 +20,15 @@ "outputPath": "dist/apps/cli", "main": "apps/cli/src/main.ts", "tsConfig": "apps/cli/tsconfig.lib.json", - "assets": ["apps/cli/*.md"], + "assets": [ + "apps/cli/*.md", + { + "glob": "sea-config.json", + "input": "apps/cli", + "output": "/", + "ignore": [] + } + ], "external": "none" } }, diff --git a/apps/cli/sea-config.json b/apps/cli/sea-config.json new file mode 100644 index 0000000..0c57047 --- /dev/null +++ b/apps/cli/sea-config.json @@ -0,0 +1,5 @@ +{ + "main": "sea.cjs", + "output": "sea-prep.blob", + "disableExperimentalSEAWarning": true +} diff --git a/apps/cli/src/lib/ensure-version.ts b/apps/cli/src/lib/ensure-version.ts index 046a4b6..d203c43 100644 --- a/apps/cli/src/lib/ensure-version.ts +++ b/apps/cli/src/lib/ensure-version.ts @@ -1,16 +1,43 @@ -// eslint-disable-next-line @nx/enforce-module-boundaries -import * as getJson from 'get-json'; +import * as https from 'https'; import { Color, color } from './log-colors'; const red = color(Color.FgRed); const yellow = color(Color.FgYellow); async function getLatestVersion(pkgName: string) { - return getJson(`https://registry.npmjs.org/${pkgName}`).then( - (packageData: { 'dist-tags': { latest: string } }) => { - return packageData['dist-tags'].latest; - } - ); + const url = `https://registry.npmjs.org/${pkgName}`; + return new Promise((resolve, reject) => { + const options = { + headers: { + 'Content-Type': 'application/json', + }, + }; + const request = https.get(url, options, (response) => { + const chunks: string[] = []; + + response.on('data', (chunk) => chunks.push(chunk)); + + response.on('error', reject); + + response.on('end', () => { + const validResponse = response.statusCode + ? response.statusCode >= 200 && response.statusCode <= 299 + : true; + const body = chunks.join(''); + + if (validResponse) { + resolve(JSON.parse(body)['dist-tags'].latest); + } else + reject( + new Error(`Request failed. status: ${response.statusCode || 'N/A'}, body: ${body}`) + ); + }); + }); + + request.on('error', (err) => { + reject(err); + }); + }); } export async function isVersionUpToDate( @@ -18,7 +45,7 @@ export async function isVersionUpToDate( packageVersion: string, quietIfSuccessful = false ): Promise { - if (packageVersion === '0.0.0') { + if (packageVersion.startsWith('0.0.0')) { return true; } const latestVersion = await getLatestVersion(packageName); diff --git a/foo.txt b/foo.txt deleted file mode 100644 index 3c03c70..0000000 --- a/foo.txt +++ /dev/null @@ -1,2150 +0,0 @@ - -> @herodevs/source@0.0.0 hd -> npm run build && node ./dist/apps/cli/src/main.js report d --consent --all - - -> @herodevs/source@0.0.0 build -> nx run-many --target=build --all - - - NX Running target build for 9 projects: - -- report-diagnostics -- report-committers -- tracker-shared -- tracker-init -- tracker-run -- core-types -- init -- utility -- cli - - - -> nx run core-types:build [existing outputs match the cache, left as is] - -Compiling TypeScript files for project "core-types"... -Done compiling TypeScript files for project "core-types". - -> nx run tracker-shared:build [existing outputs match the cache, left as is] - -Compiling TypeScript files for project "tracker-shared"... -Done compiling TypeScript files for project "tracker-shared". - -> nx run utility:build [existing outputs match the cache, left as is] - -Compiling TypeScript files for project "utility"... -Done compiling TypeScript files for project "utility". - -> nx run report-committers:build [existing outputs match the cache, left as is] - -Compiling TypeScript files for project "report-committers"... -Done compiling TypeScript files for project "report-committers". - -> nx run tracker-init:build [existing outputs match the cache, left as is] - -Compiling TypeScript files for project "tracker-init"... -Done compiling TypeScript files for project "tracker-init". - -> nx run tracker-run:build [existing outputs match the cache, left as is] - -Compiling TypeScript files for project "tracker-run"... -Done compiling TypeScript files for project "tracker-run". - -> nx run init:build [existing outputs match the cache, left as is] - -Compiling TypeScript files for project "init"... -Done compiling TypeScript files for project "init". - -> nx run report-diagnostics:build - -Compiling TypeScript files for project "report-diagnostics"... -Done compiling TypeScript files for project "report-diagnostics". - -> nx run cli:build - -Compiling TypeScript files for project "cli"... -Done compiling TypeScript files for project "cli". - - - - NX Successfully ran target build for 9 projects - -Nx read the output from the cache instead of running the command for 7 out of 9 tasks. - -Data produced may contain sensitive data, please review before sharing it. -*********************************** -*** Package JSON - dependencies *** -*********************************** -{ - "@apollo/client": "^3.10.1", - "@inquirer/prompts": "^5.0.2", - "cli-spinners": "^3.0.0", - "date-fns": "^3.6.0", - "get-json": "^1.0.1", - "git-last-commit": "^1.0.1", - "minimist": "^1.2.8", - "ora": "5.3.0", - "sloc": "^0.3.2", - "tslib": "^2.3.0", - "yargs": "^17.7.2" -} - -************************************** -*** Package JSON - devDependencies *** -************************************** -{ - "@nx/eslint": "18.3.2", - "@nx/eslint-plugin": "18.3.2", - "@nx/jest": "18.3.2", - "@nx/js": "18.3.2", - "@nx/workspace": "18.3.2", - "@swc-node/register": "~1.8.0", - "@swc/core": "~1.3.85", - "@swc/helpers": "~0.5.2", - "@types/jest": "^29.4.0", - "@types/minimist": "^1.2.5", - "@types/node": "18.16.9", - "@types/sloc": "^0.2.3", - "@typescript-eslint/eslint-plugin": "^7.3.0", - "@typescript-eslint/parser": "^7.3.0", - "eslint": "~8.57.0", - "eslint-config-prettier": "^9.0.0", - "jest": "^29.4.1", - "jest-environment-node": "^29.4.1", - "nx": "18.3.2", - "prettier": "^2.6.2", - "ts-jest": "^29.1.0", - "ts-node": "10.9.1", - "typescript": "~5.4.2", - "verdaccio": "^5.0.4" -} - -******************************** -*** Package JSON - overrides *** -******************************** -overrides not found in package.json - -**************************** -*** .npmrc file contents *** -**************************** -.npmrc not found - -************************** -*** npm config results *** -************************** -; "user" config from /home/brocco/.npmrc - -//registry.npmjs.org/:_authToken = (protected) - -; "env" config from environment - -cache = "/home/brocco/.npm" -global-prefix = "/home/brocco/.nvm/versions/node/v20.11.0" -init-module = "/home/brocco/.npm-init.js" -local-prefix = "/home/brocco/dev/hd-cli" -node-gyp = "/home/brocco/.nvm/versions/node/v20.11.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" -npm-version = "10.2.4" -prefix = "/home/brocco/.nvm/versions/node/v20.11.0" -user-agent = "npm/10.2.4 node/v20.11.0 linux x64 workspaces/false" -userconfig = "/home/brocco/.npmrc" - -; node bin location = /home/brocco/.nvm/versions/node/v20.11.0/bin/node -; node version = v20.11.0 -; npm local prefix = /home/brocco/dev/hd-cli -; npm version = 10.2.4 -; cwd = /home/brocco/dev/hd-cli -; HOME = /home/brocco -; Run `npm config ls -l` to show all defaults. - -********************** -*** npm ls results *** -********************** -@herodevs/source@0.0.0 /home/brocco/dev/hd-cli -├─┬ @apollo/client@3.10.1 -│ ├─┬ @graphql-typed-document-node/core@3.2.0 -│ │ └── graphql@16.8.1 deduped -│ ├─┬ @wry/caches@1.0.1 -│ │ └── tslib@2.6.2 deduped -│ ├─┬ @wry/equality@0.5.7 -│ │ └── tslib@2.6.2 deduped -│ ├─┬ @wry/trie@0.5.0 -│ │ └── tslib@2.6.2 deduped -│ ├─┬ graphql-tag@2.12.6 -│ │ ├── graphql@16.8.1 deduped -│ │ └── tslib@2.6.2 deduped -│ ├── UNMET OPTIONAL DEPENDENCY graphql-ws@^5.5.5 -│ ├── graphql@16.8.1 -│ ├─┬ hoist-non-react-statics@3.3.2 -│ │ └── react-is@16.13.1 -│ ├─┬ optimism@0.18.0 -│ │ ├── @wry/caches@1.0.1 deduped -│ │ ├─┬ @wry/context@0.7.4 -│ │ │ └── tslib@2.6.2 deduped -│ │ ├─┬ @wry/trie@0.4.3 -│ │ │ └── tslib@2.6.2 deduped -│ │ └── tslib@2.6.2 deduped -│ ├─┬ prop-types@15.8.1 -│ │ ├─┬ loose-envify@1.4.0 -│ │ │ └── js-tokens@4.0.0 deduped -│ │ ├── object-assign@4.1.1 -│ │ └── react-is@16.13.1 -│ ├── UNMET OPTIONAL DEPENDENCY react-dom@^16.8.0 || ^17.0.0 || ^18.0.0 -│ ├── UNMET OPTIONAL DEPENDENCY react@^16.8.0 || ^17.0.0 || ^18.0.0 -│ ├─┬ rehackt@0.1.0 -│ │ ├── UNMET OPTIONAL DEPENDENCY @types/react@* -│ │ └── UNMET OPTIONAL DEPENDENCY react@* -│ ├── response-iterator@0.2.6 -│ ├── UNMET OPTIONAL DEPENDENCY subscriptions-transport-ws@^0.9.0 || ^0.11.0 -│ ├── symbol-observable@4.0.0 -│ ├─┬ ts-invariant@0.10.3 -│ │ └── tslib@2.6.2 deduped -│ ├── tslib@2.6.2 deduped -│ └─┬ zen-observable-ts@1.2.5 -│ └── zen-observable@0.8.15 -├─┬ @inquirer/prompts@5.0.2 -│ ├─┬ @inquirer/checkbox@2.3.2 -│ │ ├─┬ @inquirer/core@8.1.0 -│ │ │ ├── @inquirer/figures@1.0.1 deduped -│ │ │ ├── @inquirer/type@1.3.1 deduped -│ │ │ ├─┬ @types/mute-stream@0.0.4 -│ │ │ │ └── @types/node@18.16.9 deduped -│ │ │ ├─┬ @types/node@20.12.8 -│ │ │ │ └── undici-types@5.26.5 -│ │ │ ├── @types/wrap-ansi@3.0.0 -│ │ │ ├── ansi-escapes@4.3.2 deduped -│ │ │ ├── chalk@4.1.2 deduped -│ │ │ ├── cli-spinners@2.9.2 -│ │ │ ├── cli-width@4.1.0 -│ │ │ ├── mute-stream@1.0.0 -│ │ │ ├── signal-exit@4.1.0 -│ │ │ ├── strip-ansi@6.0.1 deduped -│ │ │ └─┬ wrap-ansi@6.2.0 -│ │ │ ├── ansi-styles@4.3.0 deduped -│ │ │ ├── string-width@4.2.3 deduped -│ │ │ └── strip-ansi@6.0.1 deduped -│ │ ├── @inquirer/figures@1.0.1 -│ │ ├── @inquirer/type@1.3.1 -│ │ ├─┬ ansi-escapes@4.3.2 -│ │ │ └── type-fest@0.21.3 -│ │ └── chalk@4.1.2 deduped -│ ├─┬ @inquirer/confirm@3.1.6 -│ │ ├── @inquirer/core@8.1.0 deduped -│ │ └── @inquirer/type@1.3.1 deduped -│ ├─┬ @inquirer/editor@2.1.6 -│ │ ├── @inquirer/core@8.1.0 deduped -│ │ ├── @inquirer/type@1.3.1 deduped -│ │ └─┬ external-editor@3.1.0 -│ │ ├── chardet@0.7.0 -│ │ ├─┬ iconv-lite@0.4.24 -│ │ │ └── safer-buffer@2.1.2 -│ │ └─┬ tmp@0.0.33 -│ │ └── os-tmpdir@1.0.2 -│ ├─┬ @inquirer/expand@2.1.6 -│ │ ├── @inquirer/core@8.1.0 deduped -│ │ ├── @inquirer/type@1.3.1 deduped -│ │ └── chalk@4.1.2 deduped -│ ├─┬ @inquirer/input@2.1.6 -│ │ ├── @inquirer/core@8.1.0 deduped -│ │ └── @inquirer/type@1.3.1 deduped -│ ├─┬ @inquirer/password@2.1.6 -│ │ ├── @inquirer/core@8.1.0 deduped -│ │ ├── @inquirer/type@1.3.1 deduped -│ │ └── ansi-escapes@4.3.2 deduped -│ ├─┬ @inquirer/rawlist@2.1.6 -│ │ ├── @inquirer/core@8.1.0 deduped -│ │ ├── @inquirer/type@1.3.1 deduped -│ │ └── chalk@4.1.2 deduped -│ └─┬ @inquirer/select@2.3.2 -│ ├── @inquirer/core@8.1.0 deduped -│ ├── @inquirer/figures@1.0.1 deduped -│ ├── @inquirer/type@1.3.1 deduped -│ ├── ansi-escapes@4.3.2 deduped -│ └── chalk@4.1.2 deduped -├─┬ @nx/eslint-plugin@18.3.2 -│ ├─┬ @nrwl/eslint-plugin-nx@18.3.2 -│ │ └── @nx/eslint-plugin@18.3.2 deduped -│ ├─┬ @nx/devkit@18.3.2 -│ │ ├─┬ @nrwl/devkit@18.3.2 -│ │ │ └── @nx/devkit@18.3.2 deduped -│ │ ├─┬ ejs@3.1.10 -│ │ │ └─┬ jake@10.8.7 -│ │ │ ├── async@3.2.5 deduped -│ │ │ ├── chalk@4.1.2 deduped -│ │ │ ├─┬ filelist@1.0.4 -│ │ │ │ └─┬ minimatch@5.1.6 -│ │ │ │ └── brace-expansion@2.0.1 deduped -│ │ │ └─┬ minimatch@3.1.2 -│ │ │ └─┬ brace-expansion@1.1.11 -│ │ │ ├── balanced-match@1.0.2 deduped -│ │ │ └── concat-map@0.0.1 deduped -│ │ ├── enquirer@2.3.6 deduped -│ │ ├── ignore@5.3.1 deduped -│ │ ├── nx@18.3.2 deduped -│ │ ├── semver@7.6.0 deduped -│ │ ├── tmp@0.2.3 deduped -│ │ ├── tslib@2.6.2 deduped -│ │ └── yargs-parser@21.1.1 deduped -│ ├── @nx/js@18.3.2 deduped -│ ├── @typescript-eslint/parser@7.7.0 deduped -│ ├─┬ @typescript-eslint/type-utils@7.7.0 -│ │ ├── @typescript-eslint/typescript-estree@7.7.0 deduped -│ │ ├── @typescript-eslint/utils@7.7.0 deduped -│ │ ├── debug@4.3.4 deduped -│ │ ├── eslint@8.57.0 deduped -│ │ └── ts-api-utils@1.3.0 deduped -│ ├─┬ @typescript-eslint/utils@7.7.0 -│ │ ├── @eslint-community/eslint-utils@4.4.0 deduped -│ │ ├── @types/json-schema@7.0.15 -│ │ ├── @types/semver@7.5.8 -│ │ ├── @typescript-eslint/scope-manager@7.7.0 deduped -│ │ ├── @typescript-eslint/types@7.7.0 deduped -│ │ ├── @typescript-eslint/typescript-estree@7.7.0 deduped -│ │ ├── eslint@8.57.0 deduped -│ │ └── semver@7.6.0 deduped -│ ├─┬ chalk@4.1.2 -│ │ ├─┬ ansi-styles@4.3.0 -│ │ │ └─┬ color-convert@2.0.1 -│ │ │ └── color-name@1.1.4 -│ │ └─┬ supports-color@7.2.0 -│ │ └── has-flag@4.0.0 -│ ├── confusing-browser-globals@1.0.11 -│ ├── eslint-config-prettier@9.1.0 deduped -│ ├─┬ jsonc-eslint-parser@2.4.0 -│ │ ├── acorn@8.11.3 deduped -│ │ ├── eslint-visitor-keys@3.4.3 deduped -│ │ ├── espree@9.6.1 deduped -│ │ └── semver@7.6.0 deduped -│ ├─┬ semver@7.6.0 -│ │ └─┬ lru-cache@6.0.0 -│ │ └── yallist@4.0.0 -│ └── tslib@2.6.2 deduped -├─┬ @nx/eslint@18.3.2 -│ ├── @nx/devkit@18.3.2 deduped -│ ├── @nx/js@18.3.2 deduped -│ ├─┬ @nx/linter@18.3.2 -│ │ └── @nx/eslint@18.3.2 deduped -│ ├── eslint@8.57.0 deduped -│ ├─┬ js-yaml@4.1.0 -│ │ └── argparse@2.0.1 -│ ├── tslib@2.6.2 deduped -│ └── typescript@5.4.5 deduped -├─┬ @nx/jest@18.3.2 -│ ├─┬ @jest/reporters@29.7.0 -│ │ ├── @bcoe/v8-coverage@0.2.3 -│ │ ├─┬ @jest/console@29.7.0 -│ │ │ ├── @jest/types@29.6.3 deduped -│ │ │ ├── @types/node@18.16.9 deduped -│ │ │ ├── chalk@4.1.2 deduped -│ │ │ ├── jest-message-util@29.7.0 deduped -│ │ │ ├── jest-util@29.7.0 deduped -│ │ │ └── slash@3.0.0 deduped -│ │ ├── @jest/test-result@29.7.0 deduped -│ │ ├─┬ @jest/transform@29.7.0 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @jest/types@29.6.3 deduped -│ │ │ ├── @jridgewell/trace-mapping@0.3.25 deduped -│ │ │ ├── babel-plugin-istanbul@6.1.1 deduped -│ │ │ ├── chalk@4.1.2 deduped -│ │ │ ├── convert-source-map@2.0.0 deduped -│ │ │ ├── fast-json-stable-stringify@2.1.0 deduped -│ │ │ ├── graceful-fs@4.2.11 deduped -│ │ │ ├── jest-haste-map@29.7.0 deduped -│ │ │ ├── jest-regex-util@29.6.3 deduped -│ │ │ ├── jest-util@29.7.0 deduped -│ │ │ ├── micromatch@4.0.5 deduped -│ │ │ ├── pirates@4.0.6 deduped -│ │ │ ├── slash@3.0.0 deduped -│ │ │ └─┬ write-file-atomic@4.0.2 -│ │ │ ├── imurmurhash@0.1.4 deduped -│ │ │ └── signal-exit@3.0.7 deduped -│ │ ├── @jest/types@29.6.3 deduped -│ │ ├─┬ @jridgewell/trace-mapping@0.3.25 -│ │ │ ├── @jridgewell/resolve-uri@3.1.2 -│ │ │ └── @jridgewell/sourcemap-codec@1.4.15 -│ │ ├── @types/node@18.16.9 deduped -│ │ ├── chalk@4.1.2 deduped -│ │ ├── collect-v8-coverage@1.0.2 -│ │ ├── exit@0.1.2 -│ │ ├─┬ glob@7.2.3 -│ │ │ ├── fs.realpath@1.0.0 -│ │ │ ├─┬ inflight@1.0.6 -│ │ │ │ ├── once@1.4.0 deduped -│ │ │ │ └── wrappy@1.0.2 -│ │ │ ├── inherits@2.0.4 deduped -│ │ │ ├─┬ minimatch@3.1.2 -│ │ │ │ └─┬ brace-expansion@1.1.11 -│ │ │ │ ├── balanced-match@1.0.2 deduped -│ │ │ │ └── concat-map@0.0.1 deduped -│ │ │ ├─┬ once@1.4.0 -│ │ │ │ └── wrappy@1.0.2 deduped -│ │ │ └── path-is-absolute@1.0.1 -│ │ ├── graceful-fs@4.2.11 -│ │ ├── istanbul-lib-coverage@3.2.2 -│ │ ├─┬ istanbul-lib-instrument@6.0.2 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/parser@7.24.4 deduped -│ │ │ ├── @istanbuljs/schema@0.1.3 -│ │ │ ├── istanbul-lib-coverage@3.2.2 deduped -│ │ │ └── semver@7.6.0 deduped -│ │ ├─┬ istanbul-lib-report@3.0.1 -│ │ │ ├── istanbul-lib-coverage@3.2.2 deduped -│ │ │ ├─┬ make-dir@4.0.0 -│ │ │ │ └── semver@7.6.0 deduped -│ │ │ └── supports-color@7.2.0 deduped -│ │ ├─┬ istanbul-lib-source-maps@4.0.1 -│ │ │ ├── debug@4.3.4 deduped -│ │ │ ├── istanbul-lib-coverage@3.2.2 deduped -│ │ │ └── source-map@0.6.1 deduped -│ │ ├─┬ istanbul-reports@3.1.7 -│ │ │ ├── html-escaper@2.0.2 -│ │ │ └── istanbul-lib-report@3.0.1 deduped -│ │ ├─┬ jest-message-util@29.7.0 -│ │ │ ├── @babel/code-frame@7.24.2 deduped -│ │ │ ├── @jest/types@29.6.3 deduped -│ │ │ ├── @types/stack-utils@2.0.3 -│ │ │ ├── chalk@4.1.2 deduped -│ │ │ ├── graceful-fs@4.2.11 deduped -│ │ │ ├── micromatch@4.0.5 deduped -│ │ │ ├── pretty-format@29.7.0 deduped -│ │ │ ├── slash@3.0.0 deduped -│ │ │ └─┬ stack-utils@2.0.6 -│ │ │ └── escape-string-regexp@2.0.0 -│ │ ├── jest-util@29.7.0 deduped -│ │ ├─┬ jest-worker@29.7.0 -│ │ │ ├── @types/node@18.16.9 deduped -│ │ │ ├── jest-util@29.7.0 deduped -│ │ │ ├── merge-stream@2.0.0 -│ │ │ └─┬ supports-color@8.1.1 -│ │ │ └── has-flag@4.0.0 deduped -│ │ ├── UNMET OPTIONAL DEPENDENCY node-notifier@^8.0.1 || ^9.0.0 || ^10.0.0 -│ │ ├── slash@3.0.0 -│ │ ├─┬ string-length@4.0.2 -│ │ │ ├── char-regex@1.0.2 -│ │ │ └── strip-ansi@6.0.1 deduped -│ │ ├── strip-ansi@6.0.1 deduped -│ │ └─┬ v8-to-istanbul@9.2.0 -│ │ ├── @jridgewell/trace-mapping@0.3.25 deduped -│ │ ├── @types/istanbul-lib-coverage@2.0.6 deduped -│ │ └── convert-source-map@2.0.0 deduped -│ ├─┬ @jest/test-result@29.7.0 -│ │ ├── @jest/console@29.7.0 deduped -│ │ ├── @jest/types@29.6.3 deduped -│ │ ├── @types/istanbul-lib-coverage@2.0.6 -│ │ └── collect-v8-coverage@1.0.2 deduped -│ ├─┬ @nrwl/jest@18.3.2 -│ │ └── @nx/jest@18.3.2 deduped -│ ├── @nx/devkit@18.3.2 deduped -│ ├── @nx/js@18.3.2 deduped -│ ├─┬ @phenomnomnominal/tsquery@5.0.1 -│ │ ├── esquery@1.5.0 deduped -│ │ └── typescript@5.4.5 deduped -│ ├── chalk@4.1.2 deduped -│ ├─┬ identity-obj-proxy@3.0.0 -│ │ └── harmony-reflect@1.6.2 -│ ├─┬ jest-config@29.7.0 -│ │ ├── @babel/core@7.24.4 deduped -│ │ ├─┬ @jest/test-sequencer@29.7.0 -│ │ │ ├── @jest/test-result@29.7.0 deduped -│ │ │ ├── graceful-fs@4.2.11 deduped -│ │ │ ├── jest-haste-map@29.7.0 deduped -│ │ │ └── slash@3.0.0 deduped -│ │ ├── @jest/types@29.6.3 deduped -│ │ ├── @types/node@18.16.9 deduped -│ │ ├── babel-jest@29.7.0 deduped -│ │ ├── chalk@4.1.2 deduped -│ │ ├── ci-info@3.9.0 -│ │ ├── deepmerge@4.3.1 -│ │ ├── glob@7.2.3 deduped -│ │ ├── graceful-fs@4.2.11 deduped -│ │ ├─┬ jest-circus@29.7.0 -│ │ │ ├── @jest/environment@29.7.0 deduped -│ │ │ ├─┬ @jest/expect@29.7.0 -│ │ │ │ ├── expect@29.7.0 deduped -│ │ │ │ └── jest-snapshot@29.7.0 deduped -│ │ │ ├── @jest/test-result@29.7.0 deduped -│ │ │ ├── @jest/types@29.6.3 deduped -│ │ │ ├── @types/node@18.16.9 deduped -│ │ │ ├── chalk@4.1.2 deduped -│ │ │ ├── co@4.6.0 -│ │ │ ├─┬ dedent@1.5.3 -│ │ │ │ └─┬ babel-plugin-macros@3.1.0 -│ │ │ │ ├── @babel/runtime@7.24.4 deduped -│ │ │ │ ├─┬ cosmiconfig@7.1.0 -│ │ │ │ │ ├── @types/parse-json@4.0.2 deduped -│ │ │ │ │ ├── import-fresh@3.3.0 deduped -│ │ │ │ │ ├── parse-json@5.2.0 deduped -│ │ │ │ │ ├── path-type@4.0.0 deduped -│ │ │ │ │ └── yaml@1.10.2 deduped -│ │ │ │ └── resolve@1.22.8 deduped -│ │ │ ├── is-generator-fn@2.1.0 -│ │ │ ├─┬ jest-each@29.7.0 -│ │ │ │ ├── @jest/types@29.6.3 deduped -│ │ │ │ ├── chalk@4.1.2 deduped -│ │ │ │ ├── jest-get-type@29.6.3 deduped -│ │ │ │ ├── jest-util@29.7.0 deduped -│ │ │ │ └── pretty-format@29.7.0 deduped -│ │ │ ├── jest-matcher-utils@29.7.0 deduped -│ │ │ ├── jest-message-util@29.7.0 deduped -│ │ │ ├── jest-runtime@29.7.0 deduped -│ │ │ ├── jest-snapshot@29.7.0 deduped -│ │ │ ├── jest-util@29.7.0 deduped -│ │ │ ├─┬ p-limit@3.1.0 -│ │ │ │ └── yocto-queue@0.1.0 -│ │ │ ├── pretty-format@29.7.0 deduped -│ │ │ ├── pure-rand@6.1.0 -│ │ │ ├── slash@3.0.0 deduped -│ │ │ └── stack-utils@2.0.6 deduped -│ │ ├── jest-environment-node@29.7.0 deduped -│ │ ├── jest-get-type@29.6.3 -│ │ ├── jest-regex-util@29.6.3 -│ │ ├── jest-resolve@29.7.0 deduped -│ │ ├─┬ jest-runner@29.7.0 -│ │ │ ├── @jest/console@29.7.0 deduped -│ │ │ ├── @jest/environment@29.7.0 deduped -│ │ │ ├── @jest/test-result@29.7.0 deduped -│ │ │ ├── @jest/transform@29.7.0 deduped -│ │ │ ├── @jest/types@29.6.3 deduped -│ │ │ ├── @types/node@18.16.9 deduped -│ │ │ ├── chalk@4.1.2 deduped -│ │ │ ├── emittery@0.13.1 -│ │ │ ├── graceful-fs@4.2.11 deduped -│ │ │ ├─┬ jest-docblock@29.7.0 -│ │ │ │ └── detect-newline@3.1.0 -│ │ │ ├── jest-environment-node@29.7.0 deduped -│ │ │ ├── jest-haste-map@29.7.0 deduped -│ │ │ ├─┬ jest-leak-detector@29.7.0 -│ │ │ │ ├── jest-get-type@29.6.3 deduped -│ │ │ │ └── pretty-format@29.7.0 deduped -│ │ │ ├── jest-message-util@29.7.0 deduped -│ │ │ ├── jest-resolve@29.7.0 deduped -│ │ │ ├── jest-runtime@29.7.0 deduped -│ │ │ ├── jest-util@29.7.0 deduped -│ │ │ ├── jest-watcher@29.7.0 deduped -│ │ │ ├── jest-worker@29.7.0 deduped -│ │ │ ├── p-limit@3.1.0 deduped -│ │ │ └─┬ source-map-support@0.5.13 -│ │ │ ├── buffer-from@1.1.2 deduped -│ │ │ └── source-map@0.6.1 deduped -│ │ ├── jest-util@29.7.0 deduped -│ │ ├─┬ jest-validate@29.7.0 -│ │ │ ├── @jest/types@29.6.3 deduped -│ │ │ ├── camelcase@6.3.0 -│ │ │ ├── chalk@4.1.2 deduped -│ │ │ ├── jest-get-type@29.6.3 deduped -│ │ │ ├── leven@3.1.0 -│ │ │ └── pretty-format@29.7.0 deduped -│ │ ├─┬ micromatch@4.0.5 -│ │ │ ├─┬ braces@3.0.2 -│ │ │ │ └─┬ fill-range@7.0.1 -│ │ │ │ └─┬ to-regex-range@5.0.1 -│ │ │ │ └── is-number@7.0.0 -│ │ │ └── picomatch@2.3.1 deduped -│ │ ├─┬ parse-json@5.2.0 -│ │ │ ├── @babel/code-frame@7.24.2 deduped -│ │ │ ├─┬ error-ex@1.3.2 -│ │ │ │ └── is-arrayish@0.2.1 -│ │ │ ├── json-parse-even-better-errors@2.3.1 -│ │ │ └── lines-and-columns@1.2.4 -│ │ ├── pretty-format@29.7.0 deduped -│ │ ├── slash@3.0.0 deduped -│ │ ├── strip-json-comments@3.1.1 -│ │ └── ts-node@10.9.1 deduped -│ ├─┬ jest-resolve@29.7.0 -│ │ ├── chalk@4.1.2 deduped -│ │ ├── graceful-fs@4.2.11 deduped -│ │ ├─┬ jest-haste-map@29.7.0 -│ │ │ ├── @jest/types@29.6.3 deduped -│ │ │ ├─┬ @types/graceful-fs@4.1.9 -│ │ │ │ └── @types/node@18.16.9 deduped -│ │ │ ├── @types/node@18.16.9 deduped -│ │ │ ├─┬ anymatch@3.1.3 -│ │ │ │ ├── normalize-path@3.0.0 -│ │ │ │ └── picomatch@2.3.1 deduped -│ │ │ ├─┬ fb-watchman@2.0.2 -│ │ │ │ └─┬ bser@2.1.1 -│ │ │ │ └── node-int64@0.4.0 -│ │ │ ├── UNMET OPTIONAL DEPENDENCY fsevents@^2.3.2 -│ │ │ ├── graceful-fs@4.2.11 deduped -│ │ │ ├── jest-regex-util@29.6.3 deduped -│ │ │ ├── jest-util@29.7.0 deduped -│ │ │ ├── jest-worker@29.7.0 deduped -│ │ │ ├── micromatch@4.0.5 deduped -│ │ │ └─┬ walker@1.0.8 -│ │ │ └─┬ makeerror@1.0.12 -│ │ │ └── tmpl@1.0.5 -│ │ ├─┬ jest-pnp-resolver@1.2.3 -│ │ │ └── jest-resolve@29.7.0 deduped -│ │ ├── jest-util@29.7.0 deduped -│ │ ├── jest-validate@29.7.0 deduped -│ │ ├── resolve.exports@2.0.2 -│ │ ├─┬ resolve@1.22.8 -│ │ │ ├─┬ is-core-module@2.13.1 -│ │ │ │ └─┬ hasown@2.0.2 -│ │ │ │ └── function-bind@1.1.2 -│ │ │ ├── path-parse@1.0.7 -│ │ │ └── supports-preserve-symlinks-flag@1.0.0 -│ │ └── slash@3.0.0 deduped -│ ├─┬ jest-util@29.7.0 -│ │ ├── @jest/types@29.6.3 deduped -│ │ ├── @types/node@18.16.9 deduped -│ │ ├── chalk@4.1.2 deduped -│ │ ├── ci-info@3.9.0 deduped -│ │ ├── graceful-fs@4.2.11 deduped -│ │ └── picomatch@2.3.1 -│ ├─┬ minimatch@9.0.3 -│ │ └─┬ brace-expansion@2.0.1 -│ │ └── balanced-match@1.0.2 -│ ├── resolve.exports@1.1.0 -│ ├── tslib@2.6.2 deduped -│ └── yargs-parser@21.1.1 -├─┬ @nx/js@18.3.2 -│ ├─┬ @babel/core@7.24.4 -│ │ ├─┬ @ampproject/remapping@2.3.0 -│ │ │ ├─┬ @jridgewell/gen-mapping@0.3.5 -│ │ │ │ ├── @jridgewell/set-array@1.2.1 -│ │ │ │ ├── @jridgewell/sourcemap-codec@1.4.15 deduped -│ │ │ │ └── @jridgewell/trace-mapping@0.3.25 deduped -│ │ │ └── @jridgewell/trace-mapping@0.3.25 deduped -│ │ ├─┬ @babel/code-frame@7.24.2 -│ │ │ ├─┬ @babel/highlight@7.24.2 -│ │ │ │ ├── @babel/helper-validator-identifier@7.22.20 deduped -│ │ │ │ ├─┬ chalk@2.4.2 -│ │ │ │ │ ├─┬ ansi-styles@3.2.1 -│ │ │ │ │ │ └─┬ color-convert@1.9.3 -│ │ │ │ │ │ └── color-name@1.1.3 -│ │ │ │ │ ├── escape-string-regexp@1.0.5 deduped -│ │ │ │ │ └─┬ supports-color@5.5.0 -│ │ │ │ │ └── has-flag@3.0.0 -│ │ │ │ ├── js-tokens@4.0.0 deduped -│ │ │ │ └── picocolors@1.0.0 deduped -│ │ │ └── picocolors@1.0.0 -│ │ ├─┬ @babel/generator@7.24.4 -│ │ │ ├── @babel/types@7.24.0 deduped -│ │ │ ├── @jridgewell/gen-mapping@0.3.5 deduped -│ │ │ ├── @jridgewell/trace-mapping@0.3.25 deduped -│ │ │ └── jsesc@2.5.2 -│ │ ├─┬ @babel/helper-compilation-targets@7.23.6 -│ │ │ ├── @babel/compat-data@7.24.4 deduped -│ │ │ ├── @babel/helper-validator-option@7.23.5 deduped -│ │ │ ├─┬ browserslist@4.23.0 -│ │ │ │ ├── caniuse-lite@1.0.30001611 -│ │ │ │ ├── electron-to-chromium@1.4.744 -│ │ │ │ ├── node-releases@2.0.14 -│ │ │ │ └─┬ update-browserslist-db@1.0.13 -│ │ │ │ ├── browserslist@4.23.0 deduped -│ │ │ │ ├── escalade@3.1.2 deduped -│ │ │ │ └── picocolors@1.0.0 deduped -│ │ │ ├─┬ lru-cache@5.1.1 -│ │ │ │ └── yallist@3.1.1 -│ │ │ └── semver@6.3.1 -│ │ ├─┬ @babel/helper-module-transforms@7.23.3 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-environment-visitor@7.22.20 -│ │ │ ├── @babel/helper-module-imports@7.24.3 deduped -│ │ │ ├─┬ @babel/helper-simple-access@7.22.5 -│ │ │ │ └── @babel/types@7.24.0 deduped -│ │ │ ├─┬ @babel/helper-split-export-declaration@7.22.6 -│ │ │ │ └── @babel/types@7.24.0 deduped -│ │ │ └── @babel/helper-validator-identifier@7.22.20 -│ │ ├─┬ @babel/helpers@7.24.4 -│ │ │ ├── @babel/template@7.24.0 deduped -│ │ │ ├── @babel/traverse@7.24.1 deduped -│ │ │ └── @babel/types@7.24.0 deduped -│ │ ├── @babel/parser@7.24.4 -│ │ ├─┬ @babel/template@7.24.0 -│ │ │ ├── @babel/code-frame@7.24.2 deduped -│ │ │ ├── @babel/parser@7.24.4 deduped -│ │ │ └── @babel/types@7.24.0 deduped -│ │ ├─┬ @babel/traverse@7.24.1 -│ │ │ ├── @babel/code-frame@7.24.2 deduped -│ │ │ ├── @babel/generator@7.24.4 deduped -│ │ │ ├── @babel/helper-environment-visitor@7.22.20 deduped -│ │ │ ├─┬ @babel/helper-function-name@7.23.0 -│ │ │ │ ├── @babel/template@7.24.0 deduped -│ │ │ │ └── @babel/types@7.24.0 deduped -│ │ │ ├─┬ @babel/helper-hoist-variables@7.22.5 -│ │ │ │ └── @babel/types@7.24.0 deduped -│ │ │ ├── @babel/helper-split-export-declaration@7.22.6 deduped -│ │ │ ├── @babel/parser@7.24.4 deduped -│ │ │ ├── @babel/types@7.24.0 deduped -│ │ │ ├── debug@4.3.4 deduped -│ │ │ └── globals@11.12.0 -│ │ ├─┬ @babel/types@7.24.0 -│ │ │ ├── @babel/helper-string-parser@7.24.1 -│ │ │ ├── @babel/helper-validator-identifier@7.22.20 deduped -│ │ │ └── to-fast-properties@2.0.0 -│ │ ├── convert-source-map@2.0.0 -│ │ ├── debug@4.3.4 deduped -│ │ ├── gensync@1.0.0-beta.2 -│ │ ├── json5@2.2.3 deduped -│ │ └── semver@6.3.1 -│ ├─┬ @babel/plugin-proposal-decorators@7.24.1 -│ │ ├── @babel/core@7.24.4 deduped -│ │ ├─┬ @babel/helper-create-class-features-plugin@7.24.4 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├─┬ @babel/helper-annotate-as-pure@7.22.5 -│ │ │ │ └── @babel/types@7.24.0 deduped -│ │ │ ├── @babel/helper-environment-visitor@7.22.20 deduped -│ │ │ ├── @babel/helper-function-name@7.23.0 deduped -│ │ │ ├─┬ @babel/helper-member-expression-to-functions@7.23.0 -│ │ │ │ └── @babel/types@7.24.0 deduped -│ │ │ ├─┬ @babel/helper-optimise-call-expression@7.22.5 -│ │ │ │ └── @babel/types@7.24.0 deduped -│ │ │ ├─┬ @babel/helper-replace-supers@7.24.1 -│ │ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ │ ├── @babel/helper-environment-visitor@7.22.20 deduped -│ │ │ │ ├── @babel/helper-member-expression-to-functions@7.23.0 deduped -│ │ │ │ └── @babel/helper-optimise-call-expression@7.22.5 deduped -│ │ │ ├─┬ @babel/helper-skip-transparent-expression-wrappers@7.22.5 -│ │ │ │ └── @babel/types@7.24.0 deduped -│ │ │ ├── @babel/helper-split-export-declaration@7.22.6 deduped -│ │ │ └── semver@6.3.1 -│ │ ├── @babel/helper-plugin-utils@7.24.0 -│ │ └─┬ @babel/plugin-syntax-decorators@7.24.1 -│ │ ├── @babel/core@7.24.4 deduped -│ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ ├─┬ @babel/plugin-transform-class-properties@7.24.1 -│ │ ├── @babel/core@7.24.4 deduped -│ │ ├── @babel/helper-create-class-features-plugin@7.24.4 deduped -│ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ ├─┬ @babel/plugin-transform-runtime@7.24.3 -│ │ ├── @babel/core@7.24.4 deduped -│ │ ├─┬ @babel/helper-module-imports@7.24.3 -│ │ │ └── @babel/types@7.24.0 deduped -│ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ babel-plugin-polyfill-corejs2@0.4.10 -│ │ │ ├── @babel/compat-data@7.24.4 deduped -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├─┬ @babel/helper-define-polyfill-provider@0.6.1 -│ │ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ │ ├── @babel/helper-compilation-targets@7.23.6 deduped -│ │ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ │ ├── debug@4.3.4 deduped -│ │ │ │ ├── lodash.debounce@4.0.8 -│ │ │ │ └── resolve@1.22.8 deduped -│ │ │ └── semver@6.3.1 -│ │ ├─┬ babel-plugin-polyfill-corejs3@0.10.4 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-define-polyfill-provider@0.6.1 deduped -│ │ │ └── core-js-compat@3.37.0 deduped -│ │ ├─┬ babel-plugin-polyfill-regenerator@0.6.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-define-polyfill-provider@0.6.1 deduped -│ │ └── semver@6.3.1 -│ ├─┬ @babel/preset-env@7.24.4 -│ │ ├── @babel/compat-data@7.24.4 -│ │ ├── @babel/core@7.24.4 deduped -│ │ ├── @babel/helper-compilation-targets@7.23.6 deduped -│ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├── @babel/helper-validator-option@7.23.5 -│ │ ├─┬ @babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.4 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-environment-visitor@7.22.20 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ ├── @babel/helper-skip-transparent-expression-wrappers@7.22.5 deduped -│ │ │ └── @babel/plugin-transform-optional-chaining@7.24.1 deduped -│ │ ├─┬ @babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-environment-visitor@7.22.20 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2 -│ │ │ └── @babel/core@7.24.4 deduped -│ │ ├─┬ @babel/plugin-syntax-async-generators@7.8.4 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-syntax-class-properties@7.12.13 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-syntax-class-static-block@7.14.5 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-syntax-dynamic-import@7.8.3 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-syntax-export-namespace-from@7.8.3 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-syntax-import-assertions@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-syntax-import-attributes@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-syntax-import-meta@7.10.4 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-syntax-json-strings@7.8.3 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-syntax-logical-assignment-operators@7.10.4 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-syntax-nullish-coalescing-operator@7.8.3 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-syntax-numeric-separator@7.10.4 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-syntax-object-rest-spread@7.8.3 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-syntax-optional-catch-binding@7.8.3 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-syntax-optional-chaining@7.8.3 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-syntax-private-property-in-object@7.14.5 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-syntax-top-level-await@7.14.5 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-syntax-unicode-sets-regex@7.18.6 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├─┬ @babel/helper-create-regexp-features-plugin@7.22.15 -│ │ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ │ ├── @babel/helper-annotate-as-pure@7.22.5 deduped -│ │ │ │ ├─┬ regexpu-core@5.3.2 -│ │ │ │ │ ├── @babel/regjsgen@0.8.0 -│ │ │ │ │ ├─┬ regenerate-unicode-properties@10.1.1 -│ │ │ │ │ │ └── regenerate@1.4.2 deduped -│ │ │ │ │ ├── regenerate@1.4.2 -│ │ │ │ │ ├─┬ regjsparser@0.9.1 -│ │ │ │ │ │ └── jsesc@0.5.0 -│ │ │ │ │ ├─┬ unicode-match-property-ecmascript@2.0.0 -│ │ │ │ │ │ ├── unicode-canonical-property-names-ecmascript@2.0.0 -│ │ │ │ │ │ └── unicode-property-aliases-ecmascript@2.1.0 -│ │ │ │ │ └── unicode-match-property-value-ecmascript@2.1.0 -│ │ │ │ └── semver@6.3.1 -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-arrow-functions@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-async-generator-functions@7.24.3 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-environment-visitor@7.22.20 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ ├─┬ @babel/helper-remap-async-to-generator@7.22.20 -│ │ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ │ ├── @babel/helper-annotate-as-pure@7.22.5 deduped -│ │ │ │ ├── @babel/helper-environment-visitor@7.22.20 deduped -│ │ │ │ └─┬ @babel/helper-wrap-function@7.22.20 -│ │ │ │ ├── @babel/helper-function-name@7.23.0 deduped -│ │ │ │ ├── @babel/template@7.24.0 deduped -│ │ │ │ └── @babel/types@7.24.0 deduped -│ │ │ └── @babel/plugin-syntax-async-generators@7.8.4 deduped -│ │ ├─┬ @babel/plugin-transform-async-to-generator@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-module-imports@7.24.3 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ └── @babel/helper-remap-async-to-generator@7.22.20 deduped -│ │ ├─┬ @babel/plugin-transform-block-scoped-functions@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-block-scoping@7.24.4 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├── @babel/plugin-transform-class-properties@7.24.1 deduped -│ │ ├─┬ @babel/plugin-transform-class-static-block@7.24.4 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-create-class-features-plugin@7.24.4 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ └── @babel/plugin-syntax-class-static-block@7.14.5 deduped -│ │ ├─┬ @babel/plugin-transform-classes@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-annotate-as-pure@7.22.5 deduped -│ │ │ ├── @babel/helper-compilation-targets@7.23.6 deduped -│ │ │ ├── @babel/helper-environment-visitor@7.22.20 deduped -│ │ │ ├── @babel/helper-function-name@7.23.0 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ ├── @babel/helper-replace-supers@7.24.1 deduped -│ │ │ ├── @babel/helper-split-export-declaration@7.22.6 deduped -│ │ │ └── globals@11.12.0 deduped -│ │ ├─┬ @babel/plugin-transform-computed-properties@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ └── @babel/template@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-destructuring@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-dotall-regex@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-create-regexp-features-plugin@7.22.15 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-duplicate-keys@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-dynamic-import@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ └── @babel/plugin-syntax-dynamic-import@7.8.3 deduped -│ │ ├─┬ @babel/plugin-transform-exponentiation-operator@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├─┬ @babel/helper-builder-binary-assignment-operator-visitor@7.22.15 -│ │ │ │ └── @babel/types@7.24.0 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-export-namespace-from@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ └── @babel/plugin-syntax-export-namespace-from@7.8.3 deduped -│ │ ├─┬ @babel/plugin-transform-for-of@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ └── @babel/helper-skip-transparent-expression-wrappers@7.22.5 deduped -│ │ ├─┬ @babel/plugin-transform-function-name@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-compilation-targets@7.23.6 deduped -│ │ │ ├── @babel/helper-function-name@7.23.0 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-json-strings@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ └── @babel/plugin-syntax-json-strings@7.8.3 deduped -│ │ ├─┬ @babel/plugin-transform-literals@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-logical-assignment-operators@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ └── @babel/plugin-syntax-logical-assignment-operators@7.10.4 deduped -│ │ ├─┬ @babel/plugin-transform-member-expression-literals@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-modules-amd@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-module-transforms@7.23.3 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-modules-commonjs@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-module-transforms@7.23.3 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ └── @babel/helper-simple-access@7.22.5 deduped -│ │ ├─┬ @babel/plugin-transform-modules-systemjs@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-hoist-variables@7.22.5 deduped -│ │ │ ├── @babel/helper-module-transforms@7.23.3 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ └── @babel/helper-validator-identifier@7.22.20 deduped -│ │ ├─┬ @babel/plugin-transform-modules-umd@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-module-transforms@7.23.3 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-named-capturing-groups-regex@7.22.5 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-create-regexp-features-plugin@7.22.15 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-new-target@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-nullish-coalescing-operator@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ └── @babel/plugin-syntax-nullish-coalescing-operator@7.8.3 deduped -│ │ ├─┬ @babel/plugin-transform-numeric-separator@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ └── @babel/plugin-syntax-numeric-separator@7.10.4 deduped -│ │ ├─┬ @babel/plugin-transform-object-rest-spread@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-compilation-targets@7.23.6 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ ├── @babel/plugin-syntax-object-rest-spread@7.8.3 deduped -│ │ │ └── @babel/plugin-transform-parameters@7.24.1 deduped -│ │ ├─┬ @babel/plugin-transform-object-super@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ └── @babel/helper-replace-supers@7.24.1 deduped -│ │ ├─┬ @babel/plugin-transform-optional-catch-binding@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ └── @babel/plugin-syntax-optional-catch-binding@7.8.3 deduped -│ │ ├─┬ @babel/plugin-transform-optional-chaining@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ ├── @babel/helper-skip-transparent-expression-wrappers@7.22.5 deduped -│ │ │ └── @babel/plugin-syntax-optional-chaining@7.8.3 deduped -│ │ ├─┬ @babel/plugin-transform-parameters@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-private-methods@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-create-class-features-plugin@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-private-property-in-object@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-annotate-as-pure@7.22.5 deduped -│ │ │ ├── @babel/helper-create-class-features-plugin@7.24.4 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ └── @babel/plugin-syntax-private-property-in-object@7.14.5 deduped -│ │ ├─┬ @babel/plugin-transform-property-literals@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-regenerator@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ └─┬ regenerator-transform@0.15.2 -│ │ │ └── @babel/runtime@7.24.4 deduped -│ │ ├─┬ @babel/plugin-transform-reserved-words@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-shorthand-properties@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-spread@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ └── @babel/helper-skip-transparent-expression-wrappers@7.22.5 deduped -│ │ ├─┬ @babel/plugin-transform-sticky-regex@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-template-literals@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-typeof-symbol@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-unicode-escapes@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-unicode-property-regex@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-create-regexp-features-plugin@7.22.15 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-unicode-regex@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-create-regexp-features-plugin@7.22.15 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-transform-unicode-sets-regex@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-create-regexp-features-plugin@7.22.15 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/preset-modules@0.1.6-no-external-plugins -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ ├── @babel/types@7.24.0 deduped -│ │ │ └── esutils@2.0.3 deduped -│ │ ├── babel-plugin-polyfill-corejs2@0.4.10 deduped -│ │ ├── babel-plugin-polyfill-corejs3@0.10.4 deduped -│ │ ├── babel-plugin-polyfill-regenerator@0.6.1 deduped -│ │ ├─┬ core-js-compat@3.37.0 -│ │ │ └── browserslist@4.23.0 deduped -│ │ └── semver@6.3.1 -│ ├─┬ @babel/preset-typescript@7.24.1 -│ │ ├── @babel/core@7.24.4 deduped -│ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├── @babel/helper-validator-option@7.23.5 deduped -│ │ ├─┬ @babel/plugin-syntax-jsx@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├── @babel/plugin-transform-modules-commonjs@7.24.1 deduped -│ │ └─┬ @babel/plugin-transform-typescript@7.24.4 -│ │ ├── @babel/core@7.24.4 deduped -│ │ ├── @babel/helper-annotate-as-pure@7.22.5 deduped -│ │ ├── @babel/helper-create-class-features-plugin@7.24.4 deduped -│ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ └── @babel/plugin-syntax-typescript@7.24.1 deduped -│ ├─┬ @babel/runtime@7.24.4 -│ │ └── regenerator-runtime@0.14.1 -│ ├─┬ @nrwl/js@18.3.2 -│ │ └── @nx/js@18.3.2 deduped -│ ├── @nx/devkit@18.3.2 deduped -│ ├── @nx/workspace@18.3.2 deduped -│ ├── @phenomnomnominal/tsquery@5.0.1 deduped -│ ├─┬ babel-plugin-const-enum@1.2.0 -│ │ ├── @babel/core@7.24.4 deduped -│ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ ├─┬ @babel/plugin-syntax-typescript@7.24.1 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ └── @babel/traverse@7.24.1 deduped -│ ├─┬ babel-plugin-macros@2.8.0 -│ │ ├── @babel/runtime@7.24.4 deduped -│ │ ├─┬ cosmiconfig@6.0.0 -│ │ │ ├── @types/parse-json@4.0.2 -│ │ │ ├── import-fresh@3.3.0 deduped -│ │ │ ├── parse-json@5.2.0 deduped -│ │ │ ├── path-type@4.0.0 -│ │ │ └── yaml@1.10.2 -│ │ └── resolve@1.22.8 deduped -│ ├─┬ babel-plugin-transform-typescript-metadata@0.3.2 -│ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ ├── chalk@4.1.2 deduped -│ ├─┬ columnify@1.6.0 -│ │ ├── strip-ansi@6.0.1 deduped -│ │ └── wcwidth@1.0.1 deduped -│ ├─┬ detect-port@1.5.1 -│ │ ├── address@1.2.2 -│ │ └── debug@4.3.4 deduped -│ ├─┬ fast-glob@3.2.7 -│ │ ├── @nodelib/fs.stat@2.0.5 -│ │ ├── @nodelib/fs.walk@1.2.8 deduped -│ │ ├─┬ glob-parent@5.1.2 -│ │ │ └── is-glob@4.0.3 deduped -│ │ ├── merge2@1.4.1 -│ │ └── micromatch@4.0.5 deduped -│ ├─┬ fs-extra@11.2.0 -│ │ ├── graceful-fs@4.2.11 deduped -│ │ ├─┬ jsonfile@6.1.0 -│ │ │ ├── graceful-fs@4.2.11 deduped -│ │ │ └── universalify@2.0.1 deduped -│ │ └── universalify@2.0.1 -│ ├── ignore@5.3.1 -│ ├── js-tokens@4.0.0 -│ ├── minimatch@9.0.3 deduped -│ ├─┬ npm-package-arg@11.0.1 -│ │ ├─┬ hosted-git-info@7.0.1 -│ │ │ └── lru-cache@10.2.0 -│ │ ├── proc-log@3.0.0 -│ │ ├── semver@7.6.0 deduped -│ │ └─┬ validate-npm-package-name@5.0.0 -│ │ └─┬ builtins@5.1.0 -│ │ └── semver@7.6.0 deduped -│ ├─┬ npm-run-path@4.0.1 -│ │ └── path-key@3.1.1 -│ ├── ora@5.3.0 deduped -│ ├── semver@7.6.0 deduped -│ ├─┬ source-map-support@0.5.19 -│ │ ├── buffer-from@1.1.2 -│ │ └── source-map@0.6.1 -│ ├── ts-node@10.9.1 deduped -│ ├─┬ tsconfig-paths@4.2.0 -│ │ ├── json5@2.2.3 deduped -│ │ ├── minimist@1.2.8 deduped -│ │ └── strip-bom@3.0.0 -│ ├── tslib@2.6.2 deduped -│ └── verdaccio@5.30.3 deduped -├─┬ @nx/workspace@18.3.2 -│ ├─┬ @nrwl/workspace@18.3.2 -│ │ └── @nx/workspace@18.3.2 deduped -│ ├── @nx/devkit@18.3.2 deduped -│ ├── chalk@4.1.2 deduped -│ ├─┬ enquirer@2.3.6 -│ │ └── ansi-colors@4.1.3 -│ ├── nx@18.3.2 deduped -│ ├── tslib@2.6.2 deduped -│ └── yargs-parser@21.1.1 deduped -├─┬ @swc-node/register@1.8.0 -│ ├─┬ @swc-node/core@1.13.0 -│ │ ├── @swc/core@1.3.107 deduped -│ │ └── @swc/types@0.1.6 deduped -│ ├─┬ @swc-node/sourcemap-support@0.4.0 -│ │ ├─┬ source-map-support@0.5.21 -│ │ │ ├── buffer-from@1.1.2 deduped -│ │ │ └── source-map@0.6.1 deduped -│ │ └── tslib@2.6.2 deduped -│ ├── @swc/core@1.3.107 deduped -│ ├── colorette@2.0.20 -│ ├─┬ debug@4.3.4 -│ │ └── ms@2.1.2 -│ ├── pirates@4.0.6 -│ ├── tslib@2.6.2 deduped -│ └── typescript@5.4.5 deduped -├─┬ @swc/core@1.3.107 -│ ├── UNMET OPTIONAL DEPENDENCY @swc/core-darwin-arm64@1.3.107 -│ ├── UNMET OPTIONAL DEPENDENCY @swc/core-darwin-x64@1.3.107 -│ ├── UNMET OPTIONAL DEPENDENCY @swc/core-linux-arm-gnueabihf@1.3.107 -│ ├── UNMET OPTIONAL DEPENDENCY @swc/core-linux-arm64-gnu@1.3.107 -│ ├── UNMET OPTIONAL DEPENDENCY @swc/core-linux-arm64-musl@1.3.107 -│ ├── @swc/core-linux-x64-gnu@1.3.107 -│ ├── @swc/core-linux-x64-musl@1.3.107 -│ ├── UNMET OPTIONAL DEPENDENCY @swc/core-win32-arm64-msvc@1.3.107 -│ ├── UNMET OPTIONAL DEPENDENCY @swc/core-win32-ia32-msvc@1.3.107 -│ ├── UNMET OPTIONAL DEPENDENCY @swc/core-win32-x64-msvc@1.3.107 -│ ├── @swc/counter@0.1.3 -│ ├── @swc/helpers@0.5.10 deduped -│ └─┬ @swc/types@0.1.6 -│ └── @swc/counter@0.1.3 deduped -├─┬ @swc/helpers@0.5.10 -│ └── tslib@2.6.2 deduped -├─┬ @types/jest@29.5.12 -│ ├─┬ expect@29.7.0 -│ │ ├─┬ @jest/expect-utils@29.7.0 -│ │ │ └── jest-get-type@29.6.3 deduped -│ │ ├── jest-get-type@29.6.3 deduped -│ │ ├─┬ jest-matcher-utils@29.7.0 -│ │ │ ├── chalk@4.1.2 deduped -│ │ │ ├── jest-diff@29.7.0 deduped -│ │ │ ├── jest-get-type@29.6.3 deduped -│ │ │ └── pretty-format@29.7.0 deduped -│ │ ├── jest-message-util@29.7.0 deduped -│ │ └── jest-util@29.7.0 deduped -│ └─┬ pretty-format@29.7.0 -│ ├─┬ @jest/schemas@29.6.3 -│ │ └── @sinclair/typebox@0.27.8 -│ ├── ansi-styles@5.2.0 -│ └── react-is@18.2.0 -├── @types/minimist@1.2.5 -├── @types/node@18.16.9 -├── @types/sloc@0.2.3 -├─┬ @typescript-eslint/eslint-plugin@7.7.0 -│ ├── @eslint-community/regexpp@4.10.0 -│ ├── @typescript-eslint/parser@7.7.0 deduped -│ ├─┬ @typescript-eslint/scope-manager@7.7.0 -│ │ ├── @typescript-eslint/types@7.7.0 deduped -│ │ └── @typescript-eslint/visitor-keys@7.7.0 deduped -│ ├── @typescript-eslint/type-utils@7.7.0 deduped -│ ├── @typescript-eslint/utils@7.7.0 deduped -│ ├─┬ @typescript-eslint/visitor-keys@7.7.0 -│ │ ├── @typescript-eslint/types@7.7.0 deduped -│ │ └── eslint-visitor-keys@3.4.3 deduped -│ ├── debug@4.3.4 deduped -│ ├── eslint@8.57.0 deduped -│ ├── graphemer@1.4.0 -│ ├── ignore@5.3.1 deduped -│ ├── natural-compare@1.4.0 -│ ├── semver@7.6.0 deduped -│ └─┬ ts-api-utils@1.3.0 -│ └── typescript@5.4.5 deduped -├─┬ @typescript-eslint/parser@7.7.0 -│ ├── @typescript-eslint/scope-manager@7.7.0 deduped -│ ├── @typescript-eslint/types@7.7.0 -│ ├─┬ @typescript-eslint/typescript-estree@7.7.0 -│ │ ├── @typescript-eslint/types@7.7.0 deduped -│ │ ├── @typescript-eslint/visitor-keys@7.7.0 deduped -│ │ ├── debug@4.3.4 deduped -│ │ ├─┬ globby@11.1.0 -│ │ │ ├── array-union@2.1.0 -│ │ │ ├─┬ dir-glob@3.0.1 -│ │ │ │ └── path-type@4.0.0 deduped -│ │ │ ├─┬ fast-glob@3.3.2 -│ │ │ │ ├── @nodelib/fs.stat@2.0.5 deduped -│ │ │ │ ├── @nodelib/fs.walk@1.2.8 deduped -│ │ │ │ ├── glob-parent@5.1.2 deduped -│ │ │ │ ├── merge2@1.4.1 deduped -│ │ │ │ └── micromatch@4.0.5 deduped -│ │ │ ├── ignore@5.3.1 deduped -│ │ │ ├── merge2@1.4.1 deduped -│ │ │ └── slash@3.0.0 deduped -│ │ ├── is-glob@4.0.3 deduped -│ │ ├─┬ minimatch@9.0.4 -│ │ │ └── brace-expansion@2.0.1 deduped -│ │ ├── semver@7.6.0 deduped -│ │ └── ts-api-utils@1.3.0 deduped -│ ├── @typescript-eslint/visitor-keys@7.7.0 deduped -│ ├── debug@4.3.4 deduped -│ └── eslint@8.57.0 deduped -├── cli-spinners@3.0.0 -├── date-fns@3.6.0 -├─┬ eslint-config-prettier@9.1.0 -│ └── eslint@8.57.0 deduped -├─┬ eslint@8.57.0 -│ ├─┬ @eslint-community/eslint-utils@4.4.0 -│ │ ├── eslint-visitor-keys@3.4.3 deduped -│ │ └── eslint@8.57.0 deduped -│ ├── @eslint-community/regexpp@4.10.0 deduped -│ ├─┬ @eslint/eslintrc@2.1.4 -│ │ ├── ajv@6.12.6 deduped -│ │ ├── debug@4.3.4 deduped -│ │ ├── espree@9.6.1 deduped -│ │ ├─┬ globals@13.24.0 -│ │ │ └── type-fest@0.20.2 -│ │ ├── ignore@5.3.1 deduped -│ │ ├─┬ import-fresh@3.3.0 -│ │ │ ├─┬ parent-module@1.0.1 -│ │ │ │ └── callsites@3.1.0 -│ │ │ └── resolve-from@4.0.0 -│ │ ├── js-yaml@4.1.0 deduped -│ │ ├─┬ minimatch@3.1.2 -│ │ │ └─┬ brace-expansion@1.1.11 -│ │ │ ├── balanced-match@1.0.2 deduped -│ │ │ └── concat-map@0.0.1 deduped -│ │ └── strip-json-comments@3.1.1 deduped -│ ├── @eslint/js@8.57.0 -│ ├─┬ @humanwhocodes/config-array@0.11.14 -│ │ ├── @humanwhocodes/object-schema@2.0.3 -│ │ ├── debug@4.3.4 deduped -│ │ └─┬ minimatch@3.1.2 -│ │ └─┬ brace-expansion@1.1.11 -│ │ ├── balanced-match@1.0.2 deduped -│ │ └── concat-map@0.0.1 deduped -│ ├── @humanwhocodes/module-importer@1.0.1 -│ ├─┬ @nodelib/fs.walk@1.2.8 -│ │ ├─┬ @nodelib/fs.scandir@2.1.5 -│ │ │ ├── @nodelib/fs.stat@2.0.5 deduped -│ │ │ └─┬ run-parallel@1.2.0 -│ │ │ └── queue-microtask@1.2.3 -│ │ └─┬ fastq@1.17.1 -│ │ └── reusify@1.0.4 -│ ├── @ungap/structured-clone@1.2.0 -│ ├─┬ ajv@6.12.6 -│ │ ├── fast-deep-equal@3.1.3 deduped -│ │ ├── fast-json-stable-stringify@2.1.0 deduped -│ │ ├── json-schema-traverse@0.4.1 -│ │ └─┬ uri-js@4.4.1 -│ │ └── punycode@2.3.1 -│ ├── chalk@4.1.2 deduped -│ ├─┬ cross-spawn@7.0.3 -│ │ ├── path-key@3.1.1 deduped -│ │ ├─┬ shebang-command@2.0.0 -│ │ │ └── shebang-regex@3.0.0 -│ │ └─┬ which@2.0.2 -│ │ └── isexe@2.0.0 -│ ├── debug@4.3.4 deduped -│ ├─┬ doctrine@3.0.0 -│ │ └── esutils@2.0.3 deduped -│ ├── escape-string-regexp@4.0.0 -│ ├─┬ eslint-scope@7.2.2 -│ │ ├─┬ esrecurse@4.3.0 -│ │ │ └── estraverse@5.3.0 deduped -│ │ └── estraverse@5.3.0 -│ ├── eslint-visitor-keys@3.4.3 -│ ├─┬ espree@9.6.1 -│ │ ├─┬ acorn-jsx@5.3.2 -│ │ │ └── acorn@8.11.3 deduped -│ │ ├── acorn@8.11.3 deduped -│ │ └── eslint-visitor-keys@3.4.3 deduped -│ ├─┬ esquery@1.5.0 -│ │ └── estraverse@5.3.0 deduped -│ ├── esutils@2.0.3 -│ ├── fast-deep-equal@3.1.3 -│ ├─┬ file-entry-cache@6.0.1 -│ │ └─┬ flat-cache@3.2.0 -│ │ ├── flatted@3.3.1 -│ │ ├─┬ keyv@4.5.4 -│ │ │ └── json-buffer@3.0.1 -│ │ └─┬ rimraf@3.0.2 -│ │ └── glob@7.2.3 deduped -│ ├─┬ find-up@5.0.0 -│ │ ├─┬ locate-path@6.0.0 -│ │ │ └─┬ p-locate@5.0.0 -│ │ │ └── p-limit@3.1.0 deduped -│ │ └── path-exists@4.0.0 -│ ├─┬ glob-parent@6.0.2 -│ │ └── is-glob@4.0.3 deduped -│ ├─┬ globals@13.24.0 -│ │ └── type-fest@0.20.2 -│ ├── graphemer@1.4.0 deduped -│ ├── ignore@5.3.1 deduped -│ ├── imurmurhash@0.1.4 -│ ├─┬ is-glob@4.0.3 -│ │ └── is-extglob@2.1.1 -│ ├── is-path-inside@3.0.3 -│ ├── js-yaml@4.1.0 deduped -│ ├── json-stable-stringify-without-jsonify@1.0.1 -│ ├─┬ levn@0.4.1 -│ │ ├── prelude-ls@1.2.1 -│ │ └─┬ type-check@0.4.0 -│ │ └── prelude-ls@1.2.1 deduped -│ ├── lodash.merge@4.6.2 -│ ├─┬ minimatch@3.1.2 -│ │ └─┬ brace-expansion@1.1.11 -│ │ ├── balanced-match@1.0.2 deduped -│ │ └── concat-map@0.0.1 -│ ├── natural-compare@1.4.0 deduped -│ ├─┬ optionator@0.9.3 -│ │ ├── @aashutoshrathi/word-wrap@1.2.6 -│ │ ├── deep-is@0.1.4 -│ │ ├── fast-levenshtein@2.0.6 -│ │ ├── levn@0.4.1 deduped -│ │ ├── prelude-ls@1.2.1 deduped -│ │ └── type-check@0.4.0 deduped -│ ├─┬ strip-ansi@6.0.1 -│ │ └── ansi-regex@5.0.1 -│ └── text-table@0.2.0 -├─┬ get-json@1.0.1 -│ ├── is-node@0.0.0 -│ ├─┬ jsonp@0.0.4 -│ │ └── debug@4.3.4 deduped -│ └── phin@2.9.3 -├── git-last-commit@1.0.1 -├─┬ jest-environment-node@29.7.0 -│ ├─┬ @jest/environment@29.7.0 -│ │ ├── @jest/fake-timers@29.7.0 deduped -│ │ ├── @jest/types@29.6.3 deduped -│ │ ├── @types/node@18.16.9 deduped -│ │ └── jest-mock@29.7.0 deduped -│ ├─┬ @jest/fake-timers@29.7.0 -│ │ ├── @jest/types@29.6.3 deduped -│ │ ├─┬ @sinonjs/fake-timers@10.3.0 -│ │ │ └─┬ @sinonjs/commons@3.0.1 -│ │ │ └── type-detect@4.0.8 -│ │ ├── @types/node@18.16.9 deduped -│ │ ├── jest-message-util@29.7.0 deduped -│ │ ├── jest-mock@29.7.0 deduped -│ │ └── jest-util@29.7.0 deduped -│ ├─┬ @jest/types@29.6.3 -│ │ ├── @jest/schemas@29.6.3 deduped -│ │ ├── @types/istanbul-lib-coverage@2.0.6 deduped -│ │ ├─┬ @types/istanbul-reports@3.0.4 -│ │ │ └─┬ @types/istanbul-lib-report@3.0.3 -│ │ │ └── @types/istanbul-lib-coverage@2.0.6 deduped -│ │ ├── @types/node@18.16.9 deduped -│ │ ├─┬ @types/yargs@17.0.32 -│ │ │ └── @types/yargs-parser@21.0.3 -│ │ └── chalk@4.1.2 deduped -│ ├── @types/node@18.16.9 deduped -│ ├─┬ jest-mock@29.7.0 -│ │ ├── @jest/types@29.6.3 deduped -│ │ ├── @types/node@18.16.9 deduped -│ │ └── jest-util@29.7.0 deduped -│ └── jest-util@29.7.0 deduped -├─┬ jest@29.7.0 -│ ├─┬ @jest/core@29.7.0 -│ │ ├── @jest/console@29.7.0 deduped -│ │ ├── @jest/reporters@29.7.0 deduped -│ │ ├── @jest/test-result@29.7.0 deduped -│ │ ├── @jest/transform@29.7.0 deduped -│ │ ├── @jest/types@29.6.3 deduped -│ │ ├── @types/node@18.16.9 deduped -│ │ ├── ansi-escapes@4.3.2 deduped -│ │ ├── chalk@4.1.2 deduped -│ │ ├── ci-info@3.9.0 deduped -│ │ ├── exit@0.1.2 deduped -│ │ ├── graceful-fs@4.2.11 deduped -│ │ ├─┬ jest-changed-files@29.7.0 -│ │ │ ├─┬ execa@5.1.1 -│ │ │ │ ├── cross-spawn@7.0.3 deduped -│ │ │ │ ├── get-stream@6.0.1 -│ │ │ │ ├── human-signals@2.1.0 -│ │ │ │ ├── is-stream@2.0.1 -│ │ │ │ ├── merge-stream@2.0.0 deduped -│ │ │ │ ├── npm-run-path@4.0.1 deduped -│ │ │ │ ├── onetime@5.1.2 deduped -│ │ │ │ ├── signal-exit@3.0.7 deduped -│ │ │ │ └── strip-final-newline@2.0.0 -│ │ │ ├── jest-util@29.7.0 deduped -│ │ │ └── p-limit@3.1.0 deduped -│ │ ├── jest-config@29.7.0 deduped -│ │ ├── jest-haste-map@29.7.0 deduped -│ │ ├── jest-message-util@29.7.0 deduped -│ │ ├── jest-regex-util@29.6.3 deduped -│ │ ├─┬ jest-resolve-dependencies@29.7.0 -│ │ │ ├── jest-regex-util@29.6.3 deduped -│ │ │ └── jest-snapshot@29.7.0 deduped -│ │ ├── jest-resolve@29.7.0 deduped -│ │ ├── jest-runner@29.7.0 deduped -│ │ ├─┬ jest-runtime@29.7.0 -│ │ │ ├── @jest/environment@29.7.0 deduped -│ │ │ ├── @jest/fake-timers@29.7.0 deduped -│ │ │ ├─┬ @jest/globals@29.7.0 -│ │ │ │ ├── @jest/environment@29.7.0 deduped -│ │ │ │ ├── @jest/expect@29.7.0 deduped -│ │ │ │ ├── @jest/types@29.6.3 deduped -│ │ │ │ └── jest-mock@29.7.0 deduped -│ │ │ ├─┬ @jest/source-map@29.6.3 -│ │ │ │ ├── @jridgewell/trace-mapping@0.3.25 deduped -│ │ │ │ ├── callsites@3.1.0 deduped -│ │ │ │ └── graceful-fs@4.2.11 deduped -│ │ │ ├── @jest/test-result@29.7.0 deduped -│ │ │ ├── @jest/transform@29.7.0 deduped -│ │ │ ├── @jest/types@29.6.3 deduped -│ │ │ ├── @types/node@18.16.9 deduped -│ │ │ ├── chalk@4.1.2 deduped -│ │ │ ├── cjs-module-lexer@1.2.3 -│ │ │ ├── collect-v8-coverage@1.0.2 deduped -│ │ │ ├── glob@7.2.3 deduped -│ │ │ ├── graceful-fs@4.2.11 deduped -│ │ │ ├── jest-haste-map@29.7.0 deduped -│ │ │ ├── jest-message-util@29.7.0 deduped -│ │ │ ├── jest-mock@29.7.0 deduped -│ │ │ ├── jest-regex-util@29.6.3 deduped -│ │ │ ├── jest-resolve@29.7.0 deduped -│ │ │ ├── jest-snapshot@29.7.0 deduped -│ │ │ ├── jest-util@29.7.0 deduped -│ │ │ ├── slash@3.0.0 deduped -│ │ │ └── strip-bom@4.0.0 -│ │ ├─┬ jest-snapshot@29.7.0 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├── @babel/generator@7.24.4 deduped -│ │ │ ├── @babel/plugin-syntax-jsx@7.24.1 deduped -│ │ │ ├── @babel/plugin-syntax-typescript@7.24.1 deduped -│ │ │ ├── @babel/types@7.24.0 deduped -│ │ │ ├── @jest/expect-utils@29.7.0 deduped -│ │ │ ├── @jest/transform@29.7.0 deduped -│ │ │ ├── @jest/types@29.6.3 deduped -│ │ │ ├─┬ babel-preset-current-node-syntax@1.0.1 -│ │ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ │ ├── @babel/plugin-syntax-async-generators@7.8.4 deduped -│ │ │ │ ├─┬ @babel/plugin-syntax-bigint@7.8.3 -│ │ │ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ │ │ └── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ │ ├── @babel/plugin-syntax-class-properties@7.12.13 deduped -│ │ │ │ ├── @babel/plugin-syntax-import-meta@7.10.4 deduped -│ │ │ │ ├── @babel/plugin-syntax-json-strings@7.8.3 deduped -│ │ │ │ ├── @babel/plugin-syntax-logical-assignment-operators@7.10.4 deduped -│ │ │ │ ├── @babel/plugin-syntax-nullish-coalescing-operator@7.8.3 deduped -│ │ │ │ ├── @babel/plugin-syntax-numeric-separator@7.10.4 deduped -│ │ │ │ ├── @babel/plugin-syntax-object-rest-spread@7.8.3 deduped -│ │ │ │ ├── @babel/plugin-syntax-optional-catch-binding@7.8.3 deduped -│ │ │ │ ├── @babel/plugin-syntax-optional-chaining@7.8.3 deduped -│ │ │ │ └── @babel/plugin-syntax-top-level-await@7.14.5 deduped -│ │ │ ├── chalk@4.1.2 deduped -│ │ │ ├── expect@29.7.0 deduped -│ │ │ ├── graceful-fs@4.2.11 deduped -│ │ │ ├── jest-diff@29.7.0 deduped -│ │ │ ├── jest-get-type@29.6.3 deduped -│ │ │ ├── jest-matcher-utils@29.7.0 deduped -│ │ │ ├── jest-message-util@29.7.0 deduped -│ │ │ ├── jest-util@29.7.0 deduped -│ │ │ ├── natural-compare@1.4.0 deduped -│ │ │ ├── pretty-format@29.7.0 deduped -│ │ │ └── semver@7.6.0 deduped -│ │ ├── jest-util@29.7.0 deduped -│ │ ├── jest-validate@29.7.0 deduped -│ │ ├─┬ jest-watcher@29.7.0 -│ │ │ ├── @jest/test-result@29.7.0 deduped -│ │ │ ├── @jest/types@29.6.3 deduped -│ │ │ ├── @types/node@18.16.9 deduped -│ │ │ ├── ansi-escapes@4.3.2 deduped -│ │ │ ├── chalk@4.1.2 deduped -│ │ │ ├── emittery@0.13.1 deduped -│ │ │ ├── jest-util@29.7.0 deduped -│ │ │ └── string-length@4.0.2 deduped -│ │ ├── micromatch@4.0.5 deduped -│ │ ├── UNMET OPTIONAL DEPENDENCY node-notifier@^8.0.1 || ^9.0.0 || ^10.0.0 -│ │ ├── pretty-format@29.7.0 deduped -│ │ ├── slash@3.0.0 deduped -│ │ └── strip-ansi@6.0.1 deduped -│ ├── @jest/types@29.6.3 deduped -│ ├─┬ import-local@3.1.0 -│ │ ├─┬ pkg-dir@4.2.0 -│ │ │ └─┬ find-up@4.1.0 -│ │ │ ├─┬ locate-path@5.0.0 -│ │ │ │ └─┬ p-locate@4.1.0 -│ │ │ │ └─┬ p-limit@2.3.0 -│ │ │ │ └── p-try@2.2.0 -│ │ │ └── path-exists@4.0.0 deduped -│ │ └─┬ resolve-cwd@3.0.0 -│ │ └── resolve-from@5.0.0 -│ ├─┬ jest-cli@29.7.0 -│ │ ├── @jest/core@29.7.0 deduped -│ │ ├── @jest/test-result@29.7.0 deduped -│ │ ├── @jest/types@29.6.3 deduped -│ │ ├── chalk@4.1.2 deduped -│ │ ├─┬ create-jest@29.7.0 -│ │ │ ├── @jest/types@29.6.3 deduped -│ │ │ ├── chalk@4.1.2 deduped -│ │ │ ├── exit@0.1.2 deduped -│ │ │ ├── graceful-fs@4.2.11 deduped -│ │ │ ├── jest-config@29.7.0 deduped -│ │ │ ├── jest-util@29.7.0 deduped -│ │ │ └─┬ prompts@2.4.2 -│ │ │ ├── kleur@3.0.3 -│ │ │ └── sisteransi@1.0.5 -│ │ ├── exit@0.1.2 deduped -│ │ ├── import-local@3.1.0 deduped -│ │ ├── jest-config@29.7.0 deduped -│ │ ├── jest-util@29.7.0 deduped -│ │ ├── jest-validate@29.7.0 deduped -│ │ ├── UNMET OPTIONAL DEPENDENCY node-notifier@^8.0.1 || ^9.0.0 || ^10.0.0 -│ │ └── yargs@17.7.2 deduped -│ └── UNMET OPTIONAL DEPENDENCY node-notifier@^8.0.1 || ^9.0.0 || ^10.0.0 -├── minimist@1.2.8 -├─┬ nx@18.3.2 -│ ├─┬ @nrwl/tao@18.3.2 -│ │ ├── nx@18.3.2 deduped -│ │ └── tslib@2.6.2 deduped -│ ├── UNMET OPTIONAL DEPENDENCY @nx/nx-darwin-arm64@18.3.2 -│ ├── UNMET OPTIONAL DEPENDENCY @nx/nx-darwin-x64@18.3.2 -│ ├── UNMET OPTIONAL DEPENDENCY @nx/nx-freebsd-x64@18.3.2 -│ ├── UNMET OPTIONAL DEPENDENCY @nx/nx-linux-arm-gnueabihf@18.3.2 -│ ├── UNMET OPTIONAL DEPENDENCY @nx/nx-linux-arm64-gnu@18.3.2 -│ ├── UNMET OPTIONAL DEPENDENCY @nx/nx-linux-arm64-musl@18.3.2 -│ ├── @nx/nx-linux-x64-gnu@18.3.2 -│ ├── @nx/nx-linux-x64-musl@18.3.2 -│ ├── UNMET OPTIONAL DEPENDENCY @nx/nx-win32-arm64-msvc@18.3.2 -│ ├── UNMET OPTIONAL DEPENDENCY @nx/nx-win32-x64-msvc@18.3.2 -│ ├── @swc-node/register@1.8.0 deduped -│ ├── @swc/core@1.3.107 deduped -│ ├── @yarnpkg/lockfile@1.1.0 -│ ├─┬ @yarnpkg/parsers@3.0.0-rc.46 -│ │ ├─┬ js-yaml@3.14.1 -│ │ │ ├─┬ argparse@1.0.10 -│ │ │ │ └── sprintf-js@1.0.3 -│ │ │ └── esprima@4.0.1 -│ │ └── tslib@2.6.2 deduped -│ ├─┬ @zkochan/js-yaml@0.0.6 -│ │ └── argparse@2.0.1 deduped -│ ├─┬ axios@1.6.8 -│ │ ├── follow-redirects@1.15.6 -│ │ ├─┬ form-data@4.0.0 -│ │ │ ├── asynckit@0.4.0 -│ │ │ ├── combined-stream@1.0.8 deduped -│ │ │ └── mime-types@2.1.35 deduped -│ │ └── proxy-from-env@1.1.0 -│ ├── chalk@4.1.2 deduped -│ ├─┬ cli-cursor@3.1.0 -│ │ └─┬ restore-cursor@3.1.0 -│ │ ├─┬ onetime@5.1.2 -│ │ │ └── mimic-fn@2.1.0 -│ │ └── signal-exit@3.0.7 -│ ├── cli-spinners@2.6.1 -│ ├─┬ cliui@8.0.1 -│ │ ├── string-width@4.2.3 deduped -│ │ ├── strip-ansi@6.0.1 deduped -│ │ └─┬ wrap-ansi@7.0.0 -│ │ ├── ansi-styles@4.3.0 deduped -│ │ ├── string-width@4.2.3 deduped -│ │ └── strip-ansi@6.0.1 deduped -│ ├── dotenv-expand@10.0.0 -│ ├── dotenv@16.3.2 -│ ├── enquirer@2.3.6 deduped -│ ├─┬ figures@3.2.0 -│ │ └── escape-string-regexp@1.0.5 -│ ├── flat@5.0.2 -│ ├── fs-extra@11.2.0 deduped -│ ├── ignore@5.3.1 deduped -│ ├─┬ jest-diff@29.7.0 -│ │ ├── chalk@4.1.2 deduped -│ │ ├── diff-sequences@29.6.3 -│ │ ├── jest-get-type@29.6.3 deduped -│ │ └── pretty-format@29.7.0 deduped -│ ├── js-yaml@4.1.0 deduped -│ ├── jsonc-parser@3.2.0 -│ ├── lines-and-columns@2.0.4 -│ ├── minimatch@9.0.3 deduped -│ ├── node-machine-id@1.1.12 -│ ├── npm-run-path@4.0.1 deduped -│ ├─┬ open@8.4.2 -│ │ ├── define-lazy-prop@2.0.0 -│ │ ├── is-docker@2.2.1 -│ │ └─┬ is-wsl@2.2.0 -│ │ └── is-docker@2.2.1 deduped -│ ├── ora@5.3.0 deduped -│ ├── semver@7.6.0 deduped -│ ├─┬ string-width@4.2.3 -│ │ ├── emoji-regex@8.0.0 -│ │ ├── is-fullwidth-code-point@3.0.0 -│ │ └── strip-ansi@6.0.1 deduped -│ ├─┬ strong-log-transformer@2.1.0 -│ │ ├── duplexer@0.1.2 -│ │ ├── minimist@1.2.8 deduped -│ │ └── through@2.3.8 -│ ├─┬ tar-stream@2.2.0 -│ │ ├── bl@4.1.0 deduped -│ │ ├─┬ end-of-stream@1.4.4 -│ │ │ └── once@1.4.0 deduped -│ │ ├── fs-constants@1.0.0 -│ │ ├── inherits@2.0.4 -│ │ └─┬ readable-stream@3.6.2 -│ │ ├── inherits@2.0.4 deduped -│ │ ├─┬ string_decoder@1.3.0 -│ │ │ └── safe-buffer@5.2.1 deduped -│ │ └── util-deprecate@1.0.2 -│ ├── tmp@0.2.3 -│ ├── tsconfig-paths@4.2.0 deduped -│ ├── tslib@2.6.2 deduped -│ ├── yargs-parser@21.1.1 deduped -│ └── yargs@17.7.2 deduped -├─┬ ora@5.3.0 -│ ├─┬ bl@4.1.0 -│ │ ├─┬ buffer@5.7.1 -│ │ │ ├── base64-js@1.5.1 -│ │ │ └── ieee754@1.2.1 -│ │ ├── inherits@2.0.4 deduped -│ │ └── readable-stream@3.6.2 deduped -│ ├── chalk@4.1.2 deduped -│ ├── cli-cursor@3.1.0 deduped -│ ├── cli-spinners@2.9.2 -│ ├── is-interactive@1.0.0 -│ ├─┬ log-symbols@4.1.0 -│ │ ├── chalk@4.1.2 deduped -│ │ └── is-unicode-supported@0.1.0 -│ ├── strip-ansi@6.0.1 deduped -│ └─┬ wcwidth@1.0.1 -│ └─┬ defaults@1.0.4 -│ └── clone@1.0.4 -├── prettier@2.8.8 -├─┬ sloc@0.3.2 -│ ├── async@3.2.5 -│ ├─┬ cli-table@0.3.11 -│ │ └── colors@1.0.3 -│ ├── commander@11.1.0 -│ └─┬ readdirp@3.6.0 -│ └── picomatch@2.3.1 deduped -├─┬ ts-jest@29.1.2 -│ ├── @babel/core@7.24.4 deduped -│ ├── @jest/types@29.6.3 deduped -│ ├─┬ babel-jest@29.7.0 -│ │ ├── @babel/core@7.24.4 deduped -│ │ ├── @jest/transform@29.7.0 deduped -│ │ ├─┬ @types/babel__core@7.20.5 -│ │ │ ├── @babel/parser@7.24.4 deduped -│ │ │ ├── @babel/types@7.24.0 deduped -│ │ │ ├─┬ @types/babel__generator@7.6.8 -│ │ │ │ └── @babel/types@7.24.0 deduped -│ │ │ ├─┬ @types/babel__template@7.4.4 -│ │ │ │ ├── @babel/parser@7.24.4 deduped -│ │ │ │ └── @babel/types@7.24.0 deduped -│ │ │ └─┬ @types/babel__traverse@7.20.5 -│ │ │ └── @babel/types@7.24.0 deduped -│ │ ├─┬ babel-plugin-istanbul@6.1.1 -│ │ │ ├── @babel/helper-plugin-utils@7.24.0 deduped -│ │ │ ├─┬ @istanbuljs/load-nyc-config@1.1.0 -│ │ │ │ ├── camelcase@5.3.1 -│ │ │ │ ├── find-up@4.1.0 deduped -│ │ │ │ ├── get-package-type@0.1.0 -│ │ │ │ ├─┬ js-yaml@3.14.1 -│ │ │ │ │ ├─┬ argparse@1.0.10 -│ │ │ │ │ │ └── sprintf-js@1.0.3 deduped -│ │ │ │ │ └── esprima@4.0.1 deduped -│ │ │ │ └── resolve-from@5.0.0 -│ │ │ ├── @istanbuljs/schema@0.1.3 deduped -│ │ │ ├─┬ istanbul-lib-instrument@5.2.1 -│ │ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ │ ├── @babel/parser@7.24.4 deduped -│ │ │ │ ├── @istanbuljs/schema@0.1.3 deduped -│ │ │ │ ├── istanbul-lib-coverage@3.2.2 deduped -│ │ │ │ └── semver@6.3.1 -│ │ │ └─┬ test-exclude@6.0.0 -│ │ │ ├── @istanbuljs/schema@0.1.3 deduped -│ │ │ ├── glob@7.2.3 deduped -│ │ │ └─┬ minimatch@3.1.2 -│ │ │ └─┬ brace-expansion@1.1.11 -│ │ │ ├── balanced-match@1.0.2 deduped -│ │ │ └── concat-map@0.0.1 deduped -│ │ ├─┬ babel-preset-jest@29.6.3 -│ │ │ ├── @babel/core@7.24.4 deduped -│ │ │ ├─┬ babel-plugin-jest-hoist@29.6.3 -│ │ │ │ ├── @babel/template@7.24.0 deduped -│ │ │ │ ├── @babel/types@7.24.0 deduped -│ │ │ │ ├── @types/babel__core@7.20.5 deduped -│ │ │ │ └── @types/babel__traverse@7.20.5 deduped -│ │ │ └── babel-preset-current-node-syntax@1.0.1 deduped -│ │ ├── chalk@4.1.2 deduped -│ │ ├── graceful-fs@4.2.11 deduped -│ │ └── slash@3.0.0 deduped -│ ├─┬ bs-logger@0.2.6 -│ │ └── fast-json-stable-stringify@2.1.0 deduped -│ ├── fast-json-stable-stringify@2.1.0 -│ ├── jest-util@29.7.0 deduped -│ ├── jest@29.7.0 deduped -│ ├── json5@2.2.3 -│ ├── lodash.memoize@4.1.2 -│ ├── make-error@1.3.6 -│ ├── semver@7.6.0 deduped -│ ├── typescript@5.4.5 deduped -│ └── yargs-parser@21.1.1 deduped -├─┬ ts-node@10.9.1 -│ ├─┬ @cspotcode/source-map-support@0.8.1 -│ │ └─┬ @jridgewell/trace-mapping@0.3.9 -│ │ ├── @jridgewell/resolve-uri@3.1.2 deduped -│ │ └── @jridgewell/sourcemap-codec@1.4.15 deduped -│ ├── @swc/core@1.3.107 deduped -│ ├── UNMET OPTIONAL DEPENDENCY @swc/wasm@>=1.2.50 -│ ├── @tsconfig/node10@1.0.11 -│ ├── @tsconfig/node12@1.0.11 -│ ├── @tsconfig/node14@1.0.3 -│ ├── @tsconfig/node16@1.0.4 -│ ├── @types/node@18.16.9 deduped -│ ├── acorn-walk@8.3.2 -│ ├── acorn@8.11.3 -│ ├── arg@4.1.3 -│ ├── create-require@1.1.1 -│ ├── diff@4.0.2 -│ ├── make-error@1.3.6 deduped -│ ├── typescript@5.4.5 deduped -│ ├── v8-compile-cache-lib@3.0.1 -│ └── yn@3.1.1 -├── tslib@2.6.2 -├── typescript@5.4.5 -├─┬ verdaccio@5.30.3 -│ ├─┬ @cypress/request@3.0.1 -│ │ ├── aws-sign2@0.7.0 -│ │ ├── aws4@1.12.0 -│ │ ├── caseless@0.12.0 -│ │ ├─┬ combined-stream@1.0.8 -│ │ │ └── delayed-stream@1.0.0 -│ │ ├── extend@3.0.2 -│ │ ├── forever-agent@0.6.1 -│ │ ├─┬ form-data@2.3.3 -│ │ │ ├── asynckit@0.4.0 deduped -│ │ │ ├── combined-stream@1.0.8 deduped -│ │ │ └── mime-types@2.1.35 deduped -│ │ ├─┬ http-signature@1.3.6 -│ │ │ ├── assert-plus@1.0.0 -│ │ │ ├─┬ jsprim@2.0.2 -│ │ │ │ ├── assert-plus@1.0.0 deduped -│ │ │ │ ├── extsprintf@1.3.0 -│ │ │ │ ├── json-schema@0.4.0 -│ │ │ │ └─┬ verror@1.10.0 -│ │ │ │ ├── assert-plus@1.0.0 deduped -│ │ │ │ ├── core-util-is@1.0.2 -│ │ │ │ └── extsprintf@1.3.0 deduped -│ │ │ └─┬ sshpk@1.18.0 -│ │ │ ├─┬ asn1@0.2.6 -│ │ │ │ └── safer-buffer@2.1.2 deduped -│ │ │ ├── assert-plus@1.0.0 deduped -│ │ │ ├─┬ bcrypt-pbkdf@1.0.2 -│ │ │ │ └── tweetnacl@0.14.5 deduped -│ │ │ ├─┬ dashdash@1.14.1 -│ │ │ │ └── assert-plus@1.0.0 deduped -│ │ │ ├─┬ ecc-jsbn@0.1.2 -│ │ │ │ ├── jsbn@0.1.1 deduped -│ │ │ │ └── safer-buffer@2.1.2 deduped -│ │ │ ├─┬ getpass@0.1.7 -│ │ │ │ └── assert-plus@1.0.0 deduped -│ │ │ ├── jsbn@0.1.1 -│ │ │ ├── safer-buffer@2.1.2 deduped -│ │ │ └── tweetnacl@0.14.5 -│ │ ├── is-typedarray@1.0.0 -│ │ ├── isstream@0.1.2 -│ │ ├── json-stringify-safe@5.0.1 -│ │ ├─┬ mime-types@2.1.35 -│ │ │ └── mime-db@1.52.0 -│ │ ├── performance-now@2.1.0 -│ │ ├─┬ qs@6.10.4 -│ │ │ └─┬ side-channel@1.0.6 -│ │ │ ├─┬ call-bind@1.0.7 -│ │ │ │ ├─┬ es-define-property@1.0.0 -│ │ │ │ │ └── get-intrinsic@1.2.4 deduped -│ │ │ │ ├── es-errors@1.3.0 deduped -│ │ │ │ ├── function-bind@1.1.2 deduped -│ │ │ │ ├── get-intrinsic@1.2.4 deduped -│ │ │ │ └─┬ set-function-length@1.2.2 -│ │ │ │ ├─┬ define-data-property@1.1.4 -│ │ │ │ │ ├── es-define-property@1.0.0 deduped -│ │ │ │ │ ├── es-errors@1.3.0 deduped -│ │ │ │ │ └── gopd@1.0.1 deduped -│ │ │ │ ├── es-errors@1.3.0 deduped -│ │ │ │ ├── function-bind@1.1.2 deduped -│ │ │ │ ├── get-intrinsic@1.2.4 deduped -│ │ │ │ ├─┬ gopd@1.0.1 -│ │ │ │ │ └── get-intrinsic@1.2.4 deduped -│ │ │ │ └─┬ has-property-descriptors@1.0.2 -│ │ │ │ └── es-define-property@1.0.0 deduped -│ │ │ ├── es-errors@1.3.0 -│ │ │ ├─┬ get-intrinsic@1.2.4 -│ │ │ │ ├── es-errors@1.3.0 deduped -│ │ │ │ ├── function-bind@1.1.2 deduped -│ │ │ │ ├── has-proto@1.0.3 -│ │ │ │ ├── has-symbols@1.0.3 -│ │ │ │ └── hasown@2.0.2 deduped -│ │ │ └── object-inspect@1.13.1 -│ │ ├── safe-buffer@5.2.1 -│ │ ├─┬ tough-cookie@4.1.3 -│ │ │ ├── psl@1.9.0 -│ │ │ ├── punycode@2.3.1 deduped -│ │ │ ├── universalify@0.2.0 -│ │ │ └─┬ url-parse@1.5.10 -│ │ │ ├── querystringify@2.2.0 -│ │ │ └── requires-port@1.0.0 -│ │ ├─┬ tunnel-agent@0.6.0 -│ │ │ └── safe-buffer@5.2.1 deduped -│ │ └── uuid@8.3.2 -│ ├─┬ @verdaccio/config@7.0.0-next-7.13 -│ │ ├── @verdaccio/core@7.0.0-next-7.13 deduped -│ │ ├── @verdaccio/utils@7.0.0-next-7.13 deduped -│ │ ├── debug@4.3.4 deduped -│ │ ├── js-yaml@4.1.0 deduped -│ │ ├── lodash@4.17.21 deduped -│ │ ├─┬ minimatch@7.4.6 -│ │ │ └── brace-expansion@2.0.1 deduped -│ │ └─┬ yup@0.32.11 -│ │ ├── @babel/runtime@7.24.4 deduped -│ │ ├── @types/lodash@4.17.0 -│ │ ├── lodash-es@4.17.21 -│ │ ├── lodash@4.17.21 deduped -│ │ ├── nanoclone@0.2.1 -│ │ ├── property-expr@2.0.6 -│ │ └── toposort@2.0.2 -│ ├─┬ @verdaccio/core@7.0.0-next-7.13 -│ │ ├─┬ ajv@8.12.0 -│ │ │ ├── fast-deep-equal@3.1.3 deduped -│ │ │ ├── json-schema-traverse@1.0.0 -│ │ │ ├── require-from-string@2.0.2 -│ │ │ └── uri-js@4.4.1 deduped -│ │ ├── core-js@3.35.0 -│ │ ├─┬ http-errors@2.0.0 -│ │ │ ├── depd@2.0.0 deduped -│ │ │ ├── inherits@2.0.4 deduped -│ │ │ ├── setprototypeof@1.2.0 deduped -│ │ │ ├── statuses@2.0.1 deduped -│ │ │ └── toidentifier@1.0.1 -│ │ ├── http-status-codes@2.3.0 -│ │ ├── process-warning@1.0.0 -│ │ └── semver@7.6.0 deduped -│ ├─┬ @verdaccio/local-storage-legacy@11.0.2 -│ │ ├─┬ @verdaccio/commons-api@10.2.0 -│ │ │ ├── http-errors@2.0.0 deduped -│ │ │ └── http-status-codes@2.2.0 -│ │ ├─┬ @verdaccio/file-locking@10.3.1 -│ │ │ └─┬ lockfile@1.0.4 -│ │ │ └── signal-exit@3.0.7 deduped -│ │ ├── @verdaccio/streams@10.2.1 deduped -│ │ ├── async@3.2.4 -│ │ ├── debug@4.3.4 deduped -│ │ ├── lodash@4.17.21 deduped -│ │ ├─┬ lowdb@1.0.0 -│ │ │ ├── graceful-fs@4.2.11 deduped -│ │ │ ├── is-promise@2.2.2 -│ │ │ ├── lodash@4.17.21 deduped -│ │ │ ├── pify@3.0.0 -│ │ │ └─┬ steno@0.4.4 -│ │ │ └── graceful-fs@4.2.11 deduped -│ │ └── mkdirp@1.0.4 deduped -│ ├─┬ @verdaccio/logger-7@7.0.0-next-7.13 -│ │ ├─┬ @verdaccio/logger-commons@7.0.0-next-7.13 -│ │ │ ├── @verdaccio/core@7.0.0-next-7.13 deduped -│ │ │ ├─┬ @verdaccio/logger-prettify@7.0.0-next-7.2 -│ │ │ │ ├── colorette@2.0.20 deduped -│ │ │ │ ├── dayjs@1.11.10 -│ │ │ │ ├── lodash@4.17.21 deduped -│ │ │ │ ├─┬ pino-abstract-transport@1.1.0 -│ │ │ │ │ ├─┬ readable-stream@4.5.2 -│ │ │ │ │ │ ├─┬ abort-controller@3.0.0 -│ │ │ │ │ │ │ └── event-target-shim@5.0.1 -│ │ │ │ │ │ ├─┬ buffer@6.0.3 -│ │ │ │ │ │ │ ├── base64-js@1.5.1 deduped -│ │ │ │ │ │ │ └── ieee754@1.2.1 deduped -│ │ │ │ │ │ ├── events@3.3.0 -│ │ │ │ │ │ ├── process@0.11.10 -│ │ │ │ │ │ └── string_decoder@1.3.0 deduped -│ │ │ │ │ └── split2@4.2.0 deduped -│ │ │ │ └─┬ sonic-boom@3.8.0 -│ │ │ │ └── atomic-sleep@1.0.0 deduped -│ │ │ ├── colorette@2.0.20 deduped -│ │ │ └── debug@4.3.4 deduped -│ │ └─┬ pino@7.11.0 -│ │ ├── atomic-sleep@1.0.0 -│ │ ├── fast-redact@3.5.0 -│ │ ├── on-exit-leak-free@0.2.0 -│ │ ├─┬ pino-abstract-transport@0.5.0 -│ │ │ ├─┬ duplexify@4.1.3 -│ │ │ │ ├── end-of-stream@1.4.4 deduped -│ │ │ │ ├── inherits@2.0.4 deduped -│ │ │ │ ├── readable-stream@3.6.2 deduped -│ │ │ │ └── stream-shift@1.0.3 -│ │ │ └── split2@4.2.0 -│ │ ├── pino-std-serializers@4.0.0 -│ │ ├── process-warning@1.0.0 deduped -│ │ ├── quick-format-unescaped@4.0.4 -│ │ ├── real-require@0.1.0 -│ │ ├── safe-stable-stringify@2.4.3 -│ │ ├─┬ sonic-boom@2.8.0 -│ │ │ └── atomic-sleep@1.0.0 deduped -│ │ └─┬ thread-stream@0.15.2 -│ │ └── real-require@0.1.0 deduped -│ ├─┬ @verdaccio/middleware@7.0.0-next-7.13 -│ │ ├── @verdaccio/config@7.0.0-next-7.13 deduped -│ │ ├── @verdaccio/core@7.0.0-next-7.13 deduped -│ │ ├── @verdaccio/url@12.0.0-next-7.13 deduped -│ │ ├── @verdaccio/utils@7.0.0-next-7.13 deduped -│ │ ├── debug@4.3.4 deduped -│ │ ├── express-rate-limit@5.5.1 deduped -│ │ ├── express@4.18.3 deduped -│ │ ├── lodash@4.17.21 deduped -│ │ ├── lru-cache@7.18.3 -│ │ └── mime@2.6.0 -│ ├── @verdaccio/search-indexer@7.0.0-next-7.2 -│ ├─┬ @verdaccio/signature@7.0.0-next.3 -│ │ ├── debug@4.3.4 deduped -│ │ └── jsonwebtoken@9.0.2 deduped -│ ├── @verdaccio/streams@10.2.1 -│ ├─┬ @verdaccio/tarball@12.0.0-next-7.13 -│ │ ├── @verdaccio/core@7.0.0-next-7.13 deduped -│ │ ├── @verdaccio/url@12.0.0-next-7.13 deduped -│ │ ├── @verdaccio/utils@7.0.0-next-7.13 deduped -│ │ ├── debug@4.3.4 deduped -│ │ └── lodash@4.17.21 deduped -│ ├── @verdaccio/ui-theme@7.0.0-next-7.13 -│ ├─┬ @verdaccio/url@12.0.0-next-7.13 -│ │ ├── @verdaccio/core@7.0.0-next-7.13 deduped -│ │ ├── debug@4.3.4 deduped -│ │ ├── lodash@4.17.21 deduped -│ │ └── validator@13.11.0 deduped -│ ├─┬ @verdaccio/utils@7.0.0-next-7.13 -│ │ ├── @verdaccio/core@7.0.0-next-7.13 deduped -│ │ ├── lodash@4.17.21 deduped -│ │ ├─┬ minimatch@7.4.6 -│ │ │ └── brace-expansion@2.0.1 deduped -│ │ └── semver@7.6.0 deduped -│ ├── async@3.2.5 deduped -│ ├─┬ clipanion@3.2.1 -│ │ └── typanion@3.14.0 -│ ├─┬ compression@1.7.4 -│ │ ├─┬ accepts@1.3.8 -│ │ │ ├── mime-types@2.1.35 deduped -│ │ │ └── negotiator@0.6.3 -│ │ ├── bytes@3.0.0 -│ │ ├─┬ compressible@2.0.18 -│ │ │ └── mime-db@1.52.0 deduped -│ │ ├─┬ debug@2.6.9 -│ │ │ └── ms@2.0.0 -│ │ ├── on-headers@1.0.2 -│ │ ├── safe-buffer@5.1.2 -│ │ └── vary@1.1.2 -│ ├─┬ cookies@0.9.1 -│ │ ├── depd@2.0.0 -│ │ └─┬ keygrip@1.1.0 -│ │ └── tsscmp@1.0.6 -│ ├─┬ cors@2.8.5 -│ │ ├── object-assign@4.1.1 deduped -│ │ └── vary@1.1.2 deduped -│ ├── debug@4.3.4 deduped -│ ├── envinfo@7.11.1 -│ ├── express-rate-limit@5.5.1 -│ ├─┬ express@4.18.3 -│ │ ├── accepts@1.3.8 deduped -│ │ ├── array-flatten@1.1.1 -│ │ ├─┬ body-parser@1.20.2 -│ │ │ ├── bytes@3.1.2 -│ │ │ ├── content-type@1.0.5 deduped -│ │ │ ├─┬ debug@2.6.9 -│ │ │ │ └── ms@2.0.0 -│ │ │ ├── depd@2.0.0 deduped -│ │ │ ├── destroy@1.2.0 -│ │ │ ├── http-errors@2.0.0 deduped -│ │ │ ├── iconv-lite@0.4.24 deduped -│ │ │ ├── on-finished@2.4.1 deduped -│ │ │ ├─┬ qs@6.11.0 -│ │ │ │ └── side-channel@1.0.6 deduped -│ │ │ ├─┬ raw-body@2.5.2 -│ │ │ │ ├── bytes@3.1.2 -│ │ │ │ ├── http-errors@2.0.0 deduped -│ │ │ │ ├── iconv-lite@0.4.24 deduped -│ │ │ │ └── unpipe@1.0.0 deduped -│ │ │ ├── type-is@1.6.18 deduped -│ │ │ └── unpipe@1.0.0 -│ │ ├─┬ content-disposition@0.5.4 -│ │ │ └── safe-buffer@5.2.1 deduped -│ │ ├── content-type@1.0.5 -│ │ ├── cookie-signature@1.0.6 -│ │ ├── cookie@0.5.0 -│ │ ├─┬ debug@2.6.9 -│ │ │ └── ms@2.0.0 -│ │ ├── depd@2.0.0 deduped -│ │ ├── encodeurl@1.0.2 -│ │ ├── escape-html@1.0.3 -│ │ ├── etag@1.8.1 -│ │ ├─┬ finalhandler@1.2.0 -│ │ │ ├─┬ debug@2.6.9 -│ │ │ │ └── ms@2.0.0 -│ │ │ ├── encodeurl@1.0.2 deduped -│ │ │ ├── escape-html@1.0.3 deduped -│ │ │ ├── on-finished@2.4.1 deduped -│ │ │ ├── parseurl@1.3.3 deduped -│ │ │ ├── statuses@2.0.1 deduped -│ │ │ └── unpipe@1.0.0 deduped -│ │ ├── fresh@0.5.2 -│ │ ├── http-errors@2.0.0 deduped -│ │ ├── merge-descriptors@1.0.1 -│ │ ├── methods@1.1.2 -│ │ ├─┬ on-finished@2.4.1 -│ │ │ └── ee-first@1.1.1 -│ │ ├── parseurl@1.3.3 -│ │ ├── path-to-regexp@0.1.7 -│ │ ├─┬ proxy-addr@2.0.7 -│ │ │ ├── forwarded@0.2.0 -│ │ │ └── ipaddr.js@1.9.1 -│ │ ├─┬ qs@6.11.0 -│ │ │ └── side-channel@1.0.6 deduped -│ │ ├── range-parser@1.2.1 -│ │ ├── safe-buffer@5.2.1 deduped -│ │ ├─┬ send@0.18.0 -│ │ │ ├─┬ debug@2.6.9 -│ │ │ │ └── ms@2.0.0 -│ │ │ ├── depd@2.0.0 deduped -│ │ │ ├── destroy@1.2.0 deduped -│ │ │ ├── encodeurl@1.0.2 deduped -│ │ │ ├── escape-html@1.0.3 deduped -│ │ │ ├── etag@1.8.1 deduped -│ │ │ ├── fresh@0.5.2 deduped -│ │ │ ├── http-errors@2.0.0 deduped -│ │ │ ├── mime@1.6.0 -│ │ │ ├── ms@2.1.3 -│ │ │ ├── on-finished@2.4.1 deduped -│ │ │ ├── range-parser@1.2.1 deduped -│ │ │ └── statuses@2.0.1 deduped -│ │ ├─┬ serve-static@1.15.0 -│ │ │ ├── encodeurl@1.0.2 deduped -│ │ │ ├── escape-html@1.0.3 deduped -│ │ │ ├── parseurl@1.3.3 deduped -│ │ │ └── send@0.18.0 deduped -│ │ ├── setprototypeof@1.2.0 -│ │ ├── statuses@2.0.1 -│ │ ├─┬ type-is@1.6.18 -│ │ │ ├── media-typer@0.3.0 -│ │ │ └── mime-types@2.1.35 deduped -│ │ ├── utils-merge@1.0.1 -│ │ └── vary@1.1.2 deduped -│ ├── fast-safe-stringify@2.1.1 -│ ├─┬ handlebars@4.7.8 -│ │ ├── minimist@1.2.8 deduped -│ │ ├── neo-async@2.6.2 -│ │ ├── source-map@0.6.1 deduped -│ │ ├── uglify-js@3.17.4 -│ │ └── wordwrap@1.0.0 -│ ├── js-yaml@4.1.0 deduped -│ ├─┬ JSONStream@1.3.5 -│ │ ├── jsonparse@1.3.1 -│ │ └── through@2.3.8 deduped -│ ├─┬ jsonwebtoken@9.0.2 -│ │ ├─┬ jws@3.2.2 -│ │ │ ├─┬ jwa@1.4.1 -│ │ │ │ ├── buffer-equal-constant-time@1.0.1 -│ │ │ │ ├─┬ ecdsa-sig-formatter@1.0.11 -│ │ │ │ │ └── safe-buffer@5.2.1 deduped -│ │ │ │ └── safe-buffer@5.2.1 deduped -│ │ │ └── safe-buffer@5.2.1 deduped -│ │ ├── lodash.includes@4.3.0 -│ │ ├── lodash.isboolean@3.0.3 -│ │ ├── lodash.isinteger@4.0.4 -│ │ ├── lodash.isnumber@3.0.3 -│ │ ├── lodash.isplainobject@4.0.6 -│ │ ├── lodash.isstring@4.0.1 -│ │ ├── lodash.once@4.1.1 -│ │ ├── ms@2.1.2 deduped -│ │ └── semver@7.6.0 deduped -│ ├── kleur@4.1.5 -│ ├── lodash@4.17.21 -│ ├── lru-cache@7.18.3 -│ ├── mime@3.0.0 -│ ├── mkdirp@1.0.4 -│ ├─┬ mv@2.1.1 -│ │ ├─┬ mkdirp@0.5.6 -│ │ │ └── minimist@1.2.8 deduped -│ │ ├── ncp@2.0.0 -│ │ └─┬ rimraf@2.4.5 -│ │ └─┬ glob@6.0.4 -│ │ ├── inflight@1.0.6 deduped -│ │ ├── inherits@2.0.4 deduped -│ │ ├─┬ minimatch@3.1.2 -│ │ │ └─┬ brace-expansion@1.1.11 -│ │ │ ├── balanced-match@1.0.2 deduped -│ │ │ └── concat-map@0.0.1 deduped -│ │ ├── once@1.4.0 deduped -│ │ └── path-is-absolute@1.0.1 deduped -│ ├── pkginfo@0.4.1 -│ ├── semver@7.6.0 deduped -│ ├── validator@13.11.0 -│ ├─┬ verdaccio-audit@12.0.0-next-7.13 -│ │ ├── @verdaccio/config@7.0.0-next-7.13 deduped -│ │ ├── @verdaccio/core@7.0.0-next-7.13 deduped -│ │ ├── express@4.18.3 deduped -│ │ ├─┬ https-proxy-agent@5.0.1 -│ │ │ ├─┬ agent-base@6.0.2 -│ │ │ │ └── debug@4.3.4 deduped -│ │ │ └── debug@4.3.4 deduped -│ │ └─┬ node-fetch@2.6.7 -│ │ ├── UNMET OPTIONAL DEPENDENCY encoding@^0.1.0 -│ │ └─┬ whatwg-url@5.0.0 -│ │ ├── tr46@0.0.3 -│ │ └── webidl-conversions@3.0.1 -│ └─┬ verdaccio-htpasswd@12.0.0-next-7.13 -│ ├── @verdaccio/core@7.0.0-next-7.13 deduped -│ ├─┬ @verdaccio/file-locking@12.0.0-next.1 -│ │ └── lockfile@1.0.4 deduped -│ ├── apache-md5@1.1.8 -│ ├── bcryptjs@2.4.3 -│ ├── core-js@3.35.0 deduped -│ ├── debug@4.3.4 deduped -│ ├── http-errors@2.0.0 deduped -│ └── unix-crypt-td-js@1.1.4 -└─┬ yargs@17.7.2 - ├── cliui@8.0.1 deduped - ├── escalade@3.1.2 - ├── get-caller-file@2.0.5 - ├── require-directory@2.1.1 - ├── string-width@4.2.3 deduped - ├── y18n@5.0.8 - └── yargs-parser@21.1.1 deduped - diff --git a/package-lock.json b/package-lock.json index ae8ed9f..9ed95c8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,8 +13,8 @@ "@inquirer/prompts": "^5.0.2", "cli-spinners": "^3.0.0", "date-fns": "^3.6.0", - "get-json": "^1.0.1", "git-last-commit": "^1.0.1", + "graphql": "^16.8.1", "minimist": "^1.2.8", "ora": "5.3.0", "sloc": "^0.3.2", @@ -6288,6 +6288,7 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -7515,16 +7516,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-json": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-json/-/get-json-1.0.1.tgz", - "integrity": "sha512-buUOE2bLaxIsF6zGIrwvsTVlvgU85qwAWf0Hgq/EJBBoSssUqOauXWKpsh4wgPdTlZHEVllLtphiuIzFM4UEHQ==", - "dependencies": { - "is-node": "0.0.0", - "jsonp": "0.0.4", - "phin": "^2.2.6" - } - }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -7699,7 +7690,6 @@ "version": "16.8.1", "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", - "peer": true, "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } @@ -8101,11 +8091,6 @@ "node": ">=8" } }, - "node_modules/is-node": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/is-node/-/is-node-0.0.0.tgz", - "integrity": "sha512-KUwX8L3QU5YheJw8FiFwBFf+gIZ3OX2wifID5sHjn1pWrFMfIaBZLSszs7vHtiJR9y7plGM+Y4jtfwrsCI1D8Q==" - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -9031,14 +9016,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsonp": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/jsonp/-/jsonp-0.0.4.tgz", - "integrity": "sha512-Pyo6SxnTXngwXJbpZkv+936u4Pq3BGZ5tuA77rLLppWQC09KjBsopGsD7uQZmCCaXjLx5C/XqksUh0yGyr4wog==", - "dependencies": { - "debug": "*" - } - }, "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -9494,7 +9471,8 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "node_modules/mute-stream": { "version": "1.0.0", @@ -10089,12 +10067,6 @@ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", "dev": true }, - "node_modules/phin": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", - "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." - }, "node_modules/picocolors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", diff --git a/package.json b/package.json index 8d4b685..1be79aa 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "0.0.0", "license": "MIT", "scripts": { - "hd": "npm run build && node ./dist/apps/cli/hd-cli.js", + "hd": "npm run build && node ./dist/apps/cli/src/main.js", "build": "nx run-many --target=build --all", "test": "nx run-many --target=test --all", "x": "nx affected:test --watch", @@ -17,8 +17,8 @@ "@inquirer/prompts": "^5.0.2", "cli-spinners": "^3.0.0", "date-fns": "^3.6.0", - "get-json": "^1.0.1", "git-last-commit": "^1.0.1", + "graphql": "^16.8.1", "minimist": "^1.2.8", "ora": "5.3.0", "sloc": "^0.3.2",