diff --git a/.circleci/config.yml b/.circleci/config.yml index 1a09d75244..6802fb8c45 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,7 +1,7 @@ version: 2.1 orbs: - node: electronjs/node@1.4.1 + node: electronjs/node@2.2.1 commands: install: @@ -113,8 +113,8 @@ jobs: name: Windows Setup shell: bash command: | - choco install --no-progress -y wixtoolset - echo 'export PATH=$PATH:"/C/Program Files (x86)/WiX Toolset v3.11/bin"' >> "$BASH_ENV" + choco install --no-progress -y wixtoolset --version=3.14.0 + echo 'export PATH=$PATH:"/C/Program Files (x86)/WiX Toolset v3.14/bin"' >> "$BASH_ENV" cd 'C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\run-script' npm install node-gyp@9.4.0 - when: diff --git a/.eslintignore b/.eslintignore index 2b6fe7c12c..f7b1d78263 100644 --- a/.eslintignore +++ b/.eslintignore @@ -6,3 +6,4 @@ packages/*/*/doc packages/*/*/index.ts packages/**/bad.js tmpl +packages/api/core/helper/dynamic-import.js diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..bc63aca35b --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: 'github-actions' + directory: '/' + schedule: + interval: 'monthly' diff --git a/.github/workflows/add-to-project.yml b/.github/workflows/add-to-project.yml index 6454f341f5..ef10bed8f8 100644 --- a/.github/workflows/add-to-project.yml +++ b/.github/workflows/add-to-project.yml @@ -21,7 +21,7 @@ jobs: creds: ${{ secrets.ECOSYSTEM_ISSUE_TRIAGE_GH_APP_CREDS }} org: electron - name: Add to Project - uses: dsanders11/project-actions/add-item@a24415515fa60a22f71f9d9d00e36ca82660cde9 # v1.0.1 + uses: dsanders11/project-actions/add-item@eb760c48894b5702398529cbb8f6e98378e315d0 # v1.3.0 with: field: Opened field-value: ${{ github.event.pull_request.created_at || github.event.issue.created_at }} diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 39ac9a145a..777d0b722f 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -1,9 +1,10 @@ name: API Documentation on: + workflow_dispatch: push: tags: - - v6.** + - v7.** jobs: deploy: @@ -11,15 +12,26 @@ jobs: concurrency: group: ${{ github.workflow }}-${{ github.ref }} steps: - - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 #v3.1.0 + - name: Generate GitHub App token + uses: electron/github-app-auth-action@384fd19694fe7b6dcc9a684746c6976ad78228ae # v1.1.1 + id: generate-token + with: + creds: ${{ secrets.GH_APP_CREDS }} + + - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 with: submodules: true fetch-depth: 0 + token: ${{ steps.generate-token.outputs.token }} + + - name: Get short SHA for HEAD + id: get-short-sha + run: echo "sha=$(git rev-parse --short=7 HEAD)" >> $GITHUB_OUTPUT - name: Use Node.js LTS - uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 #v.3.5.1 + uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: - node-version: 16.x + node-version: 20.x cache: yarn - name: Build @@ -28,9 +40,19 @@ jobs: yarn yarn docs - - name: Deploy - uses: peaceiris/actions-gh-pages@v3 + - name: Prepare docs + uses: malept/github-action-gh-pages@f7952a65c4b763dc84b824a530dc38bd375ac91e # tag: v1.4.0 with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./docs cname: js.electronforge.io + defaultBranch: main + noCommit: true + showUnderscoreFiles: true + env: + GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }} + + - name: Commit docs + uses: dsanders11/github-app-commit-action@48d2ff8c1a855eb15d16afa97ae12616456d7cbc # v1.4.0 + with: + fail-on-no-changes: false + message: 'deploy: ${{ steps.get-short-sha.outputs.sha }}' + token: ${{ steps.generate-token.outputs.token }} diff --git a/.github/workflows/semantic.yml b/.github/workflows/semantic.yml index bd93660c16..ed275daf58 100644 --- a/.github/workflows/semantic.yml +++ b/.github/workflows/semantic.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - name: semantic-pull-request - uses: amannn/action-semantic-pull-request@01d5fd8a8ebb9aafe902c40c53f0f4744f7381eb # tag: v5 + uses: amannn/action-semantic-pull-request@e9fabac35e210fea40ca5b14c0da95a099eff26f # tag: v5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: diff --git a/.gitignore b/.gitignore index c570779205..69ecca3d78 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.DS_Store .nyc_output *.lcov /coverage diff --git a/.vscode/settings.json b/.vscode/settings.json index 6c03dc223e..871043a5f2 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,14 +3,14 @@ "[typescript]": { "editor.formatOnSave": true, "editor.codeActionsOnSave": { - "source.fixAll.eslint": true + "source.fixAll.eslint": "explicit" }, "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[javascript]": { "editor.formatOnSave": true, "editor.codeActionsOnSave": { - "source.fixAll.eslint": true + "source.fixAll.eslint": "explicit" }, "editor.defaultFormatter": "esbenp.prettier-vscode" }, diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 27faafa973..0f5777a516 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -41,7 +41,7 @@ free to ask constructive questions. (This applies to any open issue.) The easiest way to test changes to Forge during development is by symlinking your local packages to a sample Forge project. -To create symlinks your local Forge packages, use the `yarn link:prepare` command after +To create symlinks for your local Forge packages, use the `yarn link:prepare` command after building Forge. ```sh @@ -167,3 +167,20 @@ The `lerna:publish` script will automatically increment the next package version - Target the `main` branch. - [Automatically generated release notes](https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes) against the previous Forge release. + +### Adding a new `@electron-forge` package + +Occasionally, we add new packages to the `@electron-forge` monorepo. Before publishing, ensure that all +version numbers for both the package itself and its dependencies match the _current_ version of Electron +Forge (e.g. if the current version is `v7.0.0` and you want to add the package in `v7.1.0`, please publish +`v7.0.0` first). + +Then, manually publish the package to the current Forge version using `npm publish --access public`. +Once this version is published, you can continue with the normal release process as usual. + +> [!NOTE] +> To verify that the publish configuration is correct, first run `npm publish --dry-run` +> before publishing. + +We do this manual publish step first to avoid errors with attempting to publish a non existent package +with Lerna. diff --git a/README.md b/README.md index 415a3d4528..6fc24bd2fa 100644 --- a/README.md +++ b/README.md @@ -24,15 +24,11 @@ jump right in to Electron development. --- -_Note: The major version bump between v5.0.0 and v6.0.0 contains major breaking API changes and improvements. If you are new to Forge, we highly recommend using the latest version. If using an older version of Forge, we recommend upgrading to v6.0.0 or later._ - ---- - # Getting Started -Pre-requisities: +Pre-requisites: -- Node 14.17.5 or higher +- Node 16.4.0 or higher - Git If you have a more recent version of `npm` or `yarn`, you can use @@ -72,7 +68,7 @@ With these goals in mind, under the hood this project uses, among others: - [`@electron/rebuild`](https://github.com/electron/rebuild): Automatically recompiles native Node.js modules against the correct Electron version. -- [Electron Packager](https://github.com/electron/electron-packager): +- [`@electron/packager`](https://github.com/electron/packager): Customizes and bundles your Electron app to get it ready for distribution. ## Contributing diff --git a/SUPPORT.md b/SUPPORT.md index 826544ea2a..a384a2834d 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -14,13 +14,13 @@ feature. Known modules include: - `@electron/get:*` - `@electron/osx-sign` +- `@electron/packager` - `electron-forge:*` (always use this one before filing an issue) - `electron-installer-debian` - `electron-installer-dmg` - `electron-installer-flatpak` - `electron-installer-redhat` - `electron-installer-snap:*` -- `electron-packager` - `electron-rebuild` - `electron-windows-installer:main` - `electron-windows-store` diff --git a/lerna.json b/lerna.json index 9eb5b6c3f7..b249b3f499 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useWorkspaces": true, - "version": "6.4.2", + "version": "7.4.0", "npmClient": "yarn" } diff --git a/package.json b/package.json index 048d2a51fa..20922aa9df 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "private": true, "license": "MIT", "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "scripts": { "clean": "rimraf dist && lerna exec -- rimraf dist tsconfig.tsbuildinfo", @@ -12,7 +12,7 @@ "build:watch": "yarn build --watch", "postbuild": "ts-node tools/test-dist", "docs": "yarn build && yarn docs:generate", - "docs:generate": "yarn docs:plugin && node --max-old-space-size=8192 -r ts-node/register ./tools/gen-docs.ts", + "docs:generate": "yarn docs:plugin && node --max-old-space-size=16384 -r ts-node/register ./tools/gen-docs.ts", "docs:plugin": "cd ./tools/doc-plugin && yarn build", "lerna:publish": "lerna publish --force-publish --conventional-commits --no-changelog --exact", "lint:js": "prettier --check . && eslint .", @@ -23,22 +23,25 @@ "lint:fix": "prettier --write .", "link:prepare": "lerna exec -- node ../../../tools/silent.js yarn link --silent --no-bin-links --link-folder ../../../.links", "link:remove": "lerna exec -- node ../../../tools/silent.js yarn unlink --silent --no-bin-links --link-folder ../../../.links", - "test": "xvfb-maybe cross-env NODE_ENV=test TS_NODE_PROJECT='./tsconfig.test.json' TS_NODE_FILES=1 mocha", + "test": "npm run test:clear && xvfb-maybe cross-env NODE_ENV=test TS_NODE_PROJECT='./tsconfig.test.json' TS_NODE_FILES=1 mocha", "test:fast": "npm run test -- --suite=fast", "test:slow": "npm run test -- --suite=slow", + "test:clear": "ts-node tools/test-clear", "postinstall": "rimraf node_modules/.bin/*.ps1 && ts-node ./tools/gen-tsconfigs.ts && ts-node ./tools/gen-ts-glue.ts", "prepare": "husky install", "preversion": "yarn build" }, "dependencies": { "@aws-sdk/abort-controller": "^3.29.0", - "@aws-sdk/client-s3": "^3.28.0", + "@aws-sdk/client-s3": "^3.461.0", "@aws-sdk/lib-storage": "^3.28.0", "@aws-sdk/types": "^3.25.0", "@doyensec/electronegativity": "^1.9.1", - "@electron/get": "^2.0.0", + "@electron/get": "^3.0.0", "@electron/osx-sign": "^1.0.5", + "@electron/packager": "^18.3.1", "@electron/rebuild": "^3.2.10", + "@google-cloud/storage": "^7.5.0", "@malept/cross-spawn-promise": "^2.0.0", "@octokit/core": "^3.2.4", "@octokit/plugin-retry": "^3.0.9", @@ -49,7 +52,6 @@ "cross-spawn": "^7.0.3", "cross-zip": "^4.0.0", "debug": "^4.3.1", - "electron-packager": "^17.1.2", "express": "^4.17.1", "express-ws": "^5.0.2", "fast-glob": "^3.2.7", @@ -60,6 +62,7 @@ "got": "^11.8.5", "html-webpack-plugin": "^5.5.3", "interpret": "^3.1.1", + "listr2": "^7.0.2", "lodash": "^4.17.20", "log-symbols": "^4.0.0", "mime-types": "^2.1.25", @@ -73,7 +76,7 @@ "source-map-support": "^0.5.13", "sudo-prompt": "^9.1.1", "username": "^5.1.0", - "vite": "^4.1.1", + "vite": "^5.0.12", "webpack": "^5.69.1", "webpack-dev-server": "^4.0.0", "webpack-merge": "^5.7.3", @@ -84,7 +87,7 @@ }, "devDependencies": { "@electron/fuses": ">=1.0.0", - "@electron/lint-roller": "^1.6.0", + "@electron/lint-roller": "1.10.1", "@knodes/typedoc-plugin-monorepo-readmes": "0.22.5", "@malept/eslint-config": "^2.0.0", "@types/chai": "^4.2.12", @@ -96,6 +99,7 @@ "@types/fetch-mock": "^7.3.1", "@types/fs-extra": "^9.0.6", "@types/interpret": "^1.1.1", + "@types/keyv": "^3.1.4", "@types/listr": "^0.14.2", "@types/lodash": "^4.14.166", "@types/mime-types": "^2.1.0", @@ -128,9 +132,8 @@ "generate-changelog": "^1.8.0", "husky": "^7.0.1", "inquirer": "^8.0.0", - "lerna": "^6.0.1", + "lerna": "^6.6.2", "lint-staged": "^12.1.7", - "listr2": "^5.0.3", "minimist": "^1.2.6", "mocha": "^9.0.1", "mocha-junit-reporter": "^2.2.1", @@ -155,8 +158,8 @@ "electron-installer-redhat": "^3.2.0", "electron-installer-snap": "^5.2.0", "electron-windows-store": "^2.1.0", - "electron-winstaller": "^5.0.0", - "electron-wix-msi": "^5.0.0", + "electron-winstaller": "^5.3.0", + "electron-wix-msi": "^5.1.3", "macos-alias": "^0.2.11" }, "peerDependencies": { @@ -173,6 +176,7 @@ "prettier": { "singleQuote": true }, + "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447", "workspaces": { "packages": [ "packages/api/*", diff --git a/packages/api/cli/package.json b/packages/api/cli/package.json index 6677e84c36..548bece324 100644 --- a/packages/api/cli/package.json +++ b/packages/api/cli/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/cli", - "version": "6.4.2", + "version": "7.4.0", "description": "A complete tool for building modern Electron applications", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -17,18 +17,18 @@ "mocha": "^9.0.1" }, "dependencies": { - "@electron-forge/core": "6.4.2", - "@electron-forge/shared-types": "6.4.2", - "@electron/get": "^2.0.0", + "@electron-forge/core": "7.4.0", + "@electron-forge/shared-types": "7.4.0", + "@electron/get": "^3.0.0", "chalk": "^4.0.0", "commander": "^4.1.1", "debug": "^4.3.1", "fs-extra": "^10.0.0", - "listr2": "^5.0.3", + "listr2": "^7.0.2", "semver": "^7.2.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "funding": [ { diff --git a/packages/api/cli/src/electron-forge-import.ts b/packages/api/cli/src/electron-forge-import.ts index da1eaf499c..5acf0ae0c7 100644 --- a/packages/api/cli/src/electron-forge-import.ts +++ b/packages/api/cli/src/electron-forge-import.ts @@ -10,7 +10,8 @@ import workingDir from './util/working-dir'; (async () => { let dir = process.cwd(); program - .version((await fs.readJson(path.resolve(__dirname, '../package.json'))).version) + .version((await fs.readJson(path.resolve(__dirname, '../package.json'))).version, '-V, --version', 'Output the current version') + .helpOption('-h, --help', 'Output usage information') .arguments('[name]') .action((name) => { dir = workingDir(dir, name, false); diff --git a/packages/api/cli/src/electron-forge-init.ts b/packages/api/cli/src/electron-forge-init.ts index 7dd3300f75..4acbc0b5a6 100644 --- a/packages/api/cli/src/electron-forge-init.ts +++ b/packages/api/cli/src/electron-forge-init.ts @@ -10,11 +10,12 @@ import workingDir from './util/working-dir'; (async () => { let dir = process.cwd(); program - .version((await fs.readJson(path.resolve(__dirname, '../package.json'))).version) + .version((await fs.readJson(path.resolve(__dirname, '../package.json'))).version, '-V, --version', 'Output the current version') .arguments('[name]') .option('-t, --template [name]', 'Name of the Forge template to use') .option('-c, --copy-ci-files', 'Whether to copy the templated CI files (defaults to false)', false) .option('-f, --force', 'Whether to overwrite an existing directory (defaults to false)', false) + .helpOption('-h, --help', 'Output usage information') .action((name) => { dir = workingDir(dir, name, false); }) diff --git a/packages/api/cli/src/electron-forge-make.ts b/packages/api/cli/src/electron-forge-make.ts index fae18b763e..56cce2cbcc 100644 --- a/packages/api/cli/src/electron-forge-make.ts +++ b/packages/api/cli/src/electron-forge-make.ts @@ -11,12 +11,13 @@ import workingDir from './util/working-dir'; export async function getMakeOptions(): Promise { let dir = process.cwd(); program - .version((await fs.readJson(path.resolve(__dirname, '../package.json'))).version) + .version((await fs.readJson(path.resolve(__dirname, '../package.json'))).version, '-V, --version', 'Output the current version') .arguments('[cwd]') .option('--skip-package', 'Assume the app is already packaged') .option('-a, --arch [arch]', 'Target architecture') .option('-p, --platform [platform]', 'Target build platform') .option('--targets [targets]', 'Override your make targets for this run') + .helpOption('-h, --help', 'Output usage information') .allowUnknownOption(true) .action((cwd) => { dir = workingDir(dir, cwd); diff --git a/packages/api/cli/src/electron-forge-package.ts b/packages/api/cli/src/electron-forge-package.ts index ead2fe2f66..f921493b1c 100644 --- a/packages/api/cli/src/electron-forge-package.ts +++ b/packages/api/cli/src/electron-forge-package.ts @@ -11,10 +11,11 @@ import workingDir from './util/working-dir'; (async () => { let dir: string = process.cwd(); program - .version((await fs.readJson(path.resolve(__dirname, '../package.json'))).version) + .version((await fs.readJson(path.resolve(__dirname, '../package.json'))).version, '-V, --version', 'Output the current version') .arguments('[cwd]') .option('-a, --arch [arch]', 'Target architecture') .option('-p, --platform [platform]', 'Target build platform') + .helpOption('-h, --help', 'Output usage information') .action((cwd) => { dir = workingDir(dir, cwd); }) diff --git a/packages/api/cli/src/electron-forge-publish.ts b/packages/api/cli/src/electron-forge-publish.ts index e3759cb36d..ca808c0f12 100644 --- a/packages/api/cli/src/electron-forge-publish.ts +++ b/packages/api/cli/src/electron-forge-publish.ts @@ -12,11 +12,12 @@ import workingDir from './util/working-dir'; (async () => { let dir = process.cwd(); program - .version((await fs.readJson(path.resolve(__dirname, '../package.json'))).version) + .version((await fs.readJson(path.resolve(__dirname, '../package.json'))).version, '-V, --version', 'Output the current version') .arguments('[cwd]') .option('--target [target[,target...]]', 'The comma-separated deployment targets, defaults to "github"') .option('--dry-run', "Triggers a publish dry run which saves state and doesn't upload anything") .option('--from-dry-run', 'Attempts to publish artifacts from the last saved dry run') + .helpOption('-h, --help', 'Output usage information') .allowUnknownOption(true) .action((cwd) => { dir = workingDir(dir, cwd); diff --git a/packages/api/cli/src/electron-forge-start.ts b/packages/api/cli/src/electron-forge-start.ts index 5e279f4e7f..21191d30f1 100644 --- a/packages/api/cli/src/electron-forge-start.ts +++ b/packages/api/cli/src/electron-forge-start.ts @@ -20,7 +20,7 @@ import workingDir from './util/working-dir'; let dir = process.cwd(); program - .version((await fs.readJson(path.resolve(__dirname, '../package.json'))).version) + .version((await fs.readJson(path.resolve(__dirname, '../package.json'))).version, '-V, --version', 'Output the current version') .arguments('[cwd]') .option('-p, --app-path ', "Override the path to the Electron app to launch (defaults to '.')") .option('-l, --enable-logging', 'Enable advanced logging. This will log internal Electron things') @@ -28,6 +28,7 @@ import workingDir from './util/working-dir'; .option('--vscode', 'Used to enable arg transformation for debugging Electron through VSCode. Do not use yourself.') .option('-i, --inspect-electron', 'Triggers inspect mode on Electron to allow debugging the main process. Electron >1.7 only') .option('--inspect-brk-electron', 'Triggers inspect-brk mode on Electron to allow debugging the main process. Electron >1.7 only') + .helpOption('-h, --help', 'Output usage information') .action((cwd) => { dir = workingDir(dir, cwd); }) diff --git a/packages/api/cli/src/electron-forge.ts b/packages/api/cli/src/electron-forge.ts index 1f7b6b031e..a2bbcde5f6 100755 --- a/packages/api/cli/src/electron-forge.ts +++ b/packages/api/cli/src/electron-forge.ts @@ -30,8 +30,9 @@ program.executeSubCommand = (argv: string[], args: string[], unknown: string[]) }; program - .version(metadata.version) + .version(metadata.version, '-V, --version', 'Output the current version') .option('--verbose', 'Enables verbose mode') + .helpOption('-h, --help', 'Output usage information') .command('init', 'Initialize a new Electron application') .command('import', 'Attempts to navigate you through the process of importing an existing project to "electron-forge"') .command('start', 'Start the current Electron application in development mode') @@ -65,7 +66,7 @@ program await runner.run(); - if (runner.err.length) { + if (runner.errors.length) { console.error( chalk.red(`\nIt looks like you are missing some dependencies you need to get Electron running. Make sure you have git installed and Node.js version ${metadata.engines.node}`) diff --git a/packages/api/cli/src/util/check-system.ts b/packages/api/cli/src/util/check-system.ts index 5cd396eac5..90f7fc60a8 100644 --- a/packages/api/cli/src/util/check-system.ts +++ b/packages/api/cli/src/util/check-system.ts @@ -33,9 +33,7 @@ const NPM_ALLOWLISTED_VERSIONS = { linux: '>= 5.4.0', }; const YARN_ALLOWLISTED_VERSIONS = { - all: '0.23.3 || 0.24.6 || >= 1.0.0', - darwin: '0.27.5', - linux: '0.27.5', + all: '>= 1.0.0', }; export function checkValidPackageManagerVersion(packageManager: string, version: string, allowlistedVersions: string) { @@ -125,7 +123,7 @@ export async function checkSystem(task: ForgeListrTask) { concurrent: true, exitOnError: false, rendererOptions: { - collapse: true, + collapseSubtasks: true, }, } ); diff --git a/packages/api/core/helper/dynamic-import.d.ts b/packages/api/core/helper/dynamic-import.d.ts new file mode 100644 index 0000000000..dc2e8b6ba9 --- /dev/null +++ b/packages/api/core/helper/dynamic-import.d.ts @@ -0,0 +1 @@ +export declare function dynamicImport(path: string): Promise; diff --git a/packages/api/core/helper/dynamic-import.js b/packages/api/core/helper/dynamic-import.js new file mode 100644 index 0000000000..f4c2a347c2 --- /dev/null +++ b/packages/api/core/helper/dynamic-import.js @@ -0,0 +1,5 @@ +const url = require('url'); + +exports.dynamicImport = function dynamicImport(path) { + return import(url.pathToFileURL(path)); +}; diff --git a/packages/api/core/package.json b/packages/api/core/package.json index 69d8c791cd..90433f6631 100644 --- a/packages/api/core/package.json +++ b/packages/api/core/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/core", - "version": "6.4.2", + "version": "7.4.0", "description": "A complete tool for building modern Electron applications", "repository": "https://github.com/electron/forge", "main": "dist/api/index.js", @@ -15,16 +15,16 @@ "test:slow": "yarn test:base test/slow/**/*_spec_slow.ts" }, "devDependencies": { - "@electron-forge/maker-appx": "6.4.2", - "@electron-forge/maker-deb": "6.4.2", - "@electron-forge/maker-dmg": "6.4.2", - "@electron-forge/maker-flatpak": "6.4.2", - "@electron-forge/maker-rpm": "6.4.2", - "@electron-forge/maker-snap": "6.4.2", - "@electron-forge/maker-squirrel": "6.4.2", - "@electron-forge/maker-wix": "6.4.2", - "@electron-forge/maker-zip": "6.4.2", - "@electron-forge/test-utils": "6.4.2", + "@electron-forge/maker-appx": "7.4.0", + "@electron-forge/maker-deb": "7.4.0", + "@electron-forge/maker-dmg": "7.4.0", + "@electron-forge/maker-flatpak": "7.4.0", + "@electron-forge/maker-rpm": "7.4.0", + "@electron-forge/maker-snap": "7.4.0", + "@electron-forge/maker-squirrel": "7.4.0", + "@electron-forge/maker-wix": "7.4.0", + "@electron-forge/maker-zip": "7.4.0", + "@electron-forge/test-utils": "7.4.0", "@types/interpret": "^1.1.1", "@types/progress": "^2.0.5", "@types/rechoir": "^0.6.1", @@ -40,29 +40,30 @@ "yaml-hook": "^1.0.0" }, "dependencies": { - "@electron-forge/core-utils": "6.4.2", - "@electron-forge/maker-base": "6.4.2", - "@electron-forge/plugin-base": "6.4.2", - "@electron-forge/publisher-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2", - "@electron-forge/template-base": "6.4.2", - "@electron-forge/template-vite": "6.4.2", - "@electron-forge/template-vite-typescript": "6.4.2", - "@electron-forge/template-webpack": "6.4.2", - "@electron-forge/template-webpack-typescript": "6.4.2", - "@electron/get": "^2.0.0", + "@electron-forge/core-utils": "7.4.0", + "@electron-forge/maker-base": "7.4.0", + "@electron-forge/plugin-base": "7.4.0", + "@electron-forge/publisher-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0", + "@electron-forge/template-base": "7.4.0", + "@electron-forge/template-vite": "7.4.0", + "@electron-forge/template-vite-typescript": "7.4.0", + "@electron-forge/template-webpack": "7.4.0", + "@electron-forge/template-webpack-typescript": "7.4.0", + "@electron-forge/tracer": "7.4.0", + "@electron/get": "^3.0.0", + "@electron/packager": "^18.3.1", "@electron/rebuild": "^3.2.10", "@malept/cross-spawn-promise": "^2.0.0", "chalk": "^4.0.0", "debug": "^4.3.1", - "electron-packager": "^17.1.2", "fast-glob": "^3.2.7", "filenamify": "^4.1.0", "find-up": "^5.0.0", "fs-extra": "^10.0.0", "got": "^11.8.5", "interpret": "^3.1.1", - "listr2": "^5.0.3", + "listr2": "^7.0.2", "lodash": "^4.17.20", "log-symbols": "^4.0.0", "node-fetch": "^2.6.7", @@ -75,7 +76,7 @@ "username": "^5.1.0" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "funding": [ { @@ -92,6 +93,7 @@ }, "files": [ "dist", - "src" + "src", + "helper" ] } diff --git a/packages/api/core/src/api/import.ts b/packages/api/core/src/api/import.ts index 8540ad0433..ad7747339d 100644 --- a/packages/api/core/src/api/import.ts +++ b/packages/api/core/src/api/import.ts @@ -1,7 +1,9 @@ import path from 'path'; import { getPackageManager, updateElectronDependency } from '@electron-forge/core-utils'; +import { ForgeListrOptions, ForgeListrTaskFn } from '@electron-forge/shared-types'; import baseTemplate from '@electron-forge/template-base'; +import { autoTrace } from '@electron-forge/tracer'; import chalk from 'chalk'; import debug from 'debug'; import fs from 'fs-extra'; @@ -50,221 +52,218 @@ export interface ImportOptions { outDir?: string; } -export default async ({ - dir = process.cwd(), - interactive = false, - confirmImport, - shouldContinueOnExisting, - shouldRemoveDependency, - shouldUpdateScript, - outDir, -}: ImportOptions): Promise => { - const listrOptions = { - concurrent: false, - rendererOptions: { - collapse: false, - collapseErrors: false, - }, - rendererSilent: !interactive, - rendererFallback: Boolean(process.env.DEBUG), - }; +export default autoTrace( + { name: 'import()', category: '@electron-forge/core' }, + async ( + childTrace, + { dir = process.cwd(), interactive = false, confirmImport, shouldContinueOnExisting, shouldRemoveDependency, shouldUpdateScript, outDir }: ImportOptions + ): Promise => { + const listrOptions: ForgeListrOptions = { + concurrent: false, + rendererOptions: { + collapseSubtasks: false, + collapseErrors: false, + }, + silentRendererCondition: !interactive, + fallbackRendererCondition: Boolean(process.env.DEBUG) || Boolean(process.env.CI), + }; - const runner = new Listr( - [ - { - title: 'Locating importable project', - task: async () => { - d(`Attempting to import project in: ${dir}`); - if (!(await fs.pathExists(dir)) || !(await fs.pathExists(path.resolve(dir, 'package.json')))) { - throw new Error(`We couldn't find a project with a package.json file in: ${dir}`); - } + const runner = new Listr( + [ + { + title: 'Locating importable project', + task: childTrace({ name: 'locate-project', category: '@electron-forge/core' }, async () => { + d(`Attempting to import project in: ${dir}`); + if (!(await fs.pathExists(dir)) || !(await fs.pathExists(path.resolve(dir, 'package.json')))) { + throw new Error(`We couldn't find a project with a package.json file in: ${dir}`); + } - if (typeof confirmImport === 'function') { - if (!(await confirmImport())) { - // TODO: figure out if we can just return early here - // eslint-disable-next-line no-process-exit - process.exit(0); + if (typeof confirmImport === 'function') { + if (!(await confirmImport())) { + // TODO: figure out if we can just return early here + // eslint-disable-next-line no-process-exit + process.exit(0); + } } - } - await initGit(dir); + await initGit(dir); + }), }, - }, - { - title: 'Processing configuration and dependencies', - options: { - persistentOutput: true, - bottomBar: Infinity, - }, - task: async (ctx, task) => { - const calculatedOutDir = outDir || 'out'; + { + title: 'Processing configuration and dependencies', + rendererOptions: { + persistentOutput: true, + bottomBar: Infinity, + }, + task: childTrace>({ name: 'string', category: 'foo' }, async (_, ctx, task) => { + const calculatedOutDir = outDir || 'out'; - const importDeps = ([] as string[]).concat(deps); - let importDevDeps = ([] as string[]).concat(devDeps); - let importExactDevDeps = ([] as string[]).concat(exactDevDeps); + const importDeps = ([] as string[]).concat(deps); + let importDevDeps = ([] as string[]).concat(devDeps); + let importExactDevDeps = ([] as string[]).concat(exactDevDeps); - let packageJSON = await readRawPackageJson(dir); - if (!packageJSON.version) { - task.output = chalk.yellow(`Please set the ${chalk.green('"version"')} in your application's package.json`); - } - if (packageJSON.config && packageJSON.config.forge) { - if (packageJSON.config.forge.makers) { - task.output = chalk.green('Existing Electron Forge configuration detected'); - if (typeof shouldContinueOnExisting === 'function') { - if (!(await shouldContinueOnExisting())) { - // TODO: figure out if we can just return early here - // eslint-disable-next-line no-process-exit - process.exit(0); + let packageJSON = await readRawPackageJson(dir); + if (!packageJSON.version) { + task.output = chalk.yellow(`Please set the ${chalk.green('"version"')} in your application's package.json`); + } + if (packageJSON.config && packageJSON.config.forge) { + if (packageJSON.config.forge.makers) { + task.output = chalk.green('Existing Electron Forge configuration detected'); + if (typeof shouldContinueOnExisting === 'function') { + if (!(await shouldContinueOnExisting())) { + // TODO: figure out if we can just return early here + // eslint-disable-next-line no-process-exit + process.exit(0); + } } + } else if (!(typeof packageJSON.config.forge === 'object')) { + task.output = chalk.yellow( + "We can't tell if the Electron Forge config is compatible because it's in an external JavaScript file, not trying to convert it and continuing anyway" + ); + } else { + d('Upgrading an Electron Forge < 6 project'); + packageJSON.config.forge = upgradeForgeConfig(packageJSON.config.forge); + importDevDeps = updateUpgradedForgeDevDeps(packageJSON, importDevDeps); } - } else if (!(typeof packageJSON.config.forge === 'object')) { - task.output = chalk.yellow( - "We can't tell if the Electron Forge config is compatible because it's in an external JavaScript file, not trying to convert it and continuing anyway" - ); - } else { - d('Upgrading an Electron Forge < 6 project'); - packageJSON.config.forge = upgradeForgeConfig(packageJSON.config.forge); - importDevDeps = updateUpgradedForgeDevDeps(packageJSON, importDevDeps); } - } - packageJSON.dependencies = packageJSON.dependencies || {}; - packageJSON.devDependencies = packageJSON.devDependencies || {}; + packageJSON.dependencies = packageJSON.dependencies || {}; + packageJSON.devDependencies = packageJSON.devDependencies || {}; - [importDevDeps, importExactDevDeps] = updateElectronDependency(packageJSON, importDevDeps, importExactDevDeps); + [importDevDeps, importExactDevDeps] = updateElectronDependency(packageJSON, importDevDeps, importExactDevDeps); - const keys = Object.keys(packageJSON.dependencies).concat(Object.keys(packageJSON.devDependencies)); - const buildToolPackages: Record = { - '@electron/get': 'already uses this module as a transitive dependency', - '@electron/osx-sign': 'already uses this module as a transitive dependency', - 'electron-builder': 'provides mostly equivalent functionality', - 'electron-download': 'already uses this module as a transitive dependency', - 'electron-forge': 'replaced with @electron-forge/cli', - 'electron-installer-debian': 'already uses this module as a transitive dependency', - 'electron-installer-dmg': 'already uses this module as a transitive dependency', - 'electron-installer-flatpak': 'already uses this module as a transitive dependency', - 'electron-installer-redhat': 'already uses this module as a transitive dependency', - 'electron-packager': 'already uses this module as a transitive dependency', - 'electron-winstaller': 'already uses this module as a transitive dependency', - }; + const keys = Object.keys(packageJSON.dependencies).concat(Object.keys(packageJSON.devDependencies)); + const buildToolPackages: Record = { + '@electron/get': 'already uses this module as a transitive dependency', + '@electron/osx-sign': 'already uses this module as a transitive dependency', + '@electron/packager': 'already uses this module as a transitive dependency', + 'electron-builder': 'provides mostly equivalent functionality', + 'electron-download': 'already uses this module as a transitive dependency', + 'electron-forge': 'replaced with @electron-forge/cli', + 'electron-installer-debian': 'already uses this module as a transitive dependency', + 'electron-installer-dmg': 'already uses this module as a transitive dependency', + 'electron-installer-flatpak': 'already uses this module as a transitive dependency', + 'electron-installer-redhat': 'already uses this module as a transitive dependency', + 'electron-winstaller': 'already uses this module as a transitive dependency', + }; - for (const key of keys) { - if (buildToolPackages[key]) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const explanation = buildToolPackages[key]!; - let remove = true; - if (typeof shouldRemoveDependency === 'function') { - remove = await shouldRemoveDependency(key, explanation); - } + for (const key of keys) { + if (buildToolPackages[key]) { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const explanation = buildToolPackages[key]!; + let remove = true; + if (typeof shouldRemoveDependency === 'function') { + remove = await shouldRemoveDependency(key, explanation); + } - if (remove) { - delete packageJSON.dependencies[key]; - delete packageJSON.devDependencies[key]; + if (remove) { + delete packageJSON.dependencies[key]; + delete packageJSON.devDependencies[key]; + } } } - } - packageJSON.scripts = packageJSON.scripts || {}; - d('reading current scripts object:', packageJSON.scripts); + packageJSON.scripts = packageJSON.scripts || {}; + d('reading current scripts object:', packageJSON.scripts); - const updatePackageScript = async (scriptName: string, newValue: string) => { - if (packageJSON.scripts[scriptName] !== newValue) { - let update = true; - if (typeof shouldUpdateScript === 'function') { - update = await shouldUpdateScript(scriptName, newValue); - } - if (update) { - packageJSON.scripts[scriptName] = newValue; + const updatePackageScript = async (scriptName: string, newValue: string) => { + if (packageJSON.scripts[scriptName] !== newValue) { + let update = true; + if (typeof shouldUpdateScript === 'function') { + update = await shouldUpdateScript(scriptName, newValue); + } + if (update) { + packageJSON.scripts[scriptName] = newValue; + } } - } - }; + }; - await updatePackageScript('start', 'electron-forge start'); - await updatePackageScript('package', 'electron-forge package'); - await updatePackageScript('make', 'electron-forge make'); + await updatePackageScript('start', 'electron-forge start'); + await updatePackageScript('package', 'electron-forge package'); + await updatePackageScript('make', 'electron-forge make'); - d('forgified scripts object:', packageJSON.scripts); + d('forgified scripts object:', packageJSON.scripts); - const writeChanges = async () => { - await fs.writeJson(path.resolve(dir, 'package.json'), packageJSON, { spaces: 2 }); - }; + const writeChanges = async () => { + await fs.writeJson(path.resolve(dir, 'package.json'), packageJSON, { spaces: 2 }); + }; - return task.newListr( - [ - { - title: 'Installing dependencies', - task: async (_, task) => { - const packageManager = getPackageManager(); - await writeChanges(); + return task.newListr( + [ + { + title: 'Installing dependencies', + task: async (_, task) => { + const packageManager = getPackageManager(); + await writeChanges(); - d('deleting old dependencies forcefully'); - await fs.remove(path.resolve(dir, 'node_modules/.bin/electron')); - await fs.remove(path.resolve(dir, 'node_modules/.bin/electron.cmd')); + d('deleting old dependencies forcefully'); + await fs.remove(path.resolve(dir, 'node_modules/.bin/electron')); + await fs.remove(path.resolve(dir, 'node_modules/.bin/electron.cmd')); - d('installing dependencies'); - task.output = `${packageManager} add ${importDeps.join(' ')}`; - await installDepList(dir, importDeps); + d('installing dependencies'); + task.output = `${packageManager} add ${importDeps.join(' ')}`; + await installDepList(dir, importDeps); - d('installing devDependencies'); - task.output = `${packageManager} add -D ${importDevDeps.join(' ')}`; - await installDepList(dir, importDevDeps, DepType.DEV); + d('installing devDependencies'); + task.output = `${packageManager} add -D ${importDevDeps.join(' ')}`; + await installDepList(dir, importDevDeps, DepType.DEV); - d('installing exactDevDependencies'); - task.output = `${packageManager} add -D -E ${importExactDevDeps.join(' ')}`; - await installDepList(dir, importExactDevDeps, DepType.DEV, DepVersionRestriction.EXACT); + d('installing exactDevDependencies'); + task.output = `${packageManager} add -D -E ${importExactDevDeps.join(' ')}`; + await installDepList(dir, importExactDevDeps, DepType.DEV, DepVersionRestriction.EXACT); }, - }, - { - title: 'Copying base template Forge configuration', - task: async () => { - const pathToTemplateConfig = path.resolve(baseTemplate.templateDir, 'forge.config.js'); + { + title: 'Copying base template Forge configuration', + task: async () => { + const pathToTemplateConfig = path.resolve(baseTemplate.templateDir, 'forge.config.js'); - // if there's an existing config.forge object in package.json - if (packageJSON?.config?.forge && typeof packageJSON.config.forge === 'object') { - d('detected existing Forge config in package.json, merging with base template Forge config'); - // eslint-disable-next-line @typescript-eslint/no-var-requires - const templateConfig = require(path.resolve(baseTemplate.templateDir, 'forge.config.js')); - packageJSON = await readRawPackageJson(dir); - merge(templateConfig, packageJSON.config.forge); // mutates the templateConfig object - await writeChanges(); - // otherwise, write to forge.config.js - } else { - d('writing new forge.config.js'); - await fs.copyFile(pathToTemplateConfig, path.resolve(dir, 'forge.config.js')); - } + // if there's an existing config.forge object in package.json + if (packageJSON?.config?.forge && typeof packageJSON.config.forge === 'object') { + d('detected existing Forge config in package.json, merging with base template Forge config'); + // eslint-disable-next-line @typescript-eslint/no-var-requires + const templateConfig = require(path.resolve(baseTemplate.templateDir, 'forge.config.js')); + packageJSON = await readRawPackageJson(dir); + merge(templateConfig, packageJSON.config.forge); // mutates the templateConfig object + await writeChanges(); + // otherwise, write to forge.config.js + } else { + d('writing new forge.config.js'); + await fs.copyFile(pathToTemplateConfig, path.resolve(dir, 'forge.config.js')); + } + }, }, - }, - { - title: 'Fixing .gitignore', - task: async () => { - if (await fs.pathExists(path.resolve(dir, '.gitignore'))) { - const gitignore = await fs.readFile(path.resolve(dir, '.gitignore')); - if (!gitignore.includes(calculatedOutDir)) { - await fs.writeFile(path.resolve(dir, '.gitignore'), `${gitignore}\n${calculatedOutDir}/`); + { + title: 'Fixing .gitignore', + task: async () => { + if (await fs.pathExists(path.resolve(dir, '.gitignore'))) { + const gitignore = await fs.readFile(path.resolve(dir, '.gitignore')); + if (!gitignore.includes(calculatedOutDir)) { + await fs.writeFile(path.resolve(dir, '.gitignore'), `${gitignore}\n${calculatedOutDir}/`); + } } - } + }, }, - }, - ], - listrOptions - ); - }, - }, - { - title: 'Finalizing import', - options: { - persistentOutput: true, - bottomBar: Infinity, + ], + listrOptions + ); + }), }, - task: (_, task) => { - task.output = `We have attempted to convert your app to be in a format that Electron Forge understands. - + { + title: 'Finalizing import', + rendererOptions: { + persistentOutput: true, + bottomBar: Infinity, + }, + task: childTrace>({ name: 'finalize-import', category: '@electron-forge/core' }, (_, __, task) => { + task.output = `We have attempted to convert your app to be in a format that Electron Forge understands. + Thanks for using ${chalk.green('Electron Forge')}!`; + }), }, - }, - ], - listrOptions - ); + ], + listrOptions + ); - await runner.run(); -}; + await runner.run(); + } +); diff --git a/packages/api/core/src/api/init-scripts/init-npm.ts b/packages/api/core/src/api/init-scripts/init-npm.ts index e9ca77c819..10992538d1 100644 --- a/packages/api/core/src/api/init-scripts/init-npm.ts +++ b/packages/api/core/src/api/init-scripts/init-npm.ts @@ -16,12 +16,14 @@ export function siblingDep(name: string): string { export const deps = ['electron-squirrel-startup']; export const devDeps = [ + '@electron/fuses', siblingDep('cli'), siblingDep('maker-squirrel'), siblingDep('maker-zip'), siblingDep('maker-deb'), siblingDep('maker-rpm'), siblingDep('plugin-auto-unpack-natives'), + siblingDep('plugin-fuses'), ]; export const exactDevDeps = ['electron']; diff --git a/packages/api/core/src/api/init.ts b/packages/api/core/src/api/init.ts index ab276a4ea7..96147dec9c 100644 --- a/packages/api/core/src/api/init.ts +++ b/packages/api/core/src/api/init.ts @@ -74,9 +74,7 @@ export default async ({ dir = process.cwd(), interactive = false, copyCIFiles = await initDirectory(dir, task, force); await initGit(dir); }, - options: { - persistentOutput: true, - }, + rendererOptions: { persistentOutput: true }, }, { title: 'Preparing template', @@ -153,8 +151,8 @@ export default async ({ dir = process.cwd(), interactive = false, copyCIFiles = ], { concurrent: false, - rendererSilent: !interactive, - rendererFallback: Boolean(process.env.DEBUG), + silentRendererCondition: !interactive, + fallbackRendererCondition: Boolean(process.env.DEBUG) || Boolean(process.env.CI), } ); diff --git a/packages/api/core/src/api/make.ts b/packages/api/core/src/api/make.ts index 10b38f6770..58510dfee1 100644 --- a/packages/api/core/src/api/make.ts +++ b/packages/api/core/src/api/make.ts @@ -2,12 +2,22 @@ import path from 'path'; import { getElectronVersion } from '@electron-forge/core-utils'; import { MakerBase } from '@electron-forge/maker-base'; -import { ForgeArch, ForgeConfigMaker, ForgeMakeResult, ForgePlatform, IForgeResolvableMaker, ResolvedForgeConfig } from '@electron-forge/shared-types'; +import { + ForgeArch, + ForgeConfigMaker, + ForgeListrOptions, + ForgeListrTaskFn, + ForgeMakeResult, + ForgePlatform, + IForgeResolvableMaker, + ResolvedForgeConfig, +} from '@electron-forge/shared-types'; +import { autoTrace, delayTraceTillSignal } from '@electron-forge/tracer'; import { getHostArch } from '@electron/get'; import chalk from 'chalk'; import filenamify from 'filenamify'; import fs from 'fs-extra'; -import { Listr } from 'listr2'; +import { Listr, PRESET_TIMER } from 'listr2'; import logSymbols from 'log-symbols'; import getForgeConfig from '../util/forge-config'; @@ -52,7 +62,7 @@ type MakeContext = { dir: string; forgeConfig: ResolvedForgeConfig; actualOutDir: string; - makers: MakerBase[]; + makers: Array<() => MakerBase>; outputs: ForgeMakeResult[]; }; @@ -88,6 +98,7 @@ export interface MakeOptions { } export const listrMake = ( + childTrace: typeof autoTrace, { dir: providedDir = process.cwd(), interactive = false, @@ -99,21 +110,21 @@ export const listrMake = ( }: MakeOptions, receiveMakeResults?: (results: ForgeMakeResult[]) => void ) => { - const listrOptions = { + const listrOptions: ForgeListrOptions = { concurrent: false, rendererOptions: { - collapse: false, + collapseSubtasks: false, collapseErrors: false, }, - rendererSilent: !interactive, - rendererFallback: Boolean(process.env.DEBUG), + silentRendererCondition: !interactive, + fallbackRendererCondition: Boolean(process.env.DEBUG) || Boolean(process.env.CI), }; const runner = new Listr( [ { title: 'Loading configuration', - task: async (ctx) => { + task: childTrace>>({ name: 'load-forge-config', category: '@electron-forge/core' }, async (_, ctx) => { const resolvedDir = await resolveDir(providedDir); if (!resolvedDir) { throw new Error('Failed to locate startable Electron application'); @@ -121,195 +132,197 @@ export const listrMake = ( ctx.dir = resolvedDir; ctx.forgeConfig = await getForgeConfig(resolvedDir); - }, + }), }, { title: 'Resolving make targets', - task: async (ctx, task) => { - const { dir, forgeConfig } = ctx; - ctx.actualOutDir = outDir || getCurrentOutDir(dir, forgeConfig); - - if (!['darwin', 'win32', 'linux', 'mas'].includes(platform)) { - throw new Error(`'${platform}' is an invalid platform. Choices are 'darwin', 'mas', 'win32' or 'linux'.`); - } + task: childTrace>>( + { name: 'resolve-make-targets', category: '@electron-forge/core' }, + async (_, ctx, task) => { + const { dir, forgeConfig } = ctx; + ctx.actualOutDir = outDir || getCurrentOutDir(dir, forgeConfig); + + if (!['darwin', 'win32', 'linux', 'mas'].includes(platform)) { + throw new Error(`'${platform}' is an invalid platform. Choices are 'darwin', 'mas', 'win32' or 'linux'.`); + } - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const makers: MakerBase[] = []; - - const possibleMakers = generateTargets(forgeConfig, overrideTargets); - - for (const possibleMaker of possibleMakers) { - /* eslint-disable-next-line @typescript-eslint/no-explicit-any */ - let maker: MakerBase; - if (isElectronForgeMaker(possibleMaker)) { - maker = possibleMaker; - if (!maker.platforms.includes(platform)) continue; - } else { - const resolvableTarget = possibleMaker as IForgeResolvableMaker; - // non-false falsy values should be 'true' - if (resolvableTarget.enabled === false) continue; - - if (!resolvableTarget.name) { - throw new Error(`The following maker config is missing a maker name: ${JSON.stringify(resolvableTarget)}`); - } else if (typeof resolvableTarget.name !== 'string') { - throw new Error(`The following maker config has a maker name that is not a string: ${JSON.stringify(resolvableTarget)}`); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const makers: Array<() => MakerBase> = []; + + const possibleMakers = generateTargets(forgeConfig, overrideTargets); + + for (const possibleMaker of possibleMakers) { + /* eslint-disable-next-line @typescript-eslint/no-explicit-any */ + let maker: MakerBase; + if (isElectronForgeMaker(possibleMaker)) { + maker = possibleMaker; + if (!maker.platforms.includes(platform)) continue; + } else { + const resolvableTarget = possibleMaker as IForgeResolvableMaker; + // non-false falsy values should be 'true' + if (resolvableTarget.enabled === false) continue; + + if (!resolvableTarget.name) { + throw new Error(`The following maker config is missing a maker name: ${JSON.stringify(resolvableTarget)}`); + } else if (typeof resolvableTarget.name !== 'string') { + throw new Error(`The following maker config has a maker name that is not a string: ${JSON.stringify(resolvableTarget)}`); + } + + const MakerClass = requireSearch(dir, [resolvableTarget.name]); + if (!MakerClass) { + throw new Error( + `Could not find module with name '${resolvableTarget.name}'. If this is a package from NPM, make sure it's listed in the devDependencies of your package.json. If this is a local module, make sure you have the correct path to its entry point. Try using the DEBUG="electron-forge:require-search" environment variable for more information.` + ); + } + + maker = new MakerClass(resolvableTarget.config, resolvableTarget.platforms || undefined); + if (!maker.platforms.includes(platform)) continue; } - const MakerClass = requireSearch(dir, [resolvableTarget.name]); - if (!MakerClass) { + if (!maker.isSupportedOnCurrentPlatform) { throw new Error( - `Could not find module with name '${resolvableTarget.name}'. If this is a package from NPM, make sure it's listed in the devDependencies of your package.json. If this is a local module, make sure you have the correct path to its entry point. Try using the DEBUG="electron-forge:require-search" environment variable for more information.` + [ + `Maker for target ${maker.name} is incompatible with this version of `, + 'Electron Forge, please upgrade or contact the maintainer ', + "(needs to implement 'isSupportedOnCurrentPlatform)')", + ].join('') ); } - maker = new MakerClass(resolvableTarget.config, resolvableTarget.platforms || undefined); - if (!maker.platforms.includes(platform)) continue; - } + if (!maker.isSupportedOnCurrentPlatform()) { + throw new Error(`Cannot make for ${platform} and target ${maker.name}: the maker declared that it cannot run on ${process.platform}.`); + } - if (!maker.isSupportedOnCurrentPlatform) { - throw new Error( - [ - `Maker for target ${maker.name} is incompatible with this version of `, - 'Electron Forge, please upgrade or contact the maintainer ', - "(needs to implement 'isSupportedOnCurrentPlatform)')", - ].join('') - ); - } + maker.ensureExternalBinariesExist(); - if (!maker.isSupportedOnCurrentPlatform()) { - throw new Error(`Cannot make for ${platform} and target ${maker.name}: the maker declared that it cannot run on ${process.platform}.`); + makers.push(() => maker.clone()); } - maker.ensureExternalBinariesExist(); + if (makers.length === 0) { + throw new Error(`Could not find any make targets configured for the "${platform}" platform.`); + } - makers.push(maker); - } + ctx.makers = makers; - if (makers.length === 0) { - throw new Error(`Could not find any make targets configured for the "${platform}" platform.`); + task.output = `Making for the following targets: ${chalk.magenta(`${makers.map((maker) => maker.name).join(', ')}`)}`; } - - ctx.makers = makers; - - task.output = `Making for the following targets: ${chalk.magenta(`${makers.map((maker) => maker.name).join(', ')}`)}`; - }, - options: { + ), + rendererOptions: { persistentOutput: true, }, }, { title: `Running ${chalk.yellow('package')} command`, - task: async (ctx, task) => { + task: childTrace>>({ name: 'package()', category: '@electron-forge/core' }, async (childTrace, ctx, task) => { if (!skipPackage) { - return listrPackage({ - dir: ctx.dir, - interactive, - arch, - outDir: ctx.actualOutDir, - platform, - }); + return delayTraceTillSignal( + childTrace, + listrPackage(childTrace, { + dir: ctx.dir, + interactive, + arch, + outDir: ctx.actualOutDir, + platform, + }), + 'run' + ); } else { task.output = chalk.yellow(`${logSymbols.warning} Skipping could result in an out of date build`); task.skip(); } - }, - options: { + }), + rendererOptions: { persistentOutput: true, }, }, { title: `Running ${chalk.yellow('preMake')} hook`, - task: async (ctx, task) => { - return task.newListr(await getHookListrTasks(ctx.forgeConfig, 'preMake')); - }, + task: childTrace>>( + { name: 'run-preMake-hook', category: '@electron-forge/core' }, + async (childTrace, ctx, task) => { + return delayTraceTillSignal(childTrace, task.newListr(await getHookListrTasks(childTrace, ctx.forgeConfig, 'preMake')), 'run'); + } + ), }, { title: 'Making distributables', - task: async (ctx, task) => { - const { actualOutDir, dir, forgeConfig, makers } = ctx; - const packageJSON = await readMutatedPackageJson(dir, forgeConfig); - const appName = filenamify(forgeConfig.packagerConfig.name || packageJSON.productName || packageJSON.name, { replacement: '-' }); - const outputs: ForgeMakeResult[] = []; - ctx.outputs = outputs; - - const subRunner = task.newListr([], { - ...listrOptions, - rendererOptions: { - collapse: false, - collapseErrors: false, - }, - }); - - for (const targetArch of parseArchs(platform, arch, await getElectronVersion(dir, packageJSON))) { - const packageDir = path.resolve(actualOutDir, `${appName}-${platform}-${targetArch}`); - if (!(await fs.pathExists(packageDir))) { - throw new Error(`Couldn't find packaged app at: ${packageDir}`); - } + task: childTrace>>( + { name: 'make-distributables', category: '@electron-forge/core' }, + async (childTrace, ctx, task) => { + const { actualOutDir, dir, forgeConfig, makers } = ctx; + const packageJSON = await readMutatedPackageJson(dir, forgeConfig); + const appName = filenamify(forgeConfig.packagerConfig.name || packageJSON.productName || packageJSON.name, { replacement: '-' }); + const outputs: ForgeMakeResult[] = []; + ctx.outputs = outputs; + + const subRunner = task.newListr([], { + ...listrOptions, + concurrent: true, + rendererOptions: { + collapseSubtasks: false, + collapseErrors: false, + }, + }); - for (const maker of makers) { - subRunner.add({ - title: `Making a ${chalk.magenta(maker.name)} distributable for ${chalk.cyan(`${platform}/${targetArch}`)}`, - task: async () => { - try { - /** - * WARNING: DO NOT ATTEMPT TO PARALLELIZE MAKERS - * - * Currently it is assumed we have 1 maker per make call but that is - * not enforced. It is technically possible to have 1 maker be called - * multiple times. The "prepareConfig" method however implicitly - * requires a lock that is not enforced. There are two options: - * - * * Provide makers a getConfig() method - * * Remove support for config being provided as a method - * * Change the entire API of maker from a single constructor to - * providing a MakerFactory - */ - await Promise.resolve(maker.prepareConfig(targetArch)); - const artifacts = await maker.make({ - appName, - forgeConfig, - packageJSON, - targetArch, - dir: packageDir, - makeDir: path.resolve(actualOutDir, 'make'), - targetPlatform: platform, - }); - - outputs.push({ - artifacts, - packageJSON, - platform, - arch: targetArch, - }); - } catch (err) { - if (err) { - throw err; - } else { - throw new Error(`An unknown error occurred while making for target: ${maker.name}`); + for (const targetArch of parseArchs(platform, arch, await getElectronVersion(dir, packageJSON))) { + const packageDir = path.resolve(actualOutDir, `${appName}-${platform}-${targetArch}`); + if (!(await fs.pathExists(packageDir))) { + throw new Error(`Couldn't find packaged app at: ${packageDir}`); + } + + for (const maker of makers) { + const uniqMaker = maker(); + subRunner.add({ + title: `Making a ${chalk.magenta(uniqMaker.name)} distributable for ${chalk.cyan(`${platform}/${targetArch}`)}`, + task: childTrace<[]>({ name: `make-${maker.name}`, category: '@electron-forge/core', newRoot: true }, async () => { + try { + await Promise.resolve(uniqMaker.prepareConfig(targetArch)); + const artifacts = await uniqMaker.make({ + appName, + forgeConfig, + packageJSON, + targetArch, + dir: packageDir, + makeDir: path.resolve(actualOutDir, 'make'), + targetPlatform: platform, + }); + + outputs.push({ + artifacts, + packageJSON, + platform, + arch: targetArch, + }); + } catch (err) { + if (err) { + throw err; + } else { + throw new Error(`An unknown error occurred while making for target: ${uniqMaker.name}`); + } } - } - }, - options: { - showTimer: true, - }, - }); + }), + rendererOptions: { + timer: { ...PRESET_TIMER }, + }, + }); + } } - } - return subRunner; - }, + return delayTraceTillSignal(childTrace, subRunner, 'run'); + } + ), }, { title: `Running ${chalk.yellow('postMake')} hook`, - task: async (ctx, task) => { + task: childTrace>>({ name: 'run-postMake-hook', category: '@electron-forge/core' }, async (_, ctx, task) => { // If the postMake hooks modifies the locations / names of the outputs it must return // the new locations so that the publish step knows where to look ctx.outputs = await runMutatingHook(ctx.forgeConfig, 'postMake', ctx.outputs); receiveMakeResults?.(ctx.outputs); task.output = `Artifacts available at: ${chalk.green(path.resolve(ctx.actualOutDir, 'make'))}`; - }, - options: { + }), + rendererOptions: { persistentOutput: true, }, }, @@ -323,12 +336,10 @@ export const listrMake = ( return runner; }; -const make = async (opts: MakeOptions): Promise => { - const runner = listrMake(opts); +export default autoTrace({ name: 'make()', category: '@electron-forge/core' }, async (childTrace, opts: MakeOptions): Promise => { + const runner = listrMake(childTrace, opts); await runner.run(); return runner.ctx.outputs; -}; - -export default make; +}); diff --git a/packages/api/core/src/api/package.ts b/packages/api/core/src/api/package.ts index 72769e592f..db916b079e 100644 --- a/packages/api/core/src/api/package.ts +++ b/packages/api/core/src/api/package.ts @@ -2,14 +2,15 @@ import path from 'path'; import { promisify } from 'util'; import { getElectronVersion, listrCompatibleRebuildHook } from '@electron-forge/core-utils'; -import { ForgeArch, ForgeListrTask, ForgeListrTaskDefinition, ForgePlatform, ResolvedForgeConfig } from '@electron-forge/shared-types'; +import { ForgeArch, ForgeListrTask, ForgeListrTaskDefinition, ForgeListrTaskFn, ForgePlatform, ResolvedForgeConfig } from '@electron-forge/shared-types'; +import { autoTrace, delayTraceTillSignal } from '@electron-forge/tracer'; import { getHostArch } from '@electron/get'; +import { FinalizePackageTargetsHookFunction, HookFunction, Options, packager, TargetDefinition } from '@electron/packager'; import chalk from 'chalk'; import debug from 'debug'; -import packager, { FinalizePackageTargetsHookFunction, HookFunction, TargetDefinition } from 'electron-packager'; import glob from 'fast-glob'; import fs from 'fs-extra'; -import { Listr } from 'listr2'; +import { Listr, PRESET_TIMER } from 'listr2'; import getForgeConfig from '../util/forge-config'; import { getHookListrTasks, runHook } from '../util/hook'; @@ -110,18 +111,21 @@ export interface PackageOptions { outDir?: string; } -export const listrPackage = ({ - dir: providedDir = process.cwd(), - interactive = false, - arch = getHostArch() as ForgeArch, - platform = process.platform as ForgePlatform, - outDir, -}: PackageOptions) => { +export const listrPackage = ( + childTrace: typeof autoTrace, + { + dir: providedDir = process.cwd(), + interactive = false, + arch = getHostArch() as ForgeArch, + platform = process.platform as ForgePlatform, + outDir, + }: PackageOptions +) => { const runner = new Listr( [ { title: 'Preparing to package application', - task: async (ctx) => { + task: childTrace>>({ name: 'package-prepare', category: '@electron-forge/core' }, async (_, ctx) => { const resolvedDir = await resolveDir(providedDir); if (!resolvedDir) { throw new Error('Failed to locate compilable Electron application'); @@ -136,307 +140,356 @@ export const listrPackage = ({ } ctx.calculatedOutDir = outDir || getCurrentOutDir(resolvedDir, ctx.forgeConfig); - }, + }), }, { title: 'Running packaging hooks', - task: async ({ forgeConfig }, task) => { - return task.newListr([ - { - title: `Running ${chalk.yellow('generateAssets')} hook`, - task: async (_, task) => { - return task.newListr(await getHookListrTasks(forgeConfig, 'generateAssets', platform, arch)); - }, - }, - { - title: `Running ${chalk.yellow('prePackage')} hook`, - task: async (_, task) => { - return task.newListr(await getHookListrTasks(forgeConfig, 'prePackage', platform, arch)); - }, - }, - ]); - }, + task: childTrace>>( + { name: 'run-packaging-hooks', category: '@electron-forge/core' }, + async (childTrace, { forgeConfig }, task) => { + return delayTraceTillSignal( + childTrace, + task.newListr([ + { + title: `Running ${chalk.yellow('generateAssets')} hook`, + task: childTrace>( + { name: 'run-generateAssets-hook', category: '@electron-forge/core' }, + async (childTrace, _, task) => { + return delayTraceTillSignal( + childTrace, + task.newListr(await getHookListrTasks(childTrace, forgeConfig, 'generateAssets', platform, arch)), + 'run' + ); + } + ), + }, + { + title: `Running ${chalk.yellow('prePackage')} hook`, + task: childTrace>( + { name: 'run-prePackage-hook', category: '@electron-forge/core' }, + async (childTrace, _, task) => { + return delayTraceTillSignal( + childTrace, + task.newListr(await getHookListrTasks(childTrace, forgeConfig, 'prePackage', platform, arch)), + 'run' + ); + } + ), + }, + ]), + 'run' + ); + } + ), }, { title: 'Packaging application', - task: async (ctx, task) => { - const { calculatedOutDir, forgeConfig, packageJSON } = ctx; - const getTargetKey = (target: TargetDefinition) => `${target.platform}/${target.arch}`; - - task.output = 'Determining targets...'; - - type StepDoneSignalMap = Map void)[]>; - const signalCopyDone: StepDoneSignalMap = new Map(); - const signalRebuildDone: StepDoneSignalMap = new Map(); - const signalPackageDone: StepDoneSignalMap = new Map(); - const rejects: ((err: any) => void)[] = []; - const signalDone = (map: StepDoneSignalMap, target: TargetDefinition) => { - map.get(getTargetKey(target))?.pop()?.(); - }; - const addSignalAndWait = async (map: StepDoneSignalMap, target: TargetDefinition) => { - const targetKey = getTargetKey(target); - await new Promise((resolve, reject) => { + task: childTrace>>( + { name: 'packaging-application', category: '@electron-forge/core' }, + async (childTrace, ctx, task) => { + const { calculatedOutDir, forgeConfig, packageJSON } = ctx; + const getTargetKey = (target: TargetDefinition) => `${target.platform}/${target.arch}`; + + task.output = 'Determining targets...'; + + type StepDoneSignalMap = Map void)[]>; + const signalCopyDone: StepDoneSignalMap = new Map(); + const signalRebuildDone: StepDoneSignalMap = new Map(); + const signalPackageDone: StepDoneSignalMap = new Map(); + const rejects: ((err: any) => void)[] = []; + const signalDone = (map: StepDoneSignalMap, target: TargetDefinition) => { + map.get(getTargetKey(target))?.pop()?.(); + }; + const addSignalAndWait = async (map: StepDoneSignalMap, target: TargetDefinition) => { + const targetKey = getTargetKey(target); + await new Promise((resolve, reject) => { + rejects.push(reject); + map.set(targetKey, (map.get(targetKey) || []).concat([resolve])); + }); + }; + + let provideTargets: (targets: TargetDefinition[]) => void; + const targetsPromise = new Promise((resolve, reject) => { + provideTargets = resolve; rejects.push(reject); - map.set(targetKey, (map.get(targetKey) || []).concat([resolve])); }); - }; - - let provideTargets: (targets: TargetDefinition[]) => void; - const targetsPromise = new Promise((resolve, reject) => { - provideTargets = resolve; - rejects.push(reject); - }); - const rebuildTasks = new Map>[]>(); - const signalRebuildStart = new Map) => void)[]>(); - - const afterFinalizePackageTargetsHooks: FinalizePackageTargetsHookFunction[] = [ - (targets, done) => { - provideTargets(targets); - done(); - }, - ...resolveHooks(forgeConfig.packagerConfig.afterFinalizePackageTargets, ctx.dir), - ]; + const rebuildTasks = new Map>[]>(); + const signalRebuildStart = new Map) => void)[]>(); - const pruneEnabled = !('prune' in forgeConfig.packagerConfig) || forgeConfig.packagerConfig.prune; + const afterFinalizePackageTargetsHooks: FinalizePackageTargetsHookFunction[] = [ + (targets, done) => { + provideTargets(targets); + done(); + }, + ...resolveHooks(forgeConfig.packagerConfig.afterFinalizePackageTargets, ctx.dir), + ]; - const afterCopyHooks: HookFunction[] = [ - async (buildPath, electronVersion, platform, arch, done) => { - signalDone(signalCopyDone, { platform, arch }); - done(); - }, - async (buildPath, electronVersion, pPlatform, pArch, done) => { - const bins = await glob(path.join(buildPath, '**/.bin/**/*')); - for (const bin of bins) { - await fs.remove(bin); - } - done(); - }, - async (buildPath, electronVersion, pPlatform, pArch, done) => { - await runHook(forgeConfig, 'packageAfterCopy', buildPath, electronVersion, pPlatform, pArch); - done(); - }, - async (buildPath, electronVersion, pPlatform, pArch, done) => { - const targetKey = getTargetKey({ platform: pPlatform, arch: pArch }); - await listrCompatibleRebuildHook( - buildPath, - electronVersion, - pPlatform, - pArch, - forgeConfig.rebuildConfig, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - await rebuildTasks.get(targetKey)!.pop()! - ); - signalRebuildDone.get(targetKey)?.pop()?.(); - done(); - }, - async (buildPath, electronVersion, pPlatform, pArch, done) => { - const copiedPackageJSON = await readMutatedPackageJson(buildPath, forgeConfig); - if (copiedPackageJSON.config && copiedPackageJSON.config.forge) { - delete copiedPackageJSON.config.forge; - } - await fs.writeJson(path.resolve(buildPath, 'package.json'), copiedPackageJSON, { spaces: 2 }); - done(); - }, - ...resolveHooks(forgeConfig.packagerConfig.afterCopy, ctx.dir), - ]; + const pruneEnabled = !('prune' in forgeConfig.packagerConfig) || forgeConfig.packagerConfig.prune; - const afterCompleteHooks: HookFunction[] = [ - async (buildPath, electronVersion, pPlatform, pArch, done) => { - signalPackageDone.get(getTargetKey({ platform: pPlatform, arch: pArch }))?.pop()?.(); - done(); - }, - ...resolveHooks(forgeConfig.packagerConfig.afterComplete, ctx.dir), - ]; + const afterCopyHooks: HookFunction[] = [ + async (buildPath, electronVersion, platform, arch, done) => { + signalDone(signalCopyDone, { platform, arch }); + done(); + }, + async (buildPath, electronVersion, pPlatform, pArch, done) => { + const bins = await glob(path.join(buildPath, '**/.bin/**/*')); + for (const bin of bins) { + await fs.remove(bin); + } + done(); + }, + async (buildPath, electronVersion, pPlatform, pArch, done) => { + await runHook(forgeConfig, 'packageAfterCopy', buildPath, electronVersion, pPlatform, pArch); + done(); + }, + async (buildPath, electronVersion, pPlatform, pArch, done) => { + const targetKey = getTargetKey({ platform: pPlatform, arch: pArch }); + await listrCompatibleRebuildHook( + buildPath, + electronVersion, + pPlatform, + pArch, + forgeConfig.rebuildConfig, + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + await rebuildTasks.get(targetKey)!.pop()! + ); + signalRebuildDone.get(targetKey)?.pop()?.(); + done(); + }, + async (buildPath, electronVersion, pPlatform, pArch, done) => { + const copiedPackageJSON = await readMutatedPackageJson(buildPath, forgeConfig); + if (copiedPackageJSON.config && copiedPackageJSON.config.forge) { + delete copiedPackageJSON.config.forge; + } + await fs.writeJson(path.resolve(buildPath, 'package.json'), copiedPackageJSON, { spaces: 2 }); + done(); + }, + ...resolveHooks(forgeConfig.packagerConfig.afterCopy, ctx.dir), + ]; - const afterPruneHooks = []; + const afterCompleteHooks: HookFunction[] = [ + async (buildPath, electronVersion, pPlatform, pArch, done) => { + signalPackageDone.get(getTargetKey({ platform: pPlatform, arch: pArch }))?.pop()?.(); + done(); + }, + ...resolveHooks(forgeConfig.packagerConfig.afterComplete, ctx.dir), + ]; - if (pruneEnabled) { - afterPruneHooks.push(...resolveHooks(forgeConfig.packagerConfig.afterPrune, ctx.dir)); - } + const afterPruneHooks = []; - afterPruneHooks.push((async (buildPath, electronVersion, pPlatform, pArch, done) => { - await runHook(forgeConfig, 'packageAfterPrune', buildPath, electronVersion, pPlatform, pArch); - done(); - }) as HookFunction); + if (pruneEnabled) { + afterPruneHooks.push(...resolveHooks(forgeConfig.packagerConfig.afterPrune, ctx.dir)); + } - const afterExtractHooks = [ - (async (buildPath, electronVersion, pPlatform, pArch, done) => { - await runHook(forgeConfig, 'packageAfterExtract', buildPath, electronVersion, pPlatform, pArch); + afterPruneHooks.push((async (buildPath, electronVersion, pPlatform, pArch, done) => { + await runHook(forgeConfig, 'packageAfterPrune', buildPath, electronVersion, pPlatform, pArch); done(); - }) as HookFunction, - ]; - afterExtractHooks.push(...resolveHooks(forgeConfig.packagerConfig.afterExtract, ctx.dir)); - - type PackagerArch = Exclude; - - const packageOpts: packager.Options = { - asar: false, - overwrite: true, - ignore: [/^\/out\//g], - ...forgeConfig.packagerConfig, - quiet: true, - dir: ctx.dir, - arch: arch as PackagerArch, - platform, - afterFinalizePackageTargets: sequentialFinalizePackageTargetsHooks(afterFinalizePackageTargetsHooks), - afterComplete: sequentialHooks(afterCompleteHooks), - afterCopy: sequentialHooks(afterCopyHooks), - afterExtract: sequentialHooks(afterExtractHooks), - afterPrune: sequentialHooks(afterPruneHooks), - out: calculatedOutDir, - electronVersion: await getElectronVersion(ctx.dir, packageJSON), - }; - packageOpts.quiet = true; - - if (packageOpts.all) { - throw new Error('config.forge.packagerConfig.all is not supported by Electron Forge'); - } + }) as HookFunction); + + const afterExtractHooks = [ + (async (buildPath, electronVersion, pPlatform, pArch, done) => { + await runHook(forgeConfig, 'packageAfterExtract', buildPath, electronVersion, pPlatform, pArch); + done(); + }) as HookFunction, + ]; + afterExtractHooks.push(...resolveHooks(forgeConfig.packagerConfig.afterExtract, ctx.dir)); + + type PackagerArch = Exclude; + + const packageOpts: Options = { + asar: false, + overwrite: true, + ignore: [/^\/out\//g], + ...forgeConfig.packagerConfig, + quiet: true, + dir: ctx.dir, + arch: arch as PackagerArch, + platform, + afterFinalizePackageTargets: sequentialFinalizePackageTargetsHooks(afterFinalizePackageTargetsHooks), + afterComplete: sequentialHooks(afterCompleteHooks), + afterCopy: sequentialHooks(afterCopyHooks), + afterExtract: sequentialHooks(afterExtractHooks), + afterPrune: sequentialHooks(afterPruneHooks), + out: calculatedOutDir, + electronVersion: await getElectronVersion(ctx.dir, packageJSON), + }; + packageOpts.quiet = true; + + if (packageOpts.all) { + throw new Error('config.forge.packagerConfig.all is not supported by Electron Forge'); + } - if (!packageJSON.version && !packageOpts.appVersion) { - warn( - interactive, - chalk.yellow('Please set "version" or "config.forge.packagerConfig.appVersion" in your application\'s package.json so auto-updates work properly') - ); - } + if (!packageJSON.version && !packageOpts.appVersion) { + warn( + interactive, + chalk.yellow( + 'Please set "version" or "config.forge.packagerConfig.appVersion" in your application\'s package.json so auto-updates work properly' + ) + ); + } - if (packageOpts.prebuiltAsar) { - throw new Error('config.forge.packagerConfig.prebuiltAsar is not supported by Electron Forge'); - } + if (packageOpts.prebuiltAsar) { + throw new Error('config.forge.packagerConfig.prebuiltAsar is not supported by Electron Forge'); + } - d('packaging with options', packageOpts); + d('packaging with options', packageOpts); - ctx.packagerPromise = packager(packageOpts); - // Handle error by failing this task - // rejects is populated by the reject handlers for every - // signal based promise in every subtask - ctx.packagerPromise.catch((err) => { - for (const reject of rejects) { - reject(err); + ctx.packagerPromise = packager(packageOpts); + // Handle error by failing this task + // rejects is populated by the reject handlers for every + // signal based promise in every subtask + ctx.packagerPromise.catch((err) => { + for (const reject of rejects) { + reject(err); + } + }); + + const targets = await targetsPromise; + // Copy the resolved targets into the context for later + ctx.targets = [...targets]; + // If we are targetting a universal build we need to add the "fake" + // x64 and arm64 builds into the list of targets so that we can + // show progress for those + for (const target of targets) { + if (target.arch === 'universal') { + targets.push( + { + platform: target.platform, + arch: 'x64', + forUniversal: true, + }, + { + platform: target.platform, + arch: 'arm64', + forUniversal: true, + } + ); + } } - }); - - const targets = await targetsPromise; - // Copy the resolved targets into the context for later - ctx.targets = [...targets]; - // If we are targetting a universal build we need to add the "fake" - // x64 and arm64 builds into the list of targets so that we can - // show progress for those - for (const target of targets) { - if (target.arch === 'universal') { - targets.push( - { - platform: target.platform, - arch: 'x64', - forUniversal: true, - }, - { - platform: target.platform, - arch: 'arm64', - forUniversal: true, - } + + // Populate rebuildTasks with promises that resolve with the rebuild tasks + // that will eventually run + for (const target of targets) { + // Skip universal tasks as they do not have rebuild sub-tasks + if (target.arch === 'universal') continue; + + const targetKey = getTargetKey(target); + rebuildTasks.set( + targetKey, + (rebuildTasks.get(targetKey) || []).concat([ + new Promise((resolve) => { + signalRebuildStart.set(targetKey, (signalRebuildStart.get(targetKey) || []).concat([resolve])); + }), + ]) ); } - } - - // Populate rebuildTasks with promises that resolve with the rebuild tasks - // that will eventually run - for (const target of targets) { - // Skip universal tasks as they do not have rebuild sub-tasks - if (target.arch === 'universal') continue; - - const targetKey = getTargetKey(target); - rebuildTasks.set( - targetKey, - (rebuildTasks.get(targetKey) || []).concat([ - new Promise((resolve) => { - signalRebuildStart.set(targetKey, (signalRebuildStart.get(targetKey) || []).concat([resolve])); - }), - ]) - ); - } - d('targets:', targets); - - return task.newListr( - targets.map( - (target): ForgeListrTaskDefinition => - target.arch === 'universal' - ? { - title: `Stitching ${chalk.cyan(`${target.platform}/x64`)} and ${chalk.cyan(`${target.platform}/arm64`)} into a ${chalk.green( - `${target.platform}/universal` - )} package`, - task: async () => { - await addSignalAndWait(signalPackageDone, target); - }, - options: { - showTimer: true, - }, - } - : { - title: `Packaging for ${chalk.cyan(target.arch)} on ${chalk.cyan(target.platform)}${ - target.forUniversal ? chalk.italic(' (for universal package)') : '' - }`, - task: async (_, task) => { - return task.newListr( - [ - { - title: 'Copying files', - task: async () => { - await addSignalAndWait(signalCopyDone, target); - }, - }, - { - title: 'Preparing native dependencies', - task: async (_, task) => { - signalRebuildStart.get(getTargetKey(target))?.pop()?.(task); - await addSignalAndWait(signalRebuildDone, target); - }, - options: { - persistentOutput: true, - bottomBar: Infinity, - showTimer: true, - }, - }, + d('targets:', targets); + + return delayTraceTillSignal( + childTrace, + task.newListr( + targets.map( + (target): ForgeListrTaskDefinition => + target.arch === 'universal' + ? { + title: `Stitching ${chalk.cyan(`${target.platform}/x64`)} and ${chalk.cyan(`${target.platform}/arm64`)} into a ${chalk.green( + `${target.platform}/universal` + )} package`, + task: async () => { + await addSignalAndWait(signalPackageDone, target); + }, + rendererOptions: { + timer: { ...PRESET_TIMER }, + }, + } + : { + title: `Packaging for ${chalk.cyan(target.arch)} on ${chalk.cyan(target.platform)}${ + target.forUniversal ? chalk.italic(' (for universal package)') : '' + }`, + task: childTrace>>( { - title: 'Finalizing package', - task: async () => { - await addSignalAndWait(signalPackageDone, target); - }, + name: `package-app-${target.platform}-${target.arch}${target.forUniversal ? '-universal-tmp' : ''}`, + category: '@electron-forge/core', + extraDetails: { arch: target.arch, platform: target.platform }, + newRoot: true, }, - ], - { rendererOptions: { collapse: true, collapseErrors: false } } - ); - }, - options: { - showTimer: true, - }, - } - ), - { concurrent: true, rendererOptions: { collapse: false, collapseErrors: false } } - ); - }, + async (childTrace, _, task) => { + return delayTraceTillSignal( + childTrace, + task.newListr( + [ + { + title: 'Copying files', + task: childTrace({ name: 'copy-files', category: '@electron-forge/core' }, async () => { + await addSignalAndWait(signalCopyDone, target); + }), + }, + { + title: 'Preparing native dependencies', + task: childTrace({ name: 'prepare-native-dependencies', category: '@electron-forge/core' }, async (_, __, task) => { + signalRebuildStart.get(getTargetKey(target))?.pop()?.(task); + await addSignalAndWait(signalRebuildDone, target); + }), + rendererOptions: { + persistentOutput: true, + bottomBar: Infinity, + timer: { ...PRESET_TIMER }, + }, + }, + { + title: 'Finalizing package', + task: childTrace({ name: 'finalize-package', category: '@electron-forge/core' }, async () => { + await addSignalAndWait(signalPackageDone, target); + }), + }, + ], + { rendererOptions: { collapseSubtasks: true, collapseErrors: false } } + ), + 'run' + ); + } + ), + rendererOptions: { + timer: { ...PRESET_TIMER }, + }, + } + ), + { concurrent: true, rendererOptions: { collapseSubtasks: false, collapseErrors: false } } + ), + 'run' + ); + } + ), }, { title: `Running ${chalk.yellow('postPackage')} hook`, - task: async ({ packagerPromise, forgeConfig }, task) => { - const outputPaths = await packagerPromise; - d('outputPaths:', outputPaths); - return task.newListr( - await getHookListrTasks(forgeConfig, 'postPackage', { - arch, - outputPaths, - platform, - }) - ); - }, + task: childTrace>>( + { name: 'run-postPackage-hook', category: '@electron-forge/core' }, + async (childTrace, { packagerPromise, forgeConfig }, task) => { + const outputPaths = await packagerPromise; + d('outputPaths:', outputPaths); + return delayTraceTillSignal( + childTrace, + task.newListr( + await getHookListrTasks(childTrace, forgeConfig, 'postPackage', { + arch, + outputPaths, + platform, + }) + ), + 'run' + ); + } + ), }, ], { concurrent: false, - rendererSilent: !interactive, - rendererFallback: Boolean(process.env.DEBUG), + silentRendererCondition: !interactive, + fallbackRendererCondition: Boolean(process.env.DEBUG) || Boolean(process.env.CI), rendererOptions: { - collapse: false, + collapseSubtasks: false, collapseErrors: false, }, ctx: {} as PackageContext, @@ -446,8 +499,8 @@ export const listrPackage = ({ return runner; }; -export default async (opts: PackageOptions): Promise => { - const runner = listrPackage(opts); +export default autoTrace({ name: 'package()', category: '@electron-forge/core' }, async (childTrace, opts: PackageOptions): Promise => { + const runner = listrPackage(childTrace, opts); await runner.run(); @@ -457,4 +510,4 @@ export default async (opts: PackageOptions): Promise => { arch: target.arch, packagedPath: outputPaths[index], })); -}; +}); diff --git a/packages/api/core/src/api/publish.ts b/packages/api/core/src/api/publish.ts index 552331739c..81a21e67d6 100644 --- a/packages/api/core/src/api/publish.ts +++ b/packages/api/core/src/api/publish.ts @@ -3,13 +3,16 @@ import path from 'path'; import { PublisherBase } from '@electron-forge/publisher-base'; import { ForgeConfigPublisher, + ForgeListrOptions, ForgeListrTask, + ForgeListrTaskFn, ForgeMakeResult, IForgePublisher, IForgeResolvablePublisher, ResolvedForgeConfig, // ForgePlatform, } from '@electron-forge/shared-types'; +import { autoTrace, delayTraceTillSignal } from '@electron-forge/tracer'; import chalk from 'chalk'; import debug from 'debug'; import fs from 'fs-extra'; @@ -66,227 +69,269 @@ export interface PublishOptions { dryRunResume?: boolean; } -const publish = async ({ - dir: providedDir = process.cwd(), - interactive = false, - makeOptions = {}, - publishTargets = undefined, - dryRun = false, - dryRunResume = false, - outDir, -}: PublishOptions): Promise => { - if (dryRun && dryRunResume) { - throw new Error("Can't dry run and resume a dry run at the same time"); - } - - const listrOptions = { - concurrent: false, - rendererOptions: { - collapseErrors: false, - }, - rendererSilent: !interactive, - rendererFallback: Boolean(process.env.DEBUG), - }; - - const publishDistributablesTasks = [ +export default autoTrace( + { name: 'publish()', category: '@electron-forge/core' }, + async ( + childTrace, { - title: 'Publishing distributables', - task: async ({ dir, forgeConfig, makeResults, publishers }: PublishContext, task: ForgeListrTask) => { - if (publishers.length === 0) { - task.output = 'No publishers configured'; - task.skip(); - return; - } + dir: providedDir = process.cwd(), + interactive = false, + makeOptions = {}, + publishTargets = undefined, + dryRun = false, + dryRunResume = false, + outDir, + }: PublishOptions + ): Promise => { + if (dryRun && dryRunResume) { + throw new Error("Can't dry run and resume a dry run at the same time"); + } - return task.newListr( - publishers.map((publisher) => ({ - title: `${chalk.cyan(`[publisher-${publisher.name}]`)} Running the ${chalk.yellow('publish')} command`, - task: async (_, task) => { - const setStatusLine = (s: string) => { - task.output = s; - }; - await publisher.publish({ - dir, - makeResults: makeResults!, - forgeConfig, - setStatusLine, - }); - }, - options: { - persistentOutput: true, - }, - })), - { - rendererOptions: { - collapse: false, - collapseErrors: false, - }, - } - ); - }, - options: { - persistentOutput: true, + const listrOptions: ForgeListrOptions = { + concurrent: false, + rendererOptions: { + collapseErrors: false, }, - }, - ]; + silentRendererCondition: !interactive, + fallbackRendererCondition: Boolean(process.env.DEBUG) || Boolean(process.env.CI), + }; - const runner = new Listr( - [ + const publishDistributablesTasks = (childTrace: typeof autoTrace) => [ { - title: 'Loading configuration', - task: async (ctx) => { - const resolvedDir = await resolveDir(providedDir); - if (!resolvedDir) { - throw new Error('Failed to locate publishable Electron application'); - } + title: 'Publishing distributables', + task: childTrace>>( + { name: 'publish-distributables', category: '@electron-forge/core' }, + async (childTrace, { dir, forgeConfig, makeResults, publishers }, task: ForgeListrTask) => { + if (publishers.length === 0) { + task.output = 'No publishers configured'; + task.skip(); + return; + } - ctx.dir = resolvedDir; - ctx.forgeConfig = await getForgeConfig(resolvedDir); + return delayTraceTillSignal( + childTrace, + task.newListr( + publishers.map((publisher) => ({ + title: `${chalk.cyan(`[publisher-${publisher.name}]`)} Running the ${chalk.yellow('publish')} command`, + task: childTrace>( + { name: `publish-${publisher.name}`, category: '@electron-forge/core' }, + async (childTrace, _, task) => { + const setStatusLine = (s: string) => { + task.output = s; + }; + await publisher.publish({ + dir, + makeResults: makeResults!, + forgeConfig, + setStatusLine, + }); + } + ), + rendererOptions: { + persistentOutput: true, + }, + })), + { + rendererOptions: { + collapseSubtasks: false, + collapseErrors: false, + }, + } + ), + 'run' + ); + } + ), + rendererOptions: { + persistentOutput: true, }, }, - { - title: 'Resolving publish targets', - task: async (ctx: PublishContext, task: ForgeListrTask) => { - const { dir, forgeConfig } = ctx; + ]; - if (!publishTargets) { - publishTargets = forgeConfig.publishers || []; - } - publishTargets = (publishTargets as ForgeConfigPublisher[]).map((target) => { - if (typeof target === 'string') { - return ( - (forgeConfig.publishers || []).find((p: ForgeConfigPublisher) => { - if (typeof p === 'string') return false; - if ((p as IForgePublisher).__isElectronForgePublisher) return false; - return (p as IForgeResolvablePublisher).name === target; - }) || { name: target } - ); + const runner = new Listr( + [ + { + title: 'Loading configuration', + task: childTrace>>( + { name: 'load-forge-config', category: '@electron-forge/core' }, + async (childTrace, ctx) => { + const resolvedDir = await resolveDir(providedDir); + if (!resolvedDir) { + throw new Error('Failed to locate publishable Electron application'); + } + + ctx.dir = resolvedDir; + ctx.forgeConfig = await getForgeConfig(resolvedDir); } - return target; - }); + ), + }, + { + title: 'Resolving publish targets', + task: childTrace>>( + { name: 'resolve-publish-targets', category: '@electron-forge/core' }, + async (childTrace, ctx, task) => { + const { dir, forgeConfig } = ctx; - ctx.publishers = []; - for (const publishTarget of publishTargets) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - let publisher: PublisherBase; - if ((publishTarget as IForgePublisher).__isElectronForgePublisher) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - publisher = publishTarget as PublisherBase; - } else { - const resolvablePublishTarget = publishTarget as IForgeResolvablePublisher; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const PublisherClass: any = requireSearch(dir, [resolvablePublishTarget.name]); - if (!PublisherClass) { - throw new Error( - `Could not find a publish target with the name: ${resolvablePublishTarget.name}. Make sure it's listed in the devDependencies of your package.json` - ); + if (!publishTargets) { + publishTargets = forgeConfig.publishers || []; } + publishTargets = (publishTargets as ForgeConfigPublisher[]).map((target) => { + if (typeof target === 'string') { + return ( + (forgeConfig.publishers || []).find((p: ForgeConfigPublisher) => { + if (typeof p === 'string') return false; + if ((p as IForgePublisher).__isElectronForgePublisher) return false; + return (p as IForgeResolvablePublisher).name === target; + }) || { name: target } + ); + } + return target; + }); - publisher = new PublisherClass(resolvablePublishTarget.config || {}, resolvablePublishTarget.platforms); - } + ctx.publishers = []; + for (const publishTarget of publishTargets) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let publisher: PublisherBase; + if ((publishTarget as IForgePublisher).__isElectronForgePublisher) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + publisher = publishTarget as PublisherBase; + } else { + const resolvablePublishTarget = publishTarget as IForgeResolvablePublisher; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const PublisherClass: any = requireSearch(dir, [resolvablePublishTarget.name]); + if (!PublisherClass) { + throw new Error( + `Could not find a publish target with the name: ${resolvablePublishTarget.name}. Make sure it's listed in the devDependencies of your package.json` + ); + } - ctx.publishers.push(publisher); - } + publisher = new PublisherClass(resolvablePublishTarget.config || {}, resolvablePublishTarget.platforms); + } - if (ctx.publishers.length) { - task.output = `Publishing to the following targets: ${chalk.magenta(`${ctx.publishers.map((publisher) => publisher.name).join(', ')}`)}`; - } - }, - options: { - persistentOutput: true, + ctx.publishers.push(publisher); + } + + if (ctx.publishers.length) { + task.output = `Publishing to the following targets: ${chalk.magenta(`${ctx.publishers.map((publisher) => publisher.name).join(', ')}`)}`; + } + } + ), + rendererOptions: { + persistentOutput: true, + }, }, - }, - { - title: dryRunResume ? 'Resuming from dry run...' : `Running ${chalk.yellow('make')} command`, - task: async (ctx, task) => { - const { dir, forgeConfig } = ctx; - const calculatedOutDir = outDir || getCurrentOutDir(dir, forgeConfig); - const dryRunDir = path.resolve(calculatedOutDir, 'publish-dry-run'); + { + title: dryRunResume ? 'Resuming from dry run...' : `Running ${chalk.yellow('make')} command`, + task: childTrace>>( + { name: dryRunResume ? 'resume-dry-run' : 'make()', category: '@electron-forge/core' }, + async (childTrace, ctx, task) => { + const { dir, forgeConfig } = ctx; + const calculatedOutDir = outDir || getCurrentOutDir(dir, forgeConfig); + const dryRunDir = path.resolve(calculatedOutDir, 'publish-dry-run'); - if (dryRunResume) { - d('attempting to resume from dry run'); - const publishes = await PublishState.loadFromDirectory(dryRunDir, dir); - task.title = `Resuming ${publishes.length} found dry runs...`; + if (dryRunResume) { + d('attempting to resume from dry run'); + const publishes = await PublishState.loadFromDirectory(dryRunDir, dir); + task.title = `Resuming ${publishes.length} found dry runs...`; - return task.newListr( - publishes.map((publishStates, index) => { - return { - title: `Publishing dry-run ${chalk.blue(`#${index + 1}`)}`, - task: async (ctx: PublishContext, task: ForgeListrTask) => { - const restoredMakeResults = publishStates.map(({ state }) => state); - d('restoring publish settings from dry run'); + return delayTraceTillSignal( + childTrace, + task.newListr( + publishes.map((publishStates, index) => { + return { + title: `Publishing dry-run ${chalk.blue(`#${index + 1}`)}`, + task: childTrace>>( + { name: `publish-dry-run-${index + 1}`, category: '@electron-forge/core' }, + async (childTrace, ctx, task) => { + const restoredMakeResults = publishStates.map(({ state }) => state); + d('restoring publish settings from dry run'); - for (const makeResult of restoredMakeResults) { - makeResult.artifacts = await Promise.all( - makeResult.artifacts.map(async (makePath: string) => { - // standardize the path to artifacts across platforms - const normalizedPath = makePath.split(/\/|\\/).join(path.sep); - if (!(await fs.pathExists(normalizedPath))) { - throw new Error(`Attempted to resume a dry run, but an artifact (${normalizedPath}) could not be found`); - } - return normalizedPath; - }) - ); - } + for (const makeResult of restoredMakeResults) { + makeResult.artifacts = await Promise.all( + makeResult.artifacts.map(async (makePath: string) => { + // standardize the path to artifacts across platforms + const normalizedPath = makePath.split(/\/|\\/).join(path.sep); + if (!(await fs.pathExists(normalizedPath))) { + throw new Error(`Attempted to resume a dry run, but an artifact (${normalizedPath}) could not be found`); + } + return normalizedPath; + }) + ); + } - d('publishing for given state set'); - return task.newListr(publishDistributablesTasks, { - ctx: { - ...ctx, - makeResults: restoredMakeResults, - }, + d('publishing for given state set'); + return delayTraceTillSignal( + childTrace, + task.newListr(publishDistributablesTasks(childTrace), { + ctx: { + ...ctx, + makeResults: restoredMakeResults, + }, + rendererOptions: { + collapseSubtasks: false, + collapseErrors: false, + }, + }), + 'run' + ); + } + ), + }; + }), + { rendererOptions: { - collapse: false, + collapseSubtasks: false, collapseErrors: false, }, - }); - }, - }; - }), - { - rendererOptions: { - collapse: false, - collapseErrors: false, - }, + } + ), + 'run' + ); } - ); - } - d('triggering make'); - return listrMake( - { - dir, - interactive, - ...makeOptions, - }, - (results) => { - ctx.makeResults = results; + d('triggering make'); + return delayTraceTillSignal( + childTrace, + listrMake( + childTrace, + { + dir, + interactive, + ...makeOptions, + }, + (results) => { + ctx.makeResults = results; + } + ), + 'run' + ); } - ); + ), }, - }, - ...(dryRunResume - ? [] - : dryRun - ? [ - { - title: 'Saving dry-run state', - task: async ({ dir, forgeConfig, makeResults }: PublishContext) => { - d('saving results of make in dry run state', makeResults); - const calculatedOutDir = outDir || getCurrentOutDir(dir, forgeConfig); - const dryRunDir = path.resolve(calculatedOutDir, 'publish-dry-run'); + ...(dryRunResume + ? [] + : dryRun + ? [ + { + title: 'Saving dry-run state', + task: childTrace>>( + { name: 'save-dry-run', category: '@electron-forge/core' }, + async (childTrace, { dir, forgeConfig, makeResults }) => { + d('saving results of make in dry run state', makeResults); + const calculatedOutDir = outDir || getCurrentOutDir(dir, forgeConfig); + const dryRunDir = path.resolve(calculatedOutDir, 'publish-dry-run'); - await fs.remove(dryRunDir); - await PublishState.saveToDirectory(dryRunDir, makeResults!, dir); + await fs.remove(dryRunDir); + await PublishState.saveToDirectory(dryRunDir, makeResults!, dir); + } + ), }, - }, - ] - : publishDistributablesTasks), - ], - listrOptions - ); + ] + : publishDistributablesTasks(childTrace)), + ], + listrOptions + ); - await runner.run(); -}; - -export default publish; + await runner.run(); + } +); diff --git a/packages/api/core/src/api/start.ts b/packages/api/core/src/api/start.ts index 673ffc5e9e..3c30718fa9 100644 --- a/packages/api/core/src/api/start.ts +++ b/packages/api/core/src/api/start.ts @@ -1,10 +1,19 @@ import { spawn, SpawnOptions } from 'child_process'; import { getElectronVersion, listrCompatibleRebuildHook } from '@electron-forge/core-utils'; -import { ElectronProcess, ForgeArch, ForgeListrTask, ForgePlatform, ResolvedForgeConfig, StartOptions } from '@electron-forge/shared-types'; +import { + ElectronProcess, + ForgeArch, + ForgeListrOptions, + ForgeListrTaskFn, + ForgePlatform, + ResolvedForgeConfig, + StartOptions, +} from '@electron-forge/shared-types'; +import { autoTrace, delayTraceTillSignal } from '@electron-forge/tracer'; import chalk from 'chalk'; import debug from 'debug'; -import { Listr } from 'listr2'; +import { Listr, PRESET_TIMER } from 'listr2'; import locateElectronExecutable from '../util/electron-executable'; import getForgeConfig from '../util/forge-config'; @@ -23,198 +32,210 @@ type StartContext = { spawned: ElectronProcess; }; -export default async ({ - dir: providedDir = process.cwd(), - appPath = '.', - interactive = false, - enableLogging = false, - args = [], - runAsNode = false, - inspect = false, - inspectBrk = false, -}: StartOptions): Promise => { - const platform = process.env.npm_config_platform || process.platform; - const arch = process.env.npm_config_arch || process.arch; - const listrOptions = { - concurrent: false, - rendererOptions: { - collapseErrors: false, - }, - rendererSilent: !interactive, - rendererFallback: Boolean(process.env.DEBUG), - }; - - const runner = new Listr( - [ - { - title: 'Locating application', - task: async (ctx) => { - const resolvedDir = await resolveDir(providedDir); - if (!resolvedDir) { - throw new Error('Failed to locate startable Electron application'); - } - ctx.dir = resolvedDir; - }, +export default autoTrace( + { name: 'start()', category: '@electron-forge/core' }, + async ( + childTrace, + { + dir: providedDir = process.cwd(), + appPath = '.', + interactive = false, + enableLogging = false, + args = [], + runAsNode = false, + inspect = false, + inspectBrk = false, + }: StartOptions + ): Promise => { + const platform = process.env.npm_config_platform || process.platform; + const arch = process.env.npm_config_arch || process.arch; + const listrOptions: ForgeListrOptions = { + concurrent: false, + rendererOptions: { + collapseErrors: false, }, - { - title: 'Loading configuration', - task: async (ctx) => { - const { dir } = ctx; - ctx.forgeConfig = await getForgeConfig(dir); - ctx.packageJSON = await readMutatedPackageJson(dir, ctx.forgeConfig); - - if (!ctx.packageJSON.version) { - throw new Error(`Please set your application's 'version' in '${dir}/package.json'.`); - } + silentRendererCondition: !interactive, + fallbackRendererCondition: Boolean(process.env.DEBUG) || Boolean(process.env.CI), + }; + + const runner = new Listr( + [ + { + title: 'Locating application', + task: childTrace>>({ name: 'locate-application', category: '@electron-forge/core' }, async (_, ctx) => { + const resolvedDir = await resolveDir(providedDir); + if (!resolvedDir) { + throw new Error('Failed to locate startable Electron application'); + } + ctx.dir = resolvedDir; + }), }, - }, - { - title: 'Preparing native dependencies', - task: async ({ dir, forgeConfig, packageJSON }, task) => { - await listrCompatibleRebuildHook( - dir, - await getElectronVersion(dir, packageJSON), - platform as ForgePlatform, - arch as ForgeArch, - forgeConfig.rebuildConfig, - task as ForgeListrTask - ); + { + title: 'Loading configuration', + task: childTrace>>({ name: 'load-forge-config', category: '@electron-forge/core' }, async (_, ctx) => { + const { dir } = ctx; + ctx.forgeConfig = await getForgeConfig(dir); + ctx.packageJSON = await readMutatedPackageJson(dir, ctx.forgeConfig); + + if (!ctx.packageJSON.version) { + throw new Error(`Please set your application's 'version' in '${dir}/package.json'.`); + } + }), }, - options: { - persistentOutput: true, - bottomBar: Infinity, - showTimer: true, + { + title: 'Preparing native dependencies', + task: childTrace>>( + { name: 'prepare-native-dependencies', category: '@electron-forge/core' }, + async (_, { dir, forgeConfig, packageJSON }, task) => { + await listrCompatibleRebuildHook( + dir, + await getElectronVersion(dir, packageJSON), + platform as ForgePlatform, + arch as ForgeArch, + forgeConfig.rebuildConfig, + task as any + ); + } + ), + rendererOptions: { + persistentOutput: true, + bottomBar: Infinity, + timer: { ...PRESET_TIMER }, + }, }, - }, - { - title: `Running ${chalk.yellow('generateAssets')} hook`, - task: async ({ forgeConfig }, task) => { - return task.newListr(await getHookListrTasks(forgeConfig, 'generateAssets', platform, arch)); + { + title: `Running ${chalk.yellow('generateAssets')} hook`, + task: childTrace>>( + { name: 'run-generateAssets-hook', category: '@electron-forge/core' }, + async (childTrace, { forgeConfig }, task) => { + return delayTraceTillSignal(childTrace, task.newListr(await getHookListrTasks(childTrace, forgeConfig, 'generateAssets', platform, arch)), 'run'); + } + ), }, - }, - ], - listrOptions - ); - - await runner.run(); - - const { dir, forgeConfig, packageJSON } = runner.ctx; - let lastSpawned: ElectronProcess | null = null; - - const forgeSpawn = async () => { - let electronExecPath: string | null = null; - - // If a plugin has taken over the start command let's stop here - let spawnedPluginChild = await forgeConfig.pluginInterface.overrideStartLogic({ - dir, - appPath, - interactive, - enableLogging, - args, - runAsNode, - inspect, - inspectBrk, - }); - if (typeof spawnedPluginChild === 'object' && 'tasks' in spawnedPluginChild) { - const innerRunner = new Listr([], listrOptions); - for (const task of spawnedPluginChild.tasks) { - innerRunner.add(task); + ], + listrOptions + ); + + await runner.run(); + + const { dir, forgeConfig, packageJSON } = runner.ctx; + let lastSpawned: ElectronProcess | null = null; + + const forgeSpawn = async () => { + let electronExecPath: string | null = null; + + // If a plugin has taken over the start command let's stop here + let spawnedPluginChild = await forgeConfig.pluginInterface.overrideStartLogic({ + dir, + appPath, + interactive, + enableLogging, + args, + runAsNode, + inspect, + inspectBrk, + }); + if (typeof spawnedPluginChild === 'object' && 'tasks' in spawnedPluginChild) { + const innerRunner = new Listr([], listrOptions as ForgeListrOptions); + for (const task of spawnedPluginChild.tasks) { + innerRunner.add(task); + } + await innerRunner.run(); + spawnedPluginChild = spawnedPluginChild.result; + } + let prefixArgs: string[] = []; + if (typeof spawnedPluginChild === 'string') { + electronExecPath = spawnedPluginChild; + } else if (Array.isArray(spawnedPluginChild)) { + [electronExecPath, ...prefixArgs] = spawnedPluginChild; + } else if (spawnedPluginChild) { + await runHook(forgeConfig, 'postStart', spawnedPluginChild); + return spawnedPluginChild; } - await innerRunner.run(); - spawnedPluginChild = spawnedPluginChild.result; - } - let prefixArgs: string[] = []; - if (typeof spawnedPluginChild === 'string') { - electronExecPath = spawnedPluginChild; - } else if (Array.isArray(spawnedPluginChild)) { - [electronExecPath, ...prefixArgs] = spawnedPluginChild; - } else if (spawnedPluginChild) { - await runHook(forgeConfig, 'postStart', spawnedPluginChild); - return spawnedPluginChild; - } - if (!electronExecPath) { - electronExecPath = await locateElectronExecutable(dir, packageJSON); - } + if (!electronExecPath) { + electronExecPath = await locateElectronExecutable(dir, packageJSON); + } - d('Electron binary path:', electronExecPath); - - const spawnOpts = { - cwd: dir, - stdio: 'inherit', - env: { - ...process.env, - ...(enableLogging - ? { - ELECTRON_ENABLE_LOGGING: 'true', - ELECTRON_ENABLE_STACK_DUMPING: 'true', - } - : {}), - } as NodeJS.ProcessEnv, - }; + d('Electron binary path:', electronExecPath); + + const spawnOpts = { + cwd: dir, + stdio: 'inherit', + env: { + ...process.env, + ...(enableLogging + ? { + ELECTRON_ENABLE_LOGGING: 'true', + ELECTRON_ENABLE_STACK_DUMPING: 'true', + } + : {}), + } as NodeJS.ProcessEnv, + }; + + if (runAsNode) { + spawnOpts.env.ELECTRON_RUN_AS_NODE = 'true'; + } else { + delete spawnOpts.env.ELECTRON_RUN_AS_NODE; + } - if (runAsNode) { - spawnOpts.env.ELECTRON_RUN_AS_NODE = 'true'; - } else { - delete spawnOpts.env.ELECTRON_RUN_AS_NODE; - } + if (inspect) { + args = ['--inspect' as string | number].concat(args); + } + if (inspectBrk) { + args = ['--inspect-brk' as string | number].concat(args); + } - if (inspect) { - args = ['--inspect' as string | number].concat(args); - } - if (inspectBrk) { - args = ['--inspect-brk' as string | number].concat(args); - } + const spawned = spawn( + electronExecPath!, // eslint-disable-line @typescript-eslint/no-non-null-assertion + prefixArgs.concat([appPath]).concat(args as string[]), + spawnOpts as SpawnOptions + ) as ElectronProcess; - const spawned = spawn( - electronExecPath!, // eslint-disable-line @typescript-eslint/no-non-null-assertion - prefixArgs.concat([appPath]).concat(args as string[]), - spawnOpts as SpawnOptions - ) as ElectronProcess; + await runHook(forgeConfig, 'postStart', spawned); + return spawned; + }; - await runHook(forgeConfig, 'postStart', spawned); - return spawned; - }; - - const forgeSpawnWrapper = async () => { - const spawned = await forgeSpawn(); - // When the child app is closed we should stop listening for stdin - if (spawned) { - if (interactive && process.stdin.isPaused()) { - process.stdin.resume(); - } - spawned.on('exit', () => { - if (spawned.restarted) { - return; + const forgeSpawnWrapper = async () => { + const spawned = await forgeSpawn(); + // When the child app is closed we should stop listening for stdin + if (spawned) { + if (interactive && process.stdin.isPaused()) { + process.stdin.resume(); } + spawned.on('exit', () => { + if (spawned.restarted) { + return; + } - if (interactive && !process.stdin.isPaused()) { - process.stdin.pause(); + if (interactive && !process.stdin.isPaused()) { + process.stdin.pause(); + } + }); + } else if (interactive && !process.stdin.isPaused()) { + process.stdin.pause(); + } + + lastSpawned = spawned; + return lastSpawned; + }; + + if (interactive) { + process.stdin.on('data', async (data) => { + if (data.toString().trim() === 'rs' && lastSpawned) { + console.info(chalk.cyan('\nRestarting App\n')); + lastSpawned.restarted = true; + lastSpawned.kill('SIGTERM'); + lastSpawned.emit('restarted', await forgeSpawnWrapper()); } }); - } else if (interactive && !process.stdin.isPaused()) { - process.stdin.pause(); + process.stdin.resume(); } - lastSpawned = spawned; - return lastSpawned; - }; - - if (interactive) { - process.stdin.on('data', async (data) => { - if (data.toString().trim() === 'rs' && lastSpawned) { - console.info(chalk.cyan('\nRestarting App\n')); - lastSpawned.restarted = true; - lastSpawned.kill('SIGTERM'); - lastSpawned.emit('restarted', await forgeSpawnWrapper()); - } - }); - process.stdin.resume(); - } - - const spawned = await forgeSpawnWrapper(); + const spawned = await forgeSpawnWrapper(); - if (interactive) console.log(''); + if (interactive) console.log(''); - return spawned; -}; + return spawned; + } +); diff --git a/packages/api/core/src/util/electron-executable.ts b/packages/api/core/src/util/electron-executable.ts index d0e7f435bc..3d37e0b2e3 100644 --- a/packages/api/core/src/util/electron-executable.ts +++ b/packages/api/core/src/util/electron-executable.ts @@ -1,43 +1,12 @@ import path from 'path'; import { getElectronModulePath } from '@electron-forge/core-utils'; -import chalk from 'chalk'; import logSymbols from 'log-symbols'; type PackageJSON = Record; -type Dependencies = Record; - -export function pluginCompileExists(packageJSON: PackageJSON): boolean { - if (!packageJSON.devDependencies) { - return false; - } - - const pluginCompileName = '@electron-forge/plugin-compile'; - const findPluginCompile = (packageName: string): boolean => packageName === pluginCompileName; - - if (Object.keys(packageJSON.devDependencies as Dependencies).find(findPluginCompile)) { - return true; - } - - if (Object.keys((packageJSON.dependencies as Dependencies) || {}).find(findPluginCompile)) { - console.warn(logSymbols.warning, chalk.yellow(`${pluginCompileName} was detected in dependencies, it should be in devDependencies`)); - return true; - } - - return false; -} export default async function locateElectronExecutable(dir: string, packageJSON: PackageJSON): Promise { - let electronModulePath: string | undefined = await getElectronModulePath(dir, packageJSON); - if (electronModulePath?.endsWith('electron-prebuilt-compile') && !pluginCompileExists(packageJSON)) { - console.warn( - logSymbols.warning, - chalk.yellow( - 'WARNING: found electron-prebuilt-compile without the Electron Forge compile plugin. Please remove the deprecated electron-prebuilt-compile from your devDependencies.' - ) - ); - electronModulePath = undefined; - } + const electronModulePath: string | undefined = await getElectronModulePath(dir, packageJSON); // eslint-disable-next-line @typescript-eslint/no-var-requires let electronExecPath = require(electronModulePath || path.resolve(dir, 'node_modules/electron')); diff --git a/packages/api/core/src/util/forge-config.ts b/packages/api/core/src/util/forge-config.ts index 0771e138ed..f6619461ca 100644 --- a/packages/api/core/src/util/forge-config.ts +++ b/packages/api/core/src/util/forge-config.ts @@ -6,6 +6,8 @@ import * as interpret from 'interpret'; import { template } from 'lodash'; import * as rechoir from 'rechoir'; +import { dynamicImport } from '../../helper/dynamic-import.js'; + import { runMutatingHook } from './hook'; import PluginInterface from './plugin-interface'; import { readRawPackageJson } from './read-package-json'; @@ -123,14 +125,20 @@ export default async (dir: string): Promise => { forgeConfig = forgeConfig || ({} as ForgeConfig); if (await forgeConfigIsValidFilePath(dir, forgeConfig)) { + const forgeConfigPath = path.resolve(dir, forgeConfig as string); try { // The loaded "config" could potentially be a static forge config, ESM module or async function - // eslint-disable-next-line @typescript-eslint/no-var-requires - const loaded = require(path.resolve(dir, forgeConfig as string)) as MaybeESM; + let loaded; + try { + loaded = (await dynamicImport(forgeConfigPath)) as MaybeESM; + } catch (err) { + // eslint-disable-next-line @typescript-eslint/no-var-requires + loaded = require(forgeConfigPath) as MaybeESM; + } const maybeForgeConfig = 'default' in loaded ? loaded.default : loaded; forgeConfig = typeof maybeForgeConfig === 'function' ? await maybeForgeConfig() : maybeForgeConfig; } catch (err) { - console.error(`Failed to load: ${path.resolve(dir, forgeConfig as string)}`); + console.error(`Failed to load: ${forgeConfigPath}`); throw err; } } else if (typeof forgeConfig !== 'object') { diff --git a/packages/api/core/src/util/hook.ts b/packages/api/core/src/util/hook.ts index 1af87c8401..d5bfeda2ec 100644 --- a/packages/api/core/src/util/hook.ts +++ b/packages/api/core/src/util/hook.ts @@ -6,6 +6,7 @@ import { ForgeSimpleHookSignatures, ResolvedForgeConfig, } from '@electron-forge/shared-types'; +import { autoTrace } from '@electron-forge/tracer'; import chalk from 'chalk'; import debug from 'debug'; @@ -29,6 +30,7 @@ export const runHook = async ( }; export const getHookListrTasks = async ( + childTrace: typeof autoTrace, forgeConfig: ResolvedForgeConfig, hookName: Hook, ...hookArgs: ForgeSimpleHookSignatures[Hook] @@ -41,13 +43,13 @@ export const getHookListrTasks = async { + task: childTrace({ name: 'forge-config-hook', category: '@electron-forge/hooks', extraDetails: { hook: hookName } }, async () => { await (hooks[hookName] as ForgeSimpleHookFn)(forgeConfig, ...hookArgs); - }, + }), }); } } - tasks.push(...(await forgeConfig.pluginInterface.getHookListrTasks(hookName, hookArgs))); + tasks.push(...(await forgeConfig.pluginInterface.getHookListrTasks(childTrace, hookName, hookArgs))); return tasks; }; diff --git a/packages/api/core/src/util/out-dir.ts b/packages/api/core/src/util/out-dir.ts index 9b5ae6013a..09565724b7 100644 --- a/packages/api/core/src/util/out-dir.ts +++ b/packages/api/core/src/util/out-dir.ts @@ -5,12 +5,15 @@ import { ResolvedForgeConfig } from '@electron-forge/shared-types'; const BASE_OUT_DIR = 'out'; export default (baseDir: string, forgeConfig: ResolvedForgeConfig): string => { + const baseOutDir = forgeConfig.outDir || BASE_OUT_DIR; + if (forgeConfig.buildIdentifier) { let identifier = forgeConfig.buildIdentifier; if (typeof identifier === 'function') { identifier = identifier(); } - if (identifier) return path.resolve(baseDir, BASE_OUT_DIR, identifier); + if (identifier) return path.resolve(baseDir, baseOutDir, identifier); } - return path.resolve(baseDir, BASE_OUT_DIR); + + return path.resolve(baseDir, baseOutDir); }; diff --git a/packages/api/core/src/util/parse-archs.ts b/packages/api/core/src/util/parse-archs.ts index 387efc8414..26a6b36bf2 100644 --- a/packages/api/core/src/util/parse-archs.ts +++ b/packages/api/core/src/util/parse-archs.ts @@ -1,12 +1,9 @@ import { ForgeArch, ForgePlatform } from '@electron-forge/shared-types'; - -// TODO: convert to an import statement when this is a public API -// eslint-disable-next-line @typescript-eslint/no-var-requires -const { allOfficialArchsForPlatformAndVersion } = require('electron-packager/src/targets'); +import { allOfficialArchsForPlatformAndVersion, SupportedPlatform } from '@electron/packager'; export default function parseArchs(platform: ForgePlatform | string, declaredArch: ForgeArch | 'all' | string, electronVersion: string): ForgeArch[] { if (declaredArch === 'all') { - return allOfficialArchsForPlatformAndVersion(platform, electronVersion) || ['x64']; + return allOfficialArchsForPlatformAndVersion(platform as SupportedPlatform, electronVersion) || ['x64']; } return declaredArch.split(',') as ForgeArch[]; diff --git a/packages/api/core/src/util/plugin-interface.ts b/packages/api/core/src/util/plugin-interface.ts index 2f9b4aeb40..b5b442e679 100644 --- a/packages/api/core/src/util/plugin-interface.ts +++ b/packages/api/core/src/util/plugin-interface.ts @@ -10,6 +10,7 @@ import { ResolvedForgeConfig, StartResult, } from '@electron-forge/shared-types'; +import { autoTrace } from '@electron-forge/tracer'; import chalk from 'chalk'; import debug from 'debug'; @@ -82,6 +83,7 @@ export default class PluginInterface implements IForgePluginInterface { } async getHookListrTasks( + childTrace: typeof autoTrace, hookName: Hook, hookArgs: ForgeSimpleHookSignatures[Hook] ): Promise { @@ -95,15 +97,18 @@ export default class PluginInterface implements IForgePluginInterface { for (const hook of hooks) { tasks.push({ title: `${chalk.cyan(`[plugin-${plugin.name}]`)} ${(hook as any).__hookName || `Running ${chalk.yellow(hookName)} hook`}`, - task: async (_, task) => { - if ((hook as any).__hookName) { - // Also give it the task - await (hook as any).call(task, this.config, ...(hookArgs as any[])); - } else { - await hook(this.config, ...hookArgs); + task: childTrace( + { name: 'forge-plugin-hook', category: '@electron-forge/hooks', extraDetails: { plugin: plugin.name, hook: hookName } }, + async (_, __, task) => { + if ((hook as any).__hookName) { + // Also give it the task + return await (hook as any).call(task, this.config, ...(hookArgs as any[])); + } else { + await hook(this.config, ...hookArgs); + } } - }, - options: {}, + ), + rendererOptions: {}, }); } } diff --git a/packages/api/core/src/util/resolve-dir.ts b/packages/api/core/src/util/resolve-dir.ts index f023a5ec0c..1713df7528 100644 --- a/packages/api/core/src/util/resolve-dir.ts +++ b/packages/api/core/src/util/resolve-dir.ts @@ -39,7 +39,7 @@ export default async (dir: string): Promise => { return mDir; } - if (packageJSON.devDependencies?.['@electron-forge/cli']) { + if (packageJSON.devDependencies?.['@electron-forge/cli'] || packageJSON.devDependencies?.['@electron-forge/core']) { d('package.json with forge dependency found in', testPath); return mDir; } diff --git a/packages/api/core/src/util/upgrade-forge-config.ts b/packages/api/core/src/util/upgrade-forge-config.ts index a8daddd553..e73f373efd 100644 --- a/packages/api/core/src/util/upgrade-forge-config.ts +++ b/packages/api/core/src/util/upgrade-forge-config.ts @@ -168,9 +168,5 @@ export function updateUpgradedForgeDevDeps(packageJSON: ForgePackageJSON, devDep (forgeConfig.publishers as IForgeResolvablePublisher[]).map((publisher: IForgeResolvablePublisher) => siblingDep(path.basename(publisher.name))) ); - if (Object.keys(packageJSON.devDependencies).find((dep: string) => dep === 'electron-prebuilt-compile')) { - devDeps = devDeps.concat(siblingDep('plugin-compile')); - } - return devDeps; } diff --git a/packages/api/core/test/fast/electron-executable_spec.ts b/packages/api/core/test/fast/electron-executable_spec.ts index ffd72f91b9..d891167225 100644 --- a/packages/api/core/test/fast/electron-executable_spec.ts +++ b/packages/api/core/test/fast/electron-executable_spec.ts @@ -4,7 +4,7 @@ import chai, { expect } from 'chai'; import { createSandbox } from 'sinon'; import sinonChai from 'sinon-chai'; -import locateElectronExecutable, { pluginCompileExists } from '../../src/util/electron-executable'; +import locateElectronExecutable from '../../src/util/electron-executable'; chai.use(sinonChai); @@ -30,79 +30,4 @@ describe('locateElectronExecutable', () => { await expect(locateElectronExecutable(appFixture, packageJSON)).to.eventually.equal('execPath'); expect(console.warn).to.not.have.been.called; }); - - it('warns and returns a hardcoded path to electron if another electron module does not export a string', async () => { - const appFixture = path.join(fixtureDir, 'bad-export'); - const packageJSON = { - devDependencies: { - '@electron-forge/plugin-compile': '^6.0.0-beta.1', - 'electron-prebuilt-compile': '^1.4.0', - }, - }; - - await expect(locateElectronExecutable(appFixture, packageJSON)).to.eventually.equal('execPath'); - expect(console.warn).to.have.been.calledOnce; - }); - - it('warns if prebuilt-compile exists without the corresponding plugin', async () => { - const packageJSON = { - devDependencies: { 'electron-prebuilt-compile': '1.0.0' }, - }; - const compileFixture = path.join(fixtureDir, 'prebuilt-compile'); - - await expect(locateElectronExecutable(compileFixture, packageJSON)).to.eventually.be.rejected; - expect(console.warn).to.have.been.calledOnce; - }); - - it('does not warn if prebuilt-compile exists with the corresponding plugin', async () => { - const packageJSON = { - devDependencies: { - '@electron-forge/plugin-compile': '^6.0.0-beta.1', - 'electron-prebuilt-compile': '1.0.0', - }, - }; - - const compileFixture = path.join(fixtureDir, 'prebuilt-compile'); - await expect(locateElectronExecutable(compileFixture, packageJSON)).to.eventually.be.rejected; - expect(console.warn).to.not.have.been.called; - }); -}); - -describe('pluginCompileExists', () => { - const sandbox = createSandbox(); - - beforeEach(() => { - sandbox.spy(console, 'warn'); - }); - - afterEach(() => { - sandbox.restore(); - }); - - it('returns false if there is no devDependencies', () => { - expect(pluginCompileExists({})).to.equal(false); - }); - - it('returns false if the plugin is not found in devDependencies', () => { - expect(pluginCompileExists({ devDependencies: {} })).to.equal(false); - }); - - it('returns true if the plugin is found in devDependencies', () => { - const packageJSON = { - devDependencies: { '@electron-forge/plugin-compile': '^6.0.0-beta.1' }, - }; - - expect(pluginCompileExists(packageJSON)).to.equal(true); - expect(console.warn).to.not.have.been.called; - }); - - it('warns and returns true if the plugin is found in dependencies', () => { - const packageJSON = { - dependencies: { '@electron-forge/plugin-compile': '^6.0.0-beta.1' }, - devDependencies: {}, - }; - - expect(pluginCompileExists(packageJSON)).to.equal(true); - expect(console.warn).to.have.been.calledOnce; - }); }); diff --git a/packages/api/core/test/fast/forge-config_spec.ts b/packages/api/core/test/fast/forge-config_spec.ts index ecec33897c..9b40dee5dc 100644 --- a/packages/api/core/test/fast/forge-config_spec.ts +++ b/packages/api/core/test/fast/forge-config_spec.ts @@ -130,6 +130,13 @@ describe('forge-config', () => { expect(conf.defaultResolved).to.equal(true); }); + it('should resolve the ESM JS file exports of forge.config.js if config.forge does not exist ', async () => { + type DefaultResolvedConfig = ResolvedForgeConfig & { defaultResolved: boolean }; + const conf = (await findConfig(path.resolve(__dirname, '../fixture/dummy_default_esm_conf'))) as DefaultResolvedConfig; + expect(conf.buildIdentifier).to.equal('esm'); + expect(conf.defaultResolved).to.equal(true); + }); + it(`should resolve the yml config from forge.config.yml if it's specified in config.forge`, async () => { type DefaultResolvedConfig = ResolvedForgeConfig; const conf = (await findConfig(path.resolve(__dirname, '../fixture/dummy_ts_conf'))) as DefaultResolvedConfig; diff --git a/packages/api/core/test/fast/out-dir_spec.ts b/packages/api/core/test/fast/out-dir_spec.ts index cff0ba13ce..04ebab5648 100644 --- a/packages/api/core/test/fast/out-dir_spec.ts +++ b/packages/api/core/test/fast/out-dir_spec.ts @@ -30,3 +30,35 @@ describe('out-dir', () => { }); }); }); + +describe('out-dir-dist', () => { + const DIR = __dirname; + + describe('getCurrentOutDir', () => { + it('resolves to the dist directory when dist is declared', () => { + expect( + getCurrentOutDir(DIR, { + outDir: 'dist', + } as ResolvedForgeConfig) + ).to.equal(`${DIR}${path.sep}dist`); + }); + + it('resolves to the provided identifier', () => { + expect( + getCurrentOutDir(DIR, { + buildIdentifier: 'bar', + outDir: 'dist', + } as ResolvedForgeConfig) + ).to.equal(`${DIR}${path.sep}dist${path.sep}bar`); + }); + + it('resolves to the return value of provided identifier getter', () => { + expect( + getCurrentOutDir(DIR, { + buildIdentifier: () => 'thing', + outDir: 'dist', + } as ResolvedForgeConfig) + ).to.equal(`${DIR}${path.sep}dist${path.sep}thing`); + }); + }); +}); diff --git a/packages/api/core/test/fast/publish_spec.ts b/packages/api/core/test/fast/publish_spec.ts index d4c471c2e1..f66dfe0b93 100644 --- a/packages/api/core/test/fast/publish_spec.ts +++ b/packages/api/core/test/fast/publish_spec.ts @@ -112,7 +112,7 @@ describe('publish', () => { }); it('should call the resolved publisher with the appropriate args', async () => { - makeStub.onCall(0).callsArgWith(1, [{ artifacts: ['artifact1', 'artifact2'] }]); + makeStub.onCall(0).callsArgWith(2, [{ artifacts: ['artifact1', 'artifact2'] }]); await publish({ dir: __dirname, interactive: false, @@ -136,7 +136,7 @@ describe('publish', () => { }); it('should call the provided publisher with the appropriate args', async () => { - makeStub.onCall(0).callsArgWith(1, [{ artifacts: ['artifact1', 'artifact2'] }]); + makeStub.onCall(0).callsArgWith(2, [{ artifacts: ['artifact1', 'artifact2'] }]); await publish({ dir: __dirname, interactive: false, @@ -234,8 +234,8 @@ describe('publish', () => { describe('when creating a dry run', () => { beforeEach(async () => { - makeStub.onCall(0).callsArgWith(1, fakeMake('darwin')); - makeStub.onCall(1).callsArgWith(1, fakeMake('win32')); + makeStub.onCall(0).callsArgWith(2, fakeMake('darwin')); + makeStub.onCall(1).callsArgWith(2, fakeMake('win32')); const dryPath = path.resolve(dir, 'out', 'publish-dry-run'); await fs.mkdirs(dryPath); diff --git a/packages/api/core/test/fast/upgrade-forge-config_spec.ts b/packages/api/core/test/fast/upgrade-forge-config_spec.ts index ef04adb0c6..5e95123a64 100644 --- a/packages/api/core/test/fast/upgrade-forge-config_spec.ts +++ b/packages/api/core/test/fast/upgrade-forge-config_spec.ts @@ -168,16 +168,4 @@ describe('updateUpgradedForgeDevDeps', () => { expect(actual.find((dep) => dep.startsWith('@electron-forge/publisher-github'))).to.not.equal(undefined); expect(actual.find((dep) => dep.startsWith('@electron-forge/publisher-snapcraft'))).to.not.equal(undefined); }); - - it('adds electron-compile plugin to devDependencies when electron-prebuilt-compile is in devDependencies', () => { - const packageJSON = merge({}, skeletonPackageJSON, { - devDependencies: { - 'electron-prebuilt-compile': '2.0.0', - }, - }); - - const actual = updateUpgradedForgeDevDeps(packageJSON, []); - expect(actual, JSON.stringify(actual)).to.have.lengthOf(1); - expect(actual[0]).to.match(/^@electron-forge\/plugin-compile/); - }); }); diff --git a/packages/api/core/test/fixture/dummy_default_esm_conf/forge.config.js b/packages/api/core/test/fixture/dummy_default_esm_conf/forge.config.js new file mode 100644 index 0000000000..30fa0b6f35 --- /dev/null +++ b/packages/api/core/test/fixture/dummy_default_esm_conf/forge.config.js @@ -0,0 +1,5 @@ +// eslint-disable-next-line node/no-unsupported-features/es-syntax +export default { + buildIdentifier: 'esm', + defaultResolved: true, +}; diff --git a/packages/api/core/test/fixture/dummy_default_esm_conf/package.json b/packages/api/core/test/fixture/dummy_default_esm_conf/package.json new file mode 100644 index 0000000000..d4ca9d3739 --- /dev/null +++ b/packages/api/core/test/fixture/dummy_default_esm_conf/package.json @@ -0,0 +1,17 @@ +{ + "name": "", + "productName": "", + "version": "1.0.0", + "description": "", + "main": "src/index.js", + "type": "module", + "scripts": { + "start": "electron-forge start" + }, + "keywords": [], + "author": "", + "license": "MIT", + "devDependencies": { + "electron-prebuilt": "9.9.9" + } +} diff --git a/packages/api/core/test/fixture/dummy_default_js_conf/package.json b/packages/api/core/test/fixture/dummy_default_js_conf/package.json index ca2374229b..f59c18baee 100644 --- a/packages/api/core/test/fixture/dummy_default_js_conf/package.json +++ b/packages/api/core/test/fixture/dummy_default_js_conf/package.json @@ -11,6 +11,6 @@ "author": "", "license": "MIT", "devDependencies": { - "electron-prebuilt": "9.9.9" + "electron": "99.99.99" } } diff --git a/packages/api/core/test/fixture/dummy_default_ts_conf/package.json b/packages/api/core/test/fixture/dummy_default_ts_conf/package.json index 6339a1a841..da951252fb 100644 --- a/packages/api/core/test/fixture/dummy_default_ts_conf/package.json +++ b/packages/api/core/test/fixture/dummy_default_ts_conf/package.json @@ -12,6 +12,6 @@ "license": "MIT", "devDependencies": { "@electron-forge/shared-types": "*", - "electron-prebuilt": "9.9.9" + "electron": "99.99.99" } } diff --git a/packages/api/core/test/fixture/dummy_js_conf/package.json b/packages/api/core/test/fixture/dummy_js_conf/package.json index f04c0add9d..65fa32fe5e 100644 --- a/packages/api/core/test/fixture/dummy_js_conf/package.json +++ b/packages/api/core/test/fixture/dummy_js_conf/package.json @@ -14,6 +14,6 @@ "forge": "./forge.different.config.js" }, "devDependencies": { - "electron-prebuilt": "9.9.9" + "electron": "99.99.99" } } diff --git a/packages/api/core/test/fixture/dummy_ts_conf/package.json b/packages/api/core/test/fixture/dummy_ts_conf/package.json index df0eaf8be0..fe524262eb 100644 --- a/packages/api/core/test/fixture/dummy_ts_conf/package.json +++ b/packages/api/core/test/fixture/dummy_ts_conf/package.json @@ -15,6 +15,6 @@ }, "devDependencies": { "@electron-forge/shared-types": "*", - "electron-prebuilt": "9.9.9" + "electron": "99.99.99" } } diff --git a/packages/api/core/test/slow/api_spec_slow.ts b/packages/api/core/test/slow/api_spec_slow.ts index 03d6fb1d0e..2b07dbc0a3 100644 --- a/packages/api/core/test/slow/api_spec_slow.ts +++ b/packages/api/core/test/slow/api_spec_slow.ts @@ -395,7 +395,7 @@ describe('Electron Forge API', () => { // eslint-disable-next-line @typescript-eslint/no-explicit-any ...options: any[] ) { - describe(`make (with target=${path.basename(path.dirname(target().name))})`, async () => { + describe(`make (with target=${target().name})`, async () => { before(async () => { await updatePackageJSON(dir, async (packageJSON) => { packageJSON.config.forge.makers = [target() as IForgeResolvableMaker]; diff --git a/packages/external/create-electron-app/package.json b/packages/external/create-electron-app/package.json index da383b5f60..a474fcaa7e 100644 --- a/packages/external/create-electron-app/package.json +++ b/packages/external/create-electron-app/package.json @@ -1,13 +1,13 @@ { "name": "create-electron-app", - "version": "6.4.2", + "version": "7.4.0", "description": "Create Electron App", "main": "dist/index.js", "typings": "dist/index.d.ts", "author": "Samuel Attard", "license": "MIT", "dependencies": { - "@electron-forge/cli": "6.4.2" + "@electron-forge/cli": "7.4.0" }, "bin": { "create-electron-app": "dist/index.js" diff --git a/packages/maker/appx/package.json b/packages/maker/appx/package.json index b52087d33a..c1df0b535c 100644 --- a/packages/maker/appx/package.json +++ b/packages/maker/appx/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/maker-appx", - "version": "6.4.2", + "version": "7.4.0", "description": "AppX maker for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -12,11 +12,11 @@ "mocha": "^9.0.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/maker-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2", + "@electron-forge/maker-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0", "cross-spawn": "^7.0.3", "fs-extra": "^10.0.0", "parse-author": "^2.0.0" diff --git a/packages/maker/appx/src/MakerAppX.ts b/packages/maker/appx/src/MakerAppX.ts index 84d1b2c1e7..9b6a057775 100644 --- a/packages/maker/appx/src/MakerAppX.ts +++ b/packages/maker/appx/src/MakerAppX.ts @@ -110,7 +110,7 @@ export default class MakerAppX extends MakerBase { opts.devCert = await createDefaultCertificate(opts.publisher, { certFilePath: outPath, program: opts }); } - if (opts.packageVersion.includes('-')) { + if (/[-+]/.test(opts.packageVersion)) { if (opts.makeVersionWinStoreCompatible) { opts.packageVersion = this.normalizeWindowsVersion(opts.packageVersion); } else { diff --git a/packages/maker/base/package.json b/packages/maker/base/package.json index 019890748a..ac401f6b35 100644 --- a/packages/maker/base/package.json +++ b/packages/maker/base/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/maker-base", - "version": "6.4.2", + "version": "7.4.0", "description": "Base maker for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -13,10 +13,10 @@ "sinon": "^13.0.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/shared-types": "6.4.2", + "@electron-forge/shared-types": "7.4.0", "fs-extra": "^10.0.0", "which": "^2.0.2" }, diff --git a/packages/maker/base/src/Maker.ts b/packages/maker/base/src/Maker.ts index ac7fc3a71b..672e88c73e 100644 --- a/packages/maker/base/src/Maker.ts +++ b/packages/maker/base/src/Maker.ts @@ -93,6 +93,11 @@ export default abstract class Maker implements IForgeMaker { return true; } + clone(): Maker { + const MakerClass = (this as any).constructor; + return new MakerClass(this.configOrConfigFetcher, this.platformsToMakeOn); + } + /** * Makers must implement this method and return an array of absolute paths * to the artifacts generated by your maker @@ -169,7 +174,7 @@ export default abstract class Maker implements IForgeMaker { * prerelease information for use in Windows apps. */ normalizeWindowsVersion(version: string): string { - const noPrerelease = version.replace(/-.*/, ''); + const noPrerelease = version.replace(/[-+].*/, ''); return `${noPrerelease}.0`; } } diff --git a/packages/maker/base/test/version_spec.ts b/packages/maker/base/test/version_spec.ts index 184ead56ea..9b2dbe4e60 100644 --- a/packages/maker/base/test/version_spec.ts +++ b/packages/maker/base/test/version_spec.ts @@ -16,6 +16,11 @@ describe('normalizeWindowsVersion', () => { expect(maker.normalizeWindowsVersion(version)).to.equal('1.0.0.0'); } }); + it('removes everything after the plus sign', () => { + for (const version of ['1.0.0-alpha+001', '1.0.0+20130313144700', '1.0.0-beta+exp.sha.5114f85', '1.0.0+21AF26D3----117B344092BD']) { + expect(maker.normalizeWindowsVersion(version)).to.equal('1.0.0.0'); + } + }); it('does not truncate the version when there is no dash', () => { expect(maker.normalizeWindowsVersion('2.0.0')).to.equal('2.0.0.0'); }); diff --git a/packages/maker/deb/package.json b/packages/maker/deb/package.json index ee655ca06b..8e39e020af 100644 --- a/packages/maker/deb/package.json +++ b/packages/maker/deb/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/maker-deb", - "version": "6.4.2", + "version": "7.4.0", "description": "Deb maker for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -15,11 +15,11 @@ "sinon": "^13.0.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/maker-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2" + "@electron-forge/maker-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0" }, "optionalDependencies": { "electron-installer-debian": "^3.2.0" diff --git a/packages/maker/dmg/package.json b/packages/maker/dmg/package.json index 39fe083970..ffd64eca27 100644 --- a/packages/maker/dmg/package.json +++ b/packages/maker/dmg/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/maker-dmg", - "version": "6.4.2", + "version": "7.4.0", "description": "DMG maker for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -19,11 +19,11 @@ "sinon": "^13.0.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/maker-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2", + "@electron-forge/maker-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0", "fs-extra": "^10.0.0" }, "optionalDependencies": { diff --git a/packages/maker/dmg/src/Config.ts b/packages/maker/dmg/src/Config.ts index 98c254d561..021cb6a649 100644 --- a/packages/maker/dmg/src/Config.ts +++ b/packages/maker/dmg/src/Config.ts @@ -8,7 +8,7 @@ export interface DMGContents { y: number; type: 'link' | 'file' | 'position'; path: string; - name: string; + name?: string; } export interface WindowPositionOptions { @@ -69,7 +69,7 @@ export interface MakerDMGConfig { */ contents?: DMGContents[] | ((opts: MakerDMGConfig & AdditionalDMGOptions) => DMGContents[]); /** - * Additional options to pass through to node-appdmng + * Additional options to pass through to node-appdmg * * All available options are available in the [`appdmg` docs](https://github.com/LinusU/node-appdmg) */ diff --git a/packages/maker/flatpak/package.json b/packages/maker/flatpak/package.json index f570551f5b..2512239e36 100644 --- a/packages/maker/flatpak/package.json +++ b/packages/maker/flatpak/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/maker-flatpak", - "version": "6.4.2", + "version": "7.4.0", "description": "Flatpak maker for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -19,11 +19,11 @@ "sinon": "^13.0.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/maker-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2", + "@electron-forge/maker-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0", "fs-extra": "^10.0.0" }, "optionalDependencies": { diff --git a/packages/maker/flatpak/src/Config.ts b/packages/maker/flatpak/src/Config.ts index da349203ea..f954e61f40 100644 --- a/packages/maker/flatpak/src/Config.ts +++ b/packages/maker/flatpak/src/Config.ts @@ -70,7 +70,7 @@ export interface MakerFlatpakOptionsConfig { * into the flatpak, and dest should be the path inside the app install * prefix (e.g. /share/applications/) * - * Application assets and code will be fully handled by electron-packager, + * Application assets and code will be fully handled by @electron/packager, * but this is a useful way to install things such as appstream metadata * for an app, or dbus configuration files. */ diff --git a/packages/maker/pkg/package.json b/packages/maker/pkg/package.json index 02e9e1e493..22c3a4246f 100644 --- a/packages/maker/pkg/package.json +++ b/packages/maker/pkg/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/maker-pkg", - "version": "6.4.2", + "version": "7.4.0", "description": "PKG maker for Electron Forge", "repository": "https://github.com/electron/forge", "license": "MIT", @@ -14,11 +14,11 @@ "sinon": "^13.0.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/maker-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2", + "@electron-forge/maker-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0", "@electron/osx-sign": "^1.0.5" }, "publishConfig": { diff --git a/packages/maker/rpm/package.json b/packages/maker/rpm/package.json index 0aa84a2b29..24eb3263a5 100644 --- a/packages/maker/rpm/package.json +++ b/packages/maker/rpm/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/maker-rpm", - "version": "6.4.2", + "version": "7.4.0", "description": "Rpm maker for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -19,11 +19,11 @@ "sinon": "^13.0.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/maker-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2" + "@electron-forge/maker-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0" }, "optionalDependencies": { "electron-installer-redhat": "^3.2.0" diff --git a/packages/maker/snap/package.json b/packages/maker/snap/package.json index 84a6a450bc..95ac3a1586 100644 --- a/packages/maker/snap/package.json +++ b/packages/maker/snap/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/maker-snap", - "version": "6.4.2", + "version": "7.4.0", "description": "Snap maker for Electron Forge", "repository": "https://github.com/electron/forge", "license": "MIT", @@ -18,11 +18,11 @@ "sinon": "^13.0.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/maker-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2" + "@electron-forge/maker-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0" }, "optionalDependencies": { "electron-installer-snap": "^5.2.0" diff --git a/packages/maker/squirrel/package.json b/packages/maker/squirrel/package.json index 7408c0f5ed..1934e481bc 100644 --- a/packages/maker/squirrel/package.json +++ b/packages/maker/squirrel/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/maker-squirrel", - "version": "6.4.2", + "version": "7.4.0", "description": "Squirrel maker for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -12,15 +12,15 @@ "mocha": "^9.0.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/maker-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2", + "@electron-forge/maker-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0", "fs-extra": "^10.0.0" }, "optionalDependencies": { - "electron-winstaller": "^5.0.0" + "electron-winstaller": "^5.3.0" }, "publishConfig": { "access": "public" diff --git a/packages/maker/wix/package.json b/packages/maker/wix/package.json index bee8038fc3..aa97cbe940 100644 --- a/packages/maker/wix/package.json +++ b/packages/maker/wix/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/maker-wix", - "version": "6.4.2", + "version": "7.4.0", "description": "Wix maker for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -12,13 +12,13 @@ "mocha": "^9.0.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/maker-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2", + "@electron-forge/maker-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0", "chalk": "^4.0.0", - "electron-wix-msi": "^5.0.0", + "electron-wix-msi": "^5.1.3", "log-symbols": "^4.0.0", "parse-author": "^2.0.0" }, diff --git a/packages/maker/zip/package.json b/packages/maker/zip/package.json index 1b2b7c6f8a..975808cd66 100644 --- a/packages/maker/zip/package.json +++ b/packages/maker/zip/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/maker-zip", - "version": "6.4.2", + "version": "7.4.0", "description": "ZIP maker for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -13,11 +13,11 @@ "sinon": "^13.0.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/maker-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2", + "@electron-forge/maker-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0", "cross-zip": "^4.0.0", "fs-extra": "^10.0.0", "got": "^11.8.5" diff --git a/packages/maker/zip/src/MakerZIP.ts b/packages/maker/zip/src/MakerZIP.ts index 34e06b59a2..0772ebdece 100644 --- a/packages/maker/zip/src/MakerZIP.ts +++ b/packages/maker/zip/src/MakerZIP.ts @@ -48,7 +48,9 @@ export default class MakerZIP extends MakerBase { if (targetPlatform === 'darwin' && this.config.macUpdateManifestBaseUrl) { const parsed = new URL(this.config.macUpdateManifestBaseUrl); parsed.pathname += '/RELEASES.json'; - const response = await got.get(parsed.toString()); + const response = await got.get(parsed.toString(), { + throwHttpErrors: false, + }); let currentValue: SquirrelMacReleases = { currentRelease: '', releases: [], diff --git a/packages/maker/zip/test/MakerZip_spec.ts b/packages/maker/zip/test/MakerZip_spec.ts index 54cb96cf4d..17f8073e38 100644 --- a/packages/maker/zip/test/MakerZip_spec.ts +++ b/packages/maker/zip/test/MakerZip_spec.ts @@ -143,6 +143,30 @@ describe('MakerZip', () => { expect(foo.releases[0].updateTo).to.have.property('url'); }); + it('should generate a valid RELEASES.json manifest with no current file', async () => { + maker.config = { + macUpdateManifestBaseUrl: 'fake://test/foo', + }; + getStub.returns(Promise.resolve({ statusCode: 404, body: 'GARBAGE' })); + const output = await maker.make({ + dir: darwinDir, + makeDir, + appName, + targetArch, + targetPlatform: 'darwin', + packageJSON, + forgeConfig: null as any, + }); + + const foo = await fs.readJson(output[1]); + expect(foo).to.have.property('currentRelease', '1.2.3'); + expect(foo).to.have.property('releases'); + expect(foo.releases).to.be.an('array').with.lengthOf(1); + expect(foo.releases[0]).to.have.property('version'); + expect(foo.releases[0]).to.have.property('updateTo'); + expect(foo.releases[0].updateTo).to.have.property('url'); + }); + it('should extend the current RELEASES.json manifest if it exists', async () => { maker.config = { macUpdateManifestBaseUrl: 'fake://test/foo', diff --git a/packages/plugin/auto-unpack-natives/package.json b/packages/plugin/auto-unpack-natives/package.json index 983ca895b1..f73b370e6d 100644 --- a/packages/plugin/auto-unpack-natives/package.json +++ b/packages/plugin/auto-unpack-natives/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/plugin-auto-unpack-natives", - "version": "6.4.2", + "version": "7.4.0", "description": "Auto Unpack Natives plugin for Electron Forge, automatically adds native node modules to asar.unpacked", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -8,11 +8,11 @@ "main": "dist/AutoUnpackNativesPlugin.js", "typings": "dist/AutoUnpackNativesPlugin.d.ts", "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/plugin-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2" + "@electron-forge/plugin-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0" }, "publishConfig": { "access": "public" diff --git a/packages/plugin/base/package.json b/packages/plugin/base/package.json index c96efbacae..8889b963b9 100644 --- a/packages/plugin/base/package.json +++ b/packages/plugin/base/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/plugin-base", - "version": "6.4.2", + "version": "7.4.0", "description": "Base plugin for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -12,10 +12,10 @@ "mocha": "^9.0.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/shared-types": "6.4.2" + "@electron-forge/shared-types": "7.4.0" }, "publishConfig": { "access": "public" diff --git a/packages/plugin/base/src/Plugin.ts b/packages/plugin/base/src/Plugin.ts index fc6bb43bcc..f3b3c2db2a 100644 --- a/packages/plugin/base/src/Plugin.ts +++ b/packages/plugin/base/src/Plugin.ts @@ -52,7 +52,7 @@ export default abstract class Plugin implements IForgePlugin { // This method is not type safe internally, but is type safe for consumers // @internal export const namedHookWithTaskFn = ( - hookFn: (task: ForgeListrTask | null, ...args: Parameters>) => ReturnType>, + hookFn: (task: ForgeListrTask | null, ...args: Parameters>) => ReturnType>, name: string ): ForgeHookFn => { function namedHookWithTaskInner(this: ForgeListrTask | null, ...args: any[]) { diff --git a/packages/plugin/compile/README.md b/packages/plugin/compile/README.md deleted file mode 100644 index 40565d70ba..0000000000 --- a/packages/plugin/compile/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## plugin-compile - -_Note: This plugin is deprecated in Forge 6.0.0 and is slated for removal._ diff --git a/packages/plugin/compile/package.json b/packages/plugin/compile/package.json deleted file mode 100644 index d83d6659c2..0000000000 --- a/packages/plugin/compile/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "@electron-forge/plugin-compile", - "version": "6.4.2", - "description": "Electron Compile plugin for Electron Forge", - "repository": "https://github.com/electron/forge", - "author": "Samuel Attard", - "license": "MIT", - "main": "dist/CompilePlugin.js", - "typings": "dist/CompilePlugin.d.ts", - "devDependencies": { - "chai": "^4.3.3", - "mocha": "^9.0.1" - }, - "engines": { - "node": ">= 14.17.5" - }, - "dependencies": { - "@electron-forge/plugin-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2", - "fs-extra": "^10.0.0" - }, - "publishConfig": { - "access": "public" - }, - "files": [ - "dist", - "src" - ] -} diff --git a/packages/plugin/compile/src/CompilePlugin.ts b/packages/plugin/compile/src/CompilePlugin.ts deleted file mode 100644 index 88ef84234c..0000000000 --- a/packages/plugin/compile/src/CompilePlugin.ts +++ /dev/null @@ -1,38 +0,0 @@ -import * as path from 'path'; - -import { PluginBase, StartOptions } from '@electron-forge/plugin-base'; -import { ForgeHookMap, ResolvedForgeConfig } from '@electron-forge/shared-types'; - -import { CompilePluginConfig } from './Config'; -import { createCompileHook } from './lib/compile-hook'; - -export default class CompileElectronPlugin extends PluginBase { - name = 'electron-compile'; - - private dir!: string; - - constructor(c: CompilePluginConfig) { - super(c); - - this.init = this.init.bind(this); - this.getHooks = this.getHooks.bind(this); - this.startLogic = this.startLogic.bind(this); - } - - init(dir: string, config: ResolvedForgeConfig): void { - super.init(dir, config); - this.dir = dir; - } - - getHooks(): ForgeHookMap { - return { - packageAfterCopy: createCompileHook(this.dir), - }; - } - - async startLogic(_opts: StartOptions): Promise { - return [process.execPath, path.resolve(this.dir, 'node_modules/electron-prebuilt-compile/lib/cli')]; - } -} - -export { CompileElectronPlugin, CompilePluginConfig }; diff --git a/packages/plugin/compile/src/Config.ts b/packages/plugin/compile/src/Config.ts deleted file mode 100644 index 7d06e771af..0000000000 --- a/packages/plugin/compile/src/Config.ts +++ /dev/null @@ -1,2 +0,0 @@ -// eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface CompilePluginConfig {} diff --git a/packages/plugin/compile/src/lib/compile-hook.ts b/packages/plugin/compile/src/lib/compile-hook.ts deleted file mode 100644 index 88265502e2..0000000000 --- a/packages/plugin/compile/src/lib/compile-hook.ts +++ /dev/null @@ -1,43 +0,0 @@ -import path from 'path'; - -import { ForgeHookFn } from '@electron-forge/shared-types'; -import fs from 'fs-extra'; - -export const createCompileHook = - (originalDir: string): ForgeHookFn<'packageAfterCopy'> => - async (_config, buildPath): Promise => { - // eslint-disable-next-line @typescript-eslint/no-var-requires - const compileCLI = require(path.resolve(originalDir, 'node_modules/electron-compile/lib/cli.js')); - - async function compileAndShim(appDir: string) { - for (const entry of await fs.readdir(appDir)) { - if (!entry.match(/^(node_modules|bower_components)$/)) { - const fullPath = path.join(appDir, entry); - - if ((await fs.stat(fullPath)).isDirectory()) { - const { log } = console; - console.log = () => { - /* disable log function for electron-compile */ - }; - await compileCLI.main(appDir, [fullPath]); - console.log = log; - } - } - } - - const packageJSON = await fs.readJson(path.resolve(appDir, 'package.json')); - - const index = packageJSON.main || 'index.js'; - packageJSON.originalMain = index; - packageJSON.main = 'es6-shim.js'; - - await fs.writeFile( - path.join(appDir, 'es6-shim.js'), - await fs.readFile(path.join(path.resolve(originalDir, 'node_modules/electron-compile/lib/es6-shim.js')), 'utf8') - ); - - await fs.writeJson(path.join(appDir, 'package.json'), packageJSON, { spaces: 2 }); - } - - await compileAndShim(buildPath); - }; diff --git a/packages/plugin/electronegativity/package.json b/packages/plugin/electronegativity/package.json index d133174164..fdbf0749d9 100644 --- a/packages/plugin/electronegativity/package.json +++ b/packages/plugin/electronegativity/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/plugin-electronegativity", - "version": "6.4.2", + "version": "7.4.0", "description": "Integrate Electronegativity into the Electron Forge workflow", "repository": { "type": "git", @@ -12,12 +12,12 @@ "main": "dist/ElectronegativityPlugin.js", "typings": "dist/ElectronegativityPlugin.d.ts", "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { "@doyensec/electronegativity": "^1.9.1", - "@electron-forge/plugin-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2" + "@electron-forge/plugin-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0" }, "publishConfig": { "access": "public" diff --git a/packages/plugin/electronegativity/src/ElectronegativityPlugin.ts b/packages/plugin/electronegativity/src/ElectronegativityPlugin.ts index 36ff12d3aa..32b25e36c9 100644 --- a/packages/plugin/electronegativity/src/ElectronegativityPlugin.ts +++ b/packages/plugin/electronegativity/src/ElectronegativityPlugin.ts @@ -38,7 +38,7 @@ export type ElectronegativityConfig = { * * Defaults to `false`. */ - isRelative?: false; + isRelative?: boolean; /** * Specify a range to run Electron upgrade checks. For example, `'7..8'` checks an upgrade * from Electron 7 to Electron 8. @@ -49,7 +49,7 @@ export type ElectronegativityConfig = { * * Defaults to empty array (`[]`) */ - parserPlugins: Array; + parserPlugins?: Array; }; export default class ElectronegativityPlugin extends PluginBase { @@ -65,6 +65,7 @@ export default class ElectronegativityPlugin extends PluginBase", @@ -28,11 +28,11 @@ "@electron/fuses": ">=1.0.0" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/plugin-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2" + "@electron-forge/plugin-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0" }, "publishConfig": { "access": "public" diff --git a/packages/plugin/fuses/src/util/getElectronExecutablePath.ts b/packages/plugin/fuses/src/util/getElectronExecutablePath.ts index 003a542b85..1757f93a92 100644 --- a/packages/plugin/fuses/src/util/getElectronExecutablePath.ts +++ b/packages/plugin/fuses/src/util/getElectronExecutablePath.ts @@ -9,8 +9,10 @@ type GetElectronExecutablePathParams = { }; export function getElectronExecutablePath({ appName, basePath, platform }: GetElectronExecutablePathParams): string { - return path.join( - basePath, - ['darwin', 'mas'].includes(platform) ? path.join('MacOS', appName) : [appName, process.platform === 'win32' ? '.exe' : ''].join('') - ); + if (['darwin', 'mas'].includes(platform)) { + return path.join(basePath, 'MacOS', appName); + } + + const suffix = platform === 'win32' ? '.exe' : ''; + return path.join(basePath, `${appName}${suffix}`); } diff --git a/packages/plugin/local-electron/package.json b/packages/plugin/local-electron/package.json index ca81da662c..fc6dd40feb 100644 --- a/packages/plugin/local-electron/package.json +++ b/packages/plugin/local-electron/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/plugin-local-electron", - "version": "6.4.2", + "version": "7.4.0", "description": "Local Electron plugin for Electron Forge, let's you use a local build of Electron", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -8,11 +8,11 @@ "main": "dist/LocalElectronPlugin.js", "typings": "dist/LocalElectronPlugin.d.ts", "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/plugin-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2", + "@electron-forge/plugin-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0", "fs-extra": "^10.0.0" }, "devDependencies": { diff --git a/packages/plugin/vite/package.json b/packages/plugin/vite/package.json index 561f584bdf..c3f80b91bc 100644 --- a/packages/plugin/vite/package.json +++ b/packages/plugin/vite/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/plugin-vite", - "version": "6.4.2", + "version": "7.4.0", "description": "Vite plugin for Electron Forge, lets you use Vite directly in your tooling", "repository": { "type": "git", @@ -12,28 +12,30 @@ "main": "dist/VitePlugin.js", "typings": "dist/VitePlugin.d.ts", "scripts": { - "test": "xvfb-maybe mocha --config ../../../.mocharc.js test/**/*_spec.ts" + "test": "xvfb-maybe mocha --config ../../../.mocharc.js test/**/*_spec.ts test/*_spec.ts" + }, + "dependencies": { + "@electron-forge/core-utils": "7.4.0", + "@electron-forge/plugin-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0", + "@electron-forge/web-multi-logger": "7.4.0", + "chalk": "^4.0.0", + "debug": "^4.3.1", + "fs-extra": "^10.0.0", + "listr2": "^7.0.2" }, "devDependencies": { + "@electron/packager": "^18.3.1", "@malept/cross-spawn-promise": "^2.0.0", "@types/node": "^18.0.3", "chai": "^4.3.3", - "fs-extra": "^10.0.0", "mocha": "^9.0.1", + "vite": "^5.0.12", "which": "^2.0.2", "xvfb-maybe": "^0.2.1" }, "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "dependencies": { - "@electron-forge/core-utils": "6.4.2", - "@electron-forge/plugin-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2", - "@electron-forge/web-multi-logger": "6.4.2", - "chalk": "^4.0.0", - "debug": "^4.3.1", - "vite": "^4.1.1" + "node": ">= 16.4.0" }, "publishConfig": { "access": "public" diff --git a/packages/plugin/vite/src/Config.ts b/packages/plugin/vite/src/Config.ts index 2f1ffd3601..bf20f6386a 100644 --- a/packages/plugin/vite/src/Config.ts +++ b/packages/plugin/vite/src/Config.ts @@ -1,3 +1,4 @@ +// eslint-disable-next-line node/no-unpublished-import import type { LibraryOptions } from 'vite'; export interface VitePluginBuildConfig { @@ -8,14 +9,14 @@ export interface VitePluginBuildConfig { /** * Vite config file path. */ - config?: string; + config: string; } export interface VitePluginRendererConfig { /** - * Human friendly name of your entry point + * Human friendly name of your entry point. */ - name: string; + name?: string; /** * Vite config file path. */ @@ -23,12 +24,16 @@ export interface VitePluginRendererConfig { } export interface VitePluginConfig { + // Reserved option, may support modification in the future. + // @defaultValue '.vite' + // baseDir?: string; + /** * Build anything such as Main process, Preload scripts and Worker process, etc. */ build: VitePluginBuildConfig[]; /** - * Renderer process. + * Renderer process Vite configs. */ renderer: VitePluginRendererConfig[]; } diff --git a/packages/plugin/vite/src/ViteConfig.ts b/packages/plugin/vite/src/ViteConfig.ts index 7a65300602..b91d8abb9e 100644 --- a/packages/plugin/vite/src/ViteConfig.ts +++ b/packages/plugin/vite/src/ViteConfig.ts @@ -1,36 +1,33 @@ -import path from 'node:path'; - import debug from 'debug'; -import { ConfigEnv, loadConfigFromFile, mergeConfig, UserConfig } from 'vite'; - -import { VitePluginConfig } from './Config'; -import { externalBuiltins } from './util/plugins'; +// eslint-disable-next-line node/no-unpublished-import +import { loadConfigFromFile } from 'vite'; -const d = debug('electron-forge:plugin:vite:viteconfig'); +import type { VitePluginBuildConfig, VitePluginConfig, VitePluginRendererConfig } from './Config'; +// eslint-disable-next-line node/no-unpublished-import +import type { ConfigEnv, UserConfig } from 'vite'; -/** - * Vite allows zero-config runs, if the user does not provide `vite.config.js`, - * then the value of `LoadResult` will become `null`. - */ -export type LoadResult = Awaited>; +const d = debug('@electron-forge/plugin-vite:ViteConfig'); export default class ViteConfigGenerator { - private readonly baseDir: string; - - private rendererConfigCache!: Promise[]; - constructor(private readonly pluginConfig: VitePluginConfig, private readonly projectDir: string, private readonly isProd: boolean) { - this.baseDir = path.join(projectDir, '.vite'); d('Config mode:', this.mode); } - resolveConfig(config: string, configEnv: Partial = {}) { - // `command` is to be passed as an arguments when the user export a function in `vite.config.js`. + resolveConfig(buildConfig: VitePluginBuildConfig | VitePluginRendererConfig, configEnv: Partial = {}) { // @see - https://vitejs.dev/config/#conditional-config configEnv.command ??= this.isProd ? 'build' : 'serve'; - // `mode` affects `.env.[mode]` file loading. + // `mode` affects `.env.[mode]` file load. configEnv.mode ??= this.mode; - return loadConfigFromFile(configEnv as ConfigEnv, config); + + // Hack! Pass the forge runtime config to the vite config file in the template. + Object.assign(configEnv, { + root: this.projectDir, + forgeConfig: this.pluginConfig, + forgeConfigSelf: buildConfig, + }); + + // `configEnv` is to be passed as an arguments when the user export a function in `vite.config.js`. + return loadConfigFromFile(configEnv as ConfigEnv, buildConfig.config); } get mode(): string { @@ -40,60 +37,15 @@ export default class ViteConfigGenerator { return this.isProd ? 'production' : 'development'; } - async getDefines(): Promise> { - const defines: Record = {}; - const rendererConfigs = await this.getRendererConfig(); - for (const [index, userConfig] of rendererConfigs.entries()) { - const name = this.pluginConfig.renderer[index].name; - if (!name) { - continue; - } - const NAME = name.toUpperCase().replace(/ /g, '_'); - // `server.port` is set in `launchRendererDevServers` in `VitePlugin.ts`. - defines[`${NAME}_VITE_DEV_SERVER_URL`] = this.isProd ? undefined : JSON.stringify(`http://localhost:${userConfig?.server?.port}`); - defines[`${NAME}_VITE_NAME`] = JSON.stringify(name); - } - return defines; - } - - async getBuildConfig(watch = false): Promise { + async getBuildConfig(): Promise { if (!Array.isArray(this.pluginConfig.build)) { throw new Error('"config.build" must be an Array'); } - const define = await this.getDefines(); - const plugins = [externalBuiltins()]; const configs = this.pluginConfig.build - .filter(({ entry, config }) => entry || config) - .map>(async ({ entry, config }) => { - const defaultConfig: UserConfig = { - // Ensure that each build config loads the .env file correctly. - mode: this.mode, - build: { - lib: entry - ? { - entry, - // Electron can only support cjs. - formats: ['cjs'], - fileName: () => '[name].js', - } - : undefined, - // Prevent multiple builds from interfering with each other. - emptyOutDir: false, - // 🚧 Multiple builds may conflict. - outDir: path.join(this.baseDir, 'build'), - watch: watch ? {} : undefined, - }, - clearScreen: false, - define, - plugins, - }; - if (config) { - const loadResult = await this.resolveConfig(config); - return mergeConfig(defaultConfig, loadResult?.config ?? {}); - } - return defaultConfig; - }); + // Prevent load the default `vite.config.js` file. + .filter(({ config }) => config) + .map>(async (buildConfig) => (await this.resolveConfig(buildConfig))?.config ?? {}); return await Promise.all(configs); } @@ -103,20 +55,9 @@ export default class ViteConfigGenerator { throw new Error('"config.renderer" must be an Array'); } - const configs = (this.rendererConfigCache ??= this.pluginConfig.renderer.map(async ({ name, config }) => { - const defaultConfig: UserConfig = { - // Ensure that each build config loads the .env file correctly. - mode: this.mode, - // Make sure that Electron can be loaded into the local file using `loadFile` after packaging. - base: './', - build: { - outDir: path.join(this.baseDir, 'renderer', name), - }, - clearScreen: false, - }; - const loadResult = (await this.resolveConfig(config)) ?? { path: '', config: {}, dependencies: [] }; - return mergeConfig(defaultConfig, loadResult.config); - })); + const configs = this.pluginConfig.renderer + .filter(({ config }) => config) + .map>(async (buildConfig) => (await this.resolveConfig(buildConfig))?.config ?? {}); return await Promise.all(configs); } diff --git a/packages/plugin/vite/src/VitePlugin.ts b/packages/plugin/vite/src/VitePlugin.ts index 0625915855..1df51a905f 100644 --- a/packages/plugin/vite/src/VitePlugin.ts +++ b/packages/plugin/vite/src/VitePlugin.ts @@ -1,17 +1,23 @@ -import fs from 'node:fs/promises'; -import { AddressInfo } from 'node:net'; import path from 'node:path'; import { namedHookWithTaskFn, PluginBase } from '@electron-forge/plugin-base'; -import { ForgeMultiHookMap, StartResult } from '@electron-forge/shared-types'; +import chalk from 'chalk'; import debug from 'debug'; -// eslint-disable-next-line node/no-extraneous-import -import { RollupWatcher } from 'rollup'; +import fs from 'fs-extra'; +import { PRESET_TIMER } from 'listr2'; +// eslint-disable-next-line node/no-unpublished-import import { default as vite } from 'vite'; -import { VitePluginConfig } from './Config'; +import { getFlatDependencies } from './util/package'; +import { onBuildDone } from './util/plugins'; import ViteConfigGenerator from './ViteConfig'; +import type { VitePluginConfig } from './Config'; +import type { ForgeMultiHookMap, ResolvedForgeConfig, StartResult } from '@electron-forge/shared-types'; +import type { AddressInfo } from 'node:net'; +// eslint-disable-next-line node/no-extraneous-import +import type { RollupWatcher } from 'rollup'; + const d = debug('electron-forge:plugin:vite'); export default class VitePlugin extends PluginBase { @@ -41,7 +47,7 @@ export default class VitePlugin extends PluginBase { process.on('SIGINT' as NodeJS.Signals, (_signal) => this.exitHandler({ exit: true })); }; - private setDirectories(dir: string): void { + public setDirectories(dir: string): void { this.projectDir = dir; this.baseDir = path.join(dir, '.vite'); } @@ -55,7 +61,7 @@ export default class VitePlugin extends PluginBase { prePackage: [ namedHookWithTaskFn<'prePackage'>(async () => { this.isProd = true; - await fs.rm(this.baseDir, { recursive: true, force: true }); + await fs.remove(this.baseDir); await Promise.all([this.build(), this.buildRenderer()]); }, 'Building vite bundles'), @@ -67,14 +73,64 @@ export default class VitePlugin extends PluginBase { this.exitHandler({ cleanup: true, exit: true }); }); }, + resolveForgeConfig: this.resolveForgeConfig, + packageAfterCopy: this.packageAfterCopy, }; }; + resolveForgeConfig = async (forgeConfig: ResolvedForgeConfig): Promise => { + forgeConfig.packagerConfig ??= {}; + + if (forgeConfig.packagerConfig.ignore) { + if (typeof forgeConfig.packagerConfig.ignore !== 'function') { + console.error( + chalk.yellow(`You have set packagerConfig.ignore, the Electron Forge Vite plugin normally sets this automatically. + +Your packaged app may be larger than expected if you dont ignore everything other than the '.vite' folder`) + ); + } + return forgeConfig; + } + + forgeConfig.packagerConfig.ignore = (file: string) => { + if (!file) return false; + + // Always starts with `/` + // @see - https://github.com/electron/packager/blob/v18.1.3/src/copy-filter.ts#L89-L93 + return !file.startsWith('/.vite'); + }; + return forgeConfig; + }; + + packageAfterCopy = async (_forgeConfig: ResolvedForgeConfig, buildPath: string): Promise => { + const pj = await fs.readJson(path.resolve(this.projectDir, 'package.json')); + const flatDependencies = await getFlatDependencies(this.projectDir); + + if (!pj.main?.includes('.vite/')) { + throw new Error(`Electron Forge is configured to use the Vite plugin. The plugin expects the +"main" entry point in "package.json" to be ".vite/*" (where the plugin outputs +the generated files). Instead, it is ${JSON.stringify(pj.main)}`); + } + + if (pj.config) { + delete pj.config.forge; + } + + await fs.writeJson(path.resolve(buildPath, 'package.json'), pj, { + spaces: 2, + }); + + // Copy the dependencies in package.json + for (const dep of flatDependencies) { + await fs.copy(dep.src, path.resolve(buildPath, dep.dest)); + } + }; + startLogic = async (): Promise => { if (VitePlugin.alreadyStarted) return false; VitePlugin.alreadyStarted = true; - await fs.rm(this.baseDir, { recursive: true, force: true }); + await fs.remove(this.baseDir); return { tasks: [ @@ -83,19 +139,19 @@ export default class VitePlugin extends PluginBase { task: async () => { await this.launchRendererDevServers(); }, - options: { + rendererOptions: { persistentOutput: true, - showTimer: true, + timer: { ...PRESET_TIMER }, }, }, // The main process depends on the `server.port` of the renderer process, so the renderer process is run first. { title: 'Compiling main process code', task: async () => { - await this.build(true); + await this.build(); }, - options: { - showTimer: true, + rendererOptions: { + timer: { ...PRESET_TIMER }, }, }, ], @@ -104,42 +160,34 @@ export default class VitePlugin extends PluginBase { }; // Main process, Preload scripts and Worker process, etc. - build = async (watch = false): Promise => { - await Promise.all( - ( - await this.configGenerator.getBuildConfig(watch) - ).map((userConfig) => { - return new Promise((resolve, reject) => { - vite - .build({ - // Avoid recursive builds caused by users configuring @electron-forge/plugin-vite in Vite config file. - configFile: false, - ...userConfig, - plugins: [ - { - name: '@electron-forge/plugin-vite:start', - closeBundle() { - resolve(); - - // TODO: implement hot-restart here - }, - }, - ...(userConfig.plugins ?? []), - ], - }) - .then((result) => { - const isWatcher = (x: any): x is RollupWatcher => typeof x?.close === 'function'; - - if (isWatcher(result)) { - this.watchers.push(result); - } - - return result; - }) - .catch(reject); - }); - }) - ); + build = async (): Promise => { + const configs = await this.configGenerator.getBuildConfig(); + const buildTasks: Promise[] = []; + const isWatcher = (x: any): x is RollupWatcher => typeof x?.close === 'function'; + + for (const userConfig of configs) { + const buildTask = new Promise((resolve, reject) => { + vite + .build({ + // Avoid recursive builds caused by users configuring @electron-forge/plugin-vite in Vite config file. + configFile: false, + ...userConfig, + plugins: [onBuildDone(resolve), ...(userConfig.plugins ?? [])], + }) + .then((result) => { + if (isWatcher(result)) { + this.watchers.push(result); + } + + return result; + }) + .catch(reject); + }); + + buildTasks.push(buildTask); + } + + await Promise.all(buildTasks); }; // Renderer process @@ -165,7 +213,7 @@ export default class VitePlugin extends PluginBase { this.servers.push(viteDevServer); if (viteDevServer.httpServer) { - // Make suee that `getDefines` in VitePlugin.ts gets the correct `server.port`. (#3198) + // Make sure that `getDefines` in VitePlugin.ts gets the correct `server.port`. (#3198) const addressInfo = viteDevServer.httpServer.address(); const isAddressInfo = (x: any): x is AddressInfo => x?.address; diff --git a/packages/plugin/vite/src/util/package.ts b/packages/plugin/vite/src/util/package.ts new file mode 100644 index 0000000000..0fbb9a4a78 --- /dev/null +++ b/packages/plugin/vite/src/util/package.ts @@ -0,0 +1,108 @@ +import path from 'node:path'; + +import fs from 'fs-extra'; + +export interface Dependency { + name: string; + path: SourceAndDestination; + dependencies: Dependency[]; +} + +export interface SourceAndDestination { + src: string; + dest: string; +} + +function isRootPath(dir: string) { + // *unix or Windows root path + return dir === '/' || /^[a-zA-Z]:\\$/i.test(dir); +} + +export async function isDirectory(p: string): Promise { + try { + const stat = await fs.promises.stat(p); + return stat.isDirectory(); + } catch { + return false; + } +} + +export async function lookupNodeModulesPaths(root: string, paths: string[] = []): Promise { + if (!root) return paths; + if (!path.isAbsolute(root)) return paths; + + const p = path.join(root, 'node_modules'); + + if (await isDirectory(p)) { + paths = paths.concat(p); + } + root = path.join(root, '..'); + + return isRootPath(root) ? paths : await lookupNodeModulesPaths(root, paths); +} + +export async function resolveDependencies(root: string) { + const rootDependencies = Object.keys((await fs.readJson(path.join(root, 'package.json'))).dependencies || {}); + const resolve = async (prePath: string, dependencies: string[], collected: Map = new Map()) => + await Promise.all( + dependencies.map(async (name) => { + let curPath = prePath, + depPath = null, + packageJson = null; + while (!packageJson && !isRootPath(curPath)) { + const allNodeModules = await lookupNodeModulesPaths(curPath); + + for (const nodeModules of allNodeModules) { + depPath = path.join(nodeModules, name); + if (await fs.pathExists(depPath)) break; + } + + if (depPath) { + try { + packageJson = await fs.readJson(path.join(depPath, 'package.json')); + } catch (err) { + // lookup node_modules + curPath = path.join(curPath, '..'); + if (curPath.length < root.length) { + console.error(`not found 'node_modules' in root path: ${root}`); + throw err; + } + } + } + } + + if (!depPath || !packageJson) { + throw new Error(`find dependencies error in: ${curPath}`); + } + + const result: Dependency = { + name, + path: { + src: depPath, + dest: path.relative(root, depPath), + }, + dependencies: [], + }; + const shouldResolveDeps = !collected.has(depPath); + collected.set(depPath, result); + if (shouldResolveDeps) { + result.dependencies = await resolve(depPath, Object.keys(packageJson.dependencies || {}), collected); + } + return result; + }) + ); + return resolve(root, rootDependencies); +} + +export async function getFlatDependencies(root = process.cwd()) { + const depsTree = await resolveDependencies(root); + const depsFlat = new Map(); + + const flatten = (dep: Dependency) => { + depsFlat.set(dep.path.src, dep.path); // dedup + dep.dependencies.forEach(flatten); + }; + depsTree.forEach(flatten); + + return [...depsFlat.values()]; +} diff --git a/packages/plugin/vite/src/util/plugins.ts b/packages/plugin/vite/src/util/plugins.ts index fb5df3db1b..ca7f630bb7 100644 --- a/packages/plugin/vite/src/util/plugins.ts +++ b/packages/plugin/vite/src/util/plugins.ts @@ -1,35 +1,11 @@ -import { builtinModules } from 'node:module'; - +// eslint-disable-next-line node/no-unpublished-import import type { Plugin } from 'vite'; -/** - * `electron` and Node.js built-in modules should always be externalize. - */ -export function externalBuiltins() { - return { - name: '@electron-forge/plugin-vite:external-builtins', - config(config) { - const nativeModules = builtinModules.filter((e) => !e.startsWith('_')); - const builtins = ['electron', ...nativeModules, ...nativeModules.map((m) => `node:${m}`)]; - - config.build ??= {}; - config.build.rollupOptions ??= {}; - - let external = config.build.rollupOptions.external; - if (Array.isArray(external) || typeof external === 'string' || external instanceof RegExp) { - external = builtins.concat(external as string[]); - } else if (typeof external === 'function') { - const original = external; - external = function (source, importer, isResolved) { - if (builtins.includes(source)) { - return true; - } - return original(source, importer, isResolved); - }; - } else { - external = builtins; - } - config.build.rollupOptions.external = external; +export function onBuildDone(callback: () => void) { + return { + name: '@electron-forge/plugin-vite:build-done', + closeBundle() { + callback(); }, - }; + } as Plugin; } diff --git a/packages/plugin/vite/test/ViteConfig_spec.ts b/packages/plugin/vite/test/ViteConfig_spec.ts index 87d188342d..9ee0c4f3ab 100644 --- a/packages/plugin/vite/test/ViteConfig_spec.ts +++ b/packages/plugin/vite/test/ViteConfig_spec.ts @@ -1,91 +1,64 @@ -import { AddressInfo } from 'node:net'; +import { builtinModules } from 'node:module'; import path from 'node:path'; import { expect } from 'chai'; -import { UserConfig, default as vite, ViteDevServer } from 'vite'; -import { VitePluginConfig } from '../src/Config'; import ViteConfigGenerator from '../src/ViteConfig'; -describe('ViteConfigGenerator', () => { - it('is `getDefines` will be gets auto-updated `server.port`', async () => { - const config = { - renderer: [{ name: 'foo_window' }, { name: 'bar_window' }], - } as VitePluginConfig; - const generator = new ViteConfigGenerator(config, '', false); - const servers: ViteDevServer[] = []; - - for (const userConfig of await generator.getRendererConfig()) { - const viteDevServer = await vite.createServer({ - configFile: false, - ...userConfig, - }); - - await viteDevServer.listen(); - viteDevServer.printUrls(); - servers.push(viteDevServer); +import type { VitePluginConfig } from '../src/Config'; +import type { UserConfig } from 'vite'; - // Make suee that `getDefines` in VitePlugin.ts gets the correct `server.port`. (#3198) - const addressInfo = viteDevServer.httpServer!.address() as AddressInfo; - userConfig.server ??= {}; - userConfig.server.port = addressInfo.port; - } - - const define = await generator.getDefines(); - - for (const server of servers) { - server.close(); - } - servers.length = 0; - - expect(define.FOO_WINDOW_VITE_DEV_SERVER_URL).equal('"http://localhost:5173"'); - expect(define.FOO_WINDOW_VITE_NAME).equal('"foo_window"'); - expect(define.BAR_WINDOW_VITE_DEV_SERVER_URL).equal('"http://localhost:5174"'); - expect(define.BAR_WINDOW_VITE_NAME).equal('"bar_window"'); - }); +const builtins = ['electron', ...builtinModules.map((m) => [m, `node:${m}`]).flat()]; +const configRoot = path.join(__dirname, 'fixture/config'); +describe('ViteConfigGenerator', () => { it('getBuildConfig', async () => { const config = { - build: [{ entry: 'foo.js' }], + build: [{ config: path.join(configRoot, 'vite.main.config.mjs') }], renderer: [], } as VitePluginConfig; - const generator = new ViteConfigGenerator(config, '', true); - const buildConfig = (await generator.getBuildConfig())[0]; - expect(buildConfig).deep.equal({ + const generator = new ViteConfigGenerator(config, configRoot, true); + const buildConfig1 = (await generator.getBuildConfig())[0]; + const buildConfig2: UserConfig = { + root: configRoot, mode: 'production', build: { lib: { - entry: 'foo.js', + entry: 'src/main.js', formats: ['cjs'], // shims - fileName: (buildConfig.build?.lib as any)?.fileName, + fileName: (buildConfig1.build?.lib as any)?.fileName, }, emptyOutDir: false, - outDir: path.join('.vite', 'build'), - watch: undefined, + outDir: '.vite/build', + minify: true, // this.isProd === true + watch: null, + rollupOptions: { + external: builtins, + }, }, clearScreen: false, - define: {}, - // shims - plugins: [buildConfig.plugins?.[0]], - } as UserConfig); + }; + + expect(buildConfig1).deep.equal(buildConfig2); }); it('getRendererConfig', async () => { const config = { - renderer: [{ name: 'foo_window' }, { name: 'bar_window' }], + build: [{ config: path.join(configRoot, 'vite.renderer.config.mjs') }], + renderer: [], } as VitePluginConfig; - const generator = new ViteConfigGenerator(config, '', false); - const configs = await generator.getRendererConfig(); - for (const [index, rendererConfig] of configs.entries()) { - expect(rendererConfig).deep.equal({ - mode: 'development', - base: './', - build: { - outDir: path.join('.vite', 'renderer', config.renderer[index].name), - }, - clearScreen: false, - } as UserConfig); - } + const generator = new ViteConfigGenerator(config, configRoot, true); + const buildConfig1 = (await generator.getBuildConfig())[0]; + const buildConfig2: UserConfig = { + root: configRoot, + mode: 'production', + base: './', + build: { + outDir: 'renderer/main_window', + }, + }; + + expect(buildConfig1).deep.equal(buildConfig2); }); }); diff --git a/packages/plugin/vite/test/VitePlugin_spec.ts b/packages/plugin/vite/test/VitePlugin_spec.ts new file mode 100644 index 0000000000..c0119fe652 --- /dev/null +++ b/packages/plugin/vite/test/VitePlugin_spec.ts @@ -0,0 +1,124 @@ +import * as os from 'os'; +import * as path from 'path'; + +import { ResolvedForgeConfig } from '@electron-forge/shared-types'; +import { IgnoreFunction } from '@electron/packager'; +import { expect } from 'chai'; +import * as fs from 'fs-extra'; + +import { VitePluginConfig } from '../src/Config'; +import { VitePlugin } from '../src/VitePlugin'; + +describe('VitePlugin', () => { + const baseConfig: VitePluginConfig = { + build: [], + renderer: [], + }; + + const viteTestDir = path.resolve(os.tmpdir(), 'electron-forge-plugin-vite-test'); + + describe('packageAfterCopy', () => { + const packageJSONPath = path.join(viteTestDir, 'package.json'); + const packagedPath = path.join(viteTestDir, 'packaged'); + const packagedPackageJSONPath = path.join(packagedPath, 'package.json'); + let plugin: VitePlugin; + + before(async () => { + await fs.ensureDir(packagedPath); + plugin = new VitePlugin(baseConfig); + plugin.setDirectories(viteTestDir); + }); + + it('should remove config.forge from package.json', async () => { + const packageJSON = { main: './.vite/build/main.js', config: { forge: 'config.js' } }; + await fs.writeJson(packageJSONPath, packageJSON); + await plugin.packageAfterCopy({} as ResolvedForgeConfig, packagedPath); + expect(await fs.pathExists(packagedPackageJSONPath)).to.equal(true); + expect((await fs.readJson(packagedPackageJSONPath)).config).to.not.have.property('forge'); + }); + + it('should succeed if there is no config.forge', async () => { + const packageJSON = { main: '.vite/build/main.js' }; + await fs.writeJson(packageJSONPath, packageJSON); + await plugin.packageAfterCopy({} as ResolvedForgeConfig, packagedPath); + expect(await fs.pathExists(packagedPackageJSONPath)).to.equal(true); + expect(await fs.readJson(packagedPackageJSONPath)).to.not.have.property('config'); + }); + + it('should fail if there is no main key in package.json', async () => { + const packageJSON = {}; + await fs.writeJson(packageJSONPath, packageJSON); + await expect(plugin.packageAfterCopy({} as ResolvedForgeConfig, packagedPath)).to.eventually.be.rejectedWith(/entry point/); + }); + + it('should fail if main in package.json does not starts with .vite/', async () => { + const packageJSON = { main: 'src/main.js' }; + await fs.writeJson(packageJSONPath, packageJSON); + await expect(plugin.packageAfterCopy({} as ResolvedForgeConfig, packagedPath)).to.eventually.be.rejectedWith(/entry point/); + }); + + after(async () => { + await fs.remove(viteTestDir); + }); + }); + + describe('resolveForgeConfig', () => { + let plugin: VitePlugin; + + before(() => { + plugin = new VitePlugin(baseConfig); + }); + + it('sets packagerConfig and packagerConfig.ignore if it does not exist', async () => { + const config = await plugin.resolveForgeConfig({} as ResolvedForgeConfig); + expect(config.packagerConfig).to.not.equal(undefined); + expect(config.packagerConfig.ignore).to.be.a('function'); + }); + + describe('packagerConfig.ignore', () => { + it('does not overwrite an existing ignore value', async () => { + const config = await plugin.resolveForgeConfig({ + packagerConfig: { + ignore: /test/, + }, + } as ResolvedForgeConfig); + + expect(config.packagerConfig.ignore).to.deep.equal(/test/); + }); + + it('ignores everything but files in .vite', async () => { + const config = await plugin.resolveForgeConfig({} as ResolvedForgeConfig); + const ignore = config.packagerConfig.ignore as IgnoreFunction; + + expect(ignore('')).to.equal(false); + expect(ignore('/abc')).to.equal(true); + expect(ignore('/.vite')).to.equal(false); + expect(ignore('/.vite/foo')).to.equal(false); + }); + + it('ignores source map files by default', async () => { + const viteConfig = { ...baseConfig }; + plugin = new VitePlugin(viteConfig); + const config = await plugin.resolveForgeConfig({} as ResolvedForgeConfig); + const ignore = config.packagerConfig.ignore as IgnoreFunction; + + expect(ignore(path.posix.join('/.vite', 'build', 'main.js'))).to.equal(false); + expect(ignore(path.posix.join('/.vite', 'build', 'main.js.map'))).to.equal(false); + expect(ignore(path.posix.join('/.vite', 'renderer', 'main_window', 'assets', 'index.js'))).to.equal(false); + expect(ignore(path.posix.join('/.vite', 'renderer', 'main_window', 'assets', 'index.js.map'))).to.equal(false); + }); + + it('includes source map files when specified by config', async () => { + const viteConfig = { ...baseConfig, packageSourceMaps: true }; + plugin = new VitePlugin(viteConfig); + const config = await plugin.resolveForgeConfig({} as ResolvedForgeConfig); + const ignore = config.packagerConfig.ignore as IgnoreFunction; + + expect(ignore(path.posix.join('/.vite', 'build', 'main.js'))).to.equal(false); + expect(ignore(path.posix.join('/.vite', 'build', 'main.js.map'))).to.equal(false); + expect(ignore(path.posix.join('/.vite', 'renderer', 'main_window', 'assets', 'index.js'))).to.equal(false); + expect(ignore(path.posix.join('/.vite', 'renderer', 'main_window', 'assets', 'index.js.map'))).to.equal(false); + }); + }); + }); +}); diff --git a/packages/plugin/vite/test/fixture/.gitignore b/packages/plugin/vite/test/fixture/.gitignore new file mode 100644 index 0000000000..2f0cb5a3b2 --- /dev/null +++ b/packages/plugin/vite/test/fixture/.gitignore @@ -0,0 +1,4 @@ +# lockfile +package-lock.json +pnpm-lock.yaml +yarn.lock diff --git a/packages/plugin/vite/test/fixture/config/vite.main.config.mjs b/packages/plugin/vite/test/fixture/config/vite.main.config.mjs new file mode 100644 index 0000000000..ef5cff2d1a --- /dev/null +++ b/packages/plugin/vite/test/fixture/config/vite.main.config.mjs @@ -0,0 +1,31 @@ +import { builtinModules } from 'node:module'; + +// eslint-disable-next-line import/namespace +import { defineConfig } from 'vite'; + +const builtins = [ + 'electron', + ...builtinModules.map((m) => [m, `node:${m}`]).flat(), +]; + +export default defineConfig((env) => ({ + root: env.root, + mode: env.mode, + build: { + lib: { + entry: 'src/main.js', + fileName: () => '[name].js', + formats: ['cjs'], + }, + // Prevent multiple builds from interfering with each other. + emptyOutDir: false, + // 🚧 Multiple builds may conflict. + outDir: '.vite/build', + minify: env.command === 'build', + watch: env.command === 'serve' ? {} : null, + rollupOptions: { + external: builtins, + }, + }, + clearScreen: false, +})); diff --git a/packages/plugin/vite/test/fixture/config/vite.renderer.config.mjs b/packages/plugin/vite/test/fixture/config/vite.renderer.config.mjs new file mode 100644 index 0000000000..a7fcc5f5ba --- /dev/null +++ b/packages/plugin/vite/test/fixture/config/vite.renderer.config.mjs @@ -0,0 +1,11 @@ +// eslint-disable-next-line import/namespace +import { defineConfig } from 'vite'; + +export default defineConfig((env) => ({ + root: env.root, + mode: env.mode, + base: './', + build: { + outDir: 'renderer/main_window', + }, +})); diff --git a/packages/plugin/vite/test/fixture/package/package.json b/packages/plugin/vite/test/fixture/package/package.json new file mode 100644 index 0000000000..5186d39673 --- /dev/null +++ b/packages/plugin/vite/test/fixture/package/package.json @@ -0,0 +1,7 @@ +{ + "name": "@electron-forge/plugin-vite-test-util-package", + "version": "0.1.0", + "dependencies": { + "electron-squirrel-startup": "^1.0.0" + } +} diff --git a/packages/plugin/vite/test/util/package_spec.ts b/packages/plugin/vite/test/util/package_spec.ts new file mode 100644 index 0000000000..8833d43afd --- /dev/null +++ b/packages/plugin/vite/test/util/package_spec.ts @@ -0,0 +1,75 @@ +import { exec } from 'node:child_process'; +import path from 'node:path'; +import { promisify } from 'node:util'; + +import { expect } from 'chai'; + +import { getFlatDependencies, isDirectory, lookupNodeModulesPaths, resolveDependencies } from '../../src/util/package'; + +const execPromise = promisify(exec); +const packageRoot = path.join(__dirname, '../fixture/package'); +const depsTree = [ + { + name: 'electron-squirrel-startup', + path: { + src: path.join(packageRoot, 'node_modules', 'electron-squirrel-startup'), + dest: path.join('node_modules', 'electron-squirrel-startup'), + }, + dependencies: [ + { + name: 'debug', + path: { + src: path.join(packageRoot, 'node_modules', 'debug'), + dest: path.join('node_modules', 'debug'), + }, + dependencies: [ + { + name: 'ms', + path: { + src: path.join(packageRoot, 'node_modules', 'ms'), + dest: path.join('node_modules', 'ms'), + }, + dependencies: [], + }, + ], + }, + ], + }, +]; +const depsFlat = [ + { + src: path.join(packageRoot, 'node_modules', 'electron-squirrel-startup'), + dest: path.join('node_modules', 'electron-squirrel-startup'), + }, + { + src: path.join(packageRoot, 'node_modules', 'debug'), + dest: path.join('node_modules', 'debug'), + }, + { + src: path.join(packageRoot, 'node_modules', 'ms'), + dest: path.join('node_modules', 'ms'), + }, +]; + +describe('util/package', () => { + before(async () => { + await execPromise('npm install', { cwd: packageRoot }); + }); + + it('dependencies of package.json is resolved correct', async () => { + const depsT = await resolveDependencies(packageRoot); + const depsF = await getFlatDependencies(packageRoot); + expect(depsTree).deep.equal(depsT); + expect(depsFlat).deep.equal(depsF); + }); + + it('isDirectory check is correct', async () => { + expect(await isDirectory(packageRoot)).true; + expect(await isDirectory(path.join(packageRoot, 'package.json'))).false; + }); + + it('node_modules paths is lookup correct', async () => { + const paths = await lookupNodeModulesPaths(packageRoot); + expect(paths.length).gt(0); + }); +}); diff --git a/packages/plugin/vite/test/util/plugins_spec.ts b/packages/plugin/vite/test/util/plugins_spec.ts deleted file mode 100644 index bdf0eb226e..0000000000 --- a/packages/plugin/vite/test/util/plugins_spec.ts +++ /dev/null @@ -1,45 +0,0 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ -import { builtinModules } from 'module'; - -import { expect } from 'chai'; -// eslint-disable-next-line node/no-extraneous-import -import { ExternalOption } from 'rollup'; -import { resolveConfig } from 'vite'; - -import { externalBuiltins } from '../../src/util/plugins'; - -describe('plugins', () => { - it('externalBuiltins', async () => { - const nativeModules = builtinModules.filter((e) => !e.startsWith('_')); - const builtins: any[] = ['electron', ...nativeModules, ...nativeModules.map((m) => `node:${m}`)]; - const getConfig = (external: ExternalOption) => - resolveConfig( - { - configFile: false, - build: { - rollupOptions: { - external, - }, - }, - plugins: [externalBuiltins()], - }, - 'build' - ); - - const external_string: ExternalOption = 'electron'; - const external_string2 = (await getConfig(external_string))!.build!.rollupOptions!.external; - expect(external_string2).deep.equal(builtins.concat(external_string)); - - const external_array: ExternalOption = ['electron']; - const external_array2 = (await getConfig(external_array))!.build!.rollupOptions!.external; - expect(external_array2).deep.equal(builtins.concat(external_array)); - - const external_regexp: ExternalOption = /electron/; - const external_regexp2 = (await getConfig(external_regexp))!.build!.rollupOptions!.external; - expect(external_regexp2).deep.equal(builtins.concat(external_regexp)); - - const external_function: ExternalOption = (source) => ['electron'].includes(source); - const external_function2 = (await getConfig(external_function))!.build!.rollupOptions!.external; - expect((external_function2 as (source: string) => boolean)('electron')).true; - }); -}); diff --git a/packages/plugin/vite/vite-env.d.ts b/packages/plugin/vite/vite-env.d.ts new file mode 100644 index 0000000000..297a6fc911 --- /dev/null +++ b/packages/plugin/vite/vite-env.d.ts @@ -0,0 +1,2 @@ +// Fix build types check error. +declare module 'rollup/parseAst'; diff --git a/packages/plugin/webpack/package.json b/packages/plugin/webpack/package.json index 817c7f54a1..3c5d1617f6 100644 --- a/packages/plugin/webpack/package.json +++ b/packages/plugin/webpack/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/plugin-webpack", - "version": "6.4.2", + "version": "7.4.0", "description": "Webpack plugin for Electron Forge, lets you use Webpack directly in your tooling", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -11,27 +11,29 @@ "test": "xvfb-maybe mocha --config ../../../.mocharc.js test/**/*_spec.ts test/*_spec.ts" }, "devDependencies": { + "@electron/packager": "^18.3.1", "@malept/cross-spawn-promise": "^2.0.0", "@types/node": "^18.0.3", "chai": "^4.3.3", - "electron-packager": "^17.1.2", "mocha": "^9.0.1", "sinon": "^13.0.1", "which": "^2.0.2", "xvfb-maybe": "^0.2.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/core-utils": "6.4.2", - "@electron-forge/plugin-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2", - "@electron-forge/web-multi-logger": "6.4.2", + "@electron-forge/core-utils": "7.4.0", + "@electron-forge/plugin-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0", + "@electron-forge/web-multi-logger": "7.4.0", "chalk": "^4.0.0", "debug": "^4.3.1", + "fast-glob": "^3.2.7", "fs-extra": "^10.0.0", "html-webpack-plugin": "^5.5.3", + "listr2": "^7.0.2", "webpack": "^5.69.1", "webpack-dev-server": "^4.0.0", "webpack-merge": "^5.7.3" diff --git a/packages/plugin/webpack/src/Config.ts b/packages/plugin/webpack/src/Config.ts index 0d886f5e94..2a201af825 100644 --- a/packages/plugin/webpack/src/Config.ts +++ b/packages/plugin/webpack/src/Config.ts @@ -138,8 +138,14 @@ export interface WebpackPluginConfig { jsonStats?: boolean; /** * Electron Forge webpack configuration for your renderer process + * + * If this property is configured as an array each group of entryPoints is built sequentially + * such that later indexed renderer configurations can depend on the output of previous ones. + * + * If you want to build multiple targets in parallel please specify multiple entryPoints in a + * single renderer configuration. Most usecases should not set this to an array. */ - renderer: WebpackPluginRendererConfig; + renderer: WebpackPluginRendererConfig | WebpackPluginRendererConfig[]; /** * The TCP port for the dev servers. Defaults to 3000. */ diff --git a/packages/plugin/webpack/src/WebpackConfig.ts b/packages/plugin/webpack/src/WebpackConfig.ts index ee409ce74e..f22c6b88ae 100644 --- a/packages/plugin/webpack/src/WebpackConfig.ts +++ b/packages/plugin/webpack/src/WebpackConfig.ts @@ -5,7 +5,13 @@ import HtmlWebpackPlugin from 'html-webpack-plugin'; import webpack, { Configuration, WebpackPluginInstance } from 'webpack'; import { merge as webpackMerge } from 'webpack-merge'; -import { WebpackPluginConfig, WebpackPluginEntryPoint, WebpackPluginEntryPointLocalWindow, WebpackPluginEntryPointPreloadOnly } from './Config'; +import { + WebpackPluginConfig, + WebpackPluginEntryPoint, + WebpackPluginEntryPointLocalWindow, + WebpackPluginEntryPointPreloadOnly, + WebpackPluginRendererConfig, +} from './Config'; import AssetRelocatorPatch from './util/AssetRelocatorPatch'; import processConfig from './util/processConfig'; import { isLocalOrNoWindowEntries, isLocalWindow, isNoWindow, isPreloadOnly, isPreloadOnlyEntries } from './util/rendererTypeUtils'; @@ -71,12 +77,18 @@ export default class WebpackConfigGenerator { } async resolveConfig(config: Configuration | ConfigurationFactory | string): Promise { - const rawConfig = + type MaybeESM = T | { default: T }; + + let rawConfig = typeof config === 'string' ? // eslint-disable-next-line @typescript-eslint/no-var-requires - (require(path.resolve(this.projectDir, config)) as Configuration | ConfigurationFactory) + (require(path.resolve(this.projectDir, config)) as MaybeESM) : config; + if (rawConfig && typeof rawConfig === 'object' && 'default' in rawConfig) { + rawConfig = rawConfig.default; + } + return processConfig(this.preprocessConfig, rawConfig); } @@ -98,9 +110,9 @@ export default class WebpackConfigGenerator { return this.isProd ? 'source-map' : 'eval-source-map'; } - rendererEntryPoint(entryPoint: WebpackPluginEntryPoint, inRendererDir: boolean, basename: string): string { + rendererEntryPoint(entryPoint: WebpackPluginEntryPoint, basename: string): string { if (this.isProd) { - return `\`file://$\{require('path').resolve(__dirname, '..', '${inRendererDir ? 'renderer' : '.'}', '${entryPoint.name}', '${basename}')}\``; + return `\`file://$\{require('path').resolve(__dirname, '..', 'renderer', '${entryPoint.name}', '${basename}')}\``; } const baseUrl = `http://localhost:${this.port}/${entryPoint.name}`; if (basename !== 'index.html') { @@ -127,23 +139,30 @@ export default class WebpackConfigGenerator { } } - getDefines(inRendererDir = true): Record { + private get allPluginRendererOptions() { + return Array.isArray(this.pluginConfig.renderer) ? this.pluginConfig.renderer : [this.pluginConfig.renderer]; + } + + getDefines(): Record { const defines: Record = {}; - if (!this.pluginConfig.renderer.entryPoints || !Array.isArray(this.pluginConfig.renderer.entryPoints)) { - throw new Error('Required config option "renderer.entryPoints" has not been defined'); - } - for (const entryPoint of this.pluginConfig.renderer.entryPoints) { - const entryKey = this.toEnvironmentVariable(entryPoint); - if (isLocalWindow(entryPoint)) { - defines[entryKey] = this.rendererEntryPoint(entryPoint, inRendererDir, 'index.html'); - } else { - defines[entryKey] = this.rendererEntryPoint(entryPoint, inRendererDir, 'index.js'); + + for (const pluginRendererOptions of this.allPluginRendererOptions) { + if (!pluginRendererOptions.entryPoints || !Array.isArray(pluginRendererOptions.entryPoints)) { + throw new Error('Required config option "renderer.entryPoints" has not been defined'); } - defines[`process.env.${entryKey}`] = defines[entryKey]; + for (const entryPoint of pluginRendererOptions.entryPoints) { + const entryKey = this.toEnvironmentVariable(entryPoint); + if (isLocalWindow(entryPoint)) { + defines[entryKey] = this.rendererEntryPoint(entryPoint, 'index.html'); + } else { + defines[entryKey] = this.rendererEntryPoint(entryPoint, 'index.js'); + } + defines[`process.env.${entryKey}`] = defines[entryKey]; - const preloadDefineKey = this.toEnvironmentVariable(entryPoint, true); - defines[preloadDefineKey] = this.getPreloadDefine(entryPoint); - defines[`process.env.${preloadDefineKey}`] = defines[preloadDefineKey]; + const preloadDefineKey = this.toEnvironmentVariable(entryPoint, true); + defines[preloadDefineKey] = this.getPreloadDefine(entryPoint); + defines[`process.env.${preloadDefineKey}`] = defines[preloadDefineKey]; + } } return defines; @@ -188,7 +207,7 @@ export default class WebpackConfigGenerator { ); } - async getRendererConfig(entryPoints: WebpackPluginEntryPoint[]): Promise { + async getRendererConfig(rendererOptions: WebpackPluginRendererConfig): Promise { const entryPointsForTarget = { web: [] as (WebpackPluginEntryPointLocalWindow | WebpackPluginEntryPoint)[], electronRenderer: [] as (WebpackPluginEntryPointLocalWindow | WebpackPluginEntryPoint)[], @@ -196,9 +215,9 @@ export default class WebpackConfigGenerator { sandboxedPreload: [] as WebpackPluginEntryPointPreloadOnly[], }; - for (const entry of entryPoints) { - const target = entry.nodeIntegration ?? this.pluginConfig.renderer.nodeIntegration ? 'electronRenderer' : 'web'; - const preloadTarget = entry.nodeIntegration ?? this.pluginConfig.renderer.nodeIntegration ? 'electronPreload' : 'sandboxedPreload'; + for (const entry of rendererOptions.entryPoints) { + const target = entry.nodeIntegration ?? rendererOptions.nodeIntegration ? 'electronRenderer' : 'web'; + const preloadTarget = entry.nodeIntegration ?? rendererOptions.nodeIntegration ? 'electronPreload' : 'sandboxedPreload'; if (isPreloadOnly(entry)) { entryPointsForTarget[preloadTarget].push(entry); @@ -212,10 +231,10 @@ export default class WebpackConfigGenerator { const rendererConfigs = await Promise.all( [ - await this.buildRendererConfigs(entryPointsForTarget.web, RendererTarget.Web), - await this.buildRendererConfigs(entryPointsForTarget.electronRenderer, RendererTarget.ElectronRenderer), - await this.buildRendererConfigs(entryPointsForTarget.electronPreload, RendererTarget.ElectronPreload), - await this.buildRendererConfigs(entryPointsForTarget.sandboxedPreload, RendererTarget.SandboxedPreload), + await this.buildRendererConfigs(rendererOptions, entryPointsForTarget.web, RendererTarget.Web), + await this.buildRendererConfigs(rendererOptions, entryPointsForTarget.electronRenderer, RendererTarget.ElectronRenderer), + await this.buildRendererConfigs(rendererOptions, entryPointsForTarget.electronPreload, RendererTarget.ElectronPreload), + await this.buildRendererConfigs(rendererOptions, entryPointsForTarget.sandboxedPreload, RendererTarget.SandboxedPreload), ].reduce((configs, allConfigs) => allConfigs.concat(configs)) ); @@ -242,6 +261,7 @@ export default class WebpackConfigGenerator { } async buildRendererConfigForWebOrRendererTarget( + rendererOptions: WebpackPluginRendererConfig, entryPoints: WebpackPluginEntryPoint[], target: RendererTarget.Web | RendererTarget.ElectronRenderer ): Promise { @@ -251,7 +271,7 @@ export default class WebpackConfigGenerator { const entry: webpack.Entry = {}; const baseConfig: webpack.Configuration = this.buildRendererBaseConfig(target); - const rendererConfig = await this.resolveConfig(this.pluginConfig.renderer.config); + const rendererConfig = await this.resolveConfig(rendererOptions.config); const output = { path: path.resolve(this.webpackDir, 'renderer'), @@ -279,6 +299,7 @@ export default class WebpackConfigGenerator { } async buildRendererConfigForPreloadOrSandboxedPreloadTarget( + rendererOptions: WebpackPluginRendererConfig, entryPoints: WebpackPluginEntryPointPreloadOnly[], target: RendererTarget.ElectronPreload | RendererTarget.SandboxedPreload ): Promise { @@ -290,7 +311,7 @@ export default class WebpackConfigGenerator { const entry: webpack.Entry = {}; const baseConfig: webpack.Configuration = this.buildRendererBaseConfig(target); - const rendererConfig = await this.resolveConfig(entryPoints[0].preload?.config || this.pluginConfig.renderer.config); + const rendererConfig = await this.resolveConfig(entryPoints[0].preload?.config || rendererOptions.config); for (const entryPoint of entryPoints) { entry[entryPoint.name] = (entryPoint.prefixedEntries || []).concat([entryPoint.preload.js]); @@ -302,20 +323,24 @@ export default class WebpackConfigGenerator { path: path.resolve(this.webpackDir, 'renderer'), filename: '[name]/preload.js', globalObject: 'self', - ...(this.isProd ? {} : { publicPath: '/' }), + ...(this.isProd ? { publicPath: '' } : { publicPath: '/' }), }, plugins: target === RendererTarget.ElectronPreload ? [] : [new webpack.ExternalsPlugin('commonjs2', externals)], }; return webpackMerge(baseConfig, rendererConfig || {}, config); } - async buildRendererConfigs(entryPoints: WebpackPluginEntryPoint[], target: RendererTarget): Promise[]> { + async buildRendererConfigs( + rendererOptions: WebpackPluginRendererConfig, + entryPoints: WebpackPluginEntryPoint[], + target: RendererTarget + ): Promise[]> { if (entryPoints.length === 0) { return []; } const rendererConfigs = []; if (target === RendererTarget.Web || target === RendererTarget.ElectronRenderer) { - rendererConfigs.push(this.buildRendererConfigForWebOrRendererTarget(entryPoints, target)); + rendererConfigs.push(this.buildRendererConfigForWebOrRendererTarget(rendererOptions, entryPoints, target)); return rendererConfigs; } else if (target === RendererTarget.ElectronPreload || target === RendererTarget.SandboxedPreload) { if (!isPreloadOnlyEntries(entryPoints)) { @@ -326,9 +351,9 @@ export default class WebpackConfigGenerator { entryPointsWithoutPreloadConfig: WebpackPluginEntryPointPreloadOnly[] = []; entryPoints.forEach((entryPoint) => (entryPoint.preload.config ? entryPointsWithPreloadConfig : entryPointsWithoutPreloadConfig).push(entryPoint)); - rendererConfigs.push(this.buildRendererConfigForPreloadOrSandboxedPreloadTarget(entryPointsWithoutPreloadConfig, target)); + rendererConfigs.push(this.buildRendererConfigForPreloadOrSandboxedPreloadTarget(rendererOptions, entryPointsWithoutPreloadConfig, target)); entryPointsWithPreloadConfig.forEach((entryPoint) => { - rendererConfigs.push(this.buildRendererConfigForPreloadOrSandboxedPreloadTarget([entryPoint], target)); + rendererConfigs.push(this.buildRendererConfigForPreloadOrSandboxedPreloadTarget(rendererOptions, [entryPoint], target)); }); return rendererConfigs; } else { diff --git a/packages/plugin/webpack/src/WebpackPlugin.ts b/packages/plugin/webpack/src/WebpackPlugin.ts index af307404c5..602e462edf 100644 --- a/packages/plugin/webpack/src/WebpackPlugin.ts +++ b/packages/plugin/webpack/src/WebpackPlugin.ts @@ -1,18 +1,22 @@ +import crypto from 'crypto'; import http from 'http'; import path from 'path'; +import { pipeline } from 'stream/promises'; import { getElectronVersion, listrCompatibleRebuildHook } from '@electron-forge/core-utils'; import { namedHookWithTaskFn, PluginBase } from '@electron-forge/plugin-base'; -import { ForgeMultiHookMap, ResolvedForgeConfig, StartResult } from '@electron-forge/shared-types'; +import { ForgeMultiHookMap, ListrTask, ResolvedForgeConfig, StartResult } from '@electron-forge/shared-types'; import Logger, { Tab } from '@electron-forge/web-multi-logger'; import chalk from 'chalk'; import debug from 'debug'; +import glob from 'fast-glob'; import fs from 'fs-extra'; +import { PRESET_TIMER } from 'listr2'; import webpack, { Configuration, Watching } from 'webpack'; import WebpackDevServer from 'webpack-dev-server'; import { merge } from 'webpack-merge'; -import { WebpackPluginConfig } from './Config'; +import { WebpackPluginConfig, WebpackPluginRendererConfig } from './Config'; import ElectronForgeLoggingPlugin from './util/ElectronForgeLogging'; import EntryPointPreloadPlugin from './util/EntryPointPreloadPlugin'; import once from './util/once'; @@ -25,6 +29,10 @@ const DEFAULT_LOGGER_PORT = 9000; type WebpackToJsonOptions = Parameters[0]; type WebpackWatchHandler = Parameters[1]; +type NativeDepsCtx = { + nativeDeps: Record; +}; + export default class WebpackPlugin extends PluginBase { name = 'webpack'; @@ -111,12 +119,12 @@ export default class WebpackPlugin extends PluginBase { await fs.writeJson(jsonStatsFilename, jsonStats, { spaces: 2 }); } - private runWebpack = async (options: Configuration[], isRenderer = false): Promise => + private runWebpack = async (options: Configuration[], rendererOptions: WebpackPluginRendererConfig | null): Promise => new Promise((resolve, reject) => { webpack(options).run(async (err, stats) => { - if (isRenderer && this.config.renderer.jsonStats) { + if (rendererOptions && rendererOptions.jsonStats) { for (const [index, entryStats] of (stats?.stats ?? []).entries()) { - const name = this.config.renderer.entryPoints[index].name; + const name = rendererOptions.entryPoints[index].name; await this.writeJSONStats('renderer', entryStats, options[index].stats as WebpackToJsonOptions, name); } } @@ -158,20 +166,191 @@ export default class WebpackPlugin extends PluginBase { this.isProd = true; await fs.remove(this.baseDir); - await listrCompatibleRebuildHook( - this.projectDir, - await getElectronVersion(this.projectDir, await fs.readJson(path.join(this.projectDir, 'package.json'))), - platform, - arch, - config.rebuildConfig, - task, - chalk.cyan('[plugin-webpack] ') + + // TODO: Figure out how to get matrix from packager + const arches: string[] = Array.from( + new Set(arch.split(',').reduce((all, pArch) => (pArch === 'universal' ? all.concat(['arm64', 'x64']) : all.concat([pArch])), [])) ); - }, 'Preparing native dependencies'), - namedHookWithTaskFn<'prePackage'>(async () => { - await this.compileMain(); - await this.compileRenderers(); - }, 'Building webpack bundles'), + + const firstArch = arches[0]; + const otherArches = arches.slice(1); + + const multiArchTasks: ListrTask[] = + otherArches.length === 0 + ? [] + : [ + { + title: 'Mapping native dependencies', + task: async (ctx: NativeDepsCtx) => { + const firstArchDir = path.resolve(this.baseDir, firstArch); + const nodeModulesDir = path.resolve(this.projectDir, 'node_modules'); + const mapping: Record = Object.create(null); + + const webpackNodeFiles = await glob('**/*.node', { + cwd: firstArchDir, + }); + const nodeModulesNodeFiles = await glob('**/*.node', { + cwd: nodeModulesDir, + }); + const hashToNodeModules: Record = Object.create(null); + + for (const nodeModulesNodeFile of nodeModulesNodeFiles) { + const hash = crypto.createHash('sha256'); + const resolvedNodeFile = path.resolve(nodeModulesDir, nodeModulesNodeFile); + await pipeline(fs.createReadStream(resolvedNodeFile), hash); + const digest = hash.digest('hex'); + + hashToNodeModules[digest] = hashToNodeModules[digest] || []; + hashToNodeModules[digest].push(resolvedNodeFile); + } + + for (const webpackNodeFile of webpackNodeFiles) { + const hash = crypto.createHash('sha256'); + await pipeline(fs.createReadStream(path.resolve(firstArchDir, webpackNodeFile)), hash); + const matchedNodeModule = hashToNodeModules[hash.digest('hex')]; + if (!matchedNodeModule || !matchedNodeModule.length) { + throw new Error(`Could not find originating native module for "${webpackNodeFile}"`); + } + + mapping[webpackNodeFile] = matchedNodeModule; + } + + ctx.nativeDeps = mapping; + }, + }, + { + title: `Generating multi-arch bundles`, + task: async (_, task) => { + return task.newListr( + otherArches.map( + (pArch): ListrTask => ({ + title: `Generating ${chalk.magenta(pArch)} bundle`, + task: async (_, innerTask) => { + return innerTask.newListr( + [ + { + title: 'Preparing native dependencies', + task: async (_, innerTask) => { + await listrCompatibleRebuildHook( + this.projectDir, + await getElectronVersion(this.projectDir, await fs.readJson(path.join(this.projectDir, 'package.json'))), + platform, + pArch, + config.rebuildConfig, + innerTask + ); + }, + rendererOptions: { + persistentOutput: true, + bottomBar: Infinity, + showTimer: true, + }, + }, + { + title: 'Mapping native dependencies', + task: async (ctx) => { + const nodeModulesDir = path.resolve(this.projectDir, 'node_modules'); + + // Duplicate the firstArch build + const firstDir = path.resolve(this.baseDir, firstArch); + const targetDir = path.resolve(this.baseDir, pArch); + await fs.mkdirp(targetDir); + for (const child of await fs.readdir(firstDir)) { + await fs.promises.cp(path.resolve(firstDir, child), path.resolve(targetDir, child), { + recursive: true, + }); + } + + const nodeModulesNodeFiles = await glob('**/*.node', { + cwd: nodeModulesDir, + }); + const nodeModuleToHash: Record = Object.create(null); + + for (const nodeModulesNodeFile of nodeModulesNodeFiles) { + const hash = crypto.createHash('sha256'); + const resolvedNodeFile = path.resolve(nodeModulesDir, nodeModulesNodeFile); + await pipeline(fs.createReadStream(resolvedNodeFile), hash); + + nodeModuleToHash[resolvedNodeFile] = hash.digest('hex'); + } + + // Use the native module map to find the newly built native modules + for (const nativeDep of Object.keys(ctx.nativeDeps)) { + const archPath = path.resolve(targetDir, nativeDep); + await fs.remove(archPath); + + const mappedPaths = ctx.nativeDeps[nativeDep]; + if (!mappedPaths || !mappedPaths.length) { + throw new Error(`The "${nativeDep}" module could not be mapped to any native modules on disk`); + } + + if (!mappedPaths.every((mappedPath) => nodeModuleToHash[mappedPath] === nodeModuleToHash[mappedPaths[0]])) { + throw new Error( + `The "${nativeDep}" mapped to multiple modules "${mappedPaths.join( + ', ' + )}" but the same modules post rebuild did not map to the same native code` + ); + } + + await fs.promises.cp(mappedPaths[0], archPath); + } + }, + }, + ], + { concurrent: false } + ); + }, + }) + ) + ); + }, + }, + ]; + + return task.newListr( + [ + { + title: `Preparing native dependencies for ${chalk.magenta(firstArch)}`, + task: async (_, innerTask) => { + await listrCompatibleRebuildHook( + this.projectDir, + await getElectronVersion(this.projectDir, await fs.readJson(path.join(this.projectDir, 'package.json'))), + platform, + firstArch, + config.rebuildConfig, + innerTask + ); + }, + rendererOptions: { + persistentOutput: true, + bottomBar: Infinity, + timer: { ...PRESET_TIMER }, + }, + }, + { + title: 'Building webpack bundles', + task: async () => { + await this.compileMain(); + await this.compileRenderers(); + // Store it in a place that won't get messed with + // We'll restore the right "arch" in the afterCopy hook further down + const preExistingChildren = await fs.readdir(this.baseDir); + const targetDir = path.resolve(this.baseDir, firstArch); + await fs.mkdirp(targetDir); + for (const child of preExistingChildren) { + await fs.move(path.resolve(this.baseDir, child), path.resolve(targetDir, child)); + } + }, + rendererOptions: { + timer: { ...PRESET_TIMER }, + }, + }, + ...multiArchTasks, + ], + { concurrent: false } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + ) as any; + }, 'Preparing webpack bundles'), ], postStart: async (_config, child) => { d('hooking electron process exit'); @@ -181,7 +360,17 @@ export default class WebpackPlugin extends PluginBase { }); }, resolveForgeConfig: this.resolveForgeConfig, - packageAfterCopy: this.packageAfterCopy, + packageAfterCopy: [ + async (_forgeConfig: ResolvedForgeConfig, buildPath: string, _electronVersion: string, _platform: string, pArch: string): Promise => { + // Restore the correct 'arch' build of webpack + // Steal the correct arch, wipe the folder, move it back to pretend to be ".webpack" root + const tmpWebpackDir = path.resolve(buildPath, '.webpack.tmp'); + await fs.move(path.resolve(buildPath, '.webpack', pArch), tmpWebpackDir); + await fs.remove(path.resolve(buildPath, '.webpack')); + await fs.move(tmpWebpackDir, path.resolve(buildPath, '.webpack')); + }, + this.packageAfterCopy, + ], }; } @@ -206,7 +395,7 @@ Your packaged app may be larger than expected if you dont ignore everything othe return true; } - if (this.config.renderer.jsonStats && file.endsWith(path.join('.webpack', 'renderer', 'stats.json'))) { + if (this.allRendererOptions.some((r) => r.jsonStats) && file.endsWith(path.join('.webpack', 'renderer', 'stats.json'))) { return true; } @@ -219,6 +408,10 @@ Your packaged app may be larger than expected if you dont ignore everything othe return forgeConfig; }; + private get allRendererOptions() { + return Array.isArray(this.config.renderer) ? this.config.renderer : [this.config.renderer]; + } + packageAfterCopy = async (_forgeConfig: ResolvedForgeConfig, buildPath: string): Promise => { const pj = await fs.readJson(path.resolve(this.projectDir, 'package.json')); @@ -277,14 +470,29 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}`); }; compileRenderers = async (watch = false): Promise => { - const stats = await this.runWebpack(await this.configGenerator.getRendererConfig(this.config.renderer.entryPoints), true); - if (!watch && stats?.hasErrors()) { - throw new Error(`Compilation errors in the renderer: ${stats.toString()}`); + for (const rendererOptions of this.allRendererOptions) { + const stats = await this.runWebpack(await this.configGenerator.getRendererConfig(rendererOptions), rendererOptions); + if (!watch && stats?.hasErrors()) { + throw new Error(`Compilation errors in the renderer: ${stats.toString()}`); + } } }; launchRendererDevServers = async (logger: Logger): Promise => { - const configs = await this.configGenerator.getRendererConfig(this.config.renderer.entryPoints); + const configs: Configuration[] = []; + const rollingDependencies: string[] = []; + for (const [i, rendererOptions] of this.allRendererOptions.entries()) { + const groupName = `group_${i}`; + configs.push( + ...(await this.configGenerator.getRendererConfig(rendererOptions)).map((config) => ({ + ...config, + name: groupName, + dependencies: [...rollingDependencies], + })) + ); + rollingDependencies.push(groupName); + } + if (configs.length === 0) { return; } @@ -372,8 +580,8 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}`); task: async () => { await this.compileMain(true, logger); }, - options: { - showTimer: true, + rendererOptions: { + timer: { ...PRESET_TIMER }, }, }, { @@ -382,9 +590,9 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}`); await this.launchRendererDevServers(logger); task.output = `Output Available: ${chalk.cyan(`http://localhost:${this.loggerPort}`)}\n`; }, - options: { + rendererOptions: { persistentOutput: true, - showTimer: true, + timer: { ...PRESET_TIMER }, }, }, ], diff --git a/packages/plugin/webpack/test/AssetRelocatorPatch_spec.ts b/packages/plugin/webpack/test/AssetRelocatorPatch_spec.ts index 70be2d3e09..f4679b001b 100644 --- a/packages/plugin/webpack/test/AssetRelocatorPatch_spec.ts +++ b/packages/plugin/webpack/test/AssetRelocatorPatch_spec.ts @@ -97,6 +97,11 @@ async function yarnStart(): Promise { }); } +const safeFirstRendererConfig = (renderer: WebpackPluginConfig['renderer']) => { + if (Array.isArray(renderer)) return renderer[0]; + return renderer; +}; + describe('AssetRelocatorPatch', () => { const rendererOut = path.join(appPath, '.webpack/renderer'); const mainOut = path.join(appPath, '.webpack/main'); @@ -145,7 +150,7 @@ describe('AssetRelocatorPatch', () => { }); it('builds preload', async () => { - const preloadConfig = await generator.getRendererConfig(config.renderer.entryPoints); + const preloadConfig = await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); await asyncWebpack(preloadConfig[0]); await expectOutputFileToHaveTheCorrectNativeModulePath({ @@ -157,7 +162,7 @@ describe('AssetRelocatorPatch', () => { }); it('builds renderer', async () => { - const rendererConfig = await generator.getRendererConfig(config.renderer.entryPoints); + const rendererConfig = await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); for (const rendererEntryConfig of rendererConfig) { await asyncWebpack(rendererEntryConfig); } @@ -197,8 +202,11 @@ describe('AssetRelocatorPatch', () => { }); it('builds preload', async () => { - const entryPoint = config.renderer.entryPoints[0] as WebpackPluginEntryPointLocalWindow; - const preloadConfig = await generator.getRendererConfig([entryPoint]); + const entryPoint = safeFirstRendererConfig(config.renderer).entryPoints[0] as WebpackPluginEntryPointLocalWindow; + const preloadConfig = await generator.getRendererConfig({ + ...safeFirstRendererConfig(config.renderer), + entryPoints: [entryPoint], + }); await asyncWebpack(preloadConfig[0]); await expectOutputFileToHaveTheCorrectNativeModulePath({ @@ -210,7 +218,7 @@ describe('AssetRelocatorPatch', () => { }); it('builds renderer', async () => { - const rendererConfig = await generator.getRendererConfig(config.renderer.entryPoints); + const rendererConfig = await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); for (const rendererEntryConfig of rendererConfig) { await asyncWebpack(rendererEntryConfig); } @@ -232,10 +240,10 @@ describe('AssetRelocatorPatch', () => { }); it('builds renderer with nodeIntegration = false', async () => { - config.renderer.nodeIntegration = false; + safeFirstRendererConfig(config.renderer).nodeIntegration = false; generator = new WebpackConfigGenerator(config, appPath, true, 3000); - const rendererConfig = await generator.getRendererConfig(config.renderer.entryPoints); + const rendererConfig = await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); for (const rendererEntryConfig of rendererConfig) { await asyncWebpack(rendererEntryConfig); } diff --git a/packages/plugin/webpack/test/WebpackConfig_spec.ts b/packages/plugin/webpack/test/WebpackConfig_spec.ts index 6a390c2824..8e691d13e3 100644 --- a/packages/plugin/webpack/test/WebpackConfig_spec.ts +++ b/packages/plugin/webpack/test/WebpackConfig_spec.ts @@ -1,7 +1,7 @@ import path from 'path'; import { expect } from 'chai'; -import { Compiler, Configuration, Entry, WebpackPluginInstance } from 'webpack'; +import { Configuration, Entry } from 'webpack'; import { WebpackConfiguration, WebpackPluginConfig, WebpackPluginEntryPoint } from '../src/Config'; import AssetRelocatorPatch from '../src/util/AssetRelocatorPatch'; @@ -9,10 +9,8 @@ import WebpackConfigGenerator, { ConfigurationFactory } from '../src/WebpackConf const mockProjectDir = process.platform === 'win32' ? 'C:\\path' : '/path'; -type WebpackPlugin = ((this: Compiler, compiler: Compiler) => void) | WebpackPluginInstance; - -function hasAssetRelocatorPatchPlugin(plugins?: WebpackPlugin[]): boolean { - return (plugins || []).some((plugin: WebpackPlugin) => plugin instanceof AssetRelocatorPatch); +function hasAssetRelocatorPatchPlugin(plugins?: Required['plugins']): boolean { + return (plugins || []).some((plugin) => plugin && typeof plugin === 'object' && plugin instanceof AssetRelocatorPatch); } const sampleWebpackConfig = { @@ -26,6 +24,11 @@ const sampleWebpackConfig = { }, }; +const safeFirstRendererConfig = (renderer: WebpackPluginConfig['renderer']) => { + if (Array.isArray(renderer)) return renderer[0]; + return renderer; +}; + describe('WebpackConfigGenerator', () => { describe('rendererTarget', () => { it('is web if undefined', async () => { @@ -35,7 +38,7 @@ describe('WebpackConfigGenerator', () => { }, } as WebpackPluginConfig; const generator = new WebpackConfigGenerator(config, '/', false, 3000); - const webpackConfig = await generator.getRendererConfig(config.renderer.entryPoints); + const webpackConfig = await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); expect(webpackConfig[0].target).to.equal('web'); }); @@ -47,7 +50,7 @@ describe('WebpackConfigGenerator', () => { }, } as WebpackPluginConfig; const generator = new WebpackConfigGenerator(config, '/', false, 3000); - const webpackConfig = await generator.getRendererConfig(config.renderer.entryPoints); + const webpackConfig = await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); expect(webpackConfig[0].target).to.equal('web'); }); @@ -59,7 +62,7 @@ describe('WebpackConfigGenerator', () => { }, } as WebpackPluginConfig; const generator = new WebpackConfigGenerator(config, '/', false, 3000); - const webpackConfig = await generator.getRendererConfig(config.renderer.entryPoints); + const webpackConfig = await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); expect(webpackConfig[0].target).to.equal('electron-renderer'); }); @@ -71,7 +74,7 @@ describe('WebpackConfigGenerator', () => { }, } as WebpackPluginConfig; const generator = new WebpackConfigGenerator(config, '/', false, 3000); - const webpackConfig = await generator.getRendererConfig(config.renderer.entryPoints); + const webpackConfig = await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); expect(webpackConfig[0].target).to.equal('web'); }); }); @@ -124,9 +127,9 @@ describe('WebpackConfigGenerator', () => { }, } as WebpackPluginConfig; const generator = new WebpackConfigGenerator(config, '/', true, 3000); - const defines = generator.getDefines(false); + const defines = generator.getDefines(); - expect(defines.HELLO_WEBPACK_ENTRY).to.equal("`file://${require('path').resolve(__dirname, '..', '.', 'hello', 'index.js')}`"); + expect(defines.HELLO_WEBPACK_ENTRY).to.equal("`file://${require('path').resolve(__dirname, '..', 'renderer', 'hello', 'index.js')}`"); }); it('sets the renderer entry point to an HTML file if both an HTML & JS file are specified', () => { @@ -277,6 +280,19 @@ describe('WebpackConfigGenerator', () => { expect(webpackConfig.entry).to.equal(path.resolve(baseDir, 'foo/main.js')); }); + it('generates a config from a requirable transpiled module file', async () => { + const config = { + mainConfig: 'mainConfig.module.js', + renderer: { + entryPoints: [] as WebpackPluginEntryPoint[], + }, + } as WebpackPluginConfig; + const baseDir = path.resolve(__dirname, 'fixtures/main_config_external'); + const generator = new WebpackConfigGenerator(config, baseDir, true, 3000); + const webpackConfig = await generator.getMainConfig(); + expect(webpackConfig.entry).to.equal(path.resolve(baseDir, 'foo/main.js')); + }); + it('generates a config from function', async () => { const generateWebpackConfig = (webpackConfig: WebpackConfiguration) => { const config = { @@ -326,7 +342,7 @@ describe('WebpackConfigGenerator', () => { }, } as WebpackPluginConfig; const generator = new WebpackConfigGenerator(config, mockProjectDir, false, 3000); - const webpackConfig = await generator.getRendererConfig(config.renderer.entryPoints); + const webpackConfig = await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); expect(webpackConfig[0].target).to.deep.equal('electron-renderer'); expect(webpackConfig[0].mode).to.equal('development'); expect(webpackConfig[0].entry).to.deep.equal({ @@ -356,7 +372,7 @@ describe('WebpackConfigGenerator', () => { }, } as WebpackPluginConfig; const generator = new WebpackConfigGenerator(config, mockProjectDir, false, 3000); - const webpackConfig = await generator.getRendererConfig(config.renderer.entryPoints); + const webpackConfig = await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); expect(webpackConfig[0].entry).to.deep.equal({ main: ['rendererScript.js'], }); @@ -379,7 +395,7 @@ describe('WebpackConfigGenerator', () => { }, } as WebpackPluginConfig; const generator = new WebpackConfigGenerator(config, mockProjectDir, false, 3000); - const webpackConfig = await generator.getRendererConfig(config.renderer.entryPoints); + const webpackConfig = await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); expect(webpackConfig[0].target).to.equal('web'); expect(webpackConfig[0].mode).to.equal('development'); expect(webpackConfig[0].entry).to.deep.equal({ @@ -408,7 +424,7 @@ describe('WebpackConfigGenerator', () => { }, } as WebpackPluginConfig; const generator = new WebpackConfigGenerator(config, mockProjectDir, true, 3000); - const webpackConfig = await generator.getRendererConfig(config.renderer.entryPoints); + const webpackConfig = await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); expect(webpackConfig[0].target).to.deep.equal('web'); expect(webpackConfig[0].mode).to.equal('production'); expect(webpackConfig[0].entry).to.deep.equal({ @@ -438,7 +454,7 @@ describe('WebpackConfigGenerator', () => { }, } as WebpackPluginConfig; const generator = new WebpackConfigGenerator(config, mockProjectDir, true, 3000); - const webpackConfig = await generator.getRendererConfig(config.renderer.entryPoints); + const webpackConfig = await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); expect(webpackConfig[0].target).to.equal('web'); expect(webpackConfig[0].mode).to.equal('production'); expect(webpackConfig[0].entry).to.deep.equal({ main: ['preload.js'] }); @@ -446,6 +462,7 @@ describe('WebpackConfigGenerator', () => { path: path.join(mockProjectDir, '.webpack', 'renderer'), filename: '[name]/preload.js', globalObject: 'self', + publicPath: '', }); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expect(webpackConfig[0].plugins!.length).to.equal(2); @@ -466,7 +483,7 @@ describe('WebpackConfigGenerator', () => { }, } as WebpackPluginConfig; const generator = new WebpackConfigGenerator(config, mockProjectDir, true, 3000); - const webpackConfig = await generator.getRendererConfig(config.renderer.entryPoints); + const webpackConfig = await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); expect(webpackConfig[0].target).to.deep.equal('web'); expect(webpackConfig[0].mode).to.equal('production'); expect(webpackConfig[0].entry).to.deep.equal({ @@ -476,6 +493,7 @@ describe('WebpackConfigGenerator', () => { path: path.join(mockProjectDir, '.webpack', 'renderer'), filename: '[name]/preload.js', globalObject: 'self', + publicPath: '', }); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expect(webpackConfig[0].plugins!.length).to.equal(2); @@ -497,7 +515,7 @@ describe('WebpackConfigGenerator', () => { }, } as WebpackPluginConfig; const generator = new WebpackConfigGenerator(config, mockProjectDir, true, 3000); - const webpackConfig = await generator.getRendererConfig(config.renderer.entryPoints); + const webpackConfig = await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); expect(webpackConfig[0].target).to.equal('web'); }); @@ -519,7 +537,7 @@ describe('WebpackConfigGenerator', () => { }, } as WebpackPluginConfig; const generator = new WebpackConfigGenerator(config, mockProjectDir, true, 3000); - const webpackConfig = await generator.getRendererConfig(config.renderer.entryPoints); + const webpackConfig = await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); expect(webpackConfig[0].target).to.equal('electron-preload'); }); @@ -547,7 +565,7 @@ describe('WebpackConfigGenerator', () => { }, } as WebpackPluginConfig; const generator = new WebpackConfigGenerator(config, mockProjectDir, true, 3000); - const webpackConfig = await generator.getRendererConfig(config.renderer.entryPoints); + const webpackConfig = await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); expect(webpackConfig[0].target).to.equal('web'); expect(webpackConfig[0].name).to.equal('preload'); }); @@ -596,7 +614,7 @@ describe('WebpackConfigGenerator', () => { }, } as WebpackPluginConfig; const generator = new WebpackConfigGenerator(config, mockProjectDir, true, 3000); - const webpackConfig = await generator.getRendererConfig(config.renderer.entryPoints); + const webpackConfig = await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); expect(webpackConfig.length).to.equal(4); }); @@ -614,7 +632,7 @@ describe('WebpackConfigGenerator', () => { }, } as WebpackPluginConfig; const generator = new WebpackConfigGenerator(config, mockProjectDir, false, 3000); - return generator.getRendererConfig(config.renderer.entryPoints); + return generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); }; const modelWebpackConfig = await generateWebpackConfig({ @@ -681,7 +699,7 @@ describe('WebpackConfigGenerator', () => { await generator.getMainConfig(); expect(getInvokedCounter()).to.equal(1); - await generator.getRendererConfig(config.renderer.entryPoints); + await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); expect(getInvokedCounter()).to.equal(2); }); @@ -711,7 +729,7 @@ describe('WebpackConfigGenerator', () => { await generator.getMainConfig(); expect(getInvokedCounter()).to.equal(1); - await generator.getRendererConfig(config.renderer.entryPoints); + await generator.getRendererConfig(safeFirstRendererConfig(config.renderer)); expect(getInvokedCounter()).to.equal(2); }); }); diff --git a/packages/plugin/webpack/test/WebpackPlugin_spec.ts b/packages/plugin/webpack/test/WebpackPlugin_spec.ts index acfefbacb4..54a2ea6a13 100644 --- a/packages/plugin/webpack/test/WebpackPlugin_spec.ts +++ b/packages/plugin/webpack/test/WebpackPlugin_spec.ts @@ -2,11 +2,11 @@ import * as os from 'os'; import * as path from 'path'; import { ResolvedForgeConfig } from '@electron-forge/shared-types'; +import { IgnoreFunction } from '@electron/packager'; import { expect } from 'chai'; -import { IgnoreFunction } from 'electron-packager'; import * as fs from 'fs-extra'; -import { WebpackPluginConfig } from '../src/Config'; +import { WebpackPluginConfig, WebpackPluginRendererConfig } from '../src/Config'; import { WebpackPlugin } from '../src/WebpackPlugin'; describe('WebpackPlugin', () => { @@ -111,7 +111,7 @@ describe('WebpackPlugin', () => { it('ignores files generated by jsonStats config', async () => { const webpackConfig = { ...baseConfig, jsonStats: true }; - webpackConfig.renderer.jsonStats = true; + (webpackConfig.renderer as WebpackPluginRendererConfig).jsonStats = true; plugin = new WebpackPlugin(webpackConfig); const config = await plugin.resolveForgeConfig({} as ResolvedForgeConfig); const ignore = config.packagerConfig.ignore as IgnoreFunction; diff --git a/packages/plugin/webpack/test/fixtures/main_config_external/mainConfig.module.js b/packages/plugin/webpack/test/fixtures/main_config_external/mainConfig.module.js new file mode 100644 index 0000000000..90f19ceca9 --- /dev/null +++ b/packages/plugin/webpack/test/fixtures/main_config_external/mainConfig.module.js @@ -0,0 +1,3 @@ +module.exports.default = { + entry: './foo/main.js', +}; diff --git a/packages/publisher/base-static/package.json b/packages/publisher/base-static/package.json new file mode 100644 index 0000000000..dacb40b360 --- /dev/null +++ b/packages/publisher/base-static/package.json @@ -0,0 +1,32 @@ +{ + "name": "@electron-forge/publisher-static", + "version": "7.4.0", + "description": "Base publisher for Electron Forge", + "repository": "https://github.com/electron/forge", + "author": "Samuel Attard", + "license": "MIT", + "main": "dist/PublisherStatic.js", + "typings": "dist/PublisherStatic.d.ts", + "scripts": { + "test": "yarn test:base test/**/*_spec.ts", + "test:base": "cross-env TS_NODE_FILES=1 mocha --config ../../../.mocharc.js" + }, + "dependencies": { + "@electron-forge/publisher-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0" + }, + "devDependencies": { + "chai": "^4.3.3", + "mocha": "^9.0.1" + }, + "engines": { + "node": ">= 16.4.0" + }, + "publishConfig": { + "access": "public" + }, + "files": [ + "dist", + "src" + ] +} diff --git a/packages/publisher/base-static/src/PublisherStatic.ts b/packages/publisher/base-static/src/PublisherStatic.ts new file mode 100644 index 0000000000..6bf8d452c9 --- /dev/null +++ b/packages/publisher/base-static/src/PublisherStatic.ts @@ -0,0 +1,30 @@ +import path from 'path'; + +import { PublisherBase, PublisherOptions } from '@electron-forge/publisher-base'; +import { ForgeArch, ForgePlatform } from '@electron-forge/shared-types'; + +interface StaticArtifact { + path: string; + platform: ForgePlatform; + arch: ForgeArch; + keyPrefix: string; +} + +interface StaticPublisherConfig { + /** + * Custom function to provide the key to upload a given file to + */ + keyResolver?: (fileName: string, platform: string, arch: string) => string; +} + +export default abstract class PublisherStatic extends PublisherBase { + protected keyForArtifact(artifact: StaticArtifact): string { + if (this.config.keyResolver) { + return this.config.keyResolver(path.basename(artifact.path), artifact.platform, artifact.arch); + } + + return `${artifact.keyPrefix}/${artifact.platform}/${artifact.arch}/${path.basename(artifact.path)}`; + } +} + +export { PublisherStatic, StaticPublisherConfig, PublisherOptions }; diff --git a/packages/publisher/base-static/test/StaticPublisher_spec.ts b/packages/publisher/base-static/test/StaticPublisher_spec.ts new file mode 100644 index 0000000000..9e31961983 --- /dev/null +++ b/packages/publisher/base-static/test/StaticPublisher_spec.ts @@ -0,0 +1,41 @@ +import { expect } from 'chai'; + +import { PublisherStatic, StaticPublisherConfig } from '../src/PublisherStatic'; + +class PublisherImpl extends PublisherStatic { + defaultPlatforms = []; + + name = 'test'; + + public exposedKeyForArtifact = this.keyForArtifact; +} + +describe('PublisherStatic', () => { + describe('keyForArtifact', () => { + it('should by default concat prefix, platform, arch and filename', () => { + const publisher = new PublisherImpl({}); + expect( + publisher.exposedKeyForArtifact({ + platform: 'plat', + arch: 'arch', + keyPrefix: 'stuff', + path: __filename, + }) + ).to.equal('stuff/plat/arch/StaticPublisher_spec.ts'); + }); + + it('should call the provided method', () => { + const publisher = new PublisherImpl({ + keyResolver: () => 'lololol', + }); + expect( + publisher.exposedKeyForArtifact({ + platform: 'plat', + arch: 'arch', + keyPrefix: 'stuff', + path: __filename, + }) + ).to.equal('lololol'); + }); + }); +}); diff --git a/packages/publisher/base/package.json b/packages/publisher/base/package.json index 56732b6f20..32be56a310 100644 --- a/packages/publisher/base/package.json +++ b/packages/publisher/base/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/publisher-base", - "version": "6.4.2", + "version": "7.4.0", "description": "Base publisher for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -12,14 +12,14 @@ "test:base": "cross-env TS_NODE_FILES=1 mocha --config ../../../.mocharc.js" }, "dependencies": { - "@electron-forge/shared-types": "6.4.2" + "@electron-forge/shared-types": "7.4.0" }, "devDependencies": { "chai": "^4.3.3", "mocha": "^9.0.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "publishConfig": { "access": "public" diff --git a/packages/publisher/bitbucket/package.json b/packages/publisher/bitbucket/package.json index 629d2c8ffb..91ca1145f7 100644 --- a/packages/publisher/bitbucket/package.json +++ b/packages/publisher/bitbucket/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/publisher-bitbucket", - "version": "6.4.2", + "version": "7.4.0", "description": "Bitbucket publisher for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Luke Batchelor", @@ -12,10 +12,10 @@ "mocha": "^9.0.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/publisher-base": "6.4.2", + "@electron-forge/publisher-base": "7.4.0", "form-data": "^4.0.0", "fs-extra": "^10.0.0", "node-fetch": "^2.6.7" diff --git a/packages/publisher/electron-release-server/package.json b/packages/publisher/electron-release-server/package.json index 765511ffcc..96b38c8237 100644 --- a/packages/publisher/electron-release-server/package.json +++ b/packages/publisher/electron-release-server/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/publisher-electron-release-server", - "version": "6.4.2", + "version": "7.4.0", "description": "Electron release server publisher for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -15,11 +15,11 @@ "sinon": "^13.0.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/publisher-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2", + "@electron-forge/publisher-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0", "debug": "^4.3.1", "form-data": "^4.0.0", "fs-extra": "^10.0.0", diff --git a/packages/publisher/electron-release-server/src/PublisherERS.ts b/packages/publisher/electron-release-server/src/PublisherERS.ts index 1ff5655008..20495f41bc 100644 --- a/packages/publisher/electron-release-server/src/PublisherERS.ts +++ b/packages/publisher/electron-release-server/src/PublisherERS.ts @@ -26,6 +26,13 @@ interface ERSVersion { flavor: ERSFlavor; } +interface ERSVersionSorted { + total: number; + offset: number; + page: number; + items: ERSVersion[]; +} + const fetchAndCheckStatus = async (url: RequestInfo, init?: RequestInit): Promise => { const result = await fetch(url, init); if (result.ok) { @@ -86,9 +93,10 @@ export default class PublisherERS extends PublisherBase { const { packageJSON } = makeResult; const artifacts = makeResult.artifacts.filter((artifactPath) => path.basename(artifactPath).toLowerCase() !== 'releases'); - const versions: ERSVersion[] = await (await authFetch('api/version')).json(); + const versions: ERSVersionSorted = await (await authFetch('versions/sorted')).json(); + // Find the version with the same name and flavor - const existingVersion = versions.find((version) => version.name === packageJSON.version && version.flavor.name === flavor); + const existingVersion = versions['items'].find((version) => version.name === packageJSON.version && version.flavor.name === flavor); let channel = 'stable'; if (config.channel) { diff --git a/packages/publisher/electron-release-server/test/PublisherERS_spec.ts b/packages/publisher/electron-release-server/test/PublisherERS_spec.ts index 52a79d4c2c..c5cb2d827e 100644 --- a/packages/publisher/electron-release-server/test/PublisherERS_spec.ts +++ b/packages/publisher/electron-release-server/test/PublisherERS_spec.ts @@ -35,7 +35,10 @@ describe('PublisherERS', () => { // mock login fetch.postOnce('path:/api/auth/login', { body: { token }, status: 200 }); // mock fetch all existing versions - fetch.getOnce('path:/api/version', { body: [{ name: '2.0.0', assets: [], flavor: { name: 'default' } }], status: 200 }); + fetch.getOnce('path:/versions/sorted', { + body: { total: 1, offset: 0, page: 0, items: [{ name: '2.0.0', assets: [], flavor: { name: 'default' } }] }, + status: 200, + }); // mock creating a new version fetch.postOnce('path:/api/version', { status: 200 }); // mock asset upload @@ -83,7 +86,10 @@ describe('PublisherERS', () => { // mock login fetch.postOnce('path:/api/auth/login', { body: { token }, status: 200 }); // mock fetch all existing versions - fetch.getOnce('path:/api/version', { body: [{ name: '2.0.0', assets: [], flavor: { name: 'lite' } }], status: 200 }); + fetch.getOnce('path:/versions/sorted', { + body: { total: 1, offset: 0, page: 0, items: [{ name: '2.0.0', assets: [], flavor: { name: 'lite' } }] }, + status: 200, + }); // mock asset upload fetch.post('path:/api/asset', { status: 200 }); @@ -123,8 +129,13 @@ describe('PublisherERS', () => { // mock login fetch.postOnce('path:/api/auth/login', { body: { token }, status: 200 }); // mock fetch all existing versions - fetch.getOnce('path:/api/version', { - body: [{ name: '2.0.0', assets: [{ name: 'existing-artifact', platform: 'linux_64' }], flavor: { name: 'default' } }], + fetch.getOnce('path:/versions/sorted', { + body: { + total: 1, + offset: 0, + page: 0, + items: [{ name: '2.0.0', assets: [{ name: 'existing-artifact', platform: 'linux_64' }], flavor: { name: 'default' } }], + }, status: 200, }); @@ -161,7 +172,10 @@ describe('PublisherERS', () => { // mock login fetch.postOnce('path:/api/auth/login', { body: { token }, status: 200 }); // mock fetch all existing versions - fetch.getOnce('path:/api/version', { body: [{ name: '2.0.0', assets: [{ name: 'existing-artifact' }], flavor: { name: 'default' } }], status: 200 }); + fetch.getOnce('path:/versions/sorted', { + body: { total: 1, offset: 0, page: 0, items: [{ name: '2.0.0', assets: [{ name: 'existing-artifact' }], flavor: { name: 'default' } }] }, + status: 200, + }); // mock creating a new version fetch.postOnce('path:/api/version', { status: 200 }); // mock asset upload diff --git a/packages/publisher/gcs/package.json b/packages/publisher/gcs/package.json new file mode 100644 index 0000000000..2c3a159aab --- /dev/null +++ b/packages/publisher/gcs/package.json @@ -0,0 +1,30 @@ +{ + "name": "@electron-forge/publisher-gcs", + "version": "7.4.0", + "description": "Google Cloud Storage publisher for Electron Forge", + "repository": "https://github.com/electron/forge", + "author": "Evgeny Vlasenko", + "license": "MIT", + "main": "dist/PublisherGCS.js", + "typings": "dist/PublisherGCS.d.ts", + "devDependencies": { + "chai": "^4.3.3", + "mocha": "^9.0.1" + }, + "engines": { + "node": ">= 16.4.0" + }, + "dependencies": { + "@electron-forge/publisher-static": "7.4.0", + "@electron-forge/shared-types": "7.4.0", + "@google-cloud/storage": "^7.5.0", + "debug": "^4.3.1" + }, + "publishConfig": { + "access": "public" + }, + "files": [ + "dist", + "src" + ] +} diff --git a/packages/publisher/gcs/src/Config.ts b/packages/publisher/gcs/src/Config.ts new file mode 100644 index 0000000000..c17a7b491b --- /dev/null +++ b/packages/publisher/gcs/src/Config.ts @@ -0,0 +1,37 @@ +import { PredefinedAcl, StorageOptions } from '@google-cloud/storage'; + +export interface PublisherGCSConfig { + /** + * Options passed into the `Storage` client constructor. + * See https://cloud.google.com/nodejs/docs/reference/storage/latest/storage/storage for full reference. + */ + storageOptions: StorageOptions; + /** + * The name of the Google Cloud Storage bucket where artifacts are uploaded. + */ + bucket?: string; + /** + * The key prefix where artifacts are uploaded, e.g., `my/prefix`. + * + * Defaults to the application `version` specified in the app's `package.json`. + */ + folder?: string; + /** + * Apply a predefined set of access controls to this object. + */ + predefinedAcl?: PredefinedAcl; + /** + * Whether to make uploaded artifacts public to the internet. + * Alias for config.predefinedAcl = 'publicRead'. + */ + public?: boolean; + /** + * Whether to make uploaded artifacts private. + * Alias for config.predefinedAcl = 'private'. + */ + private?: boolean; + /** + * Custom function to provide the key to upload a given file to + */ + keyResolver?: (fileName: string, platform: string, arch: string) => string; +} diff --git a/packages/publisher/gcs/src/PublisherGCS.ts b/packages/publisher/gcs/src/PublisherGCS.ts new file mode 100644 index 0000000000..b094abfcea --- /dev/null +++ b/packages/publisher/gcs/src/PublisherGCS.ts @@ -0,0 +1,70 @@ +import { PublisherOptions, PublisherStatic } from '@electron-forge/publisher-static'; +import { Storage } from '@google-cloud/storage'; +import debug from 'debug'; + +import { PublisherGCSConfig } from './Config'; + +const d = debug('electron-forge:publish:gcs'); + +type GCSArtifact = { + path: string; + keyPrefix: string; + platform: string; + arch: string; +}; + +export default class PublisherGCS extends PublisherStatic { + name = 'gcs'; + + private GCSKeySafe = (key: string) => { + return key.replace(/@/g, '_').replace(/\//g, '_'); + }; + + async publish({ makeResults, setStatusLine }: PublisherOptions): Promise { + const artifacts: GCSArtifact[] = []; + + if (!this.config.bucket) { + throw new Error('In order to publish to Google Cloud Storage you must set the "bucket" property in your Forge config.'); + } + + for (const makeResult of makeResults) { + artifacts.push( + ...makeResult.artifacts.map((artifact) => ({ + path: artifact, + keyPrefix: this.config.folder || this.GCSKeySafe(makeResult.packageJSON.name), + platform: makeResult.platform, + arch: makeResult.arch, + })) + ); + } + + const storage = new Storage(this.config.storageOptions); + + const bucket = storage.bucket(this.config.bucket); + + d('creating Google Cloud Storage client with options:', this.config); + + let uploaded = 0; + const updateStatusLine = () => setStatusLine(`Uploading distributable (${uploaded}/${artifacts.length})`); + + updateStatusLine(); + await Promise.all( + artifacts.map(async (artifact) => { + d('uploading:', artifact.path); + + await bucket.upload(artifact.path, { + gzip: true, + destination: this.keyForArtifact(artifact), + predefinedAcl: this.config.predefinedAcl, + public: this.config.public, + private: this.config.private, + }); + + uploaded += 1; + updateStatusLine(); + }) + ); + } +} + +export { PublisherGCS, PublisherGCSConfig }; diff --git a/packages/publisher/github/package.json b/packages/publisher/github/package.json index 5486221ee9..e6fc4b9e33 100644 --- a/packages/publisher/github/package.json +++ b/packages/publisher/github/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/publisher-github", - "version": "6.4.2", + "version": "7.4.0", "description": "Github publisher for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -18,17 +18,20 @@ "sinon": "^13.0.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/publisher-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2", + "@electron-forge/publisher-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0", "@octokit/core": "^3.2.4", "@octokit/plugin-retry": "^3.0.9", + "@octokit/request-error": "^2.0.5", "@octokit/rest": "^18.0.11", "@octokit/types": "^6.1.2", + "chalk": "^4.0.0", "debug": "^4.3.1", "fs-extra": "^10.0.0", + "log-symbols": "^4.0.0", "mime-types": "^2.1.25" }, "publishConfig": { diff --git a/packages/publisher/github/src/Config.ts b/packages/publisher/github/src/Config.ts index acd2b1ed91..35f504f1a0 100644 --- a/packages/publisher/github/src/Config.ts +++ b/packages/publisher/github/src/Config.ts @@ -47,4 +47,8 @@ export interface PublisherGitHubConfig { * Re-upload the new asset if you upload an asset with the same filename as existing asset */ force?: boolean; + /** + * Whether to automatically generate release notes for the release + */ + generateReleaseNotes?: boolean; } diff --git a/packages/publisher/github/src/PublisherGithub.ts b/packages/publisher/github/src/PublisherGithub.ts index ddfbebf00f..803bf90605 100644 --- a/packages/publisher/github/src/PublisherGithub.ts +++ b/packages/publisher/github/src/PublisherGithub.ts @@ -1,7 +1,12 @@ +import path from 'node:path'; + import { PublisherBase, PublisherOptions } from '@electron-forge/publisher-base'; import { ForgeMakeResult } from '@electron-forge/shared-types'; +import { RequestError } from '@octokit/request-error'; import { GetResponseDataTypeFromEndpointMethod } from '@octokit/types'; +import chalk from 'chalk'; import fs from 'fs-extra'; +import logSymbols from 'log-symbols'; import mime from 'mime-types'; import { PublisherGitHubConfig } from './Config'; @@ -36,7 +41,7 @@ export default class PublisherGithub extends PublisherBase item.name === artifactName); + const asset = release!.assets.find((item: OctokitReleaseAsset) => item.name === sanitizedArtifactName); if (asset !== undefined) { if (config.force === true) { await github.getGitHub().repos.deleteReleaseAsset({ @@ -110,21 +117,36 @@ export default class PublisherGithub extends PublisherBase e) + .normalize('NFD') + .replace(/\p{Diacritic}/gu, '') + // Replace special characters with dot + .replace(/[^\w_.@+-]+/g, '.') + // Replace multiple dots with a single dot + .replace(/\.+/g, '.') + // Remove leading dot if present + .replace(/^\./g, '') + // Remove trailing dot if present + .replace(/\.$/g, '') + ); } } diff --git a/packages/publisher/github/test/github_spec.ts b/packages/publisher/github/test/github_spec.ts index 1b6e77f8fb..3e246e8f4b 100644 --- a/packages/publisher/github/test/github_spec.ts +++ b/packages/publisher/github/test/github_spec.ts @@ -115,8 +115,21 @@ describe('GitHub', () => { expect(GitHub.sanitizeName('path/to/foo..bar')).to.equal('foo.bar'); }); - it('should replace non-alphanumeric, non-hyphen characters with hyphens', () => { - expect(GitHub.sanitizeName('path/to/foo%$bar baz.')).to.equal('foo-bar-baz'); + it('should replace non-alphanumeric, non-hyphen characters with periods', () => { + expect(GitHub.sanitizeName('path/to/foo%$bar baz.')).to.equal('foo.bar.baz'); + }); + + it('should preserve special symbols', () => { + expect(GitHub.sanitizeName('path/to/@foo+bar_')).to.equal('@foo+bar_'); + }); + + it('should preserve hyphens', () => { + const name = 'electron-fiddle-0.99.0-full.nupkg'; + expect(GitHub.sanitizeName(`path/to/${name}`)).to.equal(name); + }); + + it('should remove diacritics', () => { + expect(GitHub.sanitizeName('électron')).to.equal('electron'); }); }); }); diff --git a/packages/publisher/nucleus/package.json b/packages/publisher/nucleus/package.json index 574d6752d3..b5515506c4 100644 --- a/packages/publisher/nucleus/package.json +++ b/packages/publisher/nucleus/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/publisher-nucleus", - "version": "6.4.2", + "version": "7.4.0", "description": "Nucleus publisher for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -12,11 +12,11 @@ "mocha": "^9.0.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/publisher-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2", + "@electron-forge/publisher-base": "7.4.0", + "@electron-forge/shared-types": "7.4.0", "debug": "^4.3.1", "form-data": "^4.0.0", "node-fetch": "^2.6.7" diff --git a/packages/publisher/s3/package.json b/packages/publisher/s3/package.json index b196d0e94e..38503bff12 100644 --- a/packages/publisher/s3/package.json +++ b/packages/publisher/s3/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/publisher-s3", - "version": "6.4.2", + "version": "7.4.0", "description": "S3 publisher for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -12,15 +12,15 @@ "mocha": "^9.0.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { "@aws-sdk/abort-controller": "^3.29.0", - "@aws-sdk/client-s3": "^3.28.0", + "@aws-sdk/client-s3": "^3.461.0", "@aws-sdk/lib-storage": "^3.28.0", "@aws-sdk/types": "^3.25.0", - "@electron-forge/publisher-base": "6.4.2", - "@electron-forge/shared-types": "6.4.2", + "@electron-forge/publisher-static": "7.4.0", + "@electron-forge/shared-types": "7.4.0", "debug": "^4.3.1" }, "publishConfig": { diff --git a/packages/publisher/s3/src/PublisherS3.ts b/packages/publisher/s3/src/PublisherS3.ts index 46ad03352c..d7a05be60f 100644 --- a/packages/publisher/s3/src/PublisherS3.ts +++ b/packages/publisher/s3/src/PublisherS3.ts @@ -4,7 +4,7 @@ import path from 'path'; import { S3Client } from '@aws-sdk/client-s3'; import { Progress, Upload } from '@aws-sdk/lib-storage'; import { Credentials } from '@aws-sdk/types'; -import { PublisherBase, PublisherOptions } from '@electron-forge/publisher-base'; +import { PublisherOptions, PublisherStatic } from '@electron-forge/publisher-static'; import debug from 'debug'; import { PublisherS3Config } from './Config'; @@ -18,7 +18,7 @@ type S3Artifact = { arch: string; }; -export default class PublisherS3 extends PublisherBase { +export default class PublisherS3 extends PublisherStatic { name = 's3'; private s3KeySafe = (key: string) => { @@ -84,14 +84,6 @@ export default class PublisherS3 extends PublisherBase { ); } - keyForArtifact(artifact: S3Artifact): string { - if (this.config.keyResolver) { - return this.config.keyResolver(path.basename(artifact.path), artifact.platform, artifact.arch); - } - - return `${artifact.keyPrefix}/${artifact.platform}/${artifact.arch}/${path.basename(artifact.path)}`; - } - generateCredentials(): Credentials | undefined { const accessKeyId = this.config.accessKeyId; const secretAccessKey = this.config.secretAccessKey; diff --git a/packages/publisher/snapcraft/package.json b/packages/publisher/snapcraft/package.json index e34e7abdca..bd894e96db 100644 --- a/packages/publisher/snapcraft/package.json +++ b/packages/publisher/snapcraft/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/publisher-snapcraft", - "version": "6.4.2", + "version": "7.4.0", "description": "Snapcraft publisher for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -12,10 +12,10 @@ "mocha": "^9.0.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/publisher-base": "6.4.2", + "@electron-forge/publisher-base": "7.4.0", "fs-extra": "^10.0.0" }, "optionalDependencies": { diff --git a/packages/template/base/package.json b/packages/template/base/package.json index cba32d2fd6..388d81f40c 100644 --- a/packages/template/base/package.json +++ b/packages/template/base/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/template-base", - "version": "6.4.2", + "version": "7.4.0", "description": "Base template for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -11,17 +11,17 @@ "test": "mocha --config ../../../.mocharc.js test/**/*_spec.ts" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/shared-types": "6.4.2", + "@electron-forge/shared-types": "7.4.0", "@malept/cross-spawn-promise": "^2.0.0", "debug": "^4.3.1", "fs-extra": "^10.0.0", "username": "^5.1.0" }, "devDependencies": { - "@electron-forge/test-utils": "6.4.2", + "@electron-forge/test-utils": "7.4.0", "chai": "^4.3.3", "mocha": "^9.0.1", "proxyquire": "^2.1.3", diff --git a/packages/template/base/tmpl/forge.config.js b/packages/template/base/tmpl/forge.config.js index 179a35e131..fa4a1138df 100644 --- a/packages/template/base/tmpl/forge.config.js +++ b/packages/template/base/tmpl/forge.config.js @@ -1,3 +1,6 @@ +const { FusesPlugin } = require('@electron-forge/plugin-fuses'); +const { FuseV1Options, FuseVersion } = require('@electron/fuses'); + module.exports = { packagerConfig: { asar: true, @@ -26,5 +29,16 @@ module.exports = { name: '@electron-forge/plugin-auto-unpack-natives', config: {}, }, + // Fuses are used to enable/disable various Electron functionality + // at package time, before code signing the application + new FusesPlugin({ + version: FuseVersion.V1, + [FuseV1Options.RunAsNode]: false, + [FuseV1Options.EnableCookieEncryption]: true, + [FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false, + [FuseV1Options.EnableNodeCliInspectArguments]: false, + [FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true, + [FuseV1Options.OnlyLoadAppFromAsar]: true, + }), ], }; diff --git a/packages/template/base/tmpl/index.js b/packages/template/base/tmpl/index.js index f581a1abb1..8740fc55f5 100644 --- a/packages/template/base/tmpl/index.js +++ b/packages/template/base/tmpl/index.js @@ -1,5 +1,5 @@ const { app, BrowserWindow } = require('electron'); -const path = require('path'); +const path = require('node:path'); // Handle creating/removing shortcuts on Windows when installing/uninstalling. if (require('electron-squirrel-startup')) { @@ -26,7 +26,17 @@ const createWindow = () => { // This method will be called when Electron has finished // initialization and is ready to create browser windows. // Some APIs can only be used after this event occurs. -app.on('ready', createWindow); +app.whenReady().then(() => { + createWindow(); + + // On OS X it's common to re-create a window in the app when the + // dock icon is clicked and there are no other windows open. + app.on('activate', () => { + if (BrowserWindow.getAllWindows().length === 0) { + createWindow(); + } + }); +}); // Quit when all windows are closed, except on macOS. There, it's common // for applications and their menu bar to stay active until the user quits @@ -37,13 +47,5 @@ app.on('window-all-closed', () => { } }); -app.on('activate', () => { - // On OS X it's common to re-create a window in the app when the - // dock icon is clicked and there are no other windows open. - if (BrowserWindow.getAllWindows().length === 0) { - createWindow(); - } -}); - // In this file you can include the rest of your app's specific main process // code. You can also put them in separate files and import them here. diff --git a/packages/template/base/tmpl/package.json b/packages/template/base/tmpl/package.json index ec4b7f596b..4b1bb912e9 100644 --- a/packages/template/base/tmpl/package.json +++ b/packages/template/base/tmpl/package.json @@ -10,6 +10,10 @@ "make": "electron-forge make", "publish": "electron-forge publish" }, + "devDependencies": { + "@electron/fuses": "^1.7.0", + "@electron-forge/plugin-fuses": "^7.2.0" + }, "keywords": [], "author": "", "license": "MIT" diff --git a/packages/template/vite-typescript/package.json b/packages/template/vite-typescript/package.json index 76606cf8f0..94996a5319 100644 --- a/packages/template/vite-typescript/package.json +++ b/packages/template/vite-typescript/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/template-vite-typescript", - "version": "6.4.2", + "version": "7.4.0", "description": "Vite-TypeScript template for Electron Forge, gets you started with Vite really quickly", "repository": { "type": "git", @@ -15,16 +15,16 @@ "test": "mocha --config ../../../.mocharc.js test/**/*_spec_slow.ts" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/shared-types": "6.4.2", - "@electron-forge/template-base": "6.4.2", + "@electron-forge/shared-types": "7.4.0", + "@electron-forge/template-base": "7.4.0", "fs-extra": "^10.0.0" }, "devDependencies": { - "@electron-forge/core-utils": "6.4.2", - "@electron-forge/test-utils": "6.4.2", + "@electron-forge/core-utils": "7.4.0", + "@electron-forge/test-utils": "7.4.0", "chai": "^4.3.3", "fast-glob": "^3.2.7" }, diff --git a/packages/template/vite-typescript/src/ViteTypeScriptTemplate.ts b/packages/template/vite-typescript/src/ViteTypeScriptTemplate.ts index 34c94311ff..a12ed4efe6 100644 --- a/packages/template/vite-typescript/src/ViteTypeScriptTemplate.ts +++ b/packages/template/vite-typescript/src/ViteTypeScriptTemplate.ts @@ -14,6 +14,7 @@ class ViteTypeScriptTemplate extends BaseTemplate { { title: 'Setting up Forge configuration', task: async () => { + await this.copyTemplateFile(directory, 'forge.env.d.ts'); await this.copyTemplateFile(directory, 'forge.config.ts'); await fs.remove(path.resolve(directory, 'forge.config.js')); }, @@ -24,9 +25,10 @@ class ViteTypeScriptTemplate extends BaseTemplate { const filePath = (fileName: string) => path.join(directory, 'src', fileName); // Copy Vite files + await this.copyTemplateFile(directory, 'vite.base.config.ts'); await this.copyTemplateFile(directory, 'vite.main.config.ts'); - await this.copyTemplateFile(directory, 'vite.renderer.config.ts'); await this.copyTemplateFile(directory, 'vite.preload.config.ts'); + await this.copyTemplateFile(directory, 'vite.renderer.config.ts'); // Copy tsconfig with a small set of presets await this.copyTemplateFile(directory, 'tsconfig.json'); @@ -39,7 +41,6 @@ class ViteTypeScriptTemplate extends BaseTemplate { await this.copyTemplateFile(path.join(directory, 'src'), 'main.ts'); await this.copyTemplateFile(path.join(directory, 'src'), 'renderer.ts'); - await this.copyTemplateFile(path.join(directory, 'src'), 'types.d.ts'); // Remove preload.js and replace with preload.ts await fs.remove(filePath('preload.js')); diff --git a/packages/template/vite-typescript/test/ViteTypeScriptTemplate_spec_slow.ts b/packages/template/vite-typescript/test/ViteTypeScriptTemplate_spec_slow.ts index a6f4c8b09b..24f34d5797 100644 --- a/packages/template/vite-typescript/test/ViteTypeScriptTemplate_spec_slow.ts +++ b/packages/template/vite-typescript/test/ViteTypeScriptTemplate_spec_slow.ts @@ -1,5 +1,5 @@ -import cp from 'child_process'; -import path from 'path'; +import os from 'node:os'; +import path from 'node:path'; import { packageManagerSpawn } from '@electron-forge/core-utils'; import * as testUtils from '@electron-forge/test-utils'; @@ -20,8 +20,10 @@ describe('ViteTypeScriptTemplate', () => { after(async () => { await packageManagerSpawn(['link:remove']); - await killWindowsEsbuildExe(); - await fs.remove(dir); + if (os.platform() !== 'win32') { + // Windows platform `fs.remove(dir)` logic useing npm `npm run test:clear`. + await fs.remove(dir); + } }); describe('template files are copied to project', () => { @@ -34,16 +36,18 @@ describe('ViteTypeScriptTemplate', () => { }); const expectedFiles = [ + 'package.json', 'tsconfig.json', '.eslintrc.json', + 'forge.env.d.ts', 'forge.config.ts', + 'vite.base.config.ts', 'vite.main.config.ts', - 'vite.renderer.config.ts', 'vite.preload.config.ts', + 'vite.renderer.config.ts', path.join('src', 'main.ts'), path.join('src', 'renderer.ts'), path.join('src', 'preload.ts'), - path.join('src', 'types.d.ts'), ]; for (const filename of expectedFiles) { it(`${filename} should exist`, async () => { @@ -102,43 +106,3 @@ describe('ViteTypeScriptTemplate', () => { }); }); }); - -/** - * TODO: resolve `esbuild` can not exit normally on the Windows platform. - * @deprecated - */ -async function killWindowsEsbuildExe() { - if (process.platform !== 'win32') { - return Promise.resolve(); - } - - return new Promise((resolve, reject) => { - cp.exec('tasklist', (error, stdout) => { - if (error) { - reject(error); - return; - } - - const esbuild = stdout - .toString() - .split('\n') - .map((line) => line.split(/\s+/)) - .find((line) => line.includes('esbuild.exe')); - - if (!esbuild) { - resolve(); - return; - } - - // ['esbuild.exe', '4564', 'Console', '1', '14,400', 'K', ''] - const [, pid] = esbuild; - const result = process.kill(+pid, 'SIGINT'); - - if (result) { - resolve(); - } else { - reject(new Error('kill esbuild process failed')); - } - }); - }); -} diff --git a/packages/template/vite-typescript/tmpl/forge.config.ts b/packages/template/vite-typescript/tmpl/forge.config.ts index ec2b06b858..1ab9f7e906 100644 --- a/packages/template/vite-typescript/tmpl/forge.config.ts +++ b/packages/template/vite-typescript/tmpl/forge.config.ts @@ -4,9 +4,13 @@ import { MakerZIP } from '@electron-forge/maker-zip'; import { MakerDeb } from '@electron-forge/maker-deb'; import { MakerRpm } from '@electron-forge/maker-rpm'; import { VitePlugin } from '@electron-forge/plugin-vite'; +import { FusesPlugin } from '@electron-forge/plugin-fuses'; +import { FuseV1Options, FuseVersion } from '@electron/fuses'; const config: ForgeConfig = { - packagerConfig: {}, + packagerConfig: { + asar: true, + }, rebuildConfig: {}, makers: [new MakerSquirrel({}), new MakerZIP({}, ['darwin']), new MakerRpm({}), new MakerDeb({})], plugins: [ @@ -31,6 +35,17 @@ const config: ForgeConfig = { }, ], }), + // Fuses are used to enable/disable various Electron functionality + // at package time, before code signing the application + new FusesPlugin({ + version: FuseVersion.V1, + [FuseV1Options.RunAsNode]: false, + [FuseV1Options.EnableCookieEncryption]: true, + [FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false, + [FuseV1Options.EnableNodeCliInspectArguments]: false, + [FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true, + [FuseV1Options.OnlyLoadAppFromAsar]: true, + }), ], }; diff --git a/packages/template/vite-typescript/tmpl/forge.env.d.ts b/packages/template/vite-typescript/tmpl/forge.env.d.ts new file mode 100644 index 0000000000..8cbf19d3c4 --- /dev/null +++ b/packages/template/vite-typescript/tmpl/forge.env.d.ts @@ -0,0 +1,31 @@ +export {}; // Make this a module + +declare global { + // This allows TypeScript to pick up the magic constants that's auto-generated by Forge's Vite + // plugin that tells the Electron app where to look for the Vite-bundled app code (depending on + // whether you're running in development or production). + const MAIN_WINDOW_VITE_DEV_SERVER_URL: string; + const MAIN_WINDOW_VITE_NAME: string; + + namespace NodeJS { + interface Process { + // Used for hot reload after preload scripts. + viteDevServers: Record; + } + } + + type VitePluginConfig = ConstructorParameters[0]; + + interface VitePluginRuntimeKeys { + VITE_DEV_SERVER_URL: `${string}_VITE_DEV_SERVER_URL`; + VITE_NAME: `${string}_VITE_NAME`; + } +} + +declare module 'vite' { + interface ConfigEnv { + root: string; + forgeConfig: VitePluginConfig; + forgeConfigSelf: VitePluginConfig[K][number]; + } +} diff --git a/packages/template/vite-typescript/tmpl/package.json b/packages/template/vite-typescript/tmpl/package.json index 4e477a9ce6..cd0bbb4f61 100644 --- a/packages/template/vite-typescript/tmpl/package.json +++ b/packages/template/vite-typescript/tmpl/package.json @@ -1,11 +1,14 @@ { "devDependencies": { + "@electron/fuses": "^1.7.0", + "@electron-forge/plugin-fuses": "^7.2.0", "@electron-forge/plugin-vite": "ELECTRON_FORGE/VERSION", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", "eslint": "^8.0.1", "eslint-plugin-import": "^2.25.0", "ts-node": "^10.0.0", - "typescript": "~4.5.4" + "typescript": "~4.5.4", + "vite": "^5.0.12" } } diff --git a/packages/template/vite-typescript/tmpl/tsconfig.json b/packages/template/vite-typescript/tmpl/tsconfig.json index 01a588b529..74434b2a5d 100644 --- a/packages/template/vite-typescript/tmpl/tsconfig.json +++ b/packages/template/vite-typescript/tmpl/tsconfig.json @@ -11,6 +11,5 @@ "outDir": "dist", "moduleResolution": "node", "resolveJsonModule": true - }, - "include": ["src"] + } } diff --git a/packages/template/vite-typescript/tmpl/types.d.ts b/packages/template/vite-typescript/tmpl/types.d.ts deleted file mode 100644 index eae3393f14..0000000000 --- a/packages/template/vite-typescript/tmpl/types.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -// This allows TypeScript to pick up the magic constants that's auto-generated by Forge's Vite -// plugin that tells the Electron app where to look for the Vite-bundled app code (depending on -// whether you're running in development or production). -declare const MAIN_WINDOW_VITE_DEV_SERVER_URL: string; -declare const MAIN_WINDOW_VITE_NAME: string; diff --git a/packages/template/vite-typescript/tmpl/vite.base.config.ts b/packages/template/vite-typescript/tmpl/vite.base.config.ts new file mode 100644 index 0000000000..25120d990d --- /dev/null +++ b/packages/template/vite-typescript/tmpl/vite.base.config.ts @@ -0,0 +1,93 @@ +import { builtinModules } from 'node:module'; +import type { AddressInfo } from 'node:net'; +import type { ConfigEnv, Plugin, UserConfig } from 'vite'; +import pkg from './package.json'; + +export const builtins = ['electron', ...builtinModules.map((m) => [m, `node:${m}`]).flat()]; + +export const external = [...builtins, ...Object.keys('dependencies' in pkg ? (pkg.dependencies as Record) : {})]; + +export function getBuildConfig(env: ConfigEnv<'build'>): UserConfig { + const { root, mode, command } = env; + + return { + root, + mode, + build: { + // Prevent multiple builds from interfering with each other. + emptyOutDir: false, + // 🚧 Multiple builds may conflict. + outDir: '.vite/build', + watch: command === 'serve' ? {} : null, + minify: command === 'build', + }, + clearScreen: false, + }; +} + +export function getDefineKeys(names: string[]) { + const define: { [name: string]: VitePluginRuntimeKeys } = {}; + + return names.reduce((acc, name) => { + const NAME = name.toUpperCase(); + const keys: VitePluginRuntimeKeys = { + VITE_DEV_SERVER_URL: `${NAME}_VITE_DEV_SERVER_URL`, + VITE_NAME: `${NAME}_VITE_NAME`, + }; + + return { ...acc, [name]: keys }; + }, define); +} + +export function getBuildDefine(env: ConfigEnv<'build'>) { + const { command, forgeConfig } = env; + const names = forgeConfig.renderer.filter(({ name }) => name != null).map(({ name }) => name!); + const defineKeys = getDefineKeys(names); + const define = Object.entries(defineKeys).reduce((acc, [name, keys]) => { + const { VITE_DEV_SERVER_URL, VITE_NAME } = keys; + const def = { + [VITE_DEV_SERVER_URL]: command === 'serve' ? JSON.stringify(process.env[VITE_DEV_SERVER_URL]) : undefined, + [VITE_NAME]: JSON.stringify(name), + }; + return { ...acc, ...def }; + }, {} as Record); + + return define; +} + +export function pluginExposeRenderer(name: string): Plugin { + const { VITE_DEV_SERVER_URL } = getDefineKeys([name])[name]; + + return { + name: '@electron-forge/plugin-vite:expose-renderer', + configureServer(server) { + process.viteDevServers ??= {}; + // Expose server for preload scripts hot reload. + process.viteDevServers[name] = server; + + server.httpServer?.once('listening', () => { + const addressInfo = server.httpServer!.address() as AddressInfo; + // Expose env constant for main process use. + process.env[VITE_DEV_SERVER_URL] = `http://localhost:${addressInfo?.port}`; + }); + }, + }; +} + +export function pluginHotRestart(command: 'reload' | 'restart'): Plugin { + return { + name: '@electron-forge/plugin-vite:hot-restart', + closeBundle() { + if (command === 'reload') { + for (const server of Object.values(process.viteDevServers)) { + // Preload scripts hot reload. + server.ws.send({ type: 'full-reload' }); + } + } else { + // Main process hot restart. + // https://github.com/electron/forge/blob/v7.2.0/packages/api/core/src/api/start.ts#L216-L223 + process.stdin.emit('data', 'rs'); + } + }, + }; +} diff --git a/packages/template/vite-typescript/tmpl/vite.main.config.ts b/packages/template/vite-typescript/tmpl/vite.main.config.ts index c93ad03824..a4b3769d86 100644 --- a/packages/template/vite-typescript/tmpl/vite.main.config.ts +++ b/packages/template/vite-typescript/tmpl/vite.main.config.ts @@ -1,10 +1,30 @@ -import { defineConfig } from 'vite'; +import type { ConfigEnv, UserConfig } from 'vite'; +import { defineConfig, mergeConfig } from 'vite'; +import { getBuildConfig, getBuildDefine, external, pluginHotRestart } from './vite.base.config'; // https://vitejs.dev/config -export default defineConfig({ - resolve: { - // Some libs that can run in both Web and Node.js, such as `axios`, we need to tell Vite to build them in Node.js. - browserField: false, - mainFields: ['module', 'jsnext:main', 'jsnext'], - }, +export default defineConfig((env) => { + const forgeEnv = env as ConfigEnv<'build'>; + const { forgeConfigSelf } = forgeEnv; + const define = getBuildDefine(forgeEnv); + const config: UserConfig = { + build: { + lib: { + entry: forgeConfigSelf.entry!, + fileName: () => '[name].js', + formats: ['cjs'], + }, + rollupOptions: { + external, + }, + }, + plugins: [pluginHotRestart('restart')], + define, + resolve: { + // Load the Node.js entry. + mainFields: ['module', 'jsnext:main', 'jsnext'], + }, + }; + + return mergeConfig(getBuildConfig(forgeEnv), config); }); diff --git a/packages/template/vite-typescript/tmpl/vite.preload.config.ts b/packages/template/vite-typescript/tmpl/vite.preload.config.ts index 690be5b1a9..3cbadf6f59 100644 --- a/packages/template/vite-typescript/tmpl/vite.preload.config.ts +++ b/packages/template/vite-typescript/tmpl/vite.preload.config.ts @@ -1,4 +1,29 @@ -import { defineConfig } from 'vite'; +import type { ConfigEnv, UserConfig } from 'vite'; +import { defineConfig, mergeConfig } from 'vite'; +import { getBuildConfig, external, pluginHotRestart } from './vite.base.config'; // https://vitejs.dev/config -export default defineConfig({}); +export default defineConfig((env) => { + const forgeEnv = env as ConfigEnv<'build'>; + const { forgeConfigSelf } = forgeEnv; + const config: UserConfig = { + build: { + rollupOptions: { + external, + // Preload scripts may contain Web assets, so use the `build.rollupOptions.input` instead `build.lib.entry`. + input: forgeConfigSelf.entry!, + output: { + format: 'cjs', + // It should not be split chunks. + inlineDynamicImports: true, + entryFileNames: '[name].js', + chunkFileNames: '[name].js', + assetFileNames: '[name].[ext]', + }, + }, + }, + plugins: [pluginHotRestart('reload')], + }; + + return mergeConfig(getBuildConfig(forgeEnv), config); +}); diff --git a/packages/template/vite-typescript/tmpl/vite.renderer.config.ts b/packages/template/vite-typescript/tmpl/vite.renderer.config.ts index 690be5b1a9..e821a3bb6d 100644 --- a/packages/template/vite-typescript/tmpl/vite.renderer.config.ts +++ b/packages/template/vite-typescript/tmpl/vite.renderer.config.ts @@ -1,4 +1,24 @@ +import type { ConfigEnv, UserConfig } from 'vite'; import { defineConfig } from 'vite'; +import { pluginExposeRenderer } from './vite.base.config'; // https://vitejs.dev/config -export default defineConfig({}); +export default defineConfig((env) => { + const forgeEnv = env as ConfigEnv<'renderer'>; + const { root, mode, forgeConfigSelf } = forgeEnv; + const name = forgeConfigSelf.name ?? ''; + + return { + root, + mode, + base: './', + build: { + outDir: `.vite/renderer/${name}`, + }, + plugins: [pluginExposeRenderer(name)], + resolve: { + preserveSymlinks: true, + }, + clearScreen: false, + } as UserConfig; +}); diff --git a/packages/template/vite/package.json b/packages/template/vite/package.json index 712a42fdbb..b5878fbb6e 100644 --- a/packages/template/vite/package.json +++ b/packages/template/vite/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/template-vite", - "version": "6.4.2", + "version": "7.4.0", "description": "Vite template for Electron Forge, gets you started with Vite really quickly", "repository": { "type": "git", @@ -15,17 +15,17 @@ "test": "mocha --config ../../../.mocharc.js test/**/*_spec.ts" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/shared-types": "6.4.2", - "@electron-forge/template-base": "6.4.2", + "@electron-forge/shared-types": "7.4.0", + "@electron-forge/template-base": "7.4.0", "fs-extra": "^10.0.0" }, "devDependencies": { - "@electron-forge/test-utils": "6.4.2", + "@electron-forge/test-utils": "7.4.0", "chai": "^4.3.3", - "listr2": "^5.0.3" + "listr2": "^7.0.2" }, "publishConfig": { "access": "public" diff --git a/packages/template/vite/src/ViteTemplate.ts b/packages/template/vite/src/ViteTemplate.ts index 2dbe62e474..bed574da2f 100644 --- a/packages/template/vite/src/ViteTemplate.ts +++ b/packages/template/vite/src/ViteTemplate.ts @@ -15,14 +15,17 @@ class ViteTemplate extends BaseTemplate { title: 'Setting up Forge configuration', task: async () => { await this.copyTemplateFile(directory, 'forge.config.js'); + await this.copyTemplateFile(directory, 'forge.env.d.txt'); + await fs.rename(path.join(directory, 'forge.env.d.txt'), path.join(directory, 'forge.env.d.ts')); }, }, { title: 'Setting up Vite configuration', task: async () => { - await this.copyTemplateFile(directory, 'vite.renderer.config.mjs'); + await this.copyTemplateFile(directory, 'vite.base.config.mjs'); await this.copyTemplateFile(directory, 'vite.main.config.mjs'); await this.copyTemplateFile(directory, 'vite.preload.config.mjs'); + await this.copyTemplateFile(directory, 'vite.renderer.config.mjs'); await this.copyTemplateFile(path.join(directory, 'src'), 'renderer.js'); await this.copyTemplateFile(path.join(directory, 'src'), 'preload.js'); diff --git a/packages/template/vite/test/ViteTemplate_spec.ts b/packages/template/vite/test/ViteTemplate_spec.ts index d6c5d07eea..259fe61589 100644 --- a/packages/template/vite/test/ViteTemplate_spec.ts +++ b/packages/template/vite/test/ViteTemplate_spec.ts @@ -16,16 +16,24 @@ describe('ViteTemplate', () => { it('should succeed in initializing the vite template', async () => { const tasks = await template.initializeTemplate(dir, {}); - const runner = new Listr(tasks, { concurrent: false, exitOnError: false }); + const runner = new Listr(tasks, { + concurrent: false, + exitOnError: false, + fallbackRendererCondition: Boolean(process.env.DEBUG) || Boolean(process.env.CI), + }); await runner.run(); - expect(runner.err).to.have.lengthOf(0); + expect(runner.errors).to.have.lengthOf(0); }); context('template files are copied to project', () => { const expectedFiles = [ - 'vite.renderer.config.mjs', + 'package.json', + 'forge.env.d.ts', + 'forge.config.js', + 'vite.base.config.mjs', 'vite.main.config.mjs', 'vite.preload.config.mjs', + 'vite.renderer.config.mjs', path.join('src', 'renderer.js'), path.join('src', 'preload.js'), ]; diff --git a/packages/template/vite/tmpl/forge.config.js b/packages/template/vite/tmpl/forge.config.js index 04403354a6..45572b88fe 100644 --- a/packages/template/vite/tmpl/forge.config.js +++ b/packages/template/vite/tmpl/forge.config.js @@ -1,5 +1,10 @@ +const { FusesPlugin } = require('@electron-forge/plugin-fuses'); +const { FuseV1Options, FuseVersion } = require('@electron/fuses'); + module.exports = { - packagerConfig: {}, + packagerConfig: { + asar: true, + }, rebuildConfig: {}, makers: [ { @@ -44,5 +49,16 @@ module.exports = { ], }, }, + // Fuses are used to enable/disable various Electron functionality + // at package time, before code signing the application + new FusesPlugin({ + version: FuseVersion.V1, + [FuseV1Options.RunAsNode]: false, + [FuseV1Options.EnableCookieEncryption]: true, + [FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false, + [FuseV1Options.EnableNodeCliInspectArguments]: false, + [FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true, + [FuseV1Options.OnlyLoadAppFromAsar]: true, + }), ], }; diff --git a/packages/template/vite/tmpl/forge.env.d.txt b/packages/template/vite/tmpl/forge.env.d.txt new file mode 100644 index 0000000000..8cbf19d3c4 --- /dev/null +++ b/packages/template/vite/tmpl/forge.env.d.txt @@ -0,0 +1,31 @@ +export {}; // Make this a module + +declare global { + // This allows TypeScript to pick up the magic constants that's auto-generated by Forge's Vite + // plugin that tells the Electron app where to look for the Vite-bundled app code (depending on + // whether you're running in development or production). + const MAIN_WINDOW_VITE_DEV_SERVER_URL: string; + const MAIN_WINDOW_VITE_NAME: string; + + namespace NodeJS { + interface Process { + // Used for hot reload after preload scripts. + viteDevServers: Record; + } + } + + type VitePluginConfig = ConstructorParameters[0]; + + interface VitePluginRuntimeKeys { + VITE_DEV_SERVER_URL: `${string}_VITE_DEV_SERVER_URL`; + VITE_NAME: `${string}_VITE_NAME`; + } +} + +declare module 'vite' { + interface ConfigEnv { + root: string; + forgeConfig: VitePluginConfig; + forgeConfigSelf: VitePluginConfig[K][number]; + } +} diff --git a/packages/template/vite/tmpl/package.json b/packages/template/vite/tmpl/package.json index 03feaefeef..8cb3c12655 100644 --- a/packages/template/vite/tmpl/package.json +++ b/packages/template/vite/tmpl/package.json @@ -1,5 +1,8 @@ { "devDependencies": { - "@electron-forge/plugin-vite": "ELECTRON_FORGE/VERSION" + "@electron/fuses": "^1.7.0", + "@electron-forge/plugin-fuses": "^7.2.0", + "@electron-forge/plugin-vite": "ELECTRON_FORGE/VERSION", + "vite": "^5.0.12" } } diff --git a/packages/template/vite/tmpl/vite.base.config.mjs b/packages/template/vite/tmpl/vite.base.config.mjs new file mode 100644 index 0000000000..6f9b0c52f4 --- /dev/null +++ b/packages/template/vite/tmpl/vite.base.config.mjs @@ -0,0 +1,109 @@ +import { builtinModules } from 'node:module'; +import pkg from './package.json'; + +export const builtins = [ + 'electron', + ...builtinModules.map((m) => [m, `node:${m}`]).flat(), +]; + +export const external = [...builtins, ...Object.keys(pkg.dependencies || {})]; + +/** @type {(env: import('vite').ConfigEnv<'build'>) => import('vite').UserConfig} */ +export const getBuildConfig = (env) => { + const { root, mode, command } = env; + + return { + root, + mode, + build: { + // Prevent multiple builds from interfering with each other. + emptyOutDir: false, + // 🚧 Multiple builds may conflict. + outDir: '.vite/build', + watch: command === 'serve' ? {} : null, + minify: command === 'build', + }, + clearScreen: false, + }; +}; + +/** @type {(names: string[]) => { [name: string]: VitePluginRuntimeKeys } }} */ +export const getDefineKeys = (names) => { + /** @type {{ [name: string]: VitePluginRuntimeKeys }} */ + const define = {}; + + return names.reduce((acc, name) => { + const NAME = name.toUpperCase(); + /** @type {VitePluginRuntimeKeys} */ + const keys = { + VITE_DEV_SERVER_URL: `${NAME}_VITE_DEV_SERVER_URL`, + VITE_NAME: `${NAME}_VITE_NAME`, + }; + + return { ...acc, [name]: keys }; + }, define); +}; + +/** @type {(env: import('vite').ConfigEnv<'build'>) => Record} */ +export const getBuildDefine = (env) => { + const { command, forgeConfig } = env; + const names = forgeConfig.renderer + .filter(({ name }) => name != null) + .map(({ name }) => name); + const defineKeys = getDefineKeys(names); + const define = Object.entries(defineKeys).reduce((acc, [name, keys]) => { + const { VITE_DEV_SERVER_URL, VITE_NAME } = keys; + const def = { + [VITE_DEV_SERVER_URL]: + command === 'serve' + ? JSON.stringify(process.env[VITE_DEV_SERVER_URL]) + : undefined, + [VITE_NAME]: JSON.stringify(name), + }; + return { ...acc, ...def }; + }, {}); + + return define; +}; + +/** @type {(name: string) => import('vite').Plugin} */ +export const pluginExposeRenderer = (name) => { + const { VITE_DEV_SERVER_URL } = getDefineKeys([name])[name]; + + return { + name: '@electron-forge/plugin-vite:expose-renderer', + configureServer(server) { + process.viteDevServers ??= {}; + // Expose server for preload scripts hot reload. + process.viteDevServers[name] = server; + + server.httpServer?.once('listening', () => { + /** @type {import('node:net').AddressInfo} */ + const addressInfo = server.httpServer?.address(); + // Expose env constant for main process use. + process.env[ + VITE_DEV_SERVER_URL + ] = `http://localhost:${addressInfo?.port}`; + }); + }, + }; +}; + +/** @type {(command: 'reload' | 'restart') => import('vite').Plugin} */ +export const pluginHotRestart = (command) => { + return { + name: '@electron-forge/plugin-vite:hot-restart', + closeBundle() { + if (command === 'reload') { + for (const server of Object.values(process.viteDevServers)) { + // Preload scripts hot reload. + server.ws.send({ type: 'full-reload' }); + } + } else { + // Main process hot restart. + // https://github.com/electron/forge/blob/v7.2.0/packages/api/core/src/api/start.ts#L216-L223 + process.stdin.emit('data', 'rs'); + } + }, + }; +}; diff --git a/packages/template/vite/tmpl/vite.main.config.mjs b/packages/template/vite/tmpl/vite.main.config.mjs index 300b63c0d9..aa16d6e5e3 100644 --- a/packages/template/vite/tmpl/vite.main.config.mjs +++ b/packages/template/vite/tmpl/vite.main.config.mjs @@ -1,11 +1,35 @@ -import { defineConfig } from 'vite'; +import { defineConfig, mergeConfig } from 'vite'; +import { + getBuildConfig, + getBuildDefine, + external, + pluginHotRestart, +} from './vite.base.config.mjs'; // https://vitejs.dev/config -export default defineConfig({ - resolve: { - // Some libs that can run in both Web and Node.js, such as `axios`, we need to tell Vite to build them in Node.js. - browserField: false, - conditions: ['node'], - mainFields: ['module', 'jsnext:main', 'jsnext'], - }, +export default defineConfig((env) => { + /** @type {import('vite').ConfigEnv<'build'>} */ + const forgeEnv = env; + const { forgeConfigSelf } = forgeEnv; + const define = getBuildDefine(forgeEnv); + const config = { + build: { + lib: { + entry: forgeConfigSelf.entry, + fileName: () => '[name].js', + formats: ['cjs'], + }, + rollupOptions: { + external, + }, + }, + plugins: [pluginHotRestart('restart')], + define, + resolve: { + // Load the Node.js entry. + mainFields: ['module', 'jsnext:main', 'jsnext'], + }, + }; + + return mergeConfig(getBuildConfig(forgeEnv), config); }); diff --git a/packages/template/vite/tmpl/vite.preload.config.mjs b/packages/template/vite/tmpl/vite.preload.config.mjs index 690be5b1a9..40314c34d7 100644 --- a/packages/template/vite/tmpl/vite.preload.config.mjs +++ b/packages/template/vite/tmpl/vite.preload.config.mjs @@ -1,4 +1,34 @@ -import { defineConfig } from 'vite'; +import { defineConfig, mergeConfig } from 'vite'; +import { + getBuildConfig, + external, + pluginHotRestart, +} from './vite.base.config.mjs'; // https://vitejs.dev/config -export default defineConfig({}); +export default defineConfig((env) => { + /** @type {import('vite').ConfigEnv<'build'>} */ + const forgeEnv = env; + const { forgeConfigSelf } = forgeEnv; + /** @type {import('vite').UserConfig} */ + const config = { + build: { + rollupOptions: { + external, + // Preload scripts may contain Web assets, so use the `build.rollupOptions.input` instead `build.lib.entry`. + input: forgeConfigSelf.entry, + output: { + format: 'cjs', + // It should not be split chunks. + inlineDynamicImports: true, + entryFileNames: '[name].js', + chunkFileNames: '[name].js', + assetFileNames: '[name].[ext]', + }, + }, + }, + plugins: [pluginHotRestart('reload')], + }; + + return mergeConfig(getBuildConfig(forgeEnv), config); +}); diff --git a/packages/template/vite/tmpl/vite.renderer.config.mjs b/packages/template/vite/tmpl/vite.renderer.config.mjs index 690be5b1a9..34e8b6b3d3 100644 --- a/packages/template/vite/tmpl/vite.renderer.config.mjs +++ b/packages/template/vite/tmpl/vite.renderer.config.mjs @@ -1,4 +1,25 @@ import { defineConfig } from 'vite'; +import { pluginExposeRenderer } from './vite.base.config.mjs'; // https://vitejs.dev/config -export default defineConfig({}); +export default defineConfig((env) => { + /** @type {import('vite').ConfigEnv<'renderer'>} */ + const forgeEnv = env; + const { root, mode, forgeConfigSelf } = forgeEnv; + const name = forgeConfigSelf.name ?? ''; + + /** @type {import('vite').UserConfig} */ + return { + root, + mode, + base: './', + build: { + outDir: `.vite/renderer/${name}`, + }, + plugins: [pluginExposeRenderer(name)], + resolve: { + preserveSymlinks: true, + }, + clearScreen: false, + }; +}); diff --git a/packages/template/webpack-typescript/package.json b/packages/template/webpack-typescript/package.json index d3eb20db4f..9d985ecc4f 100644 --- a/packages/template/webpack-typescript/package.json +++ b/packages/template/webpack-typescript/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/template-webpack-typescript", - "version": "6.4.2", + "version": "7.4.0", "description": "Webpack-TypeScript template for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Shelley Vohr ", @@ -11,25 +11,25 @@ "test": "mocha --config ../../../.mocharc.js test/**/*_spec_slow.ts" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/shared-types": "6.4.2", - "@electron-forge/template-base": "6.4.2", + "@electron-forge/shared-types": "7.4.0", + "@electron-forge/template-base": "7.4.0", "fs-extra": "^10.0.0" }, "devDependencies": { - "@electron-forge/core-utils": "6.4.2", - "@electron-forge/maker-deb": "6.4.2", - "@electron-forge/maker-rpm": "6.4.2", - "@electron-forge/maker-squirrel": "6.4.2", - "@electron-forge/maker-zip": "6.4.2", - "@electron-forge/plugin-webpack": "6.4.2", - "@electron-forge/test-utils": "6.4.2", + "@electron-forge/core-utils": "7.4.0", + "@electron-forge/maker-deb": "7.4.0", + "@electron-forge/maker-rpm": "7.4.0", + "@electron-forge/maker-squirrel": "7.4.0", + "@electron-forge/maker-zip": "7.4.0", + "@electron-forge/plugin-webpack": "7.4.0", + "@electron-forge/test-utils": "7.4.0", "chai": "^4.3.3", "fast-glob": "^3.2.7", "fork-ts-checker-webpack-plugin": "^7.2.13", - "listr2": "^5.0.3" + "listr2": "^7.0.2" }, "files": [ "dist", diff --git a/packages/template/webpack-typescript/tmpl/forge.config.ts b/packages/template/webpack-typescript/tmpl/forge.config.ts index a303ad52ee..1dcc889870 100644 --- a/packages/template/webpack-typescript/tmpl/forge.config.ts +++ b/packages/template/webpack-typescript/tmpl/forge.config.ts @@ -5,6 +5,8 @@ import { MakerDeb } from '@electron-forge/maker-deb'; import { MakerRpm } from '@electron-forge/maker-rpm'; import { AutoUnpackNativesPlugin } from '@electron-forge/plugin-auto-unpack-natives'; import { WebpackPlugin } from '@electron-forge/plugin-webpack'; +import { FusesPlugin } from '@electron-forge/plugin-fuses'; +import { FuseV1Options, FuseVersion } from '@electron/fuses'; import { mainConfig } from './webpack.main.config'; import { rendererConfig } from './webpack.renderer.config'; @@ -33,6 +35,17 @@ const config: ForgeConfig = { ], }, }), + // Fuses are used to enable/disable various Electron functionality + // at package time, before code signing the application + new FusesPlugin({ + version: FuseVersion.V1, + [FuseV1Options.RunAsNode]: false, + [FuseV1Options.EnableCookieEncryption]: true, + [FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false, + [FuseV1Options.EnableNodeCliInspectArguments]: false, + [FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true, + [FuseV1Options.OnlyLoadAppFromAsar]: true, + }), ], }; diff --git a/packages/template/webpack-typescript/tmpl/package.json b/packages/template/webpack-typescript/tmpl/package.json index 72d70fb4d9..0c73cd5272 100644 --- a/packages/template/webpack-typescript/tmpl/package.json +++ b/packages/template/webpack-typescript/tmpl/package.json @@ -1,5 +1,7 @@ { "devDependencies": { + "@electron/fuses": "^1.7.0", + "@electron-forge/plugin-fuses": "^7.2.0", "@electron-forge/plugin-webpack": "ELECTRON_FORGE/VERSION", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", diff --git a/packages/template/webpack-typescript/tmpl/webpack.main.config.ts b/packages/template/webpack-typescript/tmpl/webpack.main.config.ts index c978c175a1..5ed911f841 100644 --- a/packages/template/webpack-typescript/tmpl/webpack.main.config.ts +++ b/packages/template/webpack-typescript/tmpl/webpack.main.config.ts @@ -1,6 +1,7 @@ import type { Configuration } from 'webpack'; import { rules } from './webpack.rules'; +import { plugins } from './webpack.plugins'; export const mainConfig: Configuration = { /** @@ -12,6 +13,7 @@ export const mainConfig: Configuration = { module: { rules, }, + plugins, resolve: { extensions: ['.js', '.ts', '.jsx', '.tsx', '.css', '.json'], }, diff --git a/packages/template/webpack/package.json b/packages/template/webpack/package.json index cde6e0a3fd..01ef7f1de2 100644 --- a/packages/template/webpack/package.json +++ b/packages/template/webpack/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/template-webpack", - "version": "6.4.2", + "version": "7.4.0", "description": "Webpack template for Electron Forge, gets you started with Webpack really quickly", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -11,17 +11,17 @@ "test": "mocha --config ../../../.mocharc.js test/**/*_spec.ts" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "dependencies": { - "@electron-forge/shared-types": "6.4.2", - "@electron-forge/template-base": "6.4.2", + "@electron-forge/shared-types": "7.4.0", + "@electron-forge/template-base": "7.4.0", "fs-extra": "^10.0.0" }, "devDependencies": { - "@electron-forge/test-utils": "6.4.2", + "@electron-forge/test-utils": "7.4.0", "chai": "^4.3.3", - "listr2": "^5.0.3" + "listr2": "^7.0.2" }, "publishConfig": { "access": "public" diff --git a/packages/template/webpack/test/WebpackTemplate_spec.ts b/packages/template/webpack/test/WebpackTemplate_spec.ts index 256f02f18d..2f182b66f3 100644 --- a/packages/template/webpack/test/WebpackTemplate_spec.ts +++ b/packages/template/webpack/test/WebpackTemplate_spec.ts @@ -16,9 +16,13 @@ describe('WebpackTemplate', () => { it('should succeed in initializing the webpack template', async () => { const tasks = await template.initializeTemplate(dir, {}); - const runner = new Listr(tasks, { concurrent: false, exitOnError: false }); + const runner = new Listr(tasks, { + concurrent: false, + exitOnError: false, + fallbackRendererCondition: Boolean(process.env.DEBUG) || Boolean(process.env.CI), + }); await runner.run(); - expect(runner.err).to.have.lengthOf(0); + expect(runner.errors).to.have.lengthOf(0); }); context('template files are copied to project', () => { diff --git a/packages/template/webpack/tmpl/forge.config.js b/packages/template/webpack/tmpl/forge.config.js index 6ad9269c6f..d6aa49c127 100644 --- a/packages/template/webpack/tmpl/forge.config.js +++ b/packages/template/webpack/tmpl/forge.config.js @@ -1,3 +1,6 @@ +const { FusesPlugin } = require('@electron-forge/plugin-fuses'); +const { FuseV1Options, FuseVersion } = require('@electron/fuses'); + module.exports = { packagerConfig: { asar: true, @@ -45,5 +48,16 @@ module.exports = { }, }, }, + // Fuses are used to enable/disable various Electron functionality + // at package time, before code signing the application + new FusesPlugin({ + version: FuseVersion.V1, + [FuseV1Options.RunAsNode]: false, + [FuseV1Options.EnableCookieEncryption]: true, + [FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false, + [FuseV1Options.EnableNodeCliInspectArguments]: false, + [FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true, + [FuseV1Options.OnlyLoadAppFromAsar]: true, + }), ], }; diff --git a/packages/utils/core-utils/package.json b/packages/utils/core-utils/package.json index a2290eae42..3252630993 100644 --- a/packages/utils/core-utils/package.json +++ b/packages/utils/core-utils/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/core-utils", - "version": "6.4.2", + "version": "7.4.0", "description": "Core utilities for the Electron Forge packages", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -8,7 +8,7 @@ "main": "dist/index.js", "typings": "dist/index.d.ts", "dependencies": { - "@electron-forge/shared-types": "6.4.2", + "@electron-forge/shared-types": "7.4.0", "@electron/rebuild": "^3.2.10", "@malept/cross-spawn-promise": "^2.0.0", "chalk": "^4.0.0", @@ -20,7 +20,7 @@ "semver": "^7.2.1" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "devDependencies": { "chai": "^4.3.3" diff --git a/packages/utils/core-utils/src/electron-version.ts b/packages/utils/core-utils/src/electron-version.ts index 2afd970162..d8e2b1cc2d 100644 --- a/packages/utils/core-utils/src/electron-version.ts +++ b/packages/utils/core-utils/src/electron-version.ts @@ -9,7 +9,7 @@ import { getPackageManager } from './package-manager'; const d = debug('electron-forge:electron-version'); -const electronPackageNames = ['electron-prebuilt-compile', 'electron-prebuilt', 'electron-nightly', 'electron']; +const electronPackageNames = ['electron-nightly', 'electron']; type PackageJSONWithDeps = { devDependencies?: Record; diff --git a/packages/utils/core-utils/src/rebuild.ts b/packages/utils/core-utils/src/rebuild.ts index 76cf0d528c..853063d1b8 100644 --- a/packages/utils/core-utils/src/rebuild.ts +++ b/packages/utils/core-utils/src/rebuild.ts @@ -4,13 +4,13 @@ import * as path from 'path'; import { ForgeArch, ForgeListrTask, ForgePlatform } from '@electron-forge/shared-types'; import { RebuildOptions } from '@electron/rebuild'; -export const listrCompatibleRebuildHook = async ( +export const listrCompatibleRebuildHook = async ( buildPath: string, electronVersion: string, platform: ForgePlatform, arch: ForgeArch, config: Partial = {}, - task: ForgeListrTask, + task: ForgeListrTask, taskTitlePrefix = '' ): Promise => { task.title = `${taskTitlePrefix}Preparing native dependencies`; @@ -59,7 +59,9 @@ export const listrCompatibleRebuildHook = async ( break; } case 'rebuild-done': { - task.task.rendererTaskOptions.persistentOutput = false; + if (task.task.rendererTaskOptions && 'persistentOutput' in task.task.rendererTaskOptions) { + task.task.rendererTaskOptions.persistentOutput = false; + } break; } } diff --git a/packages/utils/core-utils/test/electron-version_spec.ts b/packages/utils/core-utils/test/electron-version_spec.ts index 5e968d2c13..cf0d484e5f 100644 --- a/packages/utils/core-utils/test/electron-version_spec.ts +++ b/packages/utils/core-utils/test/electron-version_spec.ts @@ -54,20 +54,6 @@ describe('getElectronVersion', () => { return expect(getElectronVersion(fixtureDir, { devDependencies: { electron: '^4.0.2' } })).to.eventually.equal('4.0.9'); }); - it('works with electron-prebuilt-compile', () => { - const packageJSON = { - devDependencies: { 'electron-prebuilt-compile': '1.0.0' }, - }; - return expect(getElectronVersion('', packageJSON)).to.eventually.equal('1.0.0'); - }); - - it('works with electron-prebuilt', async () => { - const packageJSON = { - devDependencies: { 'electron-prebuilt': '1.0.0' }, - }; - return expect(await getElectronVersion('', packageJSON)).to.be.equal('1.0.0'); - }); - it('works with electron-nightly', async () => { const packageJSON = { devDependencies: { 'electron-nightly': '5.0.0-nightly.20190107' }, diff --git a/packages/utils/test-utils/package.json b/packages/utils/test-utils/package.json index 9a1621f94a..571e306539 100644 --- a/packages/utils/test-utils/package.json +++ b/packages/utils/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/test-utils", - "version": "6.4.2", + "version": "7.4.0", "description": "Helper utilities for the Electron Forge testsuite", "repository": "https://github.com/electron/forge", "author": "Mark Lee", @@ -13,7 +13,7 @@ "fs-extra": "^10.0.0" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "publishConfig": { "access": "public" diff --git a/packages/utils/tracer/package.json b/packages/utils/tracer/package.json new file mode 100644 index 0000000000..e06f52db8c --- /dev/null +++ b/packages/utils/tracer/package.json @@ -0,0 +1,23 @@ +{ + "name": "@electron-forge/tracer", + "version": "7.4.0", + "description": "Tracing helpers for Electron Forge", + "repository": "https://github.com/electron/forge", + "author": "Samuel Attard", + "license": "MIT", + "main": "dist/index.js", + "typings": "dist/index.d.ts", + "dependencies": { + "chrome-trace-event": "^1.0.3" + }, + "engines": { + "node": ">= 14.17.5" + }, + "publishConfig": { + "access": "public" + }, + "files": [ + "dist", + "src" + ] +} diff --git a/packages/utils/tracer/src/index.ts b/packages/utils/tracer/src/index.ts new file mode 100644 index 0000000000..78360bea70 --- /dev/null +++ b/packages/utils/tracer/src/index.ts @@ -0,0 +1,77 @@ +import * as fs from 'fs'; + +import { Fields, Tracer } from 'chrome-trace-event'; + +const store = global as any; +store._forgeTracer = store._forgeTracer || { + tracer: new Tracer(), + traceIdCounter: 1, +}; +const forgeTracer: { + tracer: Tracer; + traceIdCounter: number; +} = store._forgeTracer; + +if (process.env.ELECTRON_FORGE_TRACE_FILE) { + store._forgeTracer.pipe(fs.createWriteStream(process.env.ELECTRON_FORGE_TRACE_FILE)); +} else { + store._forgeTracer = null; +} + +const nextRoot = () => `forge-auto-trace-root-${forgeTracer.traceIdCounter++}`; + +type TraceOptions = { + name: string; + category: string; + extraDetails?: Record; + newRoot?: boolean; +}; + +function _autoTrace( + tracer: Tracer | null, + autoTraceId: string, + opts: TraceOptions, + fn: (childTrace: typeof autoTrace, ...args: Args) => R +): (...args: Args) => R { + return (async (...args: Args) => { + const traceArgs: Fields = { + id: autoTraceId, + name: opts.name, + cat: [opts.category], + args: opts.extraDetails, + tid: autoTraceId.split('-')[autoTraceId.split('-').length - 1], + }; + tracer?.begin(traceArgs); + const childTrace = (opts: TraceOptions, fn: any) => { + return _autoTrace(tracer?.child(traceArgs) ?? null, opts.newRoot ? nextRoot() : autoTraceId, opts, fn); + }; + (childTrace as any)._autoEnd = true; + (childTrace as any)._end = () => tracer?.end(traceArgs); + try { + return await Promise.resolve(fn(childTrace as any, ...args)); + } finally { + if ((childTrace as any)._autoEnd) { + (childTrace as any)._end(); + } + } + }) as any; +} + +export function delayTraceTillSignal(trace: typeof autoTrace, signaller: O, signal: K) { + const original: any = signaller[signal]; + (trace as any)._autoEnd = false; + signaller[signal] = function (...args: any[]) { + const result = original.call(signaller, ...args); + if (typeof result === 'object' && result.then && result.catch) { + result.then(() => (trace as any)._end()).catch(() => (trace as any)._end()); + } else { + (trace as any)._end(); + } + return result; + } as any; + return signaller; +} + +export function autoTrace(opts: TraceOptions, fn: (childTrace: typeof autoTrace, ...args: Args) => R): (...args: Args) => R { + return _autoTrace(forgeTracer.tracer, nextRoot(), opts, fn as any); +} diff --git a/packages/utils/types/package.json b/packages/utils/types/package.json index 797531596f..14e049e158 100644 --- a/packages/utils/types/package.json +++ b/packages/utils/types/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/shared-types", - "version": "6.4.2", + "version": "7.4.0", "description": "Shared types across Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -8,12 +8,13 @@ "main": "dist/index.js", "typings": "dist/index.d.ts", "dependencies": { + "@electron-forge/tracer": "7.4.0", + "@electron/packager": "^18.3.1", "@electron/rebuild": "^3.2.10", - "electron-packager": "^17.1.2", - "listr2": "^5.0.3" + "listr2": "^7.0.2" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "publishConfig": { "access": "public" diff --git a/packages/utils/types/src/index.ts b/packages/utils/types/src/index.ts index c30e21588e..d87772a3bb 100644 --- a/packages/utils/types/src/index.ts +++ b/packages/utils/types/src/index.ts @@ -1,10 +1,21 @@ import { ChildProcess } from 'child_process'; +import { autoTrace } from '@electron-forge/tracer'; +import { ArchOption, Options as ElectronPackagerOptions, TargetPlatform } from '@electron/packager'; import { RebuildOptions } from '@electron/rebuild'; -import { ArchOption, Options as ElectronPackagerOptions, TargetPlatform } from 'electron-packager'; -import { ListrDefaultRenderer, ListrTask, ListrTaskWrapper } from 'listr2'; - -export type ForgeListrTask = ListrTaskWrapper; +import { + ListrBaseClassOptions, + ListrDefaultRenderer, + ListrDefaultRendererValue, + ListrSimpleRenderer, + ListrSimpleRendererValue, + ListrTask, + ListrTaskWrapper, +} from 'listr2'; + +export type ForgeListrOptions = ListrBaseClassOptions; +export type ForgeListrTask = ListrTaskWrapper; +export type ForgeListrTaskFn = ListrTask['task']; export type ElectronProcess = ChildProcess & { restarted: boolean }; export type ForgePlatform = TargetPlatform; @@ -61,6 +72,7 @@ export type ForgeMultiHookMap = { export interface IForgePluginInterface { triggerHook(hookName: Hook, hookArgs: ForgeSimpleHookSignatures[Hook]): Promise; getHookListrTasks( + childTrace: typeof autoTrace, hookName: Hook, hookArgs: ForgeSimpleHookSignatures[Hook] ): Promise; @@ -82,6 +94,10 @@ export interface ResolvedForgeConfig { * If a function is provided, it must synchronously return the buildIdentifier */ buildIdentifier?: string | (() => string); + /** + * Output directory. Default is './out'. + */ + outDir?: string; hooks?: ForgeHookMap; /** * @internal @@ -201,6 +217,7 @@ export interface InitTemplateOptions { // eslint-disable-next-line @typescript-eslint/no-explicit-any export type ForgeListrTaskDefinition = ListrTask; +export { ListrTask }; export interface ForgeTemplate { requiredForgeVersion?: string; diff --git a/packages/utils/web-multi-logger/package.json b/packages/utils/web-multi-logger/package.json index e9d5a6898f..94fdbf8bb1 100644 --- a/packages/utils/web-multi-logger/package.json +++ b/packages/utils/web-multi-logger/package.json @@ -1,6 +1,6 @@ { "name": "@electron-forge/web-multi-logger", - "version": "6.4.2", + "version": "7.4.0", "description": "Display multiple streams of logs in one window", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -15,7 +15,7 @@ "xterm-addon-search": "^0.8.0" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 16.4.0" }, "publishConfig": { "access": "public" diff --git a/tools/doc-plugin/package.json b/tools/doc-plugin/package.json index c7fe3e2c9e..1520745b81 100644 --- a/tools/doc-plugin/package.json +++ b/tools/doc-plugin/package.json @@ -9,7 +9,7 @@ "custom-sidebar" ], "engines": { - "node": ">= 14" + "node": ">= 16.4.0" }, "devDependencies": { "typescript": "^4.6.3" diff --git a/tools/doc-plugin/tsconfig.json b/tools/doc-plugin/tsconfig.json index 6a8f31c5f3..af228080fb 100644 --- a/tools/doc-plugin/tsconfig.json +++ b/tools/doc-plugin/tsconfig.json @@ -2,7 +2,7 @@ "include": ["src"], "compilerOptions": { - "target": "es2018", + "target": "ES2021", "module": "commonjs", "moduleResolution": "node", "forceConsistentCasingInFileNames": true, diff --git a/tools/test-clear.ts b/tools/test-clear.ts new file mode 100644 index 0000000000..25751276ad --- /dev/null +++ b/tools/test-clear.ts @@ -0,0 +1,23 @@ +import os from 'node:os'; +import path from 'node:path'; + +import chalk from 'chalk'; +import glob from 'fast-glob'; +import fs from 'fs-extra'; + +(async () => { + // https://github.com/electron/forge/blob/v7.2.0/packages/utils/test-utils/src/index.ts#L24 + const dirs = await glob(path.resolve(os.tmpdir(), 'electron-forge-test-*')); + + if (dirs.length) { + for (const dir of dirs) { + console.log('Clean up the test dir:', dir); + + // Remove the tmp files generated by run `template/**/*_spec_slow.ts`, + // see here 👉 https://github.com/electron/forge/pull/3468#issuecomment-1920805240 + await fs.remove(dir); + } + } else { + console.log(chalk.gray('There is no "electron-forge-test-*" dir that needs to be cleaned.')); + } +})(); diff --git a/tsconfig.base.json b/tsconfig.base.json index e788478fce..82b15e5948 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -1,9 +1,9 @@ { "compilerOptions": { "module": "commonjs", - "target": "es2019", + "target": "ES2021", "outDir": "dist", - "lib": ["dom", "es2019"], + "lib": ["dom", "ES2021"], "inlineSourceMap": true, "rootDir": "src", "experimentalDecorators": true, diff --git a/tsconfig.test.json b/tsconfig.test.json index 9a918fb638..1d5241e119 100644 --- a/tsconfig.test.json +++ b/tsconfig.test.json @@ -2,9 +2,9 @@ "//": "⚠️ NOTE: this file is only used for tests, individual packages have their own tsconfig.json files generated by `tools/gen-tsconfigs.ts`", "compilerOptions": { "module": "commonjs", - "target": "es2019", + "target": "ES2021", "outDir": "dist", - "lib": ["dom", "es2019"], + "lib": ["dom", "ES2021"], "sourceMap": true, "experimentalDecorators": true, "strict": true, diff --git a/yarn.lock b/yarn.lock index 6c04a0dbd1..cb326e00ba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,71 +9,84 @@ dependencies: "@jridgewell/trace-mapping" "^0.3.0" -"@aws-crypto/crc32@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-2.0.0.tgz#4ad432a3c03ec3087c5540ff6e41e6565d2dc153" - integrity sha512-TvE1r2CUueyXOuHdEigYjIZVesInd9KN+K/TFFNfkkxRThiNxO6i4ZqqAVMoEjAamZZ1AA8WXJkjCz7YShHPQA== +"@aws-crypto/crc32@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-3.0.0.tgz#07300eca214409c33e3ff769cd5697b57fdd38fa" + integrity sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA== dependencies: - "@aws-crypto/util" "^2.0.0" - "@aws-sdk/types" "^3.1.0" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" tslib "^1.11.1" -"@aws-crypto/ie11-detection@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-2.0.0.tgz#bb6c2facf8f03457e949dcf0921477397ffa4c6e" - integrity sha512-pkVXf/dq6PITJ0jzYZ69VhL8VFOFoPZLZqtU/12SGnzYuJOOGNfF41q9GxdI1yqC8R13Rq3jOLKDFpUJFT5eTA== +"@aws-crypto/crc32c@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32c/-/crc32c-3.0.0.tgz#016c92da559ef638a84a245eecb75c3e97cb664f" + integrity sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w== dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" tslib "^1.11.1" -"@aws-crypto/sha256-browser@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz#741c9024df55ec59b51e5b1f5d806a4852699fb5" - integrity sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A== - dependencies: - "@aws-crypto/ie11-detection" "^2.0.0" - "@aws-crypto/sha256-js" "^2.0.0" - "@aws-crypto/supports-web-crypto" "^2.0.0" - "@aws-crypto/util" "^2.0.0" - "@aws-sdk/types" "^3.1.0" +"@aws-crypto/ie11-detection@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688" + integrity sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/sha1-browser@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha1-browser/-/sha1-browser-3.0.0.tgz#f9083c00782b24714f528b1a1fef2174002266a3" + integrity sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw== + dependencies: + "@aws-crypto/ie11-detection" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^3.0.0" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" "@aws-sdk/util-locate-window" "^3.0.0" "@aws-sdk/util-utf8-browser" "^3.0.0" tslib "^1.11.1" -"@aws-crypto/sha256-js@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz#f1f936039bdebd0b9e2dd834d65afdc2aac4efcb" - integrity sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig== - dependencies: - "@aws-crypto/util" "^2.0.0" - "@aws-sdk/types" "^3.1.0" +"@aws-crypto/sha256-browser@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz#05f160138ab893f1c6ba5be57cfd108f05827766" + integrity sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ== + dependencies: + "@aws-crypto/ie11-detection" "^3.0.0" + "@aws-crypto/sha256-js" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^3.0.0" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" tslib "^1.11.1" -"@aws-crypto/sha256-js@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-2.0.1.tgz#79e1e6cf61f652ef2089c08d471c722ecf1626a9" - integrity sha512-mbHTBSPBvg6o/mN/c18Z/zifM05eJrapj5ggoOIeHIWckvkv5VgGi7r/wYpt+QAO2ySKXLNvH2d8L7bne4xrMQ== +"@aws-crypto/sha256-js@3.0.0", "@aws-crypto/sha256-js@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz#f06b84d550d25521e60d2a0e2a90139341e007c2" + integrity sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ== dependencies: - "@aws-crypto/util" "^2.0.1" - "@aws-sdk/types" "^3.1.0" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" tslib "^1.11.1" -"@aws-crypto/supports-web-crypto@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.0.tgz#fd6cde30b88f77d5a4f57b2c37c560d918014f9e" - integrity sha512-Ge7WQ3E0OC7FHYprsZV3h0QIcpdyJLvIeg+uTuHqRYm8D6qCFJoiC+edSzSyFiHtZf+NOQDJ1q46qxjtzIY2nA== +"@aws-crypto/supports-web-crypto@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz#5d1bf825afa8072af2717c3e455f35cda0103ec2" + integrity sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg== dependencies: tslib "^1.11.1" -"@aws-crypto/util@^2.0.0", "@aws-crypto/util@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-2.0.1.tgz#976cf619cf85084ca85ec5eb947a6ac6b8b5c98c" - integrity sha512-JJmFFwvbm08lULw4Nm5QOLg8+lAQeC8aCXK5xrtxntYzYXCGfHwUJ4Is3770Q7HmICsXthGQ+ZsDL7C2uH3yBQ== +"@aws-crypto/util@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-3.0.0.tgz#1c7ca90c29293f0883468ad48117937f0fe5bfb0" + integrity sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w== dependencies: - "@aws-sdk/types" "^3.1.0" + "@aws-sdk/types" "^3.222.0" "@aws-sdk/util-utf8-browser" "^3.0.0" tslib "^1.11.1" -"@aws-sdk/abort-controller@3.50.0", "@aws-sdk/abort-controller@^3.29.0": +"@aws-sdk/abort-controller@^3.29.0": version "3.50.0" resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.50.0.tgz#a5859eba5b5f62bb1a53dd5f2e5aa64d2a10b355" integrity sha512-QNr5uKO5mL5OyJr6w2yub3dF00WeLtw5qgNZIeb1bN2onbh3d8VreHi3glkXQw3SI1UE9O1HsqEknMJhTupvKg== @@ -81,2147 +94,1513 @@ "@aws-sdk/types" "3.50.0" tslib "^2.3.0" -"@aws-sdk/chunked-blob-reader-native@3.49.0": - version "3.49.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.49.0.tgz#f33b98572dd806265298cea727c1a377e9d6a608" - integrity sha512-ppjmDWyufMB41Hmq5Gixd2+/c4kk2IPKKWT9zI9spKOYbbL/vY3FmRq4beQ6n5kWOzDPxKZ6wv04yrMS9yBy1A== - dependencies: - "@aws-sdk/util-base64-browser" "3.49.0" - tslib "^2.3.0" - -"@aws-sdk/chunked-blob-reader@3.49.0": - version "3.49.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/chunked-blob-reader/-/chunked-blob-reader-3.49.0.tgz#f933abdf16fc9ee4d82245d375a15f19bea25c64" - integrity sha512-UI1rK4aBgwsQ6dOQs5Im1cNSb3c/RH1wKjD49zcwWyxe8e96C5G2LcshhVH3onWY5NgqQgs/ffEsXziGcNXRIg== - dependencies: - tslib "^2.3.0" - -"@aws-sdk/client-s3@^3.28.0": - version "3.51.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.51.0.tgz#1565ec91cc2ff28085a4bd47ae2d03bc2a05546b" - integrity sha512-BRbUJ1+SyXljadzAKpIukNnBiMMCJ39PXyAC+R8ShuMb6S0hhx8p9fQmvKwz+X1+4mrNY/AkRnCYROs4tFLXpw== - dependencies: - "@aws-crypto/sha256-browser" "2.0.0" - "@aws-crypto/sha256-js" "2.0.0" - "@aws-sdk/client-sts" "3.51.0" - "@aws-sdk/config-resolver" "3.51.0" - "@aws-sdk/credential-provider-node" "3.51.0" - "@aws-sdk/eventstream-serde-browser" "3.50.0" - "@aws-sdk/eventstream-serde-config-resolver" "3.50.0" - "@aws-sdk/eventstream-serde-node" "3.50.0" - "@aws-sdk/fetch-http-handler" "3.50.0" - "@aws-sdk/hash-blob-browser" "3.50.0" - "@aws-sdk/hash-node" "3.50.0" - "@aws-sdk/hash-stream-node" "3.50.0" - "@aws-sdk/invalid-dependency" "3.50.0" - "@aws-sdk/md5-js" "3.50.0" - "@aws-sdk/middleware-apply-body-checksum" "3.50.0" - "@aws-sdk/middleware-bucket-endpoint" "3.51.0" - "@aws-sdk/middleware-content-length" "3.50.0" - "@aws-sdk/middleware-expect-continue" "3.50.0" - "@aws-sdk/middleware-host-header" "3.50.0" - "@aws-sdk/middleware-location-constraint" "3.50.0" - "@aws-sdk/middleware-logger" "3.50.0" - "@aws-sdk/middleware-retry" "3.51.0" - "@aws-sdk/middleware-sdk-s3" "3.50.0" - "@aws-sdk/middleware-serde" "3.50.0" - "@aws-sdk/middleware-signing" "3.50.0" - "@aws-sdk/middleware-ssec" "3.50.0" - "@aws-sdk/middleware-stack" "3.50.0" - "@aws-sdk/middleware-user-agent" "3.50.0" - "@aws-sdk/node-config-provider" "3.51.0" - "@aws-sdk/node-http-handler" "3.50.0" - "@aws-sdk/protocol-http" "3.50.0" - "@aws-sdk/smithy-client" "3.50.0" - "@aws-sdk/types" "3.50.0" - "@aws-sdk/url-parser" "3.50.0" - "@aws-sdk/util-base64-browser" "3.49.0" - "@aws-sdk/util-base64-node" "3.49.0" - "@aws-sdk/util-body-length-browser" "3.49.0" - "@aws-sdk/util-body-length-node" "3.49.0" - "@aws-sdk/util-defaults-mode-browser" "3.50.0" - "@aws-sdk/util-defaults-mode-node" "3.51.0" - "@aws-sdk/util-user-agent-browser" "3.50.0" - "@aws-sdk/util-user-agent-node" "3.51.0" - "@aws-sdk/util-utf8-browser" "3.49.0" - "@aws-sdk/util-utf8-node" "3.49.0" - "@aws-sdk/util-waiter" "3.50.0" - "@aws-sdk/xml-builder" "3.49.0" - entities "2.2.0" - fast-xml-parser "3.19.0" - tslib "^2.3.0" - -"@aws-sdk/client-sso@3.51.0": - version "3.51.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.51.0.tgz#229212ffd5f41feeca8238556d8aa87b263c2515" - integrity sha512-YTYCQxptU5CwkHscHwF+2JGZ1a+YsT3G7ZEaKNYuz0iMtQd7koSsLSbvt6EDxjYJZQ6y7gUriRJWJq/LPn55kg== - dependencies: - "@aws-crypto/sha256-browser" "2.0.0" - "@aws-crypto/sha256-js" "2.0.0" - "@aws-sdk/config-resolver" "3.51.0" - "@aws-sdk/fetch-http-handler" "3.50.0" - "@aws-sdk/hash-node" "3.50.0" - "@aws-sdk/invalid-dependency" "3.50.0" - "@aws-sdk/middleware-content-length" "3.50.0" - "@aws-sdk/middleware-host-header" "3.50.0" - "@aws-sdk/middleware-logger" "3.50.0" - "@aws-sdk/middleware-retry" "3.51.0" - "@aws-sdk/middleware-serde" "3.50.0" - "@aws-sdk/middleware-stack" "3.50.0" - "@aws-sdk/middleware-user-agent" "3.50.0" - "@aws-sdk/node-config-provider" "3.51.0" - "@aws-sdk/node-http-handler" "3.50.0" - "@aws-sdk/protocol-http" "3.50.0" - "@aws-sdk/smithy-client" "3.50.0" - "@aws-sdk/types" "3.50.0" - "@aws-sdk/url-parser" "3.50.0" - "@aws-sdk/util-base64-browser" "3.49.0" - "@aws-sdk/util-base64-node" "3.49.0" - "@aws-sdk/util-body-length-browser" "3.49.0" - "@aws-sdk/util-body-length-node" "3.49.0" - "@aws-sdk/util-defaults-mode-browser" "3.50.0" - "@aws-sdk/util-defaults-mode-node" "3.51.0" - "@aws-sdk/util-user-agent-browser" "3.50.0" - "@aws-sdk/util-user-agent-node" "3.51.0" - "@aws-sdk/util-utf8-browser" "3.49.0" - "@aws-sdk/util-utf8-node" "3.49.0" - tslib "^2.3.0" - -"@aws-sdk/client-sts@3.51.0": - version "3.51.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.51.0.tgz#5aeddb7cd327120a4bbf2c7efacc136d691e390d" - integrity sha512-/dD+4tuolPQNiQArGa3PtVc8k6umfoY2YUVEt9eBzvnWnakbAtAoByiv3N9qxOph6511nZoz2MJV+ych4/eacA== - dependencies: - "@aws-crypto/sha256-browser" "2.0.0" - "@aws-crypto/sha256-js" "2.0.0" - "@aws-sdk/config-resolver" "3.51.0" - "@aws-sdk/credential-provider-node" "3.51.0" - "@aws-sdk/fetch-http-handler" "3.50.0" - "@aws-sdk/hash-node" "3.50.0" - "@aws-sdk/invalid-dependency" "3.50.0" - "@aws-sdk/middleware-content-length" "3.50.0" - "@aws-sdk/middleware-host-header" "3.50.0" - "@aws-sdk/middleware-logger" "3.50.0" - "@aws-sdk/middleware-retry" "3.51.0" - "@aws-sdk/middleware-sdk-sts" "3.50.0" - "@aws-sdk/middleware-serde" "3.50.0" - "@aws-sdk/middleware-signing" "3.50.0" - "@aws-sdk/middleware-stack" "3.50.0" - "@aws-sdk/middleware-user-agent" "3.50.0" - "@aws-sdk/node-config-provider" "3.51.0" - "@aws-sdk/node-http-handler" "3.50.0" - "@aws-sdk/protocol-http" "3.50.0" - "@aws-sdk/smithy-client" "3.50.0" - "@aws-sdk/types" "3.50.0" - "@aws-sdk/url-parser" "3.50.0" - "@aws-sdk/util-base64-browser" "3.49.0" - "@aws-sdk/util-base64-node" "3.49.0" - "@aws-sdk/util-body-length-browser" "3.49.0" - "@aws-sdk/util-body-length-node" "3.49.0" - "@aws-sdk/util-defaults-mode-browser" "3.50.0" - "@aws-sdk/util-defaults-mode-node" "3.51.0" - "@aws-sdk/util-user-agent-browser" "3.50.0" - "@aws-sdk/util-user-agent-node" "3.51.0" - "@aws-sdk/util-utf8-browser" "3.49.0" - "@aws-sdk/util-utf8-node" "3.49.0" - entities "2.2.0" - fast-xml-parser "3.19.0" - tslib "^2.3.0" +"@aws-sdk/client-s3@^3.461.0": + version "3.461.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.461.0.tgz#fc50ccb6a56b28646a3725dbc52981633e870c2d" + integrity sha512-pvEWMb2djn3bjD9lelYQhyG8KKKrUMm5MlSaSPwqVTL97iKm/Zbk+Ord6n8qMyPl5JHGmNdfg0tZFxC1qXeHTw== + dependencies: + "@aws-crypto/sha1-browser" "3.0.0" + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.461.0" + "@aws-sdk/core" "3.451.0" + "@aws-sdk/credential-provider-node" "3.460.0" + "@aws-sdk/middleware-bucket-endpoint" "3.460.0" + "@aws-sdk/middleware-expect-continue" "3.460.0" + "@aws-sdk/middleware-flexible-checksums" "3.461.0" + "@aws-sdk/middleware-host-header" "3.460.0" + "@aws-sdk/middleware-location-constraint" "3.461.0" + "@aws-sdk/middleware-logger" "3.460.0" + "@aws-sdk/middleware-recursion-detection" "3.460.0" + "@aws-sdk/middleware-sdk-s3" "3.461.0" + "@aws-sdk/middleware-signing" "3.461.0" + "@aws-sdk/middleware-ssec" "3.460.0" + "@aws-sdk/middleware-user-agent" "3.460.0" + "@aws-sdk/region-config-resolver" "3.451.0" + "@aws-sdk/signature-v4-multi-region" "3.461.0" + "@aws-sdk/types" "3.460.0" + "@aws-sdk/util-endpoints" "3.460.0" + "@aws-sdk/util-user-agent-browser" "3.460.0" + "@aws-sdk/util-user-agent-node" "3.460.0" + "@aws-sdk/xml-builder" "3.310.0" + "@smithy/config-resolver" "^2.0.18" + "@smithy/eventstream-serde-browser" "^2.0.13" + "@smithy/eventstream-serde-config-resolver" "^2.0.13" + "@smithy/eventstream-serde-node" "^2.0.13" + "@smithy/fetch-http-handler" "^2.2.6" + "@smithy/hash-blob-browser" "^2.0.14" + "@smithy/hash-node" "^2.0.15" + "@smithy/hash-stream-node" "^2.0.15" + "@smithy/invalid-dependency" "^2.0.13" + "@smithy/md5-js" "^2.0.15" + "@smithy/middleware-content-length" "^2.0.15" + "@smithy/middleware-endpoint" "^2.2.0" + "@smithy/middleware-retry" "^2.0.20" + "@smithy/middleware-serde" "^2.0.13" + "@smithy/middleware-stack" "^2.0.7" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/node-http-handler" "^2.1.9" + "@smithy/protocol-http" "^3.0.9" + "@smithy/smithy-client" "^2.1.15" + "@smithy/types" "^2.5.0" + "@smithy/url-parser" "^2.0.13" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-body-length-browser" "^2.0.0" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.19" + "@smithy/util-defaults-mode-node" "^2.0.25" + "@smithy/util-endpoints" "^1.0.4" + "@smithy/util-retry" "^2.0.6" + "@smithy/util-stream" "^2.0.20" + "@smithy/util-utf8" "^2.0.2" + "@smithy/util-waiter" "^2.0.13" + fast-xml-parser "4.2.5" + tslib "^2.5.0" + +"@aws-sdk/client-sso@3.460.0": + version "3.460.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.460.0.tgz#3eeb38eebcecada1153399c598527d1f12c8f0b2" + integrity sha512-p5D9C8LKJs5yoBn5cCs2Wqzrp5YP5BYcP774bhGMFEu/LCIUyWzudwN3+/AObSiq8R8SSvBY2zQD4h+k3NjgTQ== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.451.0" + "@aws-sdk/middleware-host-header" "3.460.0" + "@aws-sdk/middleware-logger" "3.460.0" + "@aws-sdk/middleware-recursion-detection" "3.460.0" + "@aws-sdk/middleware-user-agent" "3.460.0" + "@aws-sdk/region-config-resolver" "3.451.0" + "@aws-sdk/types" "3.460.0" + "@aws-sdk/util-endpoints" "3.460.0" + "@aws-sdk/util-user-agent-browser" "3.460.0" + "@aws-sdk/util-user-agent-node" "3.460.0" + "@smithy/config-resolver" "^2.0.18" + "@smithy/fetch-http-handler" "^2.2.6" + "@smithy/hash-node" "^2.0.15" + "@smithy/invalid-dependency" "^2.0.13" + "@smithy/middleware-content-length" "^2.0.15" + "@smithy/middleware-endpoint" "^2.2.0" + "@smithy/middleware-retry" "^2.0.20" + "@smithy/middleware-serde" "^2.0.13" + "@smithy/middleware-stack" "^2.0.7" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/node-http-handler" "^2.1.9" + "@smithy/protocol-http" "^3.0.9" + "@smithy/smithy-client" "^2.1.15" + "@smithy/types" "^2.5.0" + "@smithy/url-parser" "^2.0.13" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-body-length-browser" "^2.0.0" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.19" + "@smithy/util-defaults-mode-node" "^2.0.25" + "@smithy/util-endpoints" "^1.0.4" + "@smithy/util-retry" "^2.0.6" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@aws-sdk/client-sts@3.461.0": + version "3.461.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.461.0.tgz#f62f75bb7483f73169896bd283ab126b7e97f287" + integrity sha512-1u+t31m23vuc9zkiUk51L4QbwuRQEuBeMArHK/thmq4V+A0VmjoAr/x2D0eQ0deOuBqG5YC62oaqUfIhj03SIw== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.451.0" + "@aws-sdk/credential-provider-node" "3.460.0" + "@aws-sdk/middleware-host-header" "3.460.0" + "@aws-sdk/middleware-logger" "3.460.0" + "@aws-sdk/middleware-recursion-detection" "3.460.0" + "@aws-sdk/middleware-sdk-sts" "3.461.0" + "@aws-sdk/middleware-signing" "3.461.0" + "@aws-sdk/middleware-user-agent" "3.460.0" + "@aws-sdk/region-config-resolver" "3.451.0" + "@aws-sdk/types" "3.460.0" + "@aws-sdk/util-endpoints" "3.460.0" + "@aws-sdk/util-user-agent-browser" "3.460.0" + "@aws-sdk/util-user-agent-node" "3.460.0" + "@smithy/config-resolver" "^2.0.18" + "@smithy/fetch-http-handler" "^2.2.6" + "@smithy/hash-node" "^2.0.15" + "@smithy/invalid-dependency" "^2.0.13" + "@smithy/middleware-content-length" "^2.0.15" + "@smithy/middleware-endpoint" "^2.2.0" + "@smithy/middleware-retry" "^2.0.20" + "@smithy/middleware-serde" "^2.0.13" + "@smithy/middleware-stack" "^2.0.7" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/node-http-handler" "^2.1.9" + "@smithy/protocol-http" "^3.0.9" + "@smithy/smithy-client" "^2.1.15" + "@smithy/types" "^2.5.0" + "@smithy/url-parser" "^2.0.13" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-body-length-browser" "^2.0.0" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.19" + "@smithy/util-defaults-mode-node" "^2.0.25" + "@smithy/util-endpoints" "^1.0.4" + "@smithy/util-retry" "^2.0.6" + "@smithy/util-utf8" "^2.0.2" + fast-xml-parser "4.2.5" + tslib "^2.5.0" + +"@aws-sdk/core@3.451.0": + version "3.451.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.451.0.tgz#ecd30da40d8e02050a772920485f450ea2a1b804" + integrity sha512-SamWW2zHEf1ZKe3j1w0Piauryl8BQIlej0TBS18A4ACzhjhWXhCs13bO1S88LvPR5mBFXok3XOT6zPOnKDFktw== + dependencies: + "@smithy/smithy-client" "^2.1.15" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-env@3.460.0": + version "3.460.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.460.0.tgz#9649ee6662df2f39027a1497bdb202b50332ef63" + integrity sha512-WWdaRJFuYRc2Ue9NKDy2NIf8pQRNx/QRVmrsk6EkIID8uWlQIOePk3SWTVV0TZIyPrbfSEaSnJRZoShphJ6PAg== + dependencies: + "@aws-sdk/types" "3.460.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-ini@3.460.0": + version "3.460.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.460.0.tgz#26432ba3cd18084130ea9397a39f1b30cf3893ff" + integrity sha512-1IEUmyaWzt2M3mONO8QyZtPy0f9ccaEjCo48ZQLgptWxUI+Ohga9gPK0mqu1kTJOjv4JJGACYHzLwEnnpltGlA== + dependencies: + "@aws-sdk/credential-provider-env" "3.460.0" + "@aws-sdk/credential-provider-process" "3.460.0" + "@aws-sdk/credential-provider-sso" "3.460.0" + "@aws-sdk/credential-provider-web-identity" "3.460.0" + "@aws-sdk/types" "3.460.0" + "@smithy/credential-provider-imds" "^2.0.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-node@3.460.0": + version "3.460.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.460.0.tgz#8dff013f8e2a2e2837eaf7400ff42714de7dec4d" + integrity sha512-PbPo92WIgNlF6V4eWKehYGYjTqf0gU9vr09LeQUc3bTm1DJhJw1j+HU/3PfQ8LwTkBQePO7MbJ5A2n6ckMwfMg== + dependencies: + "@aws-sdk/credential-provider-env" "3.460.0" + "@aws-sdk/credential-provider-ini" "3.460.0" + "@aws-sdk/credential-provider-process" "3.460.0" + "@aws-sdk/credential-provider-sso" "3.460.0" + "@aws-sdk/credential-provider-web-identity" "3.460.0" + "@aws-sdk/types" "3.460.0" + "@smithy/credential-provider-imds" "^2.0.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-process@3.460.0": + version "3.460.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.460.0.tgz#3f56d03ed5a0c44d87455465701906bd115ebcd9" + integrity sha512-ng+0FMc4EaxLAwdttCwf2nzNf4AgcqAHZ8pKXUf8qF/KVkoyTt3UZKW7P2FJI01zxwP+V4yAwVt95PBUKGn4YQ== + dependencies: + "@aws-sdk/types" "3.460.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-sso@3.460.0": + version "3.460.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.460.0.tgz#e44a768899d3fca30e0eaf2ed0c3c15e2cd2b5ac" + integrity sha512-KnrQieOw17+aHEzE3SwfxjeSQ5ZTe2HeAzxkaZF++GxhNul/PkVnLzjGpIuB9bn71T9a2oNfG3peDUA+m2l2kw== + dependencies: + "@aws-sdk/client-sso" "3.460.0" + "@aws-sdk/token-providers" "3.460.0" + "@aws-sdk/types" "3.460.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-web-identity@3.460.0": + version "3.460.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.460.0.tgz#480ac1daa62e667672f5ecaa7dbefde808c191a2" + integrity sha512-7OeaZgC3HmJZGE0I0ZiKInUMF2LyA0IZiW85AYFnAZzAIfv1cXk/1UnDAoFIQhOZfnUBXivStagz892s480ryw== + dependencies: + "@aws-sdk/types" "3.460.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" -"@aws-sdk/config-resolver@3.51.0": +"@aws-sdk/lib-storage@^3.28.0": version "3.51.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.51.0.tgz#0e35c292c119c0d92deced318b0d4dbe90c43da4" - integrity sha512-TjPw78e/y2WOBOOQgasLiMtwwfv4pyTwhqUM9d+yzNBUKjN/Xun+b1bjxZB3QQFRhG1NFGaTSWi7y+c9o3lDWw== + resolved "https://registry.yarnpkg.com/@aws-sdk/lib-storage/-/lib-storage-3.51.0.tgz#640d36a9a33c830fa352b911a9d7382996eeddc6" + integrity sha512-EGaoMCMJpqYiaRBwFIHzQ1hiStHeizfcfceFoKiQOW43QRsj2luGy94CfMitt+vxYyKUceOeaQgTHiOBIwwySQ== dependencies: - "@aws-sdk/signature-v4" "3.50.0" - "@aws-sdk/types" "3.50.0" - "@aws-sdk/util-config-provider" "3.49.0" + buffer "5.6.0" + events "3.3.0" + stream-browserify "3.0.0" tslib "^2.3.0" -"@aws-sdk/credential-provider-env@3.50.0": +"@aws-sdk/middleware-bucket-endpoint@3.460.0": + version "3.460.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.460.0.tgz#1128147c266ea401a03f2d2e4e5f6a9559b5c428" + integrity sha512-AmrCDT/r+m7q3OogZ3UeWpVdllMeR4Wdo+3YEfefPfcZc6SilnP2uCBUHletxbw3tXhNt56bUMUzQ+SUhyuUmA== + dependencies: + "@aws-sdk/types" "3.460.0" + "@aws-sdk/util-arn-parser" "3.310.0" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/protocol-http" "^3.0.9" + "@smithy/types" "^2.5.0" + "@smithy/util-config-provider" "^2.0.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-expect-continue@3.460.0": + version "3.460.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.460.0.tgz#a4f07167b3c19950ca21af4c7d7e220ae007c169" + integrity sha512-8VxMFTR+IszcMZLUZvxVCBOO1CUBmIWmDIQKd7w/U9xyMEXmBA0cx6ZEfMOIZF9NNh9OGCzTvwK+++8OTGBwAw== + dependencies: + "@aws-sdk/types" "3.460.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-flexible-checksums@3.461.0": + version "3.461.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.461.0.tgz#a91e3414facf8c34b6b1130deb9d61b56be283d0" + integrity sha512-MNY7xMl2Qzoinj6Pos23TgD+WQtC9/G/VkNW/v8Ky5faRAt7bbS+ZEkkK3KcCrjnb8x4Bl/FzYNTCZRzRoQOtA== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@aws-crypto/crc32c" "3.0.0" + "@aws-sdk/types" "3.460.0" + "@smithy/is-array-buffer" "^2.0.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/types" "^2.5.0" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@aws-sdk/middleware-host-header@3.460.0": + version "3.460.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.460.0.tgz#ee198c7c03b44338b7f0190201c19e5436cc8ff8" + integrity sha512-qBeDyuJkEuHe87Xk6unvFO9Zg5j6zM8bQOOZITocTLfu9JN0u5V4GQ/yopvpv+nQHmC/MGr0G7p+kIXMrg/Q2A== + dependencies: + "@aws-sdk/types" "3.460.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-location-constraint@3.461.0": + version "3.461.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.461.0.tgz#e9f6d8d1f7a65d5807c7d092cabdc6fc443c3b91" + integrity sha512-dibimciNOV2kuhBBmHbS+29X559xNw4BdZviGzjGAQPkqPx+7Adgvp5BHqSDgh7FIJpgN2+QGbrubIQ+V1Bn4A== + dependencies: + "@aws-sdk/types" "3.460.0" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-logger@3.460.0": + version "3.460.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.460.0.tgz#3353b146a158a197e2f520dd7f48c75076d06492" + integrity sha512-w2AJ6HOJ+Ggx9+VDKuWBHk5S0ZxYEo2EY2IFh0qtCQ1RDix/ur1QEzOOL5vNjHlZKPv/dseIwhgsTCac8UHXbQ== + dependencies: + "@aws-sdk/types" "3.460.0" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-recursion-detection@3.460.0": + version "3.460.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.460.0.tgz#4583a78fb15d0b18046a582dd6e0d3f554ad2eb8" + integrity sha512-wmzm1/2NzpcCVCAsGqqiTBK+xNyLmQwTOq63rcW6eeq6gYOO0cyTZROOkVRrrsKWPBigrSFFHvDrEvonOMtKAg== + dependencies: + "@aws-sdk/types" "3.460.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-sdk-s3@3.461.0": + version "3.461.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.461.0.tgz#615cffecb02b03a5a41730b7b561967195ca7e48" + integrity sha512-sOFUBWROq0xQxNoXp+3eepXrUAuMc/JPH+sI/r5QOznk7JVemYoBj99lknbTzJ4ssSK0yVrSUxxwGiGvDQb0Gg== + dependencies: + "@aws-sdk/types" "3.460.0" + "@aws-sdk/util-arn-parser" "3.310.0" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/protocol-http" "^3.0.9" + "@smithy/signature-v4" "^2.0.0" + "@smithy/smithy-client" "^2.1.15" + "@smithy/types" "^2.5.0" + "@smithy/util-config-provider" "^2.0.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-sdk-sts@3.461.0": + version "3.461.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.461.0.tgz#746afa5958c22989e4c1a1217fc2a008f7e04bf3" + integrity sha512-sgNxkwKdJ/NZm7SJZBnbYPkbspmzn3lDyRSJH7PTCvyzDBzY2PB6yS/dfnGkitR+PYwromuOYMha37W4su2SOw== + dependencies: + "@aws-sdk/middleware-signing" "3.461.0" + "@aws-sdk/types" "3.460.0" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-signing@3.461.0": + version "3.461.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.461.0.tgz#e7393f755660eb65a160e64584ad9383724bd2e1" + integrity sha512-aM/7VupHlsgeRG1UZSAQMWJX+2Jam4GG8ZGVAbLfBr9yh9cBwnUUndpUpYI9rU7atA8n+vISr162EbR7WTiFhQ== + dependencies: + "@aws-sdk/types" "3.460.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/signature-v4" "^2.0.0" + "@smithy/types" "^2.5.0" + "@smithy/util-middleware" "^2.0.6" + tslib "^2.5.0" + +"@aws-sdk/middleware-ssec@3.460.0": + version "3.460.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.460.0.tgz#e5fa963d6d43cf4764310da4de5604ef51964473" + integrity sha512-1PSCmkq9BRX8isxyDyf785xvjldtwhdUzI+37oZ1qfDXGmRyB+KjtRBNnz5Fz+VSiOfVzfhp3sjrc4fs4BfJ0w== + dependencies: + "@aws-sdk/types" "3.460.0" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-user-agent@3.460.0": + version "3.460.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.460.0.tgz#d3f5a420e667b7d9ead4694415748f990f50c7c0" + integrity sha512-0gBSOCr+RtwRUCSRLn9H3RVnj9ercvk/QKTHIr33CgfEdyZtIGpHWUSs6uqiQydPTRzjCm5SfUa6ESGhRVMM6A== + dependencies: + "@aws-sdk/types" "3.460.0" + "@aws-sdk/util-endpoints" "3.460.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/region-config-resolver@3.451.0": + version "3.451.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.451.0.tgz#f4de34ebe435832dd6bcdc0a7b9fae14a42fc6de" + integrity sha512-3iMf4OwzrFb4tAAmoROXaiORUk2FvSejnHIw/XHvf/jjR4EqGGF95NZP/n/MeFZMizJWVssrwS412GmoEyoqhg== + dependencies: + "@smithy/node-config-provider" "^2.1.5" + "@smithy/types" "^2.5.0" + "@smithy/util-config-provider" "^2.0.0" + "@smithy/util-middleware" "^2.0.6" + tslib "^2.5.0" + +"@aws-sdk/signature-v4-multi-region@3.461.0": + version "3.461.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.461.0.tgz#0ef0951bc39647d20099c69a99957ad1d429bf54" + integrity sha512-9tsdJ5KMPZzJN1x28AZKoS9J3xfwftFwutqcU1qsXXeouck0CztLfX+wr3etO4acPQO2zU305fnR2ulSsnns4g== + dependencies: + "@aws-sdk/middleware-sdk-s3" "3.461.0" + "@aws-sdk/types" "3.460.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/signature-v4" "^2.0.0" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/token-providers@3.460.0": + version "3.460.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.460.0.tgz#8122fe281fe7d454166893409f280f6b026f47c2" + integrity sha512-EvSIPMI1gXk3gEkdtbZCW+p3Bjmt2gOR1m7ibQD7qLj4l0dKXhp4URgTqB1ExH3S4qUq0M/XSGKbGLZpvunHNg== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/middleware-host-header" "3.460.0" + "@aws-sdk/middleware-logger" "3.460.0" + "@aws-sdk/middleware-recursion-detection" "3.460.0" + "@aws-sdk/middleware-user-agent" "3.460.0" + "@aws-sdk/region-config-resolver" "3.451.0" + "@aws-sdk/types" "3.460.0" + "@aws-sdk/util-endpoints" "3.460.0" + "@aws-sdk/util-user-agent-browser" "3.460.0" + "@aws-sdk/util-user-agent-node" "3.460.0" + "@smithy/config-resolver" "^2.0.18" + "@smithy/fetch-http-handler" "^2.2.6" + "@smithy/hash-node" "^2.0.15" + "@smithy/invalid-dependency" "^2.0.13" + "@smithy/middleware-content-length" "^2.0.15" + "@smithy/middleware-endpoint" "^2.2.0" + "@smithy/middleware-retry" "^2.0.20" + "@smithy/middleware-serde" "^2.0.13" + "@smithy/middleware-stack" "^2.0.7" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/node-http-handler" "^2.1.9" + "@smithy/property-provider" "^2.0.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/smithy-client" "^2.1.15" + "@smithy/types" "^2.5.0" + "@smithy/url-parser" "^2.0.13" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-body-length-browser" "^2.0.0" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.19" + "@smithy/util-defaults-mode-node" "^2.0.25" + "@smithy/util-endpoints" "^1.0.4" + "@smithy/util-retry" "^2.0.6" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@aws-sdk/types@3.460.0", "@aws-sdk/types@^3.222.0": + version "3.460.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.460.0.tgz#f87602928a57473f724b6efca0158e64f658be71" + integrity sha512-MyZSWS/FV8Bnux5eD9en7KLgVxevlVrGNEP3X2D7fpnUlLhl0a7k8+OpSI2ozEQB8hIU2DLc/XXTKRerHSefxQ== + dependencies: + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/types@3.50.0", "@aws-sdk/types@^3.25.0": version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.50.0.tgz#923d014d14462566f1592878193d9adcbc53d621" - integrity sha512-ZyFORU/soLC2R8kfIB8ppmmuCF+xkb2PAbSiGf1v7Q9OkqklIo9w4kJhEyV96UWgRy+dzBh9knIXJ6Ok/Tey2Q== - dependencies: - "@aws-sdk/property-provider" "3.50.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" - -"@aws-sdk/credential-provider-imds@3.51.0": - version "3.51.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.51.0.tgz#fa836ee37be7fd748a701db73544d9ef58e91805" - integrity sha512-hAUOo/TppiFvk37r4/RktslLr6DNa18YiTVw5WDtweYVNaJ2GUnyEa2nV4GtYwZOSrbQ2nZltYhVzgDbxVpseA== - dependencies: - "@aws-sdk/node-config-provider" "3.51.0" - "@aws-sdk/property-provider" "3.50.0" - "@aws-sdk/types" "3.50.0" - "@aws-sdk/url-parser" "3.50.0" - tslib "^2.3.0" - -"@aws-sdk/credential-provider-ini@3.51.0": - version "3.51.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.51.0.tgz#54ee13056da5821997edb3b83960c8c5c4be2af2" - integrity sha512-CN+By85sZisxq4tmNB5RYnPagQdF/g5bdo+B/izPoRxd91VSAkX/YYdTwhzQ8E2uD/CktLRn/oHq8iIpuRsG6Q== - dependencies: - "@aws-sdk/credential-provider-env" "3.50.0" - "@aws-sdk/credential-provider-imds" "3.51.0" - "@aws-sdk/credential-provider-sso" "3.51.0" - "@aws-sdk/credential-provider-web-identity" "3.50.0" - "@aws-sdk/property-provider" "3.50.0" - "@aws-sdk/shared-ini-file-loader" "3.51.0" - "@aws-sdk/types" "3.50.0" - "@aws-sdk/util-credentials" "3.51.0" - tslib "^2.3.0" - -"@aws-sdk/credential-provider-node@3.51.0": - version "3.51.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.51.0.tgz#7fc8dc1571b8c022b1b53fe004fd8d7522eb7891" - integrity sha512-rF1F2Yem886bufwWi4Li6JWUZ/8sjvZN4xzoHw2L8+TXcTtYBY0QpSAApIBjtSTQHoX6mtHKl5TDb9durGhIug== - dependencies: - "@aws-sdk/credential-provider-env" "3.50.0" - "@aws-sdk/credential-provider-imds" "3.51.0" - "@aws-sdk/credential-provider-ini" "3.51.0" - "@aws-sdk/credential-provider-process" "3.51.0" - "@aws-sdk/credential-provider-sso" "3.51.0" - "@aws-sdk/credential-provider-web-identity" "3.50.0" - "@aws-sdk/property-provider" "3.50.0" - "@aws-sdk/shared-ini-file-loader" "3.51.0" - "@aws-sdk/types" "3.50.0" - "@aws-sdk/util-credentials" "3.51.0" - tslib "^2.3.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.50.0.tgz#87b7679901129f5989d7da8b44364bf6a9ff8722" + integrity sha512-ANj9L+lR4NWWSLPkr5tRdFaw0kW0BjlDgnyNWyFrGVOHqT0MYjhCjPsH2y45G59z+b2qe+v/VsKuTyNmSvoZCA== -"@aws-sdk/credential-provider-process@3.51.0": - version "3.51.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.51.0.tgz#b2653e0c3d5d64b39020a030eac0eaef6740b77f" - integrity sha512-m99NHjQBg+dJ5v6Rcgqm/vn65clFEYiK2ygvu2gKJzqbNWWj1soTyhvxUC2Qi5z4VJvTfN5hABXNzlJPbMk6pw== +"@aws-sdk/util-arn-parser@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.310.0.tgz#861ff8810851be52a320ec9e4786f15b5fc74fba" + integrity sha512-jL8509owp/xB9+Or0pvn3Fe+b94qfklc2yPowZZIFAkFcCSIdkIglz18cPDWnYAcy9JGewpMS1COXKIUhZkJsA== dependencies: - "@aws-sdk/property-provider" "3.50.0" - "@aws-sdk/shared-ini-file-loader" "3.51.0" - "@aws-sdk/types" "3.50.0" - "@aws-sdk/util-credentials" "3.51.0" - tslib "^2.3.0" + tslib "^2.5.0" -"@aws-sdk/credential-provider-sso@3.51.0": - version "3.51.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.51.0.tgz#62af0446262db75d97134d6ff15dd682b070c974" - integrity sha512-EIpk6opibnbFn5TBT00UysWlVASq+J+YWTs2I9oNuO4qazzLxkvnF9qH0Xx695Vb3VgCseUcu6wpnN5IFgRQ1w== +"@aws-sdk/util-endpoints@3.460.0": + version "3.460.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.460.0.tgz#5f47f8716e7e3a008061aaa82d60b23257deaf55" + integrity sha512-myH6kM5WP4IWULHDHMYf2Q+BCYVGlzqJgiBmO10kQEtJSeAGZZ49eoFFYgKW8ZAYB5VnJ+XhXVB1TRA+vR4l5A== dependencies: - "@aws-sdk/client-sso" "3.51.0" - "@aws-sdk/property-provider" "3.50.0" - "@aws-sdk/shared-ini-file-loader" "3.51.0" - "@aws-sdk/types" "3.50.0" - "@aws-sdk/util-credentials" "3.51.0" - tslib "^2.3.0" + "@aws-sdk/types" "3.460.0" + "@smithy/util-endpoints" "^1.0.4" + tslib "^2.5.0" -"@aws-sdk/credential-provider-web-identity@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.50.0.tgz#a54786f052578aaf4ec1d25cc16e14daa61a2413" - integrity sha512-zaujz5di3UfNQVv0FUw0S5L1eHm4+thg4tlncaEASJoU9wLKnyGlcnNlqscJ0rBZzk7EdOuibX/nQCD9/tI8UA== +"@aws-sdk/util-locate-window@^3.0.0": + version "3.49.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.49.0.tgz#516f45e248607493e44807a3148e0888026bf662" + integrity sha512-ryw+t+quF1raaK0nXSplMiCVnahNLNgNDijZCFFkddGTMaCy+L4VRLYyNms3bgwt3G0BmVn9f3uyDWRSkn5sSg== dependencies: - "@aws-sdk/property-provider" "3.50.0" - "@aws-sdk/types" "3.50.0" tslib "^2.3.0" -"@aws-sdk/eventstream-marshaller@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-marshaller/-/eventstream-marshaller-3.50.0.tgz#2e00ecd22df638232cb1c8894061423fc8017376" - integrity sha512-LdKK8oomkyXY9SQY/CjziroagClC6fvPzNCfIONuLRQJs7msypP9HT7AC9TFqYIZI3FHo9uCWhj86BsS+yeAfg== +"@aws-sdk/util-user-agent-browser@3.460.0": + version "3.460.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.460.0.tgz#a4e9fda5d4e2ecafa28d056240e10bddffa1d748" + integrity sha512-FRCzW+TyjKnvxsargPVrjayBfp/rvObYHZyZ2OSqrVw8lkkPCb4e/WZOeIiXZuhdhhoah7wMuo6zGwtFF3bYKg== dependencies: - "@aws-crypto/crc32" "2.0.0" - "@aws-sdk/types" "3.50.0" - "@aws-sdk/util-hex-encoding" "3.49.0" - tslib "^2.3.0" + "@aws-sdk/types" "3.460.0" + "@smithy/types" "^2.5.0" + bowser "^2.11.0" + tslib "^2.5.0" -"@aws-sdk/eventstream-serde-browser@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.50.0.tgz#d06b28a9d6137f75dd798a824d7faf07491b9801" - integrity sha512-0rqPBpd9rqbXJ78MWZvdp8SYhPFizgFl/XDDl7cdbqVFrfNuGYNf+9TELtHW0u6W/OqflU7JAHrIxUnFNQGiuA== +"@aws-sdk/util-user-agent-node@3.460.0": + version "3.460.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.460.0.tgz#d4adb7b924d89e5d33fc4ae83cfe067b7bb045c4" + integrity sha512-+kSoR9ABGpJ5Xc7v0VwpgTQbgyI4zuezC8K4pmKAGZsSsVWg4yxptoy2bDqoFL7qfRlWviMVTkQRMvR4D44WxA== dependencies: - "@aws-sdk/eventstream-marshaller" "3.50.0" - "@aws-sdk/eventstream-serde-universal" "3.50.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" + "@aws-sdk/types" "3.460.0" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" -"@aws-sdk/eventstream-serde-config-resolver@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.50.0.tgz#ccf88160d122917869ffba0af2076d5c9bba388d" - integrity sha512-aqsLCYJgTc3SJl37PD/YnugI2wlttQ4mn+iQQ6Bp0D1cTKIEi6ScP9XJWg6C7nBUXNI9fBj4kyw22/LomsOL5g== +"@aws-sdk/util-utf8-browser@^3.0.0": + version "3.49.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.49.0.tgz#d98f19098cc8072214237e749e64d41bb88c598d" + integrity sha512-u9ZgAiTWX9yZFQ/ptlnVpYJ/rXF7aE2Wagar1IjhZrnxXbpVJvcX1EeRayxI1P5AAp2y2fiEKHZzX9ugTwOcEg== dependencies: - "@aws-sdk/types" "3.50.0" tslib "^2.3.0" -"@aws-sdk/eventstream-serde-node@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.50.0.tgz#b5a3c239e801582180eecdb776ee4ffc58a21104" - integrity sha512-dFqEl/9ua7cQkS8bji3IsCiLAL0kZn6okN1NnjNYRQDzrmxhj3ugYvp1Y1Gz2SdQ94CnQww0vUH+RmAKslqPlw== +"@aws-sdk/xml-builder@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.310.0.tgz#f0236f2103b438d16117e0939a6305ad69b7ff76" + integrity sha512-TqELu4mOuSIKQCqj63fGVs86Yh+vBx5nHRpWKNUNhB2nPTpfbziTs5c1X358be3peVWA4wPxW7Nt53KIg1tnNw== dependencies: - "@aws-sdk/eventstream-marshaller" "3.50.0" - "@aws-sdk/eventstream-serde-universal" "3.50.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" + tslib "^2.5.0" -"@aws-sdk/eventstream-serde-universal@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.50.0.tgz#2bc08277dbfdf4a354dc5abf34bae52c152038a1" - integrity sha512-0ExTqMrkMLZl8MqRsAgGsBMD29JmuJqyiZ3cuAxJ5Bo2YSXL284tBVCtmYRRdmCvLpmJX7juV0eVoEd98nlBww== +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== dependencies: - "@aws-sdk/eventstream-marshaller" "3.50.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" + "@babel/highlight" "^7.10.4" -"@aws-sdk/fetch-http-handler@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.50.0.tgz#06b6b48c7980dbfa9cf793ab0417b413ad0df433" - integrity sha512-2ntw0cvu/AYAthhhiMz9MlHQffVZbb0NqLwA72A+IBAQaI+jI3NxCWNIdPaowDWJ008ip5LCrXb7TpgX0wl65Q== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== dependencies: - "@aws-sdk/protocol-http" "3.50.0" - "@aws-sdk/querystring-builder" "3.50.0" - "@aws-sdk/types" "3.50.0" - "@aws-sdk/util-base64-browser" "3.49.0" - tslib "^2.3.0" + "@babel/highlight" "^7.18.6" -"@aws-sdk/hash-blob-browser@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.50.0.tgz#ebd3ff71391bba4ba2d940b85e330821db7e9d2d" - integrity sha512-r8xgdiqmxlhYmlUD2v2zfG5jQrWm9qesAIu3l0SR2ZTYlm4dg70KY8ek90SbkXCEWmelY3dv6zjsFL0oPcQtoQ== +"@babel/code-frame@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== dependencies: - "@aws-sdk/chunked-blob-reader" "3.49.0" - "@aws-sdk/chunked-blob-reader-native" "3.49.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" -"@aws-sdk/hash-node@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.50.0.tgz#b700755f0c2f19f13ac98ca4d3a2be5272475f7f" - integrity sha512-g0rgNaGt2OkoypnIy81QUamgIgVEmNl3OPPv8Ug2xDu+HJJQ2q7kIRTdVd9NZr3cCUMP4hsaYtwBYA4QOvtvLg== - dependencies: - "@aws-sdk/types" "3.50.0" - "@aws-sdk/util-buffer-from" "3.49.0" - tslib "^2.3.0" +"@babel/compat-data@^7.16.4": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.0.tgz#86850b8597ea6962089770952075dcaabb8dba34" + integrity sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng== -"@aws-sdk/hash-stream-node@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/hash-stream-node/-/hash-stream-node-3.50.0.tgz#e3da855dbd0ca7716d2f3a641169fe7ad5880ceb" - integrity sha512-5Jc/J2LzqfAyDOKJ7GE1tJHdMvApJ6vDe/jHFndPrAr0a42uEANgUHqdoDy7PtMz77/yRYvWxsj9j/+0T2fZAg== +"@babel/core@^7.0.0": + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.2.tgz#2c77fc430e95139d816d39b113b31bf40fb22337" + integrity sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw== dependencies: - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" + "@ampproject/remapping" "^2.0.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.0" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helpers" "^7.17.2" + "@babel/parser" "^7.17.0" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.0" + "@babel/types" "^7.17.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" -"@aws-sdk/invalid-dependency@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.50.0.tgz#283d509da7f412c7e33bdb470a7ffdcc08ac6fc0" - integrity sha512-Eu/I0rFnCgA6InIQ3h4jDmdUpDrGGFZH84+mN+LcVavE+j84WRGb1VNWsEWori8is7bjuM7e7twOvNxJ6rDqTw== +"@babel/generator@^7.17.0": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.6.tgz#9e481a3fe9ca6261c972645ae3904ec0f9b34a1d" + integrity sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA== dependencies: - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" + "@babel/types" "^7.19.4" + "@jridgewell/gen-mapping" "^0.3.2" + jsesc "^2.5.1" -"@aws-sdk/is-array-buffer@3.49.0": - version "3.49.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.49.0.tgz#5bd79e83f8dd77d6a25c645aa3725beb38c5855f" - integrity sha512-tLba+xvlm1+aAnv+bGieVZo8DCENbqfS9kLf/hp+9hrUSiNAsxs9Pqi34JBpMKGn6h9qORp6f8ClRS+gK8yvWg== +"@babel/generator@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" + integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== dependencies: - tslib "^2.3.0" + "@babel/types" "^7.23.0" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" -"@aws-sdk/lib-storage@^3.28.0": - version "3.51.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/lib-storage/-/lib-storage-3.51.0.tgz#640d36a9a33c830fa352b911a9d7382996eeddc6" - integrity sha512-EGaoMCMJpqYiaRBwFIHzQ1hiStHeizfcfceFoKiQOW43QRsj2luGy94CfMitt+vxYyKUceOeaQgTHiOBIwwySQ== +"@babel/helper-compilation-targets@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b" + integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA== dependencies: - buffer "5.6.0" - events "3.3.0" - stream-browserify "3.0.0" - tslib "^2.3.0" + "@babel/compat-data" "^7.16.4" + "@babel/helper-validator-option" "^7.16.7" + browserslist "^4.17.5" + semver "^6.3.0" -"@aws-sdk/md5-js@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/md5-js/-/md5-js-3.50.0.tgz#7fe56841411f1cfbd91d817dc08bb9ff915fe046" - integrity sha512-yO6ocDVq7Tk1tEzaikNk2qIEQ4yWOrwBJyOgH+vPPbiM0ldwgqK7dxjd0Y8vvACyCTLvqwUKwwMABudHREhR4w== - dependencies: - "@aws-sdk/types" "3.50.0" - "@aws-sdk/util-utf8-browser" "3.49.0" - "@aws-sdk/util-utf8-node" "3.49.0" - tslib "^2.3.0" +"@babel/helper-environment-visitor@^7.16.7": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== -"@aws-sdk/middleware-apply-body-checksum@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-apply-body-checksum/-/middleware-apply-body-checksum-3.50.0.tgz#fabf95048660d3f2abff7266b7f670a66bad0b46" - integrity sha512-px5W7eq93cGbh8Eb23Hh8RK35uP54vy3NjjyyJCBtL4Yb/4UEgQJUwn1HMW6EAc0x3CEm1TQ2a05gTIeib6PcA== - dependencies: - "@aws-sdk/is-array-buffer" "3.49.0" - "@aws-sdk/protocol-http" "3.50.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== -"@aws-sdk/middleware-bucket-endpoint@3.51.0": - version "3.51.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.51.0.tgz#2ef2ad11f188b4bbd4000cd883b3d9dd3b36543e" - integrity sha512-YvAlnKto7qUS62W2S89ild0ziF5SCaG4MI0Hno1zQDWKiRZ3e6nACnAJc5Uy8Eah7oGkzSzR0UcPcfJZwv8wUQ== +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== dependencies: - "@aws-sdk/protocol-http" "3.50.0" - "@aws-sdk/types" "3.50.0" - "@aws-sdk/util-arn-parser" "3.49.0" - "@aws-sdk/util-config-provider" "3.49.0" - tslib "^2.3.0" + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" -"@aws-sdk/middleware-content-length@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.50.0.tgz#25e5d2996f2118c66a4c59ea4ead014c46405388" - integrity sha512-vMvE4qFuquNApbJhJx2AFTlw8/XzhVthemUsPr5+/Np11ns5NdeNPOEg3DtA5kViLEk9p/mqHRBwzp5ef40xaw== +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== dependencies: - "@aws-sdk/protocol-http" "3.50.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" + "@babel/types" "^7.22.5" -"@aws-sdk/middleware-expect-continue@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.50.0.tgz#fe375dd7d25f1add7f42fd16f1bedb1f571c79f6" - integrity sha512-t/7UGPH+Z4lW33HMymSLMANmea0RpNubDfBOLtRdjlVMHgYMtIdeCI43EklW4a6+KJ4Sy68Nx8EQweOZB+UJBA== +"@babel/helper-module-imports@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" + integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== dependencies: - "@aws-sdk/middleware-header-default" "3.50.0" - "@aws-sdk/protocol-http" "3.50.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" + "@babel/types" "^7.16.7" -"@aws-sdk/middleware-header-default@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-header-default/-/middleware-header-default-3.50.0.tgz#2da0402d01d6fff640c5833ba062038f0c47b840" - integrity sha512-jCo9pGAwGOIN7/RZc7MRgUKQxDc6msFDCu0c7E0n4Z7XdVmyJt2dfpiexE683Q+rv/6AE4KzI+QlYoMQYGLiGw== +"@babel/helper-module-transforms@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41" + integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng== dependencies: - "@aws-sdk/protocol-http" "3.50.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-simple-access" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" -"@aws-sdk/middleware-host-header@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.50.0.tgz#1e71c277aebb44568911a27e4d9525e831309921" - integrity sha512-y9n6o7PdGP608KuxJ4p3u6kcVVoG2cS1lF5e23s0ZfdtRvXHPjMDmfjBZRl4UQyZBQezKjIUcdX411j5lklcJA== +"@babel/helper-simple-access@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7" + integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g== dependencies: - "@aws-sdk/protocol-http" "3.50.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" + "@babel/types" "^7.16.7" -"@aws-sdk/middleware-location-constraint@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.50.0.tgz#db0d7b185f8a3697b54e93fa546501b55dd0f8aa" - integrity sha512-vlg3VXoddorADHpX1VeGkBge+eeSoOxC6nvB5CZbpY66QVhOzGrnwdQhNaZ72ZyqMBN5tlkRTSmzh3dNG7bgPw== +"@babel/helper-split-export-declaration@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== dependencies: - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" + "@babel/types" "^7.18.6" -"@aws-sdk/middleware-logger@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.50.0.tgz#68df0f9268c9c1eb65269b733e610001b0493960" - integrity sha512-kAEyl3wmFz3NgUvqC5bqiIWNV72sIuxqIWVeDWk3bAQylXAEa1kGaCgxNtY7Toz1dXk4rKagSa/hSIGNwgMm4A== +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== dependencies: - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" + "@babel/types" "^7.22.5" -"@aws-sdk/middleware-retry@3.51.0": - version "3.51.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.51.0.tgz#7476c51c90317d9587d9ec1b86e7c7ae70a8c7d9" - integrity sha512-MhQoNoem3K077z6SoW+sAAKrmTz6pF8Dx5JWUAr+kzazaMGV0sCCqG8B1Uc7i13yQ7cBSTS3UWjXy5XpQxd9KQ== - dependencies: - "@aws-sdk/protocol-http" "3.50.0" - "@aws-sdk/service-error-classification" "3.50.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" - uuid "^8.3.2" +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== -"@aws-sdk/middleware-sdk-s3@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.50.0.tgz#fa65444669d7f30171eaaf48d61d4b0c68f83b81" - integrity sha512-RH9XwgrLYOli8hvnxs4HZqDvWMc9hQSNPJEgeEAnzEf0N84shSI/zRabCc7N0KDFjioxBtQkIcB3BWNHDIM8gg== - dependencies: - "@aws-sdk/protocol-http" "3.50.0" - "@aws-sdk/signature-v4" "3.50.0" - "@aws-sdk/types" "3.50.0" - "@aws-sdk/util-arn-parser" "3.49.0" - tslib "^2.3.0" +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== -"@aws-sdk/middleware-sdk-sts@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.50.0.tgz#3eaf10da841eef027b3e7b3bf81cef4247da1e26" - integrity sha512-o0SqaYs8TrPkm4G356GY9gucvwI2gCMxw7MAhm0tmfQu8ZL4RyNzsnGZmhgFbmpw59vJ9RxIAA8zwiKR2gI9lw== - dependencies: - "@aws-sdk/middleware-signing" "3.50.0" - "@aws-sdk/property-provider" "3.50.0" - "@aws-sdk/protocol-http" "3.50.0" - "@aws-sdk/signature-v4" "3.50.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" +"@babel/helper-validator-identifier@^7.16.7", "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== -"@aws-sdk/middleware-serde@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.50.0.tgz#a092a52aaceec02e81d30241ae8d8c43ed5452c3" - integrity sha512-z8u2/setFnkjyh5jVNjZuwSjJRRZoE1JbueVqXj7HKVRBUcaofwutSi6C5e7Vtfr2Q+n/yTF5sUX9gcuPgTU0A== - dependencies: - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@aws-sdk/middleware-signing@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.50.0.tgz#c2cf8fdbd810fbce6ee7f5a5e80197f18ebf3526" - integrity sha512-sokzKMuMCBGZJki5i0fO8F7QIlb7AjzQZ0585QD11HFQvt1v2uVTfKQ0rhJ90ayR+tDKTdv2iF2JTOVaMTkYlQ== - dependencies: - "@aws-sdk/property-provider" "3.50.0" - "@aws-sdk/protocol-http" "3.50.0" - "@aws-sdk/signature-v4" "3.50.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" - -"@aws-sdk/middleware-ssec@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.50.0.tgz#64e28e7d3499379257e3a596c0f132c02f0f5420" - integrity sha512-HQuadcnIGrBxsgCoc5BJ1SxjIxxXeB+GgwwLcsvRD3+YHyhT19gVTc4aPMpZYG9l0BFCSipnXppaIjJLpeJrSg== - dependencies: - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" - -"@aws-sdk/middleware-stack@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.50.0.tgz#66751a9f5fe34ce760600744f0a22b8b00b536cd" - integrity sha512-bnWnNz/KWMI0DT7neTV08oDyGEa4FUUpVS3xtL0JpYuUT8+k+9NlaR3DW5hWzKWKOXAV9LVx5GTyetZjXtwp/A== - dependencies: - tslib "^2.3.0" +"@babel/helper-validator-option@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" + integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== -"@aws-sdk/middleware-user-agent@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.50.0.tgz#1436af0e22352969cbb141fc19ba4c34ed631775" - integrity sha512-djHWGzHyXNwJVTGEJ3xKNXr3s0XKfnVLq+B+isqNvR2Z42XdXd/ke1xZ+ZLcwO6dfZ5D7oUPtYJHTmBAZet3aQ== +"@babel/helpers@^7.17.2": + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.2.tgz#23f0a0746c8e287773ccd27c14be428891f63417" + integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ== dependencies: - "@aws-sdk/protocol-http" "3.50.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.0" + "@babel/types" "^7.17.0" -"@aws-sdk/node-config-provider@3.51.0": - version "3.51.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.51.0.tgz#994a9d2ed9f5c178df885df265f6baaa8c54c0f8" - integrity sha512-EqZzpKNCO/wq7JF3Pc6dzlERN9TxopbYysaYhg1XvDznKXRWcEM1YL1vQJXzcDYSDu6c/alBGKEFJTqUD9WClg== +"@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== dependencies: - "@aws-sdk/property-provider" "3.50.0" - "@aws-sdk/shared-ini-file-loader" "3.51.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" -"@aws-sdk/node-http-handler@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.50.0.tgz#55c001ac665daf6665eed1e60d2b6fb24ed490fc" - integrity sha512-k7/A8yzIyq1NEWfuv/HprJs8kHXVSLKxWRDS6aEE92wyMFs8o/B+E7MEVeuYbldvpBU0GDg8ZbAYLX2yIxQj+A== +"@babel/highlight@^7.22.13": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" + integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== dependencies: - "@aws-sdk/abort-controller" "3.50.0" - "@aws-sdk/protocol-http" "3.50.0" - "@aws-sdk/querystring-builder" "3.50.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" -"@aws-sdk/property-provider@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.50.0.tgz#56154b2672916724148080466921b79f736e658e" - integrity sha512-mY59kMP7QGNO19mxz+bAuvwEOeGwD7Dy/CeG3qGSGnEUrymjyPt31R+ptaZpE2gP5/ZEGBohbmDZag0l6sQyxg== - dependencies: - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" +"@babel/parser@^7.14.3", "@babel/parser@^7.17.0", "@babel/parser@^7.18.10": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.6.tgz#b923430cb94f58a7eae8facbffa9efd19130e7f8" + integrity sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA== -"@aws-sdk/protocol-http@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.50.0.tgz#6a6eefac4b823cb61b4e95e0f161e0bade2754cf" - integrity sha512-o6/eoDqjNRIKq6Zp5ujS6oP/GhQRzqvEsvWgKXHMVEMPmr9jkyQEdOqs4eWQ0+eRKJYhhWU3Perd6B+8z7BC1Q== - dependencies: - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" +"@babel/parser@^7.22.15", "@babel/parser@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" + integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== -"@aws-sdk/querystring-builder@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.50.0.tgz#6bae811684658eee845f946e891016121bf550e8" - integrity sha512-2p9dt38qsWTo6iIdlIbsatNP8frEH0uqBcehJErX48UFhdeuRpy5E75c4Y9nRcqK2dZLpJ1ph+IiOiJEi28ZPg== +"@babel/runtime@^7.0.0": + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" + integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== dependencies: - "@aws-sdk/types" "3.50.0" - "@aws-sdk/util-uri-escape" "3.49.0" - tslib "^2.3.0" + regenerator-runtime "^0.13.4" -"@aws-sdk/querystring-parser@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.50.0.tgz#e93532bee36095484338042e015942d3f3aabad4" - integrity sha512-7bDwE4oAT1R78s7qvQsfuzMN0mKe86wWApUe7FPBitpcxstQhTRF3w+fuAwjJCxEQ/Dq/yYzYN1BNELLCon19Q== +"@babel/template@^7.16.7": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" + integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== dependencies: - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" - -"@aws-sdk/service-error-classification@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.50.0.tgz#a57caec99f3176ac01805841ef54ecb11ec874f9" - integrity sha512-w3ZrVnBfNTOH2B4SNgtGT/oUuQhNTONDgVZxDdIj0AXLEV7qAipI8bU32SMXTx1Lds7gaqysKsWw5F/Bc5MlLg== + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.18.10" + "@babel/types" "^7.18.10" -"@aws-sdk/shared-ini-file-loader@3.51.0": - version "3.51.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.51.0.tgz#cf76c10b015451af80713e644799c0f4ef7d95e6" - integrity sha512-4BglbnyUugAis4TX2XmZdgwoKouoTo6ey9nKyXPqpF/T3T6xqw1BrV0LCtChFOEue7WxhcufAcbLiofnYV9EAA== - dependencies: - tslib "^2.3.0" +"@babel/template@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.14.2", "@babel/traverse@^7.16.7", "@babel/traverse@^7.17.0": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" + integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.0" + "@babel/types" "^7.23.0" + debug "^4.1.0" + globals "^11.1.0" -"@aws-sdk/signature-v4@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.50.0.tgz#88167352174574189a283c947d51f041a30a4b6c" - integrity sha512-NEYqyKjq453Aqv1fBMj8bLwf/Rus6IxY1YpbeCMtZOPlTxHg9KPWd7GzjIFP4AbD1iksxqtBO+C5mFLcejYNUA== +"@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.4.tgz#0dd5c91c573a202d600490a35b33246fed8a41c7" + integrity sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw== dependencies: - "@aws-sdk/is-array-buffer" "3.49.0" - "@aws-sdk/types" "3.50.0" - "@aws-sdk/util-hex-encoding" "3.49.0" - "@aws-sdk/util-uri-escape" "3.49.0" - tslib "^2.3.0" + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" -"@aws-sdk/smithy-client@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.50.0.tgz#4f39ff6804d0ade852e8a922e7c3202fee81206e" - integrity sha512-0pX4GNONWS5PqJwAfJH0E3fdzvqhtfwPPhq2ZiFCx7wTir9Y3R4dKMbeeXUf7QsjZzC41Nz9/7xYsSjPsMRKAA== +"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" + integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== dependencies: - "@aws-sdk/middleware-stack" "3.50.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" -"@aws-sdk/types@3.50.0", "@aws-sdk/types@^3.1.0", "@aws-sdk/types@^3.25.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.50.0.tgz#87b7679901129f5989d7da8b44364bf6a9ff8722" - integrity sha512-ANj9L+lR4NWWSLPkr5tRdFaw0kW0BjlDgnyNWyFrGVOHqT0MYjhCjPsH2y45G59z+b2qe+v/VsKuTyNmSvoZCA== +"@bitdisaster/exe-icon-extractor@^1.0.10": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@bitdisaster/exe-icon-extractor/-/exe-icon-extractor-1.0.10.tgz#3f5107864254c351db1db5c5922452d9d4154e8f" + integrity sha512-iTZ8cVGZ5dglNRyFdSj8U60mHIrC8XNIuOHN/NkM5/dQP4nsmpyqeQTAADLLQgoFCNJD+DiwQCv8dR2cCeWP4g== -"@aws-sdk/url-parser@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.50.0.tgz#5ebd0acd2bec3f4addb78b4f6166a9855d932adf" - integrity sha512-dyexaE+SJpN8Cf9nm3Uslo9eySjA9B22Mb/lw7XLgG58IxMmvj6+IjphV0/uIqj3CJ5OS7B7r5RCc5xqZwhCqg== - dependencies: - "@aws-sdk/querystring-parser" "3.50.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@aws-sdk/util-arn-parser@3.49.0": - version "3.49.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.49.0.tgz#31fb6a58c224ed6aaf807b0c18af46039f803f2e" - integrity sha512-mAF4lzxqMUFMQAf+NQSxW7jC5hYXNM7mPItBFs/yI3F25MXBw88Q+wAof7iIyRnRcpJvgZ3I7P8vJriAwrSbFg== - dependencies: - tslib "^2.3.0" +"@cspotcode/source-map-consumer@0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" + integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== -"@aws-sdk/util-base64-browser@3.49.0": - version "3.49.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64-browser/-/util-base64-browser-3.49.0.tgz#372ec36c7c8a37c3e79b6af0dc62453c57e6d343" - integrity sha512-HFXJbsJC6AfrnO9M8KuFDo4ihvLbCbCFCfpWy0Gs4t8kTcvGqH8fIpfVsQKAtFHMmb8fen2LduOk+NNSA7srYw== +"@cspotcode/source-map-support@0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz#4789840aa859e46d2f3173727ab707c66bf344f5" + integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== dependencies: - tslib "^2.3.0" + "@cspotcode/source-map-consumer" "0.8.0" -"@aws-sdk/util-base64-node@3.49.0": - version "3.49.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64-node/-/util-base64-node-3.49.0.tgz#ac76df845ae90ca3580b8d95e9e990ec46e1b9ff" - integrity sha512-xFAzOLZJOEZipG3KVLjB5z1g5PJSi6cmZOGWg2NC2/H5N0/Z+e5ObnIH8mpfO1d6kWchUuo3qJ6fTOvg/ynw7A== - dependencies: - "@aws-sdk/util-buffer-from" "3.49.0" - tslib "^2.3.0" +"@doyensec/csp-evaluator@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@doyensec/csp-evaluator/-/csp-evaluator-1.0.3.tgz#0d0405cbfb5bb814c24b8a73736a9700da2c681f" + integrity sha512-Nz2QxdGiYh7nHgRU4R5/v6NDGW+IYv7j7dyQgpjtl4aJzrwHAdoZ0yxz7/YO8bgIOyDJJlF7jbUqjYpPClk9ZQ== -"@aws-sdk/util-body-length-browser@3.49.0": - version "3.49.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.49.0.tgz#8a8ad5c93ac8ed2767434454a872912829775bff" - integrity sha512-4a9Bw33JGKefaZDORlosQRMKxJGEYEiDD5kgNvwIv+KRl5yj2unePia6aFWMqXTWqidOb9WVlqc0Lh73ei5pTg== +"@doyensec/electronegativity@^1.9.1": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@doyensec/electronegativity/-/electronegativity-1.10.1.tgz#3cad691ad512845396a580187f8a2c5e6d04950e" + integrity sha512-fozYcSPQya6VnunxSJy7/ZlUVvX/Haak/vAzUQSPKK0D5WKE3CqkbyrAYzYPUSZEFeopWLx5whvk2RSJO2XFVw== dependencies: - tslib "^2.3.0" + "@babel/parser" "^7.14.3" + "@babel/traverse" "^7.14.2" + "@doyensec/csp-evaluator" "^1.0.3" + "@electron/asar" "^3.0.3" + "@mapbox/node-pre-gyp" "^1.0.5" + "@typescript-eslint/typescript-estree" "^4.24.0" + "@yarnpkg/lockfile" "^1.1.0" + chalk "^4.1.1" + cheerio "^1.0.0-rc.9" + cli-progress "^3.9.0" + cli-table3 "^0.6.0" + escope "^3.6.0" + eslint "^7.27.0" + esprima "^4.0.1" + estraverse "^5.2.0" + estraverse-fb "^1.3.2" + got "^11.8.2" + i18n "^0.15.1" + ini "^1.3.8" + linenumber "^1.0.1" + lodash "^4.17.21" + node-dir "^0.1.17" + read-package-tree "^5.3.1" + semver "^7.3.5" + temp-dir "^2.0.0" + typescript "~4.2.4" + winston "^2.3.1" -"@aws-sdk/util-body-length-node@3.49.0": - version "3.49.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.49.0.tgz#572201e3669cfed98917763a3f099bf0a34ce1a6" - integrity sha512-ME5Sc8jo9BzToUjWskQKZM/NqN9PpwRDTOSH6EISDBUiH5bhWfY8MLkZqIN2UZz/XOiV3yOeWAU+fMYNnGdAQQ== +"@dsanders11/vscode-markdown-languageservice@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@dsanders11/vscode-markdown-languageservice/-/vscode-markdown-languageservice-0.3.0.tgz#18a561711609651371961b66db4cb8473ab25564" + integrity sha512-aFNWtK23dNicyLczBwIKkGUSVuMoZMzUovlwqj/hVZ3zRIBlXWYunByDxI67Pf1maA0TbxPjVfRqBQFALWjVHg== dependencies: - tslib "^2.3.0" + "@vscode/l10n" "^0.0.10" + picomatch "^2.3.1" + vscode-languageserver-textdocument "^1.0.5" + vscode-languageserver-types "^3.17.1" + vscode-uri "^3.0.3" -"@aws-sdk/util-buffer-from@3.49.0": - version "3.49.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.49.0.tgz#128a44f94d4e4676461d441e4da81be94a5c17fc" - integrity sha512-8JbIPYn91f+16QpDk000PdIBlBZu8/SoL1nF2fpAJ+M98jXpKUws3oiCztJ2FPIKRe/3ikKuZM4HxWrDyJa40Q== +"@electron/asar@^3.0.3": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.2.tgz#f6ae4eb4343ad00b994c40db3f09f71f968ff9c0" + integrity sha512-32fMU68x8a6zvxtC1IC/BhPDKTh8rQjdmwEplj3CDpnkcwBzZVN9v/8cK0LJqQ0FOQQVZW8BWZ1S6UU53TYR4w== dependencies: - "@aws-sdk/is-array-buffer" "3.49.0" - tslib "^2.3.0" + chromium-pickle-js "^0.2.0" + commander "^5.0.0" + glob "^7.1.6" + minimatch "^3.0.4" + optionalDependencies: + "@types/glob" "^7.1.1" -"@aws-sdk/util-config-provider@3.49.0": - version "3.49.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-config-provider/-/util-config-provider-3.49.0.tgz#bfe46ac5559c65fe9443e26d9510abc2584a4d1c" - integrity sha512-oVGT9q9UIGdv9Cra4B51QNciWKYQXTlfh8oD2FgLp91NbGTIkQLvK7Pah4TbBoa5+0u/obBI07UwCVn7wphWBQ== +"@electron/asar@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.1.tgz#c4143896f3dd43b59a80a9c9068d76f77efb62ea" + integrity sha512-hE2cQMZ5+4o7+6T2lUaVbxIzrOjZZfX7dB02xuapyYFJZEAiWTelq6J3mMoxzd0iONDvYLPVKecB5tyjIoVDVA== dependencies: - tslib "^2.3.0" + chromium-pickle-js "^0.2.0" + commander "^5.0.0" + glob "^7.1.6" + minimatch "^3.0.4" + optionalDependencies: + "@types/glob" "^7.1.1" -"@aws-sdk/util-credentials@3.51.0": - version "3.51.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-credentials/-/util-credentials-3.51.0.tgz#836dbf4d470509d54eeaa95ed96d2a2f80e2fcdc" - integrity sha512-qAvsK4etS/lRtQaJRBdJquaASvsxlcLE7eFsWHkjzzaUvuOxB98nO9GCe5J2SDbKvnexQt+PUKNpH8JyO59JPQ== +"@electron/asar@^3.2.7": + version "3.2.8" + resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.8.tgz#2ea722f3452583dbd4ffdcc4b4f5dc903f1d8178" + integrity sha512-cmskk5M06ewHMZAplSiF4AlME3IrnnZhKnWbtwKVLRkdJkKyUVjMLhDIiPIx/+6zQWVlKX/LtmK9xDme7540Sg== dependencies: - "@aws-sdk/shared-ini-file-loader" "3.51.0" - tslib "^2.3.0" + commander "^5.0.0" + glob "^7.1.6" + minimatch "^3.0.4" -"@aws-sdk/util-defaults-mode-browser@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.50.0.tgz#8864577d282a4e9ee79e1f0c460c688bd2ad580b" - integrity sha512-W5WMC+3IHshIEK3WePHoI64B06IWqBLIxZbzlC9ewu/VDOEH0Uxt4UyQBdwh08Ip6SgLLfnG2dHWu6DaYCrepw== +"@electron/fuses@>=1.0.0": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@electron/fuses/-/fuses-1.6.1.tgz#c639e018202a59e3cd8911fa943e22c63dd3e6fc" + integrity sha512-J7kRMlc0vP03uzUuhHNEqffqZMZ6FRe0YGMOJO4kJObmYkOg38mMTvbbktEj+oteH5nfyhbQUkHIYnMSh7T/CQ== dependencies: - "@aws-sdk/property-provider" "3.50.0" - "@aws-sdk/types" "3.50.0" - bowser "^2.11.0" - tslib "^2.3.0" + chalk "^4.1.1" + fs-extra "^9.0.1" + minimist "^1.2.5" -"@aws-sdk/util-defaults-mode-node@3.51.0": - version "3.51.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.51.0.tgz#2a2e73acd2327071f9cd231bbb8ef3fdd0a4a177" - integrity sha512-DK58poVQyp+cnW6Udtxdc3b/2QW24kODQVWZ1pgg3jhhekb/mHLVSxtsA34OcTpoYOu78EpFdM0SmeoDJIQ3Zw== +"@electron/get@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-3.0.0.tgz#2b0c794b98902d0bc5218546872c1379bef68aa2" + integrity sha512-hLv4BYFiyrNRI+U0Mm2X7RxCCdJLkDUn8GCEp9QJzbLpZRko+UaLlCjOMkj6TEtirNLPyBA7y1SeGfnpOB21aQ== dependencies: - "@aws-sdk/config-resolver" "3.51.0" - "@aws-sdk/credential-provider-imds" "3.51.0" - "@aws-sdk/node-config-provider" "3.51.0" - "@aws-sdk/property-provider" "3.50.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" + debug "^4.1.1" + env-paths "^2.2.0" + fs-extra "^8.1.0" + got "^11.8.5" + progress "^2.0.3" + semver "^6.2.0" + sumchecker "^3.0.1" + optionalDependencies: + global-agent "^3.0.0" -"@aws-sdk/util-hex-encoding@3.49.0": - version "3.49.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.49.0.tgz#04d153679a1b14b2fecb4c38175d79b4a8fa8002" - integrity sha512-ZbPu8Dd3Qm0BMP71FWUH7KPpZA/6izfkDlxbvHxtHdW7XYZALuJ0cVRpWGIY2fCSuA9X8Jfn60KMyjuSAuzM1w== +"@electron/lint-roller@1.10.1": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@electron/lint-roller/-/lint-roller-1.10.1.tgz#1d506f8e098d4753bec16298b2ec708f894719d5" + integrity sha512-Ifn3WgcU4uoZHkoiDRKkmNAdQwFnzXpWSQZy5IftDaTKKfSc/8IfAEM0jKPgjBbUpykoEYJhCKuualUu1MT1+w== dependencies: - tslib "^2.3.0" + "@dsanders11/vscode-markdown-languageservice" "^0.3.0" + balanced-match "^2.0.0" + glob "^8.1.0" + markdown-it "^13.0.1" + markdownlint-cli "^0.33.0" + mdast-util-from-markdown "^1.3.0" + minimist "^1.2.8" + node-fetch "^2.6.9" + rimraf "^4.4.1" + standard "^17.0.0" + unist-util-visit "^4.1.2" + vscode-languageserver "^8.1.0" + vscode-languageserver-textdocument "^1.0.8" + vscode-uri "^3.0.7" -"@aws-sdk/util-locate-window@^3.0.0": - version "3.49.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.49.0.tgz#516f45e248607493e44807a3148e0888026bf662" - integrity sha512-ryw+t+quF1raaK0nXSplMiCVnahNLNgNDijZCFFkddGTMaCy+L4VRLYyNms3bgwt3G0BmVn9f3uyDWRSkn5sSg== +"@electron/notarize@^2.1.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@electron/notarize/-/notarize-2.2.0.tgz#40455f9d8ca8098a74567aa4613b709089d82657" + integrity sha512-Sf7RG47rafeGuUm+kLEbTXMN8XZeYXN70dMBstrcgiykxCq3SLl1uqxFWndxSI1LfMqv4Eq9PTDHLPwiya31Kg== dependencies: - tslib "^2.3.0" + debug "^4.1.1" + fs-extra "^9.0.1" + promise-retry "^2.0.1" -"@aws-sdk/util-uri-escape@3.49.0": - version "3.49.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.49.0.tgz#190d7cce32ffa44e1fc6e02b0a59c65a8954bbb3" - integrity sha512-NH7iQUYvijYZEOzZkF/QQrp8kBOA9H0Z89hR/63FDCjr1M0Cdcs1bLaFO0a0qbW9NQtoYNsMBMk7pTveDrAzTw== +"@electron/osx-sign@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@electron/osx-sign/-/osx-sign-1.0.5.tgz#0af7149f2fce44d1a8215660fd25a9fb610454d8" + integrity sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww== dependencies: - tslib "^2.3.0" - -"@aws-sdk/util-user-agent-browser@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.50.0.tgz#a2a80bb42a2e0e5d44a4ca31302ae346e03a0c5e" - integrity sha512-QKbR/4bqq1ZAL1e+R8LHbiHPnoszBJ1rQDETj+Mu75hal7ZQ0K4MMNpNnH0tp+ZXh+i0JfUltROH37nPe4K7MQ== - dependencies: - "@aws-sdk/types" "3.50.0" - bowser "^2.11.0" - tslib "^2.3.0" - -"@aws-sdk/util-user-agent-node@3.51.0": - version "3.51.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.51.0.tgz#41b8f24b640504374706945965d5844c98ad3044" - integrity sha512-ugugN/PcsqF50UhdBZe0pElJWYJ2qdc8qBpU9vq4KzgyhHJ1M7tCpo2Wjg5h0JvMoEzu9Kc1qxSN0YIW8Vct8Q== - dependencies: - "@aws-sdk/node-config-provider" "3.51.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" - -"@aws-sdk/util-utf8-browser@3.49.0", "@aws-sdk/util-utf8-browser@^3.0.0": - version "3.49.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.49.0.tgz#d98f19098cc8072214237e749e64d41bb88c598d" - integrity sha512-u9ZgAiTWX9yZFQ/ptlnVpYJ/rXF7aE2Wagar1IjhZrnxXbpVJvcX1EeRayxI1P5AAp2y2fiEKHZzX9ugTwOcEg== - dependencies: - tslib "^2.3.0" - -"@aws-sdk/util-utf8-node@3.49.0": - version "3.49.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-node/-/util-utf8-node-3.49.0.tgz#f1ae484e949de248278cdfa11df09287129a124e" - integrity sha512-QTF5b5OT2y6xsQl8sDiiXqg2n/VtgqFA+tP3WMooOSFd/ZFBbT6HoiSHXHMeTjpB/L9ZT+eUaCoBz8Jq09lBDg== - dependencies: - "@aws-sdk/util-buffer-from" "3.49.0" - tslib "^2.3.0" - -"@aws-sdk/util-waiter@3.50.0": - version "3.50.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-waiter/-/util-waiter-3.50.0.tgz#b7a4b5d9b3cd8efe7698f46bbb04a6ccab7427f6" - integrity sha512-dLDLUFGx8yTpX90TOo0tOQ+0fwp4LZHHoZmvM+O2OmcCUq/Yl+Esk0FkWMVjAQuMacsvUHX8kH04tia20wMUDQ== - dependencies: - "@aws-sdk/abort-controller" "3.50.0" - "@aws-sdk/types" "3.50.0" - tslib "^2.3.0" - -"@aws-sdk/xml-builder@3.49.0": - version "3.49.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.49.0.tgz#809eec53a2e30293c510451a06c99703b5297bcb" - integrity sha512-eU5sIZRWq8pNmw++RfpFI8396UtDW8JxYLcKfJLGQC/qDhwCo+sNPKydXFmDrXTIt/khs3K0qx/vZ5V76irc2Q== - dependencies: - tslib "^2.3.0" - -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/compat-data@^7.16.4": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.0.tgz#86850b8597ea6962089770952075dcaabb8dba34" - integrity sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng== - -"@babel/core@^7.0.0": - version "7.17.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.2.tgz#2c77fc430e95139d816d39b113b31bf40fb22337" - integrity sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw== - dependencies: - "@ampproject/remapping" "^2.0.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.0" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helpers" "^7.17.2" - "@babel/parser" "^7.17.0" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.0" - "@babel/types" "^7.17.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - -"@babel/generator@^7.17.0", "@babel/generator@^7.19.6": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.6.tgz#9e481a3fe9ca6261c972645ae3904ec0f9b34a1d" - integrity sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA== - dependencies: - "@babel/types" "^7.19.4" - "@jridgewell/gen-mapping" "^0.3.2" - jsesc "^2.5.1" - -"@babel/helper-compilation-targets@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b" - integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA== - dependencies: - "@babel/compat-data" "^7.16.4" - "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.17.5" - semver "^6.3.0" - -"@babel/helper-environment-visitor@^7.16.7", "@babel/helper-environment-visitor@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" - integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== - -"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" - integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== - dependencies: - "@babel/template" "^7.18.10" - "@babel/types" "^7.19.0" - -"@babel/helper-hoist-variables@^7.16.7", "@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-transforms@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41" - integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-simple-access@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7" - integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-split-export-declaration@^7.16.7", "@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-string-parser@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" - integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== - -"@babel/helper-validator-identifier@^7.16.7", "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== - -"@babel/helpers@^7.17.2": - version "7.17.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.2.tgz#23f0a0746c8e287773ccd27c14be428891f63417" - integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ== - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.0" - "@babel/types" "^7.17.0" - -"@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.14.3", "@babel/parser@^7.17.0", "@babel/parser@^7.18.10", "@babel/parser@^7.19.6": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.6.tgz#b923430cb94f58a7eae8facbffa9efd19130e7f8" - integrity sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA== - -"@babel/runtime@^7.0.0": - version "7.17.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" - integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.16.7", "@babel/template@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" - integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.18.10" - "@babel/types" "^7.18.10" - -"@babel/traverse@^7.14.2": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.6.tgz#7b4c865611df6d99cb131eec2e8ac71656a490dc" - integrity sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.19.6" - "@babel/types" "^7.19.4" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.16.7", "@babel/traverse@^7.17.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.0.tgz#3143e5066796408ccc880a33ecd3184f3e75cd30" - integrity sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.0" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.0" - "@babel/types" "^7.17.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.4.tgz#0dd5c91c573a202d600490a35b33246fed8a41c7" - integrity sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw== - dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - -"@bitdisaster/exe-icon-extractor@^1.0.10": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@bitdisaster/exe-icon-extractor/-/exe-icon-extractor-1.0.10.tgz#3f5107864254c351db1db5c5922452d9d4154e8f" - integrity sha512-iTZ8cVGZ5dglNRyFdSj8U60mHIrC8XNIuOHN/NkM5/dQP4nsmpyqeQTAADLLQgoFCNJD+DiwQCv8dR2cCeWP4g== - -"@colors/colors@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" - integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== - -"@cspotcode/source-map-consumer@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" - integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== - -"@cspotcode/source-map-support@0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz#4789840aa859e46d2f3173727ab707c66bf344f5" - integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== - dependencies: - "@cspotcode/source-map-consumer" "0.8.0" - -"@doyensec/csp-evaluator@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@doyensec/csp-evaluator/-/csp-evaluator-1.0.3.tgz#0d0405cbfb5bb814c24b8a73736a9700da2c681f" - integrity sha512-Nz2QxdGiYh7nHgRU4R5/v6NDGW+IYv7j7dyQgpjtl4aJzrwHAdoZ0yxz7/YO8bgIOyDJJlF7jbUqjYpPClk9ZQ== - -"@doyensec/electronegativity@^1.9.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@doyensec/electronegativity/-/electronegativity-1.10.1.tgz#3cad691ad512845396a580187f8a2c5e6d04950e" - integrity sha512-fozYcSPQya6VnunxSJy7/ZlUVvX/Haak/vAzUQSPKK0D5WKE3CqkbyrAYzYPUSZEFeopWLx5whvk2RSJO2XFVw== - dependencies: - "@babel/parser" "^7.14.3" - "@babel/traverse" "^7.14.2" - "@doyensec/csp-evaluator" "^1.0.3" - "@electron/asar" "^3.0.3" - "@mapbox/node-pre-gyp" "^1.0.5" - "@typescript-eslint/typescript-estree" "^4.24.0" - "@yarnpkg/lockfile" "^1.1.0" - chalk "^4.1.1" - cheerio "^1.0.0-rc.9" - cli-progress "^3.9.0" - cli-table3 "^0.6.0" - escope "^3.6.0" - eslint "^7.27.0" - esprima "^4.0.1" - estraverse "^5.2.0" - estraverse-fb "^1.3.2" - got "^11.8.2" - i18n "^0.15.1" - ini "^1.3.8" - linenumber "^1.0.1" - lodash "^4.17.21" - node-dir "^0.1.17" - read-package-tree "^5.3.1" - semver "^7.3.5" - temp-dir "^2.0.0" - typescript "~4.2.4" - winston "^2.3.1" - -"@dsanders11/vscode-markdown-languageservice@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@dsanders11/vscode-markdown-languageservice/-/vscode-markdown-languageservice-0.3.0.tgz#18a561711609651371961b66db4cb8473ab25564" - integrity sha512-aFNWtK23dNicyLczBwIKkGUSVuMoZMzUovlwqj/hVZ3zRIBlXWYunByDxI67Pf1maA0TbxPjVfRqBQFALWjVHg== - dependencies: - "@vscode/l10n" "^0.0.10" - picomatch "^2.3.1" - vscode-languageserver-textdocument "^1.0.5" - vscode-languageserver-types "^3.17.1" - vscode-uri "^3.0.3" - -"@electron/asar@^3.0.3": - version "3.2.2" - resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.2.tgz#f6ae4eb4343ad00b994c40db3f09f71f968ff9c0" - integrity sha512-32fMU68x8a6zvxtC1IC/BhPDKTh8rQjdmwEplj3CDpnkcwBzZVN9v/8cK0LJqQ0FOQQVZW8BWZ1S6UU53TYR4w== - dependencies: - chromium-pickle-js "^0.2.0" - commander "^5.0.0" - glob "^7.1.6" - minimatch "^3.0.4" - optionalDependencies: - "@types/glob" "^7.1.1" - -"@electron/asar@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.1.tgz#c4143896f3dd43b59a80a9c9068d76f77efb62ea" - integrity sha512-hE2cQMZ5+4o7+6T2lUaVbxIzrOjZZfX7dB02xuapyYFJZEAiWTelq6J3mMoxzd0iONDvYLPVKecB5tyjIoVDVA== - dependencies: - chromium-pickle-js "^0.2.0" - commander "^5.0.0" - glob "^7.1.6" - minimatch "^3.0.4" - optionalDependencies: - "@types/glob" "^7.1.1" - -"@electron/fuses@>=1.0.0": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@electron/fuses/-/fuses-1.6.1.tgz#c639e018202a59e3cd8911fa943e22c63dd3e6fc" - integrity sha512-J7kRMlc0vP03uzUuhHNEqffqZMZ6FRe0YGMOJO4kJObmYkOg38mMTvbbktEj+oteH5nfyhbQUkHIYnMSh7T/CQ== - dependencies: - chalk "^4.1.1" - fs-extra "^9.0.1" - minimist "^1.2.5" - -"@electron/get@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-2.0.0.tgz#d991e68dc089fc66b521ec3ca4021515482bef91" - integrity sha512-d0XfNGayKLrYRqddW4f2Zdjaj71LfvZlCnUN8ojyNMr7WD8v6B+fqdCV8Etnwn/vUfFWFwMk/HtLEFZy01h4tQ== - dependencies: - debug "^4.1.1" - env-paths "^2.2.0" - fs-extra "^8.1.0" - got "^11.8.5" - progress "^2.0.3" - semver "^6.2.0" - sumchecker "^3.0.1" - optionalDependencies: - global-agent "^3.0.0" - global-tunnel-ng "^2.7.1" - -"@electron/lint-roller@^1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@electron/lint-roller/-/lint-roller-1.6.0.tgz#ff92da35379b25bce5cf99310ac541ce6a1500d5" - integrity sha512-R3x25b6OK/PQTONfs24FZaYyArS53e/fFB8IDpHFObVMXjkwU+1ePRwysk2jF23ifiQ1bY27llxzLOD+3UugBQ== - dependencies: - "@dsanders11/vscode-markdown-languageservice" "^0.3.0" - glob "^8.1.0" - markdown-it "^13.0.1" - markdownlint-cli "^0.33.0" - mdast-util-from-markdown "^1.3.0" - minimist "^1.2.8" - node-fetch "^2.6.9" - rimraf "^4.4.1" - standard "^17.0.0" - unist-util-visit "^4.1.2" - vscode-languageserver "^8.1.0" - vscode-languageserver-textdocument "^1.0.8" - vscode-uri "^3.0.7" - -"@electron/notarize@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@electron/notarize/-/notarize-1.2.3.tgz#38056a629e5a0b5fd56c975c4828c0f74285b644" - integrity sha512-9oRzT56rKh5bspk3KpAVF8lPKHYQrBnRwcgiOeR0hdilVEQmszDaAu0IPCPrwwzJN0ugNs0rRboTreHMt/6mBQ== - dependencies: - debug "^4.1.1" - fs-extra "^9.0.1" - -"@electron/osx-sign@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@electron/osx-sign/-/osx-sign-1.0.5.tgz#0af7149f2fce44d1a8215660fd25a9fb610454d8" - integrity sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww== - dependencies: - compare-version "^0.1.2" - debug "^4.3.4" - fs-extra "^10.0.0" - isbinaryfile "^4.0.8" - minimist "^1.2.6" - plist "^3.0.5" - -"@electron/rebuild@^3.2.10": - version "3.2.10" - resolved "https://registry.yarnpkg.com/@electron/rebuild/-/rebuild-3.2.10.tgz#adc9443179709d4e4b93a68fac6a08b9a3b9e5e6" - integrity sha512-SUBM6Mwi3yZaDFQjZzfGKpYTtOp9m60glounwX6tfGeVc/ZOl4jbquktUcyy7gYSLDWFLtKkftkY2xgMJZLQgg== - dependencies: - "@malept/cross-spawn-promise" "^2.0.0" - chalk "^4.0.0" - debug "^4.1.1" - detect-libc "^2.0.1" - fs-extra "^10.0.0" - got "^11.7.0" - lzma-native "^8.0.5" - node-abi "^3.0.0" - node-api-version "^0.1.4" - node-gyp "^9.0.0" - ora "^5.1.0" - semver "^7.3.5" - tar "^6.0.5" - yargs "^17.0.1" - -"@electron/universal@^1.3.2": - version "1.3.4" - resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.3.4.tgz#bccd94b635d7c85eeed5eabba457eb4ed2be2777" - integrity sha512-BdhBgm2ZBnYyYRLRgOjM5VHkyFItsbggJ0MHycOjKWdFGYwK97ZFXH54dTvUWEfha81vfvwr5On6XBjt99uDcg== - dependencies: - "@electron/asar" "^3.2.1" - "@malept/cross-spawn-promise" "^1.1.0" - debug "^4.3.1" - dir-compare "^3.0.0" - fs-extra "^9.0.1" - minimatch "^3.0.4" - plist "^3.0.4" - -"@esbuild/android-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" - integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg== - -"@esbuild/android-arm@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2" - integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw== - -"@esbuild/android-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e" - integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ== - -"@esbuild/darwin-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220" - integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w== - -"@esbuild/darwin-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz#42829168730071c41ef0d028d8319eea0e2904b4" - integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg== - -"@esbuild/freebsd-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27" - integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw== - -"@esbuild/freebsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72" - integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug== - -"@esbuild/linux-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca" - integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g== - -"@esbuild/linux-arm@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196" - integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ== - -"@esbuild/linux-ia32@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54" - integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg== - -"@esbuild/linux-loong64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8" - integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ== - -"@esbuild/linux-mips64el@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726" - integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw== - -"@esbuild/linux-ppc64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8" - integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g== - -"@esbuild/linux-riscv64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9" - integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw== - -"@esbuild/linux-s390x@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87" - integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w== - -"@esbuild/linux-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f" - integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw== - -"@esbuild/netbsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775" - integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA== - -"@esbuild/openbsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35" - integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg== - -"@esbuild/sunos-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c" - integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw== - -"@esbuild/win32-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a" - integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw== - -"@esbuild/win32-ia32@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09" - integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig== - -"@esbuild/win32-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091" - integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q== - -"@eslint-community/eslint-utils@^4.2.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.4.0": - version "4.5.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" - integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== - -"@eslint/eslintrc@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" - integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== - dependencies: - ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^13.9.0" - ignore "^4.0.6" - import-fresh "^3.2.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" - strip-json-comments "^3.1.1" - -"@eslint/eslintrc@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.1.0.tgz#583d12dbec5d4f22f333f9669f7d0b7c7815b4d3" - integrity sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.3.1" - globals "^13.9.0" - ignore "^4.0.6" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.0.4" - strip-json-comments "^3.1.1" - -"@eslint/eslintrc@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" - integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.5.2" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.42.0": - version "8.42.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.42.0.tgz#484a1d638de2911e6f5a30c12f49c7e4a3270fb6" - integrity sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw== - -"@gar/promisify@^1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" - integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== - -"@humanwhocodes/config-array@^0.11.10": - version "0.11.10" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" - integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.5" - -"@humanwhocodes/config-array@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== - dependencies: - "@humanwhocodes/object-schema" "^1.2.0" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/config-array@^0.9.2": - version "0.9.3" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.3.tgz#f2564c744b387775b436418491f15fce6601f63e" - integrity sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^1.2.0", "@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@hutson/parse-repository-url@^3.0.0": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" - integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== - -"@isaacs/string-locale-compare@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" - integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== - -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/trace-mapping@^0.3.0": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" - integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/trace-mapping@^0.3.9": - version "0.3.14" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" - integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@knodes/typedoc-plugin-monorepo-readmes@0.22.5": - version "0.22.5" - resolved "https://registry.yarnpkg.com/@knodes/typedoc-plugin-monorepo-readmes/-/typedoc-plugin-monorepo-readmes-0.22.5.tgz#aae62c85ef5bd0040edf9939facafafce6c697af" - integrity sha512-SJcMSTbCXu3VUrmwaQvebQW0oyLLRqLQDQltRS0QR7RJ64NV0xYaCmFC4jFjAoAX6hXvlmdP9T0cLALNAYhV2Q== - dependencies: - "@knodes/typedoc-pluginutils" "~0.22.5" - find-up "^4.1.0" - -"@knodes/typedoc-pluginutils@~0.22.5": - version "0.22.7" - resolved "https://registry.yarnpkg.com/@knodes/typedoc-pluginutils/-/typedoc-pluginutils-0.22.7.tgz#a158d46f09909a95d7d71b97008ddc90ec5aa777" - integrity sha512-VAxpQNfyghintegU9Ky3vJLKQBSFXRP3rs6JclHpJloGKKAAGV6WweCDrFvFzZ4a08LkXSpqIMLmmuFjKLELOg== - dependencies: - lodash "^4.17.21" - pkg-up "^3.1.0" - semver "^7.3.5" - -"@leichtgewicht/ip-codec@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" - integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== - -"@lerna/add@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/add/-/add-6.0.3.tgz#341927d00b79ad2a2c0e9aec239b203e5a04fa12" - integrity sha512-EM9hJExG6bV4Hg+XpHTg5nGCuZl3pUEdbYLtyXfMUj/7fpCrUkxB0oESIVhFINVbxHm2pdnUfOxPDHwFSyWBig== - dependencies: - "@lerna/bootstrap" "6.0.3" - "@lerna/command" "6.0.3" - "@lerna/filter-options" "6.0.3" - "@lerna/npm-conf" "6.0.3" - "@lerna/validation-error" "6.0.3" - dedent "^0.7.0" - npm-package-arg "8.1.1" - p-map "^4.0.0" - pacote "^13.6.1" - semver "^7.3.4" - -"@lerna/bootstrap@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-6.0.3.tgz#806fae9955f25ef5468dd7752c5d5469e3253fa7" - integrity sha512-51eT07tAiH1oca9dNrrLXXH6PJZFY4zKEYDqLkx+zMCG/LsIUnzEfy4JBe1GXbFasXfM24pG8wLKoj1sj1CR3A== - dependencies: - "@lerna/command" "6.0.3" - "@lerna/filter-options" "6.0.3" - "@lerna/has-npm-version" "6.0.3" - "@lerna/npm-install" "6.0.3" - "@lerna/package-graph" "6.0.3" - "@lerna/pulse-till-done" "6.0.3" - "@lerna/rimraf-dir" "6.0.3" - "@lerna/run-lifecycle" "6.0.3" - "@lerna/run-topologically" "6.0.3" - "@lerna/symlink-binary" "6.0.3" - "@lerna/symlink-dependencies" "6.0.3" - "@lerna/validation-error" "6.0.3" - "@npmcli/arborist" "5.3.0" - dedent "^0.7.0" - get-port "^5.1.1" - multimatch "^5.0.0" - npm-package-arg "8.1.1" - npmlog "^6.0.2" - p-map "^4.0.0" - p-map-series "^2.1.0" - p-waterfall "^2.1.1" - semver "^7.3.4" - -"@lerna/changed@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-6.0.3.tgz#9dfd7ff944b2409c7762a5e376607ea6e5533585" - integrity sha512-VhKl/vVnrY12z2q1it2FkPkRwC3kyZh++kWMNDbMuUqH1kDHuw7KWJjPw6H4LDpoFWj4Q0hPcNRXxJpNiRWD1g== - dependencies: - "@lerna/collect-updates" "6.0.3" - "@lerna/command" "6.0.3" - "@lerna/listable" "6.0.3" - "@lerna/output" "6.0.3" - -"@lerna/check-working-tree@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/check-working-tree/-/check-working-tree-6.0.3.tgz#32fb77c5832926f7a66fd1a77bb81a5f46f4fbc5" - integrity sha512-ulAilI5AHvSVluH4QdcRPBbGH6lKU6OARfJFIgFYm8KoPyMESygYIBKBKuTUuyzfp5DOsASq2NiumBW4rpC7hg== - dependencies: - "@lerna/collect-uncommitted" "6.0.3" - "@lerna/describe-ref" "6.0.3" - "@lerna/validation-error" "6.0.3" - -"@lerna/child-process@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-6.0.3.tgz#691040e5e3f64dfe7ef4f4b4d5e6d560e1bef8fc" - integrity sha512-WfFwWdtGA0wvbyq7FB78Gvkd5mVjCGhRoLQY0FIGPQrmZBv3uy7kz5KbRKJlEmoIhVUnFbbV1xURxdqLzNrxoA== - dependencies: - chalk "^4.1.0" - execa "^5.0.0" - strong-log-transformer "^2.1.0" - -"@lerna/clean@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-6.0.3.tgz#f3519ef27a59b04b0f0f3553b53990d3fbe3ea48" - integrity sha512-4H+leVVVhwnc/GBOkFBIrLBia+MRm2ETZyXdCNckCJZ/e5tm6XHJLprGMSP2QwhJ0H20r+ciiQGzo3TGjQAEwQ== - dependencies: - "@lerna/command" "6.0.3" - "@lerna/filter-options" "6.0.3" - "@lerna/prompt" "6.0.3" - "@lerna/pulse-till-done" "6.0.3" - "@lerna/rimraf-dir" "6.0.3" - p-map "^4.0.0" - p-map-series "^2.1.0" - p-waterfall "^2.1.1" - -"@lerna/cli@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/cli/-/cli-6.0.3.tgz#a5115e1af70817a8afc08a646d3a7ae80a179801" - integrity sha512-4J3dOmDGxl32FJJryE65wXR//FOMFRM0osURnr+sylzStpaEwYO24GN1oVl0YIlnGVBuPIBDpr7n0uyjvfn+2A== - dependencies: - "@lerna/global-options" "6.0.3" - dedent "^0.7.0" - npmlog "^6.0.2" - yargs "^16.2.0" - -"@lerna/collect-uncommitted@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/collect-uncommitted/-/collect-uncommitted-6.0.3.tgz#645d24f60d2a47edebef7645cf65c6064cecc025" - integrity sha512-kMKL+U6fIMIHMENez6HrZEYZum+YObhmPzRr/5kkuaYqKPw2up/z1dHYQ/+w+tvzavGP15VKAWy/tZ0WsMuTWw== - dependencies: - "@lerna/child-process" "6.0.3" - chalk "^4.1.0" - npmlog "^6.0.2" - -"@lerna/collect-updates@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-6.0.3.tgz#fbfde0ec93b59c7868f49dc985a06d472e4f6dd1" - integrity sha512-qLuCHaHlVHu/tkdnncG6bQZHz9IFfZ6i7lexWfFnQnZ/aLEY7dVnFUde1jbsTFNMhJesKEbXJshXRcTcplDH6Q== - dependencies: - "@lerna/child-process" "6.0.3" - "@lerna/describe-ref" "6.0.3" - minimatch "^3.0.4" - npmlog "^6.0.2" - slash "^3.0.0" - -"@lerna/command@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/command/-/command-6.0.3.tgz#5c82c388cb2e2a401f1b00bf7454a15458a6c91e" - integrity sha512-iFkIQKLy+Ef2Kf20wOKBdkCA5J64Wjgr3XC62ZdrlDkx6wydfcfJMiXx2bhRqNKMe1cHxlBKGoRKzy8J+tBrHw== - dependencies: - "@lerna/child-process" "6.0.3" - "@lerna/package-graph" "6.0.3" - "@lerna/project" "6.0.3" - "@lerna/validation-error" "6.0.3" - "@lerna/write-log-file" "6.0.3" - clone-deep "^4.0.1" - dedent "^0.7.0" - execa "^5.0.0" - is-ci "^2.0.0" - npmlog "^6.0.2" - -"@lerna/conventional-commits@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-6.0.3.tgz#34ecf027b41b1d5182886b6b4c7b674d22897dd7" - integrity sha512-TZof9i0u9TK/Q7LEErjMQAMLf++MjO9NYG81sAuUaNKHMchUOmlFKtJmbT4/JjmgnBX5W0pCUF6DBxr/Bdjj9g== - dependencies: - "@lerna/validation-error" "6.0.3" - conventional-changelog-angular "^5.0.12" - conventional-changelog-core "^4.2.4" - conventional-recommended-bump "^6.1.0" - fs-extra "^9.1.0" - get-stream "^6.0.0" - npm-package-arg "8.1.1" - npmlog "^6.0.2" - pify "^5.0.0" - semver "^7.3.4" - -"@lerna/create-symlink@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/create-symlink/-/create-symlink-6.0.3.tgz#e651eb4c304e921bb7f83cbeae7a1af6329f284d" - integrity sha512-myCpuQZ4yYJ5sD+xZiyQHfONBIWlQnM3crIlAvObRYs1U+HwniO9YWk0HcW9dyzplwaYo+Vn55mdi67pTdsdDg== - dependencies: - cmd-shim "^5.0.0" - fs-extra "^9.1.0" - npmlog "^6.0.2" - -"@lerna/create@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/create/-/create-6.0.3.tgz#525b2e5702a61cee7f44928fdf889474dfa6a615" - integrity sha512-mq3D5laUMe6DWhCoWS0mYJw9PZez/8up81860lk5m7Zojk1Ataa08ZWtGhBgP+p77piNRvmjN89hhjkWiXG6ng== - dependencies: - "@lerna/child-process" "6.0.3" - "@lerna/command" "6.0.3" - "@lerna/npm-conf" "6.0.3" - "@lerna/validation-error" "6.0.3" - dedent "^0.7.0" - fs-extra "^9.1.0" - init-package-json "^3.0.2" - npm-package-arg "8.1.1" - p-reduce "^2.1.0" - pacote "^13.6.1" - pify "^5.0.0" - semver "^7.3.4" - slash "^3.0.0" - validate-npm-package-license "^3.0.4" - validate-npm-package-name "^4.0.0" - yargs-parser "20.2.4" - -"@lerna/describe-ref@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/describe-ref/-/describe-ref-6.0.3.tgz#f7e5603d686b8f58d836ddc0fb8612fceae9fe39" - integrity sha512-3gj6r9PK+c5SfHQr2j8MQ3qb6xQTrX8KvvGhe3YDW8h3jxx9SAGao8zuvzjI3tVpLx7ZSbxmHqMpyUmnLh5kuw== - dependencies: - "@lerna/child-process" "6.0.3" - npmlog "^6.0.2" - -"@lerna/diff@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-6.0.3.tgz#6d9bbde092a605e7aa2b9ab69ce6104eec5a0935" - integrity sha512-9syquyKF2oxg0fF736RWT2cf3Oyk4eRXRUNzT0hF0DL/8frQ98H+gF3ftIFVzz1bfPbXtubzBbLDi29bGEG3bQ== - dependencies: - "@lerna/child-process" "6.0.3" - "@lerna/command" "6.0.3" - "@lerna/validation-error" "6.0.3" - npmlog "^6.0.2" - -"@lerna/exec@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-6.0.3.tgz#01de1eed611879c73b3ec2b2385256a709ef7bd0" - integrity sha512-4xKTXPQe3/0hrwCao7evcQfaacfROhVkR2zfnQEA+rkKRiV6ILWdvu9jCxI7DMkzoh4DgABVuGAv84CeraunMg== - dependencies: - "@lerna/child-process" "6.0.3" - "@lerna/command" "6.0.3" - "@lerna/filter-options" "6.0.3" - "@lerna/profiler" "6.0.3" - "@lerna/run-topologically" "6.0.3" - "@lerna/validation-error" "6.0.3" - p-map "^4.0.0" - -"@lerna/filter-options@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-6.0.3.tgz#9362a2b517be5bc9851678bc7a972e3697d02aaf" - integrity sha512-6WjtXo1nNfOIYxjysGgjnCUqAbIqvoIIyQznLQYPsKN/6NN4U7sXr0P3nbaEgBZ2NHeV+seLWA/wraJ1zDaD4Q== - dependencies: - "@lerna/collect-updates" "6.0.3" - "@lerna/filter-packages" "6.0.3" - dedent "^0.7.0" - npmlog "^6.0.2" + compare-version "^0.1.2" + debug "^4.3.4" + fs-extra "^10.0.0" + isbinaryfile "^4.0.8" + minimist "^1.2.6" + plist "^3.0.5" -"@lerna/filter-packages@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/filter-packages/-/filter-packages-6.0.3.tgz#db19b3d5f430ca2ae5bacb5b7e140798a905c3c9" - integrity sha512-UlLgondhCpy7mzZWpOoUy8OlLux8YIqw07Obba0TvVLzrVIGIPIeXhqleRchUGVRV1vfQJ2d3vCTx31s1e/V4g== +"@electron/packager@^18.3.1": + version "18.3.1" + resolved "https://registry.yarnpkg.com/@electron/packager/-/packager-18.3.1.tgz#5e18a0840302ec70911c88dbbbf01837aef559d6" + integrity sha512-KpbLQH/ZYwmMASthBLy8GFn/5JlLdEayYFtLfkOcMWjBayDDjbatpWfN5Px9jMJZKXKO9knVc9hOgrDYxJsFMw== dependencies: - "@lerna/validation-error" "6.0.3" - multimatch "^5.0.0" - npmlog "^6.0.2" + "@electron/asar" "^3.2.1" + "@electron/get" "^3.0.0" + "@electron/notarize" "^2.1.0" + "@electron/osx-sign" "^1.0.5" + "@electron/universal" "^2.0.1" + "@electron/windows-sign" "^1.0.0" + debug "^4.0.1" + extract-zip "^2.0.0" + filenamify "^4.1.0" + fs-extra "^11.1.0" + galactus "^1.0.0" + get-package-info "^1.0.0" + junk "^3.1.0" + parse-author "^2.0.0" + plist "^3.0.0" + resedit "^2.0.0" + resolve "^1.1.6" + semver "^7.1.3" + yargs-parser "^21.1.1" -"@lerna/get-npm-exec-opts@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-6.0.3.tgz#d92a6461a626b79167fd2bc11bae38ee6154b965" - integrity sha512-zmKmHkXzmFQIBh2k9rCwzSkearKD+Pz1GypdJ0hAehemnabtW5QQKoGFsGh+7i5mOP0JBUl5kXTYTnwRGOWmYQ== +"@electron/rebuild@^3.2.10": + version "3.2.10" + resolved "https://registry.yarnpkg.com/@electron/rebuild/-/rebuild-3.2.10.tgz#adc9443179709d4e4b93a68fac6a08b9a3b9e5e6" + integrity sha512-SUBM6Mwi3yZaDFQjZzfGKpYTtOp9m60glounwX6tfGeVc/ZOl4jbquktUcyy7gYSLDWFLtKkftkY2xgMJZLQgg== dependencies: - npmlog "^6.0.2" + "@malept/cross-spawn-promise" "^2.0.0" + chalk "^4.0.0" + debug "^4.1.1" + detect-libc "^2.0.1" + fs-extra "^10.0.0" + got "^11.7.0" + lzma-native "^8.0.5" + node-abi "^3.0.0" + node-api-version "^0.1.4" + node-gyp "^9.0.0" + ora "^5.1.0" + semver "^7.3.5" + tar "^6.0.5" + yargs "^17.0.1" -"@lerna/get-packed@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/get-packed/-/get-packed-6.0.3.tgz#c5b016a5cbd9a9472b76a3d879b229982248dacf" - integrity sha512-NX/Ifi/A7iTXasfBioyv/nQ8+IC4gE1SEAuE39/ExGviOM3Jkk5EmeCqwAbhZyhYkxoDBQDJJvagQ5DobpfS7g== +"@electron/universal@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-2.0.1.tgz#7b070ab355e02957388f3dbd68e2c3cd08c448ae" + integrity sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA== dependencies: - fs-extra "^9.1.0" - ssri "^9.0.1" - tar "^6.1.0" + "@electron/asar" "^3.2.7" + "@malept/cross-spawn-promise" "^2.0.0" + debug "^4.3.1" + dir-compare "^4.2.0" + fs-extra "^11.1.1" + minimatch "^9.0.3" + plist "^3.1.0" -"@lerna/github-client@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-6.0.3.tgz#3b6f0016a962d5790396a5b9b80f8b73aae46709" - integrity sha512-wMOKH3FIDdE5T8UF88gvhUEBEFD9IUseFHqYt19hgzQyZxAx/hQQE2lqAEosYThPXqtKntIPKQGAfl0gquAMFQ== +"@electron/windows-sign@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@electron/windows-sign/-/windows-sign-1.0.0.tgz#f08a0a5d4b96840ab637ce11228a59ee8b665287" + integrity sha512-sdkQYAR/TQCEyYgz2jMbusL/ljdj6qA7vyIm/S9HICMAitXhXROFHUOLLgiORj1uiaf2EOB2U33DatGubUuZaQ== dependencies: - "@lerna/child-process" "6.0.3" - "@octokit/plugin-enterprise-rest" "^6.0.1" - "@octokit/rest" "^19.0.3" - git-url-parse "^13.1.0" - npmlog "^6.0.2" + debug "^4.3.4" + fs-extra "^11.1.1" + minimist "^1.2.8" -"@lerna/gitlab-client@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/gitlab-client/-/gitlab-client-6.0.3.tgz#59b592572dc640f1aa4d89a1393e29478e45ddc8" - integrity sha512-dBZiTsiHJ1j3tkW9JKSqCCZCk6aBiYaU9R/dSnpoPb6ZRthgoMGxtnfdk/1CKZlDargAu12XLJmcXLi7+UbyPg== +"@electron/windows-sign@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@electron/windows-sign/-/windows-sign-1.1.2.tgz#5489861ca62348d2300407e85d949af95849955e" + integrity sha512-eXEiZjDtxW3QORCWfRUarANPRTlH9B6At4jqBZJ0NzokSGutXQUVLPA6WmGpIhDW6w2yCMdHW1EJd1HrXtU5sg== dependencies: - node-fetch "^2.6.1" - npmlog "^6.0.2" - -"@lerna/global-options@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/global-options/-/global-options-6.0.3.tgz#e878d45b3ed4b14efecd37306f5e876779d8e2c8" - integrity sha512-XE22Mogzjh8w1rr07hALq40kmPuCr25cQ+K0OwYEiPsyH1dpOM7PSkP4qdT1l2UlWNM64LjgJtnjZ9hsx282VQ== + cross-dirname "^0.1.0" + debug "^4.3.4" + fs-extra "^11.1.1" + minimist "^1.2.8" + postject "^1.0.0-alpha.6" + +"@esbuild/aix-ppc64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz#2acd20be6d4f0458bc8c784103495ff24f13b1d3" + integrity sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g== + +"@esbuild/android-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz#b45d000017385c9051a4f03e17078abb935be220" + integrity sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q== + +"@esbuild/android-arm@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.11.tgz#f46f55414e1c3614ac682b29977792131238164c" + integrity sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw== + +"@esbuild/android-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.11.tgz#bfc01e91740b82011ef503c48f548950824922b2" + integrity sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg== + +"@esbuild/darwin-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz#533fb7f5a08c37121d82c66198263dcc1bed29bf" + integrity sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ== + +"@esbuild/darwin-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz#62f3819eff7e4ddc656b7c6815a31cf9a1e7d98e" + integrity sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g== + +"@esbuild/freebsd-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz#d478b4195aa3ca44160272dab85ef8baf4175b4a" + integrity sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA== + +"@esbuild/freebsd-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz#7bdcc1917409178257ca6a1a27fe06e797ec18a2" + integrity sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw== + +"@esbuild/linux-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz#58ad4ff11685fcc735d7ff4ca759ab18fcfe4545" + integrity sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg== + +"@esbuild/linux-arm@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz#ce82246d873b5534d34de1e5c1b33026f35e60e3" + integrity sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q== + +"@esbuild/linux-ia32@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz#cbae1f313209affc74b80f4390c4c35c6ab83fa4" + integrity sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA== + +"@esbuild/linux-loong64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz#5f32aead1c3ec8f4cccdb7ed08b166224d4e9121" + integrity sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg== + +"@esbuild/linux-mips64el@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz#38eecf1cbb8c36a616261de858b3c10d03419af9" + integrity sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg== + +"@esbuild/linux-ppc64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz#9c5725a94e6ec15b93195e5a6afb821628afd912" + integrity sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA== + +"@esbuild/linux-riscv64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz#2dc4486d474a2a62bbe5870522a9a600e2acb916" + integrity sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ== + +"@esbuild/linux-s390x@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz#4ad8567df48f7dd4c71ec5b1753b6f37561a65a8" + integrity sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q== + +"@esbuild/linux-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz#b7390c4d5184f203ebe7ddaedf073df82a658766" + integrity sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA== + +"@esbuild/netbsd-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz#d633c09492a1721377f3bccedb2d821b911e813d" + integrity sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ== + +"@esbuild/openbsd-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz#17388c76e2f01125bf831a68c03a7ffccb65d1a2" + integrity sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw== + +"@esbuild/sunos-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz#e320636f00bb9f4fdf3a80e548cb743370d41767" + integrity sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ== + +"@esbuild/win32-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz#c778b45a496e90b6fc373e2a2bb072f1441fe0ee" + integrity sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ== + +"@esbuild/win32-ia32@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz#481a65fee2e5cce74ec44823e6b09ecedcc5194c" + integrity sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg== + +"@esbuild/win32-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz#a5d300008960bb39677c46bf16f53ec70d8dee04" + integrity sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw== -"@lerna/has-npm-version@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-6.0.3.tgz#db16127ead4819d6cec97cf0597e392def886ee3" - integrity sha512-azZJkKPUWmfZf4AR40t9L6+utZaaCcZcXHOw/vHhmpn9GpZuc8Ck5cM5+8w9bgMglz0YwvTTWvutY2/mCnN5jA== +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: - "@lerna/child-process" "6.0.3" - semver "^7.3.4" - -"@lerna/import@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/import/-/import-6.0.3.tgz#d881cd2c4420cb91a701fc4fb43da3e70cb9335f" - integrity sha512-AWSwoS9e5udSrJ7E15rR+8V7Hnhli4+3IHh658bpvcGvsIntL7hBZucqWiKRMOmrsafncaBpLkfFgdiyGwy1Pw== - dependencies: - "@lerna/child-process" "6.0.3" - "@lerna/command" "6.0.3" - "@lerna/prompt" "6.0.3" - "@lerna/pulse-till-done" "6.0.3" - "@lerna/validation-error" "6.0.3" - dedent "^0.7.0" - fs-extra "^9.1.0" - p-map-series "^2.1.0" + eslint-visitor-keys "^3.3.0" -"@lerna/info@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/info/-/info-6.0.3.tgz#b22af49db401580d8e46bf99be07de5c71fab000" - integrity sha512-fqFGejIjjHN9obKUiWgmkknDJliyyRDbv/g6TMvQptxwiGfFBjR55TSPdKyUi9XslIQL5HWMYU7NWzZPiilk/A== - dependencies: - "@lerna/command" "6.0.3" - "@lerna/output" "6.0.3" - envinfo "^7.7.4" +"@eslint-community/regexpp@^4.4.0": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" + integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== -"@lerna/init@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/init/-/init-6.0.3.tgz#48e259c90712792bd5cdc21fa5602ae7083b143d" - integrity sha512-PmEmIJNNpXkGtEINBO5wfFrOlipAwY/4k674mbBWAfVJX+Affyx8yMcnMM28oDnFwe8gi12w5oRI0JcxcjpCFg== +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== dependencies: - "@lerna/child-process" "6.0.3" - "@lerna/command" "6.0.3" - "@lerna/project" "6.0.3" - fs-extra "^9.1.0" - p-map "^4.0.0" - write-json-file "^4.3.0" + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" -"@lerna/link@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/link/-/link-6.0.3.tgz#364387ba44a347e3dde41d4925d04e42aeb583d9" - integrity sha512-jVTk8QWoVb+gPSkLm6XLtEKdOyqH4WwpOatSZ5zMgiRfjGDiwxCc3dB994JFPJ5FEnr9qCwqXFKjIqef7POIyQ== +"@eslint/eslintrc@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.1.0.tgz#583d12dbec5d4f22f333f9669f7d0b7c7815b4d3" + integrity sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg== dependencies: - "@lerna/command" "6.0.3" - "@lerna/package-graph" "6.0.3" - "@lerna/symlink-dependencies" "6.0.3" - "@lerna/validation-error" "6.0.3" - p-map "^4.0.0" - slash "^3.0.0" + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.3.1" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" -"@lerna/list@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/list/-/list-6.0.3.tgz#83c3fd2b6e4a31e804737a472df15e414819ed66" - integrity sha512-5cQHJ2GAeN2/GV6uMJ4CVIQa3YOcmuNGqzr0DWwatR+5tire6dxFu5uY9Kjn2PYjmFUlwFwVgZzqRrSKPPPiVw== +"@eslint/eslintrc@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" + integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== dependencies: - "@lerna/command" "6.0.3" - "@lerna/filter-options" "6.0.3" - "@lerna/listable" "6.0.3" - "@lerna/output" "6.0.3" + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.5.2" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" -"@lerna/listable@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/listable/-/listable-6.0.3.tgz#9460d5efce0850985a9ade03b277184c22d744be" - integrity sha512-7EDzDMc22A/U4O1tCfLzb7MoFQVwwfv6E4F8JSilRupd7mp+2tMi7kvrwS5Dk5imNlHia4e5T0fVWXDUnIO2Sg== - dependencies: - "@lerna/query-graph" "6.0.3" - chalk "^4.1.0" - columnify "^1.6.0" +"@eslint/js@8.42.0": + version "8.42.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.42.0.tgz#484a1d638de2911e6f5a30c12f49c7e4a3270fb6" + integrity sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw== -"@lerna/log-packed@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/log-packed/-/log-packed-6.0.3.tgz#2bcd152613de9abb938e5acde0d62d9a7f1645da" - integrity sha512-MCGAaaywfs8Z0eeG4mhP1u1ma+ORO8c9gGgtpX0LkjJ9HlE23BkCznC8VrJSVTqChtU4tkVp/38hhwEzZmcPFA== - dependencies: - byte-size "^7.0.0" - columnify "^1.6.0" - has-unicode "^2.0.1" - npmlog "^6.0.2" +"@gar/promisify@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== -"@lerna/npm-conf@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/npm-conf/-/npm-conf-6.0.3.tgz#94f7c23fe19e5406913e08f160e244a89e309204" - integrity sha512-lX4nAJgScfDmmdPVM9rOO6AzwCY9UPjuNpY6ZpMYkg/FIr1dch5+MFjexpan4VL2KRBNMWUYpDk3U/e2V+7k/A== +"@google-cloud/paginator@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-5.0.0.tgz#b8cc62f151685095d11467402cbf417c41bf14e6" + integrity sha512-87aeg6QQcEPxGCOthnpUjvw4xAZ57G7pL8FS0C4e/81fr3FjkpUpibf1s2v5XGyGhUVGF4Jfg7yEcxqn2iUw1w== dependencies: - config-chain "^1.1.12" - pify "^5.0.0" + arrify "^2.0.0" + extend "^3.0.2" -"@lerna/npm-dist-tag@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/npm-dist-tag/-/npm-dist-tag-6.0.3.tgz#7dda3da557c1c9a729c2942de5eda26e83497dfa" - integrity sha512-wjbVPZQq1bdfikldEJ6TICikKhVh8gOWPsqR0iTj5iCDRUAiQM5HscrCApTIrB/hASyKV2xG60ruCpMG2Qo6AQ== - dependencies: - "@lerna/otplease" "6.0.3" - npm-package-arg "8.1.1" - npm-registry-fetch "^13.3.0" - npmlog "^6.0.2" +"@google-cloud/projectify@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@google-cloud/projectify/-/projectify-4.0.0.tgz#d600e0433daf51b88c1fa95ac7f02e38e80a07be" + integrity sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA== -"@lerna/npm-install@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-6.0.3.tgz#6ea619ddbbe2c995477209ebf8d21fd46dd87ff5" - integrity sha512-mBypvdtt1feL7L6f8++/tChn/5bM+KbYX06WXjW3yUT81o9geg6p7aaZoxfP6A8ff5XVsTFFL7j86MwPxTsTQQ== - dependencies: - "@lerna/child-process" "6.0.3" - "@lerna/get-npm-exec-opts" "6.0.3" - fs-extra "^9.1.0" - npm-package-arg "8.1.1" - npmlog "^6.0.2" - signal-exit "^3.0.3" - write-pkg "^4.0.0" +"@google-cloud/promisify@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-4.0.0.tgz#a906e533ebdd0f754dca2509933334ce58b8c8b1" + integrity sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g== + +"@google-cloud/storage@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@google-cloud/storage/-/storage-7.5.0.tgz#493c7f08120d2d4f9ee4f967e404046316c88794" + integrity sha512-IKrep5++7tOacx7QsrucGkhlKEk3Lb68bj0rCLOK+CUCM4pXKJQsOkIKfvCmMnpbPfx8x4wa52yJtNeP7/MMSQ== + dependencies: + "@google-cloud/paginator" "^5.0.0" + "@google-cloud/projectify" "^4.0.0" + "@google-cloud/promisify" "^4.0.0" + abort-controller "^3.0.0" + async-retry "^1.3.3" + compressible "^2.0.12" + duplexify "^4.0.0" + ent "^2.2.0" + fast-xml-parser "^4.3.0" + gaxios "^6.0.2" + google-auth-library "^9.0.0" + mime "^3.0.0" + mime-types "^2.0.8" + p-limit "^3.0.1" + retry-request "^7.0.0" + teeny-request "^9.0.0" + uuid "^8.0.0" -"@lerna/npm-publish@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-6.0.3.tgz#6c34b566c65fb6131a2bf91e518b58be65ffda41" - integrity sha512-RpjnUy7wWIWu7DJB2NQJ8rNgKz+yPoIXpzYOktIjb7gUrL+Ks4KjfbrgGuYk2nWFUEAzJlsOSJ8ggAQUoNIL9Q== +"@humanwhocodes/config-array@^0.11.10": + version "0.11.10" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" + integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== dependencies: - "@lerna/otplease" "6.0.3" - "@lerna/run-lifecycle" "6.0.3" - fs-extra "^9.1.0" - libnpmpublish "^6.0.4" - npm-package-arg "8.1.1" - npmlog "^6.0.2" - pify "^5.0.0" - read-package-json "^5.0.1" + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" -"@lerna/npm-run-script@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/npm-run-script/-/npm-run-script-6.0.3.tgz#5a2054d8c9317d5cfe7f2437ad835ae3e9efae03" - integrity sha512-+IEo8BYBdyEzgdqHCw3sr4ZxAM9g7SoSdo+oskXyrwD8zScH+OadAZz+DukCad8kXlaSPWSNEc42biP2o611Ew== +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== dependencies: - "@lerna/child-process" "6.0.3" - "@lerna/get-npm-exec-opts" "6.0.3" - npmlog "^6.0.2" + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" -"@lerna/otplease@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/otplease/-/otplease-6.0.3.tgz#0523f396c83b4f2c3141824569b5827903489808" - integrity sha512-bNQn6IRrMJ8D6yF9v52KHiWD/XDB7ZkN2ziQjPwwOBcbzoVrDRCar91HQK7ygudPgmyjQNQZOrZqGlSTrh/wqA== +"@humanwhocodes/config-array@^0.9.2": + version "0.9.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.3.tgz#f2564c744b387775b436418491f15fce6601f63e" + integrity sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ== dependencies: - "@lerna/prompt" "6.0.3" + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.4" -"@lerna/output@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/output/-/output-6.0.3.tgz#582f6785193f2bb3d4e059f5276bcc7bfd8e01b5" - integrity sha512-/x7Bv4MVRwBJM6UVbfUYE1wjTGNUEnpFCHNc15MCUU3VY9O/Y1ZYq7iZHkYGMT9BmNeMS64fHBkDEwoqoJn/vA== - dependencies: - npmlog "^6.0.2" +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@lerna/pack-directory@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/pack-directory/-/pack-directory-6.0.3.tgz#90b7e89420ffad96807b001455bee38ae04e449e" - integrity sha512-LVs/q6Dn1kXIxHA80e/Jo9AmAsesPs7TbBAxZ40lHXhJFvvFgx0r2bY+r3eV+77sziGmyKVBorgcbkEfFehfZw== - dependencies: - "@lerna/get-packed" "6.0.3" - "@lerna/package" "6.0.3" - "@lerna/run-lifecycle" "6.0.3" - "@lerna/temp-write" "6.0.3" - npm-packlist "^5.1.1" - npmlog "^6.0.2" - tar "^6.1.0" +"@humanwhocodes/object-schema@^1.2.0", "@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@lerna/package-graph@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-6.0.3.tgz#cc6452c9935569104ccf1ae600d48f325ca523b3" - integrity sha512-Xf4FxCpCFB2vSI+D/LR3k+ueSmam5Tx7LRbGiZnzdfXPvPqukZfcAXHLZbSzuJiv5NKVyG/VJjZk4SCogjrFTQ== - dependencies: - "@lerna/prerelease-id-from-version" "6.0.3" - "@lerna/validation-error" "6.0.3" - npm-package-arg "8.1.1" - npmlog "^6.0.2" - semver "^7.3.4" +"@hutson/parse-repository-url@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" + integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== -"@lerna/package@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/package/-/package-6.0.3.tgz#7211f7e3d1e1b4a22c666b9abd2ebb4edebc9cfa" - integrity sha512-UbaZSRT3lTmncmPCws0V6XcZhc0GLRm8LtspxyLeDjhyP0EabKAbaB3HVCelPn69CM81UtP8CLkTh+NpUNH2Aw== +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: - load-json-file "^6.2.0" - npm-package-arg "8.1.1" - write-pkg "^4.0.0" + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" -"@lerna/prerelease-id-from-version@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-6.0.3.tgz#17f50960fb7df1b3f8eb4e36b86c5917f1e0fab4" - integrity sha512-mgDo6L93mlcg7GDgWZfRGxHmR5xFPQSMQJZeyU/5VY6sCbTnwTDSpYOoce6m71E4v15iJ/G5EKIchq8yVUIBBw== - dependencies: - semver "^7.3.4" +"@isaacs/string-locale-compare@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" + integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== -"@lerna/profiler@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/profiler/-/profiler-6.0.3.tgz#cc9ba5ce9bd78fcc47ad105380877341cba17b3b" - integrity sha512-tkFZEAALPtPOzcEZlH554SHH4rMORmpWH45mF3Py3mpy+HpQXLZmYlxot+wr3jPXkXQzwaIgDe0DMYJhhC8T9A== +"@jest/schemas@^29.4.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== dependencies: - fs-extra "^9.1.0" - npmlog "^6.0.2" - upath "^2.0.1" + "@sinclair/typebox" "^0.27.8" -"@lerna/project@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/project/-/project-6.0.3.tgz#40f59c9c0063b1098c3af85d2b8a7aa9e321a4ff" - integrity sha512-YBSWZRnRlwAwDuLKx7M7f1HyiqDY/dH+eMadHgasWgFJ5yHhtkwMCZTNgHvMAXTdN6iGb/A6mkPAN5zWhcDYBw== +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== dependencies: - "@lerna/package" "6.0.3" - "@lerna/validation-error" "6.0.3" - cosmiconfig "^7.0.0" - dedent "^0.7.0" - dot-prop "^6.0.1" - glob-parent "^5.1.1" - globby "^11.0.2" - js-yaml "^4.1.0" - load-json-file "^6.2.0" - npmlog "^6.0.2" - p-map "^4.0.0" - resolve-from "^5.0.0" - write-json-file "^4.3.0" + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" -"@lerna/prompt@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/prompt/-/prompt-6.0.3.tgz#251ad1c80a15dbdfca0153cf02044ec455e471a4" - integrity sha512-M/3poJp9Nqr2xJ2nB9gE6qsCwxJqvVyEnM5mMPUzRpfCvAtVa6Rhx/x60I20GSogb8/J9Zapav3MNoX2rdv2UQ== - dependencies: - inquirer "^8.2.4" - npmlog "^6.0.2" +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@lerna/publish@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-6.0.3.tgz#029b30d6bb877102beca153d81e305939bfcf859" - integrity sha512-Vv9aDQEQv+5NRfaIpZpBqXcgfXkb18kpIUqBI4bAnqC/t168Gn/UzOxxjVkl5wuAKJ2sj8tDoZTEIb/DVoV53Q== - dependencies: - "@lerna/check-working-tree" "6.0.3" - "@lerna/child-process" "6.0.3" - "@lerna/collect-updates" "6.0.3" - "@lerna/command" "6.0.3" - "@lerna/describe-ref" "6.0.3" - "@lerna/log-packed" "6.0.3" - "@lerna/npm-conf" "6.0.3" - "@lerna/npm-dist-tag" "6.0.3" - "@lerna/npm-publish" "6.0.3" - "@lerna/otplease" "6.0.3" - "@lerna/output" "6.0.3" - "@lerna/pack-directory" "6.0.3" - "@lerna/prerelease-id-from-version" "6.0.3" - "@lerna/prompt" "6.0.3" - "@lerna/pulse-till-done" "6.0.3" - "@lerna/run-lifecycle" "6.0.3" - "@lerna/run-topologically" "6.0.3" - "@lerna/validation-error" "6.0.3" - "@lerna/version" "6.0.3" - fs-extra "^9.1.0" - libnpmaccess "^6.0.3" - npm-package-arg "8.1.1" - npm-registry-fetch "^13.3.0" - npmlog "^6.0.2" - p-map "^4.0.0" - p-pipe "^3.1.0" - pacote "^13.6.1" - semver "^7.3.4" +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== -"@lerna/pulse-till-done@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/pulse-till-done/-/pulse-till-done-6.0.3.tgz#d3ec687799023b8baccc6af003cce738a114ea9c" - integrity sha512-/HjvHtaDCr0qJuhJT6PuwoHFvPsZMB7f/GnEYGIzS0+ovwOTrbULD6ESo2lWcsFnxJ3tWv2OPIKEiHkJ0y1PCg== - dependencies: - npmlog "^6.0.2" +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@lerna/query-graph@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/query-graph/-/query-graph-6.0.3.tgz#302498ac354cb7a58f5447822d8524582fd0143f" - integrity sha512-Se3G4ZIckjleki/BWUEInITfLTuNIYkqeStq50KEz74xhQ9jQs7ZLAOWc/Qxn3EPngCTLe8WqhLVeHFOfxgjvw== +"@jridgewell/source-map@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" + integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== dependencies: - "@lerna/package-graph" "6.0.3" + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" -"@lerna/resolve-symlink@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/resolve-symlink/-/resolve-symlink-6.0.3.tgz#9dd4b2903e4a0bb11b000fb220efd11ce5909f28" - integrity sha512-9HkEl7kMQ4sZ3/+FEOhBt2rYoQP2cXQlhV7TNIej6SGaR0VtKe98ciM9bQAdkc/rOZtyZLc2cFBoUd10NEjzoA== +"@jridgewell/source-map@^0.3.3": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" + integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== dependencies: - fs-extra "^9.1.0" - npmlog "^6.0.2" - read-cmd-shim "^3.0.0" + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" -"@lerna/rimraf-dir@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/rimraf-dir/-/rimraf-dir-6.0.3.tgz#be12f791a7cf1d455d25ae0cdc70d45767ee343f" - integrity sha512-jyC/PVL3rqC83l5Wphog8pSOmDbe5CIAHn9TeHvV8f/zdJnNE3zKXWTNjvyLgB1aPneQ4i2V+3BgdfpeDVAtHQ== - dependencies: - "@lerna/child-process" "6.0.3" - npmlog "^6.0.2" - path-exists "^4.0.0" - rimraf "^3.0.2" +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@lerna/run-lifecycle@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/run-lifecycle/-/run-lifecycle-6.0.3.tgz#84dad555d56c3aa668e1cbdf2a5b98f8baabcc64" - integrity sha512-qnFOyp9de81FA2HSBuXtW7LSklF+T6WtFkYH9q3kOJY/EghZlgzFmQYFHgJ/xVYxNu75QDuv6fsfJu4EtrR7ag== - dependencies: - "@lerna/npm-conf" "6.0.3" - "@npmcli/run-script" "^4.1.7" - npmlog "^6.0.2" - p-queue "^6.6.2" +"@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@lerna/run-topologically@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/run-topologically/-/run-topologically-6.0.3.tgz#37d7ec11bafeb9be3f93a56a012444fec5982efc" - integrity sha512-nN0kcOO1TzWlxg5byM1V12tm4+lvchbawc1mNje1KsujdzE4gSwD84ub4SFRNkUUBmsPvTGysorhtXckQfqQWw== +"@jridgewell/trace-mapping@^0.3.0": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" + integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== dependencies: - "@lerna/query-graph" "6.0.3" - p-queue "^6.6.2" + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" -"@lerna/run@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/run/-/run-6.0.3.tgz#604c49708a348c72683c6cf1575d2e9b7ff9e07b" - integrity sha512-eiMF/Pfld/ngH+Emkwyxqf40WWEK6bQE2KhRtu0xyuSIFycFlZJursd72ylTnvZAX3Qx4P4drdHaFnfWyuglcw== - dependencies: - "@lerna/command" "6.0.3" - "@lerna/filter-options" "6.0.3" - "@lerna/npm-run-script" "6.0.3" - "@lerna/output" "6.0.3" - "@lerna/profiler" "6.0.3" - "@lerna/run-topologically" "6.0.3" - "@lerna/timer" "6.0.3" - "@lerna/validation-error" "6.0.3" - fs-extra "^9.1.0" - p-map "^4.0.0" +"@jridgewell/trace-mapping@^0.3.17": + version "0.3.19" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" + integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" -"@lerna/symlink-binary@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/symlink-binary/-/symlink-binary-6.0.3.tgz#5f40b6e8e9f2230adefd87165c3e81420d25be25" - integrity sha512-bRrPPuZoYvEDc8eTGwhTLQwRmtjYfD/hBVElqhfAlUTPcuA36VrQwBkmhGAUKcIDmEHTVk6IHNiFb/JwuiOSYA== +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.14" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" + integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== dependencies: - "@lerna/create-symlink" "6.0.3" - "@lerna/package" "6.0.3" - fs-extra "^9.1.0" - p-map "^4.0.0" + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" -"@lerna/symlink-dependencies@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/symlink-dependencies/-/symlink-dependencies-6.0.3.tgz#552cd9a4dc81ad925d583c392022ae9321c065d0" - integrity sha512-4DmKLZkJ9oyQ8DXdXCMT6fns6w6G/7h9D2pXGNOYa/IFtjb4mKDMBfJ61XhmvTlxrEzjEc9CnqMeO7BQBXWt8A== +"@knodes/typedoc-plugin-monorepo-readmes@0.22.5": + version "0.22.5" + resolved "https://registry.yarnpkg.com/@knodes/typedoc-plugin-monorepo-readmes/-/typedoc-plugin-monorepo-readmes-0.22.5.tgz#aae62c85ef5bd0040edf9939facafafce6c697af" + integrity sha512-SJcMSTbCXu3VUrmwaQvebQW0oyLLRqLQDQltRS0QR7RJ64NV0xYaCmFC4jFjAoAX6hXvlmdP9T0cLALNAYhV2Q== dependencies: - "@lerna/create-symlink" "6.0.3" - "@lerna/resolve-symlink" "6.0.3" - "@lerna/symlink-binary" "6.0.3" - fs-extra "^9.1.0" - p-map "^4.0.0" - p-map-series "^2.1.0" + "@knodes/typedoc-pluginutils" "~0.22.5" + find-up "^4.1.0" -"@lerna/temp-write@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/temp-write/-/temp-write-6.0.3.tgz#b08e329ca122a24f4f9687f1f928b2022724baf5" - integrity sha512-ws+EHk7Bp4hR6liusGk8K+ybnh9iOSkCnHD6d+avwa2lMYtX28v93kle/Y5JbTghjumgDUF9/C+EQg51zIVQmw== +"@knodes/typedoc-pluginutils@~0.22.5": + version "0.22.7" + resolved "https://registry.yarnpkg.com/@knodes/typedoc-pluginutils/-/typedoc-pluginutils-0.22.7.tgz#a158d46f09909a95d7d71b97008ddc90ec5aa777" + integrity sha512-VAxpQNfyghintegU9Ky3vJLKQBSFXRP3rs6JclHpJloGKKAAGV6WweCDrFvFzZ4a08LkXSpqIMLmmuFjKLELOg== dependencies: - graceful-fs "^4.1.15" - is-stream "^2.0.0" - make-dir "^3.0.0" - temp-dir "^1.0.0" - uuid "^8.3.2" + lodash "^4.17.21" + pkg-up "^3.1.0" + semver "^7.3.5" -"@lerna/timer@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/timer/-/timer-6.0.3.tgz#73bb3e301c76c8fabcb35831b1d398f272287f5a" - integrity sha512-Ywfu3cGi0pV9vN4ki8oTu+qdJArMwrW3MiXL3/2fospKRdGL7sGCuXlS9Byd+aduMvmMwKbnX0EW+6R7Np+qSg== +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" + integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@lerna/validation-error@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/validation-error/-/validation-error-6.0.3.tgz#9e0cc7fdb2117f82db9a73eaf287f6b46521f2c9" - integrity sha512-cWYKMFne/euWnW4w7ry+RvDkj8iVNYMrbRF86Px/609GXFOoOwEROJyvTlRp1BgCmC2/3KzidyBletN/R3JHEA== +"@lerna/child-process@6.6.2": + version "6.6.2" + resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-6.6.2.tgz#5d803c8dee81a4e013dc428292e77b365cba876c" + integrity sha512-QyKIWEnKQFnYu2ey+SAAm1A5xjzJLJJj3bhIZd3QKyXKKjaJ0hlxam/OsWSltxTNbcyH1jRJjC6Cxv31usv0Ag== dependencies: - npmlog "^6.0.2" - -"@lerna/version@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/version/-/version-6.0.3.tgz#de44ecf9598e77e22b5088bd3a62b76a87bcf683" - integrity sha512-ssQhsK51IBMabB+RpQPIRn93iozwMRpvfh2vVIVdTs76j8r/1ljIs3gLXPDzLo9RbyLcou+VKi3c/7coCAwsdw== - dependencies: - "@lerna/check-working-tree" "6.0.3" - "@lerna/child-process" "6.0.3" - "@lerna/collect-updates" "6.0.3" - "@lerna/command" "6.0.3" - "@lerna/conventional-commits" "6.0.3" - "@lerna/github-client" "6.0.3" - "@lerna/gitlab-client" "6.0.3" - "@lerna/output" "6.0.3" - "@lerna/prerelease-id-from-version" "6.0.3" - "@lerna/prompt" "6.0.3" - "@lerna/run-lifecycle" "6.0.3" - "@lerna/run-topologically" "6.0.3" - "@lerna/temp-write" "6.0.3" - "@lerna/validation-error" "6.0.3" - "@nrwl/devkit" ">=14.8.6 < 16" chalk "^4.1.0" + execa "^5.0.0" + strong-log-transformer "^2.1.0" + +"@lerna/create@6.6.2": + version "6.6.2" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-6.6.2.tgz#39a36d80cddb355340c297ed785aa76f4498177f" + integrity sha512-xQ+1Y7D+9etvUlE+unhG/TwmM6XBzGIdFBaNoW8D8kyOa9M2Jf3vdEtAxVa7mhRz66CENfhL/+I/QkVaa7pwbQ== + dependencies: + "@lerna/child-process" "6.6.2" dedent "^0.7.0" - load-json-file "^6.2.0" - minimatch "^3.0.4" - npmlog "^6.0.2" - p-map "^4.0.0" - p-pipe "^3.1.0" + fs-extra "^9.1.0" + init-package-json "^3.0.2" + npm-package-arg "8.1.1" p-reduce "^2.1.0" - p-waterfall "^2.1.1" + pacote "15.1.1" + pify "^5.0.0" semver "^7.3.4" slash "^3.0.0" - write-json-file "^4.3.0" + validate-npm-package-license "^3.0.4" + validate-npm-package-name "^4.0.0" + yargs-parser "20.2.4" -"@lerna/write-log-file@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@lerna/write-log-file/-/write-log-file-6.0.3.tgz#21f4c2fcf6a41a3420c46a571dd52fb5c8a64242" - integrity sha512-xZFC9IgGkvuv1MUIC7EKD5ltlljgLlz7isbfQ2QHAqOmGJG6jPqa0Yo38pGe8wEDtGSVgtlUGkx7iHK22MawEA== - dependencies: - npmlog "^6.0.2" - write-file-atomic "^4.0.1" +"@lerna/legacy-package-management@6.6.2": + version "6.6.2" + resolved "https://registry.yarnpkg.com/@lerna/legacy-package-management/-/legacy-package-management-6.6.2.tgz#411c395e72e563ab98f255df77e4068627a85bb0" + integrity sha512-0hZxUPKnHwehUO2xC4ldtdX9bW0W1UosxebDIQlZL2STnZnA2IFmIk2lJVUyFW+cmTPQzV93jfS0i69T9Z+teg== + dependencies: + "@npmcli/arborist" "6.2.3" + "@npmcli/run-script" "4.1.7" + "@nrwl/devkit" ">=15.5.2 < 16" + "@octokit/rest" "19.0.3" + byte-size "7.0.0" + chalk "4.1.0" + clone-deep "4.0.1" + cmd-shim "5.0.0" + columnify "1.6.0" + config-chain "1.1.12" + conventional-changelog-core "4.2.4" + conventional-recommended-bump "6.1.0" + cosmiconfig "7.0.0" + dedent "0.7.0" + dot-prop "6.0.1" + execa "5.0.0" + file-url "3.0.0" + find-up "5.0.0" + fs-extra "9.1.0" + get-port "5.1.1" + get-stream "6.0.0" + git-url-parse "13.1.0" + glob-parent "5.1.2" + globby "11.1.0" + graceful-fs "4.2.10" + has-unicode "2.0.1" + inquirer "8.2.4" + is-ci "2.0.0" + is-stream "2.0.0" + libnpmpublish "7.1.4" + load-json-file "6.2.0" + make-dir "3.1.0" + minimatch "3.0.5" + multimatch "5.0.0" + node-fetch "2.6.7" + npm-package-arg "8.1.1" + npm-packlist "5.1.1" + npm-registry-fetch "14.0.3" + npmlog "6.0.2" + p-map "4.0.0" + p-map-series "2.1.0" + p-queue "6.6.2" + p-waterfall "2.1.1" + pacote "15.1.1" + pify "5.0.0" + pretty-format "29.4.3" + read-cmd-shim "3.0.0" + read-package-json "5.0.1" + resolve-from "5.0.0" + semver "7.3.8" + signal-exit "3.0.7" + slash "3.0.0" + ssri "9.0.1" + strong-log-transformer "2.1.0" + tar "6.1.11" + temp-dir "1.0.0" + tempy "1.0.0" + upath "2.0.1" + uuid "8.3.2" + write-file-atomic "4.0.1" + write-pkg "4.0.0" + yargs "16.2.0" "@malept/cross-spawn-promise@^1.0.0", "@malept/cross-spawn-promise@^1.1.0": version "1.1.1" @@ -2354,44 +1733,43 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@npmcli/arborist@5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-5.3.0.tgz#321d9424677bfc08569e98a5ac445ee781f32053" - integrity sha512-+rZ9zgL1lnbl8Xbb1NQdMjveOMwj4lIYfcDtyJHHi5x4X8jtR6m8SXooJMZy5vmFVZ8w7A2Bnd/oX9eTuU8w5A== +"@npmcli/arborist@6.2.3": + version "6.2.3" + resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-6.2.3.tgz#31f8aed2588341864d3811151d929c01308f8e71" + integrity sha512-lpGOC2ilSJXcc2zfW9QtukcCTcMbl3fVI0z4wvFB2AFIl0C+Q6Wv7ccrpdrQa8rvJ1ZVuc6qkX7HVTyKlzGqKA== dependencies: "@isaacs/string-locale-compare" "^1.1.0" - "@npmcli/installed-package-contents" "^1.0.7" - "@npmcli/map-workspaces" "^2.0.3" - "@npmcli/metavuln-calculator" "^3.0.1" - "@npmcli/move-file" "^2.0.0" - "@npmcli/name-from-folder" "^1.0.1" - "@npmcli/node-gyp" "^2.0.0" - "@npmcli/package-json" "^2.0.0" - "@npmcli/run-script" "^4.1.3" - bin-links "^3.0.0" - cacache "^16.0.6" + "@npmcli/fs" "^3.1.0" + "@npmcli/installed-package-contents" "^2.0.0" + "@npmcli/map-workspaces" "^3.0.2" + "@npmcli/metavuln-calculator" "^5.0.0" + "@npmcli/name-from-folder" "^2.0.0" + "@npmcli/node-gyp" "^3.0.0" + "@npmcli/package-json" "^3.0.0" + "@npmcli/query" "^3.0.0" + "@npmcli/run-script" "^6.0.0" + bin-links "^4.0.1" + cacache "^17.0.4" common-ancestor-path "^1.0.1" - json-parse-even-better-errors "^2.3.1" + hosted-git-info "^6.1.1" + json-parse-even-better-errors "^3.0.0" json-stringify-nice "^1.1.4" - mkdirp "^1.0.4" - mkdirp-infer-owner "^2.0.0" - nopt "^5.0.0" - npm-install-checks "^5.0.0" - npm-package-arg "^9.0.0" - npm-pick-manifest "^7.0.0" - npm-registry-fetch "^13.0.0" - npmlog "^6.0.2" - pacote "^13.6.1" - parse-conflict-json "^2.0.1" - proc-log "^2.0.0" + minimatch "^6.1.6" + nopt "^7.0.0" + npm-install-checks "^6.0.0" + npm-package-arg "^10.1.0" + npm-pick-manifest "^8.0.1" + npm-registry-fetch "^14.0.3" + npmlog "^7.0.1" + pacote "^15.0.8" + parse-conflict-json "^3.0.0" + proc-log "^3.0.0" promise-all-reject-late "^1.0.0" promise-call-limit "^1.0.1" - read-package-json-fast "^2.0.2" - readdir-scoped-modules "^1.1.0" - rimraf "^3.0.2" + read-package-json-fast "^3.0.2" semver "^7.3.7" - ssri "^9.0.0" - treeverse "^2.0.0" + ssri "^10.0.1" + treeverse "^3.0.0" walk-up-path "^1.0.0" "@npmcli/fs@^2.1.0": @@ -2402,47 +1780,53 @@ "@gar/promisify" "^1.1.3" semver "^7.3.5" -"@npmcli/git@^3.0.0": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-3.0.2.tgz#5c5de6b4d70474cf2d09af149ce42e4e1dacb931" - integrity sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w== +"@npmcli/fs@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e" + integrity sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w== dependencies: - "@npmcli/promise-spawn" "^3.0.0" + semver "^7.3.5" + +"@npmcli/git@^4.0.0", "@npmcli/git@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-4.1.0.tgz#ab0ad3fd82bc4d8c1351b6c62f0fa56e8fe6afa6" + integrity sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ== + dependencies: + "@npmcli/promise-spawn" "^6.0.0" lru-cache "^7.4.4" - mkdirp "^1.0.4" - npm-pick-manifest "^7.0.0" - proc-log "^2.0.0" + npm-pick-manifest "^8.0.0" + proc-log "^3.0.0" promise-inflight "^1.0.1" promise-retry "^2.0.1" semver "^7.3.5" - which "^2.0.2" + which "^3.0.0" -"@npmcli/installed-package-contents@^1.0.7": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz#ab7408c6147911b970a8abe261ce512232a3f4fa" - integrity sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw== +"@npmcli/installed-package-contents@^2.0.0", "@npmcli/installed-package-contents@^2.0.1": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz#bfd817eccd9e8df200919e73f57f9e3d9e4f9e33" + integrity sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ== dependencies: - npm-bundled "^1.1.1" - npm-normalize-package-bin "^1.0.1" + npm-bundled "^3.0.0" + npm-normalize-package-bin "^3.0.0" -"@npmcli/map-workspaces@^2.0.3": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz#9e5e8ab655215a262aefabf139782b894e0504fc" - integrity sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg== +"@npmcli/map-workspaces@^3.0.2": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-3.0.4.tgz#15ad7d854292e484f7ba04bc30187a8320dba799" + integrity sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg== dependencies: - "@npmcli/name-from-folder" "^1.0.1" - glob "^8.0.1" - minimatch "^5.0.1" - read-package-json-fast "^2.0.3" + "@npmcli/name-from-folder" "^2.0.0" + glob "^10.2.2" + minimatch "^9.0.0" + read-package-json-fast "^3.0.0" -"@npmcli/metavuln-calculator@^3.0.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-3.1.1.tgz#9359bd72b400f8353f6a28a25c8457b562602622" - integrity sha512-n69ygIaqAedecLeVH3KnO39M6ZHiJ2dEv5A7DGvcqCB8q17BGUgW8QaanIkbWUo2aYGZqJaOORTLAlIvKjNDKA== +"@npmcli/metavuln-calculator@^5.0.0": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-5.0.1.tgz#426b3e524c2008bcc82dbc2ef390aefedd643d76" + integrity sha512-qb8Q9wIIlEPj3WeA1Lba91R4ZboPL0uspzV0F9uwP+9AYMVB2zOoa7Pbk12g6D2NHAinSbHh6QYmGuRyHZ874Q== dependencies: - cacache "^16.0.0" - json-parse-even-better-errors "^2.3.1" - pacote "^13.0.3" + cacache "^17.0.0" + json-parse-even-better-errors "^3.0.0" + pacote "^15.0.0" semver "^7.3.5" "@npmcli/move-file@^2.0.0": @@ -2453,22 +1837,32 @@ mkdirp "^1.0.4" rimraf "^3.0.2" -"@npmcli/name-from-folder@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz#77ecd0a4fcb772ba6fe927e2e2e155fbec2e6b1a" - integrity sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA== +"@npmcli/name-from-folder@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz#c44d3a7c6d5c184bb6036f4d5995eee298945815" + integrity sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg== "@npmcli/node-gyp@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz#8c20e53e34e9078d18815c1d2dda6f2420d75e35" integrity sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A== -"@npmcli/package-json@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-2.0.0.tgz#3bbcf4677e21055adbe673d9f08c9f9cde942e4a" - integrity sha512-42jnZ6yl16GzjWSH7vtrmWyJDGVa/LXPdpN2rcUWolFjc9ON2N3uz0qdBbQACfmhuJZ2lbKYtmK5qx68ZPLHMA== +"@npmcli/node-gyp@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz#101b2d0490ef1aa20ed460e4c0813f0db560545a" + integrity sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA== + +"@npmcli/package-json@^3.0.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-3.1.1.tgz#5628332aac90fa1b4d6f98e03988c5958b35e0c5" + integrity sha512-+UW0UWOYFKCkvszLoTwrYGrjNrT8tI5Ckeb/h+Z1y1fsNJEctl7HmerA5j2FgmoqFaLI2gsA1X9KgMFqx/bRmA== dependencies: - json-parse-even-better-errors "^2.3.1" + "@npmcli/git" "^4.1.0" + glob "^10.2.2" + json-parse-even-better-errors "^3.0.0" + normalize-package-data "^5.0.0" + npm-normalize-package-bin "^3.0.1" + proc-log "^3.0.0" "@npmcli/promise-spawn@^3.0.0": version "3.0.0" @@ -2477,10 +1871,24 @@ dependencies: infer-owner "^1.0.4" -"@npmcli/run-script@^4.1.0", "@npmcli/run-script@^4.1.3", "@npmcli/run-script@^4.1.7": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-4.2.1.tgz#c07c5c71bc1c70a5f2a06b0d4da976641609b946" - integrity sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg== +"@npmcli/promise-spawn@^6.0.0", "@npmcli/promise-spawn@^6.0.1": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz#c8bc4fa2bd0f01cb979d8798ba038f314cfa70f2" + integrity sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg== + dependencies: + which "^3.0.0" + +"@npmcli/query@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-3.0.1.tgz#77d63ceb7d27ed748da3cc8b50d45fc341448ed6" + integrity sha512-0jE8iHBogf/+bFDj+ju6/UMLbJ39c8h6nSe6qile+dB7PJ0iV3gNqcb2vtt6WWCBrxv9uAjzUT/8vroluulidA== + dependencies: + postcss-selector-parser "^6.0.10" + +"@npmcli/run-script@4.1.7": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-4.1.7.tgz#b1a2f57568eb738e45e9ea3123fb054b400a86f7" + integrity sha512-WXr/MyM4tpKA4BotB81NccGAv8B48lNH0gRoILucbcAhTQXLCoi6HflMV3KdXubIqvP9SuLsFn68Z7r4jl+ppw== dependencies: "@npmcli/node-gyp" "^2.0.0" "@npmcli/promise-spawn" "^3.0.0" @@ -2488,30 +1896,86 @@ read-package-json-fast "^2.0.3" which "^2.0.2" -"@nrwl/cli@15.0.13": - version "15.0.13" - resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-15.0.13.tgz#25b632e68464f9673e936a31b3bb2b3e6de87ebf" - integrity sha512-w0oOP4v176CbD34+VytiAItIH3fOeiaccq7T2Un/hhx+/Q9mdO/VWyYZOKmp85uGodx/yZ6LyGW6rX0BjM0Rsg== +"@npmcli/run-script@^6.0.0": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-6.0.2.tgz#a25452d45ee7f7fb8c16dfaf9624423c0c0eb885" + integrity sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA== + dependencies: + "@npmcli/node-gyp" "^3.0.0" + "@npmcli/promise-spawn" "^6.0.0" + node-gyp "^9.0.0" + read-package-json-fast "^3.0.0" + which "^3.0.0" + +"@nrwl/cli@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-15.9.7.tgz#1db113f5cb1cfe63213097be1ece041eef33da1f" + integrity sha512-1jtHBDuJzA57My5nLzYiM372mJW0NY6rFKxlWt5a0RLsAZdPTHsd8lE3Gs9XinGC1jhXbruWmhhnKyYtZvX/zA== dependencies: - nx "15.0.13" + nx "15.9.7" -"@nrwl/devkit@>=14.8.6 < 16": - version "15.0.13" - resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-15.0.13.tgz#3943e6967cf93cb3115b04a4dc48494a5453e645" - integrity sha512-/8k7wbBRFf2UC+T4F+vWMy3bfSGi+uK6RwXk53moLq3nxehXaQhRiCqasC6VJFUw3zK6luu2T7xkPUlA9K9l4w== +"@nrwl/devkit@>=15.5.2 < 16": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-15.9.7.tgz#14d19ec82ff4209c12147a97f1cdea05d8f6c087" + integrity sha512-Sb7Am2TMT8AVq8e+vxOlk3AtOA2M0qCmhBzoM1OJbdHaPKc0g0UgSnWRml1kPGg5qfPk72tWclLoZJ5/ut0vTg== dependencies: - "@phenomnomnominal/tsquery" "4.1.1" ejs "^3.1.7" ignore "^5.0.4" - semver "7.3.4" + semver "7.5.4" + tmp "~0.2.1" tslib "^2.3.0" -"@nrwl/tao@15.0.13": - version "15.0.13" - resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-15.0.13.tgz#41120d7582d5bc2136c9d152b4c10aa3dce60f37" - integrity sha512-z55RKnVOYsiABKFUIj+QBf6I4fUwTlObxJpgUJp0i3E97P3BgbzhTG1EhuBxLH8fGKrbOAPs0ct38Asl+zGZfQ== - dependencies: - nx "15.0.13" +"@nrwl/nx-darwin-arm64@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-darwin-arm64/-/nx-darwin-arm64-15.9.7.tgz#a2cb7390c782b8acf3bb8806a3002620226a933d" + integrity sha512-aBUgnhlkrgC0vu0fK6eb9Vob7eFnkuknrK+YzTjmLrrZwj7FGNAeyGXSlyo1dVokIzjVKjJg2saZZ0WQbfuCJw== + +"@nrwl/nx-darwin-x64@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-darwin-x64/-/nx-darwin-x64-15.9.7.tgz#af0437e726aeb97eb660646bfd9a7da5ba7a0a6f" + integrity sha512-L+elVa34jhGf1cmn38Z0sotQatmLovxoASCIw5r1CBZZeJ5Tg7Y9nOwjRiDixZxNN56hPKXm6xl9EKlVHVeKlg== + +"@nrwl/nx-linux-arm-gnueabihf@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-15.9.7.tgz#e29f4d31afa903bfb4d0fd7421e19be1086eae87" + integrity sha512-pqmfqqEUGFu6PmmHKyXyUw1Al0Ki8PSaR0+ndgCAb1qrekVDGDfznJfaqxN0JSLeolPD6+PFtLyXNr9ZyPFlFg== + +"@nrwl/nx-linux-arm64-gnu@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-15.9.7.tgz#eb2880a24d3268dd93583d21a6a0b9ff96bb23b4" + integrity sha512-NYOa/eRrqmM+In5g3M0rrPVIS9Z+q6fvwXJYf/KrjOHqqan/KL+2TOfroA30UhcBrwghZvib7O++7gZ2hzwOnA== + +"@nrwl/nx-linux-arm64-musl@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm64-musl/-/nx-linux-arm64-musl-15.9.7.tgz#5d04913c4672a96cefa78491824620d8a8bcfd7f" + integrity sha512-zyStqjEcmbvLbejdTOrLUSEdhnxNtdQXlmOuymznCzYUEGRv+4f7OAepD3yRoR0a/57SSORZmmGQB7XHZoYZJA== + +"@nrwl/nx-linux-x64-gnu@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-x64-gnu/-/nx-linux-x64-gnu-15.9.7.tgz#cf7f61fd87f35a793e6824952a6eb12242fe43fd" + integrity sha512-saNK5i2A8pKO3Il+Ejk/KStTApUpWgCxjeUz9G+T8A+QHeDloZYH2c7pU/P3jA9QoNeKwjVO9wYQllPL9loeVg== + +"@nrwl/nx-linux-x64-musl@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-x64-musl/-/nx-linux-x64-musl-15.9.7.tgz#2bec23c3696780540eb47fa1358dda780c84697f" + integrity sha512-extIUThYN94m4Vj4iZggt6hhMZWQSukBCo8pp91JHnDcryBg7SnYmnikwtY1ZAFyyRiNFBLCKNIDFGkKkSrZ9Q== + +"@nrwl/nx-win32-arm64-msvc@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-15.9.7.tgz#21b56ef3ab4190370effea71bd83fdc3e47ec69c" + integrity sha512-GSQ54hJ5AAnKZb4KP4cmBnJ1oC4ILxnrG1mekxeM65c1RtWg9NpBwZ8E0gU3xNrTv8ZNsBeKi/9UhXBxhsIh8A== + +"@nrwl/nx-win32-x64-msvc@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-win32-x64-msvc/-/nx-win32-x64-msvc-15.9.7.tgz#1677ab1dcce921706b5677dc2844e3e0027f8bd5" + integrity sha512-x6URof79RPd8AlapVbPefUD3ynJZpmah3tYaYZ9xZRMXojVtEHV8Qh5vysKXQ1rNYJiiB8Ah6evSKWLbAH60tw== + +"@nrwl/tao@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-15.9.7.tgz#c0e78c99caa6742762f7558f20d8524bc9015e97" + integrity sha512-OBnHNvQf3vBH0qh9YnvBQQWyyFZ+PWguF6dJ8+1vyQYlrLVk/XZ8nJ4ukWFb+QfPv/O8VBmqaofaOI9aFC4yTw== + dependencies: + nx "15.9.7" "@octokit/auth-token@^2.4.4": version "2.5.0" @@ -2540,16 +2004,16 @@ before-after-hook "^2.2.0" universal-user-agent "^6.0.0" -"@octokit/core@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.1.0.tgz#b6b03a478f1716de92b3f4ec4fd64d05ba5a9251" - integrity sha512-Czz/59VefU+kKDy+ZfDwtOIYIkFjExOKf+HA92aiTZJ6EfWpFzYQWw0l54ji8bVmyhc+mGaLUbSUmXazG7z5OQ== +"@octokit/core@^4.0.0": + version "4.2.4" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.2.4.tgz#d8769ec2b43ff37cc3ea89ec4681a20ba58ef907" + integrity sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ== dependencies: "@octokit/auth-token" "^3.0.0" "@octokit/graphql" "^5.0.0" "@octokit/request" "^6.0.0" "@octokit/request-error" "^3.0.0" - "@octokit/types" "^8.0.0" + "@octokit/types" "^9.0.0" before-after-hook "^2.2.0" universal-user-agent "^6.0.0" @@ -2594,12 +2058,22 @@ resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6" integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA== +"@octokit/openapi-types@^12.11.0": + version "12.11.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0" + integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== + "@octokit/openapi-types@^14.0.0": version "14.0.0" resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-14.0.0.tgz#949c5019028c93f189abbc2fb42f333290f7134a" integrity sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw== -"@octokit/plugin-enterprise-rest@^6.0.1": +"@octokit/openapi-types@^18.0.0": + version "18.1.1" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.1.1.tgz#09bdfdabfd8e16d16324326da5148010d765f009" + integrity sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw== + +"@octokit/plugin-enterprise-rest@6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== @@ -2611,12 +2085,12 @@ dependencies: "@octokit/types" "^6.34.0" -"@octokit/plugin-paginate-rest@^5.0.0": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-5.0.1.tgz#93d7e74f1f69d68ba554fa6b888c2a9cf1f99a83" - integrity sha512-7A+rEkS70pH36Z6JivSlR7Zqepz3KVucEFVDnSrgHXzG7WLAzYwcHZbKdfTXHwuTHbkT1vKvz7dHl1+HNf6Qyw== +"@octokit/plugin-paginate-rest@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-3.1.0.tgz#86f8be759ce2d6d7c879a31490fd2f7410b731f0" + integrity sha512-+cfc40pMzWcLkoDcLb1KXqjX0jTGYXjKuQdFQDc6UAknISJHnZTiBqld6HDwRJvD4DsouDKrWXNbNV0lE/3AXA== dependencies: - "@octokit/types" "^8.0.0" + "@octokit/types" "^6.41.0" "@octokit/plugin-request-log@^1.0.4": version "1.0.4" @@ -2631,12 +2105,12 @@ "@octokit/types" "^6.34.0" deprecation "^2.3.1" -"@octokit/plugin-rest-endpoint-methods@^6.7.0": - version "6.7.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.7.0.tgz#2f6f17f25b6babbc8b41d2bb0a95a8839672ce7c" - integrity sha512-orxQ0fAHA7IpYhG2flD2AygztPlGYNAdlzYz8yrD8NDgelPfOYoRPROfEyIe035PlxvbYrgkfUZIhSBKju/Cvw== +"@octokit/plugin-rest-endpoint-methods@^6.0.0": + version "6.8.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.8.1.tgz#97391fda88949eb15f68dc291957ccbe1d3e8ad1" + integrity sha512-QrlaTm8Lyc/TbU7BL/8bO49vp+RZ6W3McxxmmQTgYxf2sWkO8ZKuj4dLhPNJD6VCUW1hetCmeIM0m6FTVpDiEg== dependencies: - "@octokit/types" "^8.0.0" + "@octokit/types" "^8.1.1" deprecation "^2.3.1" "@octokit/plugin-retry@^3.0.9": @@ -2689,6 +2163,16 @@ node-fetch "^2.6.7" universal-user-agent "^6.0.0" +"@octokit/rest@19.0.3": + version "19.0.3" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.3.tgz#b9a4e8dc8d53e030d611c053153ee6045f080f02" + integrity sha512-5arkTsnnRT7/sbI4fqgSJ35KiFaN7zQm0uQiQtivNQLI8RQx8EHwJCajcTUwmaCMNDg7tdCvqAnc7uvHHPxrtQ== + dependencies: + "@octokit/core" "^4.0.0" + "@octokit/plugin-paginate-rest" "^3.0.0" + "@octokit/plugin-request-log" "^1.0.4" + "@octokit/plugin-rest-endpoint-methods" "^6.0.0" + "@octokit/rest@^18.0.11": version "18.12.0" resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" @@ -2699,16 +2183,6 @@ "@octokit/plugin-request-log" "^1.0.4" "@octokit/plugin-rest-endpoint-methods" "^5.12.0" -"@octokit/rest@^19.0.3": - version "19.0.5" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.5.tgz#4dbde8ae69b27dca04b5f1d8119d282575818f6c" - integrity sha512-+4qdrUFq2lk7Va+Qff3ofREQWGBeoTKNqlJO+FGjFP35ZahP+nBenhZiGdu8USSgmq4Ky3IJ/i4u0xbLqHaeow== - dependencies: - "@octokit/core" "^4.1.0" - "@octokit/plugin-paginate-rest" "^5.0.0" - "@octokit/plugin-request-log" "^1.0.4" - "@octokit/plugin-rest-endpoint-methods" "^6.7.0" - "@octokit/types@^6.0.3", "@octokit/types@^6.1.2", "@octokit/types@^6.16.1", "@octokit/types@^6.34.0": version "6.34.0" resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.34.0.tgz#c6021333334d1ecfb5d370a8798162ddf1ae8218" @@ -2716,6 +2190,13 @@ dependencies: "@octokit/openapi-types" "^11.2.0" +"@octokit/types@^6.41.0": + version "6.41.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04" + integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg== + dependencies: + "@octokit/openapi-types" "^12.11.0" + "@octokit/types@^8.0.0": version "8.0.0" resolved "https://registry.yarnpkg.com/@octokit/types/-/types-8.0.0.tgz#93f0b865786c4153f0f6924da067fe0bb7426a9f" @@ -2723,6 +2204,20 @@ dependencies: "@octokit/openapi-types" "^14.0.0" +"@octokit/types@^8.1.1": + version "8.2.1" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-8.2.1.tgz#a6de091ae68b5541f8d4fcf9a12e32836d4648aa" + integrity sha512-8oWMUji8be66q2B9PmEIUyQm00VPDPun07umUWSaCwxmeaquFBro4Hcc3ruVoDo3zkQyZBlRvhIMEYS3pBhanw== + dependencies: + "@octokit/openapi-types" "^14.0.0" + +"@octokit/types@^9.0.0": + version "9.3.2" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.3.2.tgz#3f5f89903b69f6a2d196d78ec35f888c0013cac5" + integrity sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA== + dependencies: + "@octokit/openapi-types" "^18.0.0" + "@parcel/watcher@2.0.4": version "2.0.4" resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.0.4.tgz#f300fef4cc38008ff4b8c29d92588eced3ce014b" @@ -2731,12 +2226,109 @@ node-addon-api "^3.2.1" node-gyp-build "^4.3.0" -"@phenomnomnominal/tsquery@4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@phenomnomnominal/tsquery/-/tsquery-4.1.1.tgz#42971b83590e9d853d024ddb04a18085a36518df" - integrity sha512-jjMmK1tnZbm1Jq5a7fBliM4gQwjxMU7TFoRNwIyzwlO+eHPRCFv/Nv+H/Gi1jc3WR7QURG8D5d0Tn12YGrUqBQ== +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@rollup/rollup-android-arm-eabi@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz#66b8d9cb2b3a474d115500f9ebaf43e2126fe496" + integrity sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg== + +"@rollup/rollup-android-arm64@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz#46327d5b86420d2307946bec1535fdf00356e47d" + integrity sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw== + +"@rollup/rollup-darwin-arm64@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz#166987224d2f8b1e2fd28ee90c447d52271d5e90" + integrity sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw== + +"@rollup/rollup-darwin-x64@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz#a2e6e096f74ccea6e2f174454c26aef6bcdd1274" + integrity sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog== + +"@rollup/rollup-linux-arm-gnueabihf@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz#09fcd4c55a2d6160c5865fec708a8e5287f30515" + integrity sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ== + +"@rollup/rollup-linux-arm64-gnu@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz#19a3c0b6315c747ca9acf86e9b710cc2440f83c9" + integrity sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ== + +"@rollup/rollup-linux-arm64-musl@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz#94aaf95fdaf2ad9335983a4552759f98e6b2e850" + integrity sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ== + +"@rollup/rollup-linux-riscv64-gnu@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz#160510e63f4b12618af4013bddf1761cf9fc9880" + integrity sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA== + +"@rollup/rollup-linux-x64-gnu@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz#5ac5d068ce0726bd0a96ca260d5bd93721c0cb98" + integrity sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw== + +"@rollup/rollup-linux-x64-musl@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz#bafa759ab43e8eab9edf242a8259ffb4f2a57a5d" + integrity sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ== + +"@rollup/rollup-win32-arm64-msvc@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz#1cc3416682e5a20d8f088f26657e6e47f8db468e" + integrity sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA== + +"@rollup/rollup-win32-ia32-msvc@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz#7d2251e1aa5e8a1e47c86891fe4547a939503461" + integrity sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ== + +"@rollup/rollup-win32-x64-msvc@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz#2c1fb69e02a3f1506f52698cfdc3a8b6386df9a6" + integrity sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ== + +"@sigstore/bundle@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-1.1.0.tgz#17f8d813b09348b16eeed66a8cf1c3d6bd3d04f1" + integrity sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog== + dependencies: + "@sigstore/protobuf-specs" "^0.2.0" + +"@sigstore/protobuf-specs@^0.2.0": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz#be9ef4f3c38052c43bd399d3f792c97ff9e2277b" + integrity sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A== + +"@sigstore/sign@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-1.0.0.tgz#6b08ebc2f6c92aa5acb07a49784cb6738796f7b4" + integrity sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA== + dependencies: + "@sigstore/bundle" "^1.1.0" + "@sigstore/protobuf-specs" "^0.2.0" + make-fetch-happen "^11.0.1" + +"@sigstore/tuf@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-1.0.3.tgz#2a65986772ede996485728f027b0514c0b70b160" + integrity sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg== dependencies: - esquery "^1.0.1" + "@sigstore/protobuf-specs" "^0.2.0" + tuf-js "^1.1.7" + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== "@sindresorhus/is@^4.0.0": version "4.6.0" @@ -2771,6 +2363,453 @@ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== +"@smithy/abort-controller@^2.0.14": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-2.0.14.tgz#0608c34e35289e66ba839bbdda0c2ccd971e8d26" + integrity sha512-zXtteuYLWbSXnzI3O6xq3FYvigYZFW8mdytGibfarLL2lxHto9L3ILtGVnVGmFZa7SDh62l39EnU5hesLN87Fw== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/chunked-blob-reader-native@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-2.0.1.tgz#0599eaed8c2cd15c7ab43a1838cef1258ff27133" + integrity sha512-N2oCZRglhWKm7iMBu7S6wDzXirjAofi7tAd26cxmgibRYOBS4D3hGfmkwCpHdASZzwZDD8rluh0Rcqw1JeZDRw== + dependencies: + "@smithy/util-base64" "^2.0.1" + tslib "^2.5.0" + +"@smithy/chunked-blob-reader@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-2.0.0.tgz#c44fe2c780eaf77f9e5381d982ac99a880cce51b" + integrity sha512-k+J4GHJsMSAIQPChGBrjEmGS+WbPonCXesoqP9fynIqjn7rdOThdH8FAeCmokP9mxTYKQAKoHCLPzNlm6gh7Wg== + dependencies: + tslib "^2.5.0" + +"@smithy/config-resolver@^2.0.18", "@smithy/config-resolver@^2.0.19": + version "2.0.19" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-2.0.19.tgz#d246fff11bdf8089e85de2e26172ba27a5ff7980" + integrity sha512-JsghnQ5zjWmjEVY8TFOulLdEOCj09SjRLugrHlkPZTIBBm7PQitCFVLThbsKPZQOP7N3ME1DU1nKUc1UaVnBog== + dependencies: + "@smithy/node-config-provider" "^2.1.6" + "@smithy/types" "^2.6.0" + "@smithy/util-config-provider" "^2.0.0" + "@smithy/util-middleware" "^2.0.7" + tslib "^2.5.0" + +"@smithy/credential-provider-imds@^2.0.0", "@smithy/credential-provider-imds@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.1.2.tgz#b0225e2f514c5394558f702184feac94453ec9d1" + integrity sha512-Y62jBWdoLPSYjr9fFvJf+KwTa1EunjVr6NryTEWCnwIY93OJxwV4t0qxjwdPl/XMsUkq79ppNJSEQN6Ohnhxjw== + dependencies: + "@smithy/node-config-provider" "^2.1.6" + "@smithy/property-provider" "^2.0.15" + "@smithy/types" "^2.6.0" + "@smithy/url-parser" "^2.0.14" + tslib "^2.5.0" + +"@smithy/eventstream-codec@^2.0.14": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.0.14.tgz#e56434ae34be6682c7e9f12bb2f50e73b301914a" + integrity sha512-g/OU/MeWGfHDygoXgMWfG/Xb0QqDnAGcM9t2FRrVAhleXYRddGOEnfanR5cmHgB9ue52MJsyorqFjckzXsylaA== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@smithy/types" "^2.6.0" + "@smithy/util-hex-encoding" "^2.0.0" + tslib "^2.5.0" + +"@smithy/eventstream-serde-browser@^2.0.13": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.0.14.tgz#be04544b8d4efc29fa84c2b2d89bcd8a2280495b" + integrity sha512-41wmYE9smDGJi1ZXp+LogH6BR7MkSsQD91wneIFISF/mupKULvoOJUkv/Nf0NMRxWlM3Bf1Vvi9FlR2oV4KU8Q== + dependencies: + "@smithy/eventstream-serde-universal" "^2.0.14" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/eventstream-serde-config-resolver@^2.0.13": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.0.14.tgz#ab2a2a96b6f5c04cc3c1bebd75375015016f4735" + integrity sha512-43IyRIzQ82s+5X+t/3Ood00CcWtAXQdmUIUKMed2Qg9REPk8SVIHhpm3rwewLwg+3G2Nh8NOxXlEQu6DsPUcMw== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/eventstream-serde-node@^2.0.13": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.0.14.tgz#810780e40810b8d7d4545b9961c0b4626ab9906a" + integrity sha512-jVh9E2qAr6DxH5tWfCAl9HV6tI0pEQ3JVmu85JknDvYTC66djcjDdhctPV2EHuKWf2kjRiFJcMIn0eercW4THA== + dependencies: + "@smithy/eventstream-serde-universal" "^2.0.14" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/eventstream-serde-universal@^2.0.14": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.0.14.tgz#45d7fc506bd98d5f746b45fe9bfc8e3f09aa147f" + integrity sha512-Ie35+AISNn1NmEjn5b2SchIE49pvKp4Q74bE9ME5RULWI1MgXyGkQUajWd5E6OBSr/sqGcs+rD3IjPErXnCm9g== + dependencies: + "@smithy/eventstream-codec" "^2.0.14" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/fetch-http-handler@^2.2.6", "@smithy/fetch-http-handler@^2.2.7": + version "2.2.7" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.2.7.tgz#7e06aa774ea86f6529365e439256f17979c18445" + integrity sha512-iSDBjxuH9TgrtMYAr7j5evjvkvgwLY3y+9D547uep+JNkZ1ZT+BaeU20j6I/bO/i26ilCWFImrlXTPsfQtZdIQ== + dependencies: + "@smithy/protocol-http" "^3.0.10" + "@smithy/querystring-builder" "^2.0.14" + "@smithy/types" "^2.6.0" + "@smithy/util-base64" "^2.0.1" + tslib "^2.5.0" + +"@smithy/hash-blob-browser@^2.0.14": + version "2.0.15" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-2.0.15.tgz#be745ea0e79333dbb2d2a26b4be04ce283636c98" + integrity sha512-HX/7GIyPUT/HDWVYe2HYQu0iRnSYpF4uZVNhAhZsObPRawk5Mv0PbyluBgIFI2DDCCKgL/tloCYYwycff1GtQg== + dependencies: + "@smithy/chunked-blob-reader" "^2.0.0" + "@smithy/chunked-blob-reader-native" "^2.0.1" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/hash-node@^2.0.15": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-2.0.16.tgz#babd9e3fb13339507ffcc182834cf10c4df028b1" + integrity sha512-Wbi9A0PacMYUOwjAulQP90Wl3mQ6NDwnyrZQzFjDz+UzjXOSyQMgBrTkUBz+pVoYVlX3DUu24gWMZBcit+wOGg== + dependencies: + "@smithy/types" "^2.6.0" + "@smithy/util-buffer-from" "^2.0.0" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@smithy/hash-stream-node@^2.0.15": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-2.0.16.tgz#892d211ddc2609c3e5486a5d1b7e4d0423a7fbe9" + integrity sha512-4x24GFdeWos1Z49MC5sYdM1j+z32zcUr6oWM9Ggm3WudFAcRIcbG9uDQ1XgJ0Kl+ZTjpqLKniG0iuWvQb2Ud1A== + dependencies: + "@smithy/types" "^2.6.0" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@smithy/invalid-dependency@^2.0.13": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-2.0.14.tgz#fc898c8cf0c4ceb29bb23c6a90f7522193622e75" + integrity sha512-d8ohpwZo9RzTpGlAfsWtfm1SHBSU7+N4iuZ6MzR10xDTujJJWtmXYHK1uzcr7rggbpUTaWyHpPFgnf91q0EFqQ== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/is-array-buffer@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.0.0.tgz#8fa9b8040651e7ba0b2f6106e636a91354ff7d34" + integrity sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug== + dependencies: + tslib "^2.5.0" + +"@smithy/md5-js@^2.0.15": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-2.0.16.tgz#ef1af727ebeb0a24a195904c06a91b946f3ce32d" + integrity sha512-YhWt9aKl+EMSNXyUTUo7I01WHf3HcCkPu/Hl2QmTNwrHT49eWaY7hptAMaERZuHFH0V5xHgPKgKZo2I93DFtgQ== + dependencies: + "@smithy/types" "^2.6.0" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@smithy/middleware-content-length@^2.0.15": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-2.0.16.tgz#0d77cfe0d375bfbf1e59f30a38de0e3f14a1e73f" + integrity sha512-9ddDia3pp1d3XzLXKcm7QebGxLq9iwKf+J1LapvlSOhpF8EM9SjMeSrMOOFgG+2TfW5K3+qz4IAJYYm7INYCng== + dependencies: + "@smithy/protocol-http" "^3.0.10" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/middleware-endpoint@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.2.1.tgz#7fc156aaeaa0e8bd838c57a8b37ece355a9eeaec" + integrity sha512-dVDS7HNJl/wb0lpByXor6whqDbb1YlLoaoWYoelyYzLHioXOE7y/0iDwJWtDcN36/tVCw9EPBFZ3aans84jLpg== + dependencies: + "@smithy/middleware-serde" "^2.0.14" + "@smithy/node-config-provider" "^2.1.6" + "@smithy/shared-ini-file-loader" "^2.2.5" + "@smithy/types" "^2.6.0" + "@smithy/url-parser" "^2.0.14" + "@smithy/util-middleware" "^2.0.7" + tslib "^2.5.0" + +"@smithy/middleware-retry@^2.0.20": + version "2.0.21" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.0.21.tgz#7c18cbb7ca5c7fd1777e062b3cbebc57a60bddca" + integrity sha512-EZS1EXv1k6IJX6hyu/0yNQuPcPaXwG8SWljQHYueyRbOxmqYgoWMWPtfZj0xRRQ4YtLawQSpBgAeiJltq8/MPw== + dependencies: + "@smithy/node-config-provider" "^2.1.6" + "@smithy/protocol-http" "^3.0.10" + "@smithy/service-error-classification" "^2.0.7" + "@smithy/types" "^2.6.0" + "@smithy/util-middleware" "^2.0.7" + "@smithy/util-retry" "^2.0.7" + tslib "^2.5.0" + uuid "^8.3.2" + +"@smithy/middleware-serde@^2.0.13", "@smithy/middleware-serde@^2.0.14": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-2.0.14.tgz#147e7413f934f213dbfe4815e691409cc9c0d793" + integrity sha512-hFi3FqoYWDntCYA2IGY6gJ6FKjq2gye+1tfxF2HnIJB5uW8y2DhpRNBSUMoqP+qvYzRqZ6ntv4kgbG+o3pX57g== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/middleware-stack@^2.0.7", "@smithy/middleware-stack@^2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-2.0.8.tgz#76827e2818654eb5a482ede36a59de6d6db7b896" + integrity sha512-7/N59j0zWqVEKExJcA14MrLDZ/IeN+d6nbkN8ucs+eURyaDUXWYlZrQmMOd/TyptcQv0+RDlgag/zSTTV62y/Q== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/node-config-provider@^2.1.5", "@smithy/node-config-provider@^2.1.6": + version "2.1.6" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-2.1.6.tgz#835f62902676de71a358f66a0887a09154cf43c2" + integrity sha512-HLqTs6O78m3M3z1cPLFxddxhEPv5MkVatfPuxoVO3A+cHZanNd/H5I6btcdHy6N2CB1MJ/lihJC92h30SESsBA== + dependencies: + "@smithy/property-provider" "^2.0.15" + "@smithy/shared-ini-file-loader" "^2.2.5" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/node-http-handler@^2.1.10", "@smithy/node-http-handler@^2.1.9": + version "2.1.10" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.1.10.tgz#8921a661dfb273a21dd1dff3ad1fe5196ea3c525" + integrity sha512-lkALAwtN6odygIM4nB8aHDahINM6WXXjNrZmWQAh0RSossySRT2qa31cFv0ZBuAYVWeprskRk13AFvvLmf1WLw== + dependencies: + "@smithy/abort-controller" "^2.0.14" + "@smithy/protocol-http" "^3.0.10" + "@smithy/querystring-builder" "^2.0.14" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/property-provider@^2.0.0", "@smithy/property-provider@^2.0.15": + version "2.0.15" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-2.0.15.tgz#7a5069f6bab4d59f640b2e73e99fa03e3fda3cc1" + integrity sha512-YbRFBn8oiiC3o1Kn3a4KjGa6k47rCM9++5W9cWqYn9WnkyH+hBWgfJAckuxpyA2Hq6Ys4eFrWzXq6fqHEw7iew== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/protocol-http@^3.0.10", "@smithy/protocol-http@^3.0.9": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-3.0.10.tgz#235ffdcdc3022c4a76b1785dbc6f9f8427859e1f" + integrity sha512-6+tjNk7rXW7YTeGo9qwxXj/2BFpJTe37kTj3EnZCoX/nH+NP/WLA7O83fz8XhkGqsaAhLUPo/bB12vvd47nsmg== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/querystring-builder@^2.0.14": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-2.0.14.tgz#3ba4ba728ab10e040b46079afc983c3378032328" + integrity sha512-lQ4pm9vTv9nIhl5jt6uVMPludr6syE2FyJmHsIJJuOD7QPIJnrf9HhUGf1iHh9KJ4CUv21tpOU3X6s0rB6uJ0g== + dependencies: + "@smithy/types" "^2.6.0" + "@smithy/util-uri-escape" "^2.0.0" + tslib "^2.5.0" + +"@smithy/querystring-parser@^2.0.14": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-2.0.14.tgz#0e3936d44c783540321fedd9d502aac22073a556" + integrity sha512-+cbtXWI9tNtQjlgQg3CA+pvL3zKTAxPnG3Pj6MP89CR3vi3QMmD0SOWoq84tqZDnJCxlsusbgIXk1ngMReXo+A== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/service-error-classification@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-2.0.7.tgz#9ef515fdc751a27a555f51121be5c37006a4c458" + integrity sha512-LLxgW12qGz8doYto15kZ4x1rHjtXl0BnCG6T6Wb8z2DI4PT9cJfOSvzbuLzy7+5I24PAepKgFeWHRd9GYy3Z9w== + dependencies: + "@smithy/types" "^2.6.0" + +"@smithy/shared-ini-file-loader@^2.0.6", "@smithy/shared-ini-file-loader@^2.2.5": + version "2.2.5" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.5.tgz#7fe24f5f8143e9082b61c3fab4d4d7c395dda807" + integrity sha512-LHA68Iu7SmNwfAVe8egmjDCy648/7iJR/fK1UnVw+iAOUJoEYhX2DLgVd5pWllqdDiRbQQzgaHLcRokM+UFR1w== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/signature-v4@^2.0.0": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-2.0.16.tgz#51456baa6992120031692e1bf28178b766bf40ac" + integrity sha512-ilLY85xS2kZZzTb83diQKYLIYALvart0KnBaKnIRnMBHAGEio5aHSlANQoxVn0VsonwmQ3CnWhnCT0sERD8uTg== + dependencies: + "@smithy/eventstream-codec" "^2.0.14" + "@smithy/is-array-buffer" "^2.0.0" + "@smithy/types" "^2.6.0" + "@smithy/util-hex-encoding" "^2.0.0" + "@smithy/util-middleware" "^2.0.7" + "@smithy/util-uri-escape" "^2.0.0" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@smithy/smithy-client@^2.1.15", "@smithy/smithy-client@^2.1.16": + version "2.1.16" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-2.1.16.tgz#eae70fac673b06494c536fa5637c2df12887ce3a" + integrity sha512-Lw67+yQSpLl4YkDLUzI2KgS8TXclXmbzSeOJUmRFS4ueT56B4pw3RZRF/SRzvgyxM/HxgkUan8oSHXCujPDafQ== + dependencies: + "@smithy/middleware-stack" "^2.0.8" + "@smithy/types" "^2.6.0" + "@smithy/util-stream" "^2.0.21" + tslib "^2.5.0" + +"@smithy/types@^2.5.0", "@smithy/types@^2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.6.0.tgz#a09c40b512e2df213229a20a43d0d9cfcf55ca3e" + integrity sha512-PgqxJq2IcdMF9iAasxcqZqqoOXBHufEfmbEUdN1pmJrJltT42b0Sc8UiYSWWzKkciIp9/mZDpzYi4qYG1qqg6g== + dependencies: + tslib "^2.5.0" + +"@smithy/url-parser@^2.0.13", "@smithy/url-parser@^2.0.14": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-2.0.14.tgz#6e09902482e9fef0882e6c9f1009ca57fcf3f7b4" + integrity sha512-kbu17Y1AFXi5lNlySdDj7ZzmvupyWKCX/0jNZ8ffquRyGdbDZb+eBh0QnWqsSmnZa/ctyWaTf7n4l/pXLExrnw== + dependencies: + "@smithy/querystring-parser" "^2.0.14" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/util-base64@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-2.0.1.tgz#57f782dafc187eddea7c8a1ff2a7c188ed1a02c4" + integrity sha512-DlI6XFYDMsIVN+GH9JtcRp3j02JEVuWIn/QOZisVzpIAprdsxGveFed0bjbMRCqmIFe8uetn5rxzNrBtIGrPIQ== + dependencies: + "@smithy/util-buffer-from" "^2.0.0" + tslib "^2.5.0" + +"@smithy/util-body-length-browser@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.0.0.tgz#5447853003b4c73da3bc5f3c5e82c21d592d1650" + integrity sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg== + dependencies: + tslib "^2.5.0" + +"@smithy/util-body-length-node@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-2.1.0.tgz#313a5f7c5017947baf5fa018bfc22628904bbcfa" + integrity sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw== + dependencies: + tslib "^2.5.0" + +"@smithy/util-buffer-from@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.0.0.tgz#7eb75d72288b6b3001bc5f75b48b711513091deb" + integrity sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw== + dependencies: + "@smithy/is-array-buffer" "^2.0.0" + tslib "^2.5.0" + +"@smithy/util-config-provider@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-2.0.0.tgz#4dd6a793605559d94267312fd06d0f58784b4c38" + integrity sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg== + dependencies: + tslib "^2.5.0" + +"@smithy/util-defaults-mode-browser@^2.0.19": + version "2.0.20" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.20.tgz#efabf1c0dadd0d86340f796b761bf17b59dcf900" + integrity sha512-QJtnbTIl0/BbEASkx1MUFf6EaoWqWW1/IM90N++8NNscePvPf77GheYfpoPis6CBQawUWq8QepTP2QUSAdrVkw== + dependencies: + "@smithy/property-provider" "^2.0.15" + "@smithy/smithy-client" "^2.1.16" + "@smithy/types" "^2.6.0" + bowser "^2.11.0" + tslib "^2.5.0" + +"@smithy/util-defaults-mode-node@^2.0.25": + version "2.0.26" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.26.tgz#a701b6b0cc3f2bb57964049ccb0f8d147a8654df" + integrity sha512-lGFPOFCHv1ql019oegYqa54BZH7HREw6EBqjDLbAr0wquMX0BDi2sg8TJ6Eq+JGLijkZbJB73m4+aK8OFAapMg== + dependencies: + "@smithy/config-resolver" "^2.0.19" + "@smithy/credential-provider-imds" "^2.1.2" + "@smithy/node-config-provider" "^2.1.6" + "@smithy/property-provider" "^2.0.15" + "@smithy/smithy-client" "^2.1.16" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/util-endpoints@^1.0.4": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-1.0.5.tgz#9e6ffdc9ac9d597869209e3b83784a13f277956e" + integrity sha512-K7qNuCOD5K/90MjHvHm9kJldrfm40UxWYQxNEShMFxV/lCCCRIg8R4uu1PFAxRvPxNpIdcrh1uK6I1ISjDXZJw== + dependencies: + "@smithy/node-config-provider" "^2.1.6" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/util-hex-encoding@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.0.0.tgz#0aa3515acd2b005c6d55675e377080a7c513b59e" + integrity sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA== + dependencies: + tslib "^2.5.0" + +"@smithy/util-middleware@^2.0.6", "@smithy/util-middleware@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.0.7.tgz#92dda5d2a79915e06a275b4df3d66d4381b60a5f" + integrity sha512-tRINOTlf1G9B0ECarFQAtTgMhpnrMPSa+5j4ZEwEawCLfTFTavk6757sxhE4RY5RMlD/I3x+DCS8ZUiR8ho9Pw== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/util-retry@^2.0.6", "@smithy/util-retry@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-2.0.7.tgz#14ad8ebe5d8428dd0216d58b883e7fd964ae1e95" + integrity sha512-fIe5yARaF0+xVT1XKcrdnHKTJ1Vc4+3e3tLDjCuIcE9b6fkBzzGFY7AFiX4M+vj6yM98DrwkuZeHf7/hmtVp0Q== + dependencies: + "@smithy/service-error-classification" "^2.0.7" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/util-stream@^2.0.20", "@smithy/util-stream@^2.0.21": + version "2.0.21" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-2.0.21.tgz#290935084e026afae6bacec7481abdae3498ee35" + integrity sha512-0BUE16d7n1x7pi1YluXJdB33jOTyBChT0j/BlOkFa9uxfg6YqXieHxjHNuCdJRARa7AZEj32LLLEPJ1fSa4inA== + dependencies: + "@smithy/fetch-http-handler" "^2.2.7" + "@smithy/node-http-handler" "^2.1.10" + "@smithy/types" "^2.6.0" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-buffer-from" "^2.0.0" + "@smithy/util-hex-encoding" "^2.0.0" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@smithy/util-uri-escape@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-2.0.0.tgz#19955b1a0f517a87ae77ac729e0e411963dfda95" + integrity sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw== + dependencies: + tslib "^2.5.0" + +"@smithy/util-utf8@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.0.2.tgz#626b3e173ad137208e27ed329d6bea70f4a1a7f7" + integrity sha512-qOiVORSPm6Ce4/Yu6hbSgNHABLP2VMv8QOC3tTDNHHlWY19pPyc++fBTbZPtx6egPXi4HQxKDnMxVxpbtX2GoA== + dependencies: + "@smithy/util-buffer-from" "^2.0.0" + tslib "^2.5.0" + +"@smithy/util-waiter@^2.0.13": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-2.0.14.tgz#b2c8ce5728c1bb92236dfbfe3bf8f354a328c4f7" + integrity sha512-Q6gSz4GUNjNGhrfNg+2Mjy+7K4pEI3r82x1b/+3dSc03MQqobMiUrRVN/YK/4nHVagvBELCoXsiHAFQJNQ5BeA== + dependencies: + "@smithy/abort-controller" "^2.0.14" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + "@szmarczak/http-timer@^4.0.5": version "4.0.6" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" @@ -2803,6 +2842,19 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== +"@tufjs/canonical-json@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz#eade9fd1f537993bc1f0949f3aea276ecc4fab31" + integrity sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ== + +"@tufjs/models@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-1.0.4.tgz#5a689630f6b9dbda338d4b208019336562f176ef" + integrity sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A== + dependencies: + "@tufjs/canonical-json" "1.0.0" + minimatch "^9.0.0" + "@types/body-parser@*": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" @@ -2828,6 +2880,11 @@ "@types/node" "*" "@types/responselike" "*" +"@types/caseless@*": + version "0.12.4" + resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.4.tgz#1326429a519cc077028150343fd502b04686bd6f" + integrity sha512-2in/lrHRNmDvHPgyormtEralhPcN3An1gLjJzj2Bw145VBxkQ75JEXW6CTdMAwShiHQcYsl2d10IjQSdJSJz4g== + "@types/chai-as-promised@^7.1.2": version "7.1.5" resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz#6e016811f6c7a64f2eed823191c3a6955094e255" @@ -2892,11 +2949,16 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^0.0.51": +"@types/estree@*": version "0.0.51" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== +"@types/estree@1.0.5", "@types/estree@^1.0.0": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": version "4.17.31" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f" @@ -3001,6 +3063,13 @@ dependencies: keyv "*" +"@types/keyv@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== + dependencies: + "@types/node" "*" + "@types/listr@^0.14.2": version "0.14.4" resolved "https://registry.yarnpkg.com/@types/listr/-/listr-0.14.4.tgz#6ba2a4206615cf80d79d10f9ba9701c303cd57b6" @@ -3065,14 +3134,18 @@ form-data "^3.0.0" "@types/node@*": - version "18.11.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.7.tgz#8ccef136f240770c1379d50100796a6952f01f94" - integrity sha512-LhFTglglr63mNXUSRYD8A+ZAIu5sFqNJ4Y2fPuY7UlrySJH87rRRlhtVmMHplmfk5WkoJGmDjE9oiTfyX94CpQ== + version "20.10.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.1.tgz#d2c96f356c3125fedc983d74c424910c3767141c" + integrity sha512-T2qwhjWwGH81vUEx4EXmBKsTJRXFXNZTL4v0gi01+zyBmCwzE6TyHszqX01m+QHTEq+EZNo13NeJIdEqf+Myrg== + dependencies: + undici-types "~5.26.4" "@types/node@^18.0.3": - version "18.0.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.3.tgz#463fc47f13ec0688a33aec75d078a0541a447199" - integrity sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ== + version "18.18.14" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.14.tgz#26771c647f2842af57eb96191cd615d845164295" + integrity sha512-iSOeNeXYNYNLLOMDSVPvIFojclvMZ/HDY2dU17kUlcsOsSQETbWIslJbYLZgA+ox8g2XQwSHKTkght1a5X26lQ== + dependencies: + undici-types "~5.26.4" "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -3113,6 +3186,16 @@ dependencies: "@types/interpret" "*" +"@types/request@^2.48.8": + version "2.48.11" + resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.11.tgz#04b597ea308418422f7901c9a52b24967a2c4ed2" + integrity sha512-HuihY1+Vss5RS9ZHzRyTGIzwPTdrJBkCm/mAeLRYrOQu/MGqyezKXWOK1VhCnR+SDbp9G2mRUP+OVEqCrzpcfA== + dependencies: + "@types/caseless" "*" + "@types/node" "*" + "@types/tough-cookie" "*" + form-data "^2.5.0" + "@types/responselike@*", "@types/responselike@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" @@ -3172,6 +3255,11 @@ dependencies: "@types/node" "*" +"@types/tough-cookie@*": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.4.tgz#cf2f0c7c51b985b6afecea73eb2cd65421ecb717" + integrity sha512-95Sfz4nvMAb0Nl9DTxN3j64adfwfbBPEYq14VN7zT5J5O2M9V6iZMIIQU1U+pJyl9agHYHNCqhCXgyEtIRRa5A== + "@types/unist@*", "@types/unist@^2.0.0": version "2.0.6" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" @@ -3319,125 +3407,125 @@ resolved "https://registry.yarnpkg.com/@vscode/l10n/-/l10n-0.0.10.tgz#9c513107c690c0dd16e3ec61e453743de15ebdb0" integrity sha512-E1OCmDcDWa0Ya7vtSjp/XfHFGqYJfh+YPC1RkATU71fTac+j1JjCcB3qwSzmlKAighx2WxhLlfhS0RwAN++PFQ== -"@webassemblyjs/ast@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" - integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== +"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" + integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== dependencies: - "@webassemblyjs/helper-numbers" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" -"@webassemblyjs/floating-point-hex-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" - integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== -"@webassemblyjs/helper-api-error@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" - integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== -"@webassemblyjs/helper-buffer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" - integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== +"@webassemblyjs/helper-buffer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" + integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== -"@webassemblyjs/helper-numbers@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" - integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-wasm-bytecode@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" - integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== -"@webassemblyjs/helper-wasm-section@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" - integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== +"@webassemblyjs/helper-wasm-section@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" + integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" -"@webassemblyjs/ieee754@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" - integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" - integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" - integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== - -"@webassemblyjs/wasm-edit@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" - integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/helper-wasm-section" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-opt" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - "@webassemblyjs/wast-printer" "1.11.1" - -"@webassemblyjs/wasm-gen@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" - integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wasm-opt@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" - integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - -"@webassemblyjs/wasm-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" - integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wast-printer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" - integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== - dependencies: - "@webassemblyjs/ast" "1.11.1" +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" + integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-opt" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/wast-printer" "1.11.6" + +"@webassemblyjs/wasm-gen@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" + integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" + integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + +"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" + integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" + integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== + dependencies: + "@webassemblyjs/ast" "1.11.6" "@xtuc/long" "4.2.2" "@xmldom/xmldom@^0.8.8": @@ -3460,10 +3548,10 @@ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== -"@yarnpkg/parsers@^3.0.0-rc.18": - version "3.0.0-rc.28" - resolved "https://registry.yarnpkg.com/@yarnpkg/parsers/-/parsers-3.0.0-rc.28.tgz#aa78b7cf93e42aba05049c1d5e55bfa74401b382" - integrity sha512-OdBYBaACPjFnqek4jtyR5VH7wX5i7BwfS0AP8m6hTqgULRVOLEc6TKxUBxMCTISzZPGdo5wWAB7OcMmU6G2UnA== +"@yarnpkg/parsers@3.0.0-rc.46": + version "3.0.0-rc.46" + resolved "https://registry.yarnpkg.com/@yarnpkg/parsers/-/parsers-3.0.0-rc.46.tgz#03f8363111efc0ea670e53b0282cd3ef62de4e01" + integrity sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q== dependencies: js-yaml "^3.10.0" tslib "^2.4.0" @@ -3488,6 +3576,18 @@ abbrev@1, abbrev@^1.0.0: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== +abbrev@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" + integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== + +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -3496,10 +3596,10 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== acorn-jsx@^5.3.1, acorn-jsx@^5.3.2: version "5.3.2" @@ -3521,6 +3621,11 @@ acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.0, acorn@^8.7.1, acorn@^8.8.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== +acorn@^8.8.2: + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== + add-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" @@ -3533,6 +3638,13 @@ agent-base@6, agent-base@^6.0.2: dependencies: debug "4" +agent-base@^7.0.2: + version "7.1.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" + integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== + dependencies: + debug "^4.3.4" + agentkeepalive@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" @@ -3611,6 +3723,13 @@ ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: dependencies: type-fest "^0.21.3" +ansi-escapes@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-5.0.0.tgz#b6a0caf0eef0c41af190e9a749e0c00ec04bb2a6" + integrity sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA== + dependencies: + type-fest "^1.0.2" + ansi-html-community@^0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" @@ -3650,11 +3769,21 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + ansi-styles@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3" integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + anymatch@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" @@ -3701,6 +3830,14 @@ are-we-there-yet@^3.0.0: delegates "^1.0.0" readable-stream "^3.6.0" +are-we-there-yet@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-4.0.1.tgz#05a6fc0e5f70771b673e82b0f915616e0ace8fd3" + integrity sha512-2zuA+jpOYBRgoBCfa+fB87Rk0oGJjDX6pxGzqH6f33NzUhG25Xur6R0u0Z9VVAq8Z5JvQpQI6j6rtonuivC8QA== + dependencies: + delegates "^1.0.0" + readable-stream "^4.1.0" + arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -3830,7 +3967,7 @@ arrify@^1.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== -arrify@^2.0.1: +arrify@^2.0.0, arrify@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== @@ -3840,21 +3977,6 @@ asap@^2.0.0: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== -asar@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/asar/-/asar-2.1.0.tgz#97c6a570408c4e38a18d4a3fb748a621b5a7844e" - integrity sha512-d2Ovma+bfqNpvBzY/KU8oPY67ZworixTpkjSx0PCXnQi67c2cXmssaTxpFDUM0ttopXoGx/KRxNg/GDThYbXQA== - dependencies: - chromium-pickle-js "^0.2.0" - commander "^2.20.0" - cuint "^0.2.2" - glob "^7.1.3" - minimatch "^3.0.4" - mkdirp "^0.5.1" - tmp-promise "^1.0.5" - optionalDependencies: - "@types/glob" "^7.1.1" - asar@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/asar/-/asar-3.1.0.tgz#70b0509449fe3daccc63beb4d3c7d2e24d3c6473" @@ -3877,6 +3999,13 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +async-retry@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" + integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== + dependencies: + retry "0.13.1" + async@^1.4.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -3908,9 +4037,9 @@ available-typed-arrays@^1.0.5: integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== axios@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.1.3.tgz#8274250dada2edf53814ed7db644b9c2866c1e35" - integrity sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA== + version "1.6.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.1.tgz#76550d644bf0a2d469a01f9244db6753208397d7" + integrity sha512-vfBmhDpKafglh0EldBEbVuoe7DyAavGSLWhuSm5ZSEKQnHhBf0xAAwybbNH1IkrJNGnS/VG4I5yxig1pCEXE4g== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -3921,6 +4050,11 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +balanced-match@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9" + integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== + "base32-encode@^0.1.0 || ^1.0.0": version "1.2.0" resolved "https://registry.yarnpkg.com/base32-encode/-/base32-encode-1.2.0.tgz#e150573a5e431af0a998e32bdfde7045725ca453" @@ -3928,7 +4062,7 @@ balanced-match@^1.0.0: dependencies: to-data-view "^1.1.0" -base64-js@^1.0.2, base64-js@^1.3.1, base64-js@^1.5.1: +base64-js@^1.0.2, base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -3943,17 +4077,20 @@ before-after-hook@^2.2.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== -bin-links@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-3.0.3.tgz#3842711ef3db2cd9f16a5f404a996a12db355a6e" - integrity sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA== +bignumber.js@^9.0.0: + version "9.1.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== + +bin-links@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.3.tgz#9e4a3c5900830aee3d7f52178b65e01dcdde64a5" + integrity sha512-obsRaULtJurnfox/MDwgq6Yo9kzbv1CPTk/1/s7Z/61Lezc8IKkFCOXNeVLXz0456WRzBQmSsDWlai2tIhBsfA== dependencies: - cmd-shim "^5.0.0" - mkdirp-infer-owner "^2.0.0" - npm-normalize-package-bin "^2.0.0" - read-cmd-shim "^3.0.0" - rimraf "^3.0.0" - write-file-atomic "^4.0.0" + cmd-shim "^6.0.0" + npm-normalize-package-bin "^3.0.0" + read-cmd-shim "^4.0.0" + write-file-atomic "^5.0.0" binary-extensions@^2.0.0: version "2.2.0" @@ -3969,18 +4106,18 @@ bl@^4.0.3, bl@^4.1.0: inherits "^2.0.4" readable-stream "^3.4.0" -bluebird@^3.0.6, bluebird@^3.1.1, bluebird@^3.5.0: +bluebird@^3.0.6, bluebird@^3.1.1: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== dependencies: bytes "3.1.2" - content-type "~1.0.4" + content-type "~1.0.5" debug "2.6.9" depd "2.0.0" destroy "1.2.0" @@ -3988,7 +4125,7 @@ body-parser@1.20.1: iconv-lite "0.4.24" on-finished "2.4.1" qs "6.11.0" - raw-body "2.5.1" + raw-body "2.5.2" type-is "~1.6.18" unpipe "1.0.0" @@ -4077,10 +4214,10 @@ buffer-crc32@~0.2.3: resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= -buffer-equal@^1.0.0: +buffer-equal-constant-time@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.1.tgz#2f7651be5b1b3f057fcd6e7ee16cf34767077d90" - integrity sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg== + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== buffer-from@^1.0.0: version "1.1.2" @@ -4103,6 +4240,14 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + builtins@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" @@ -4115,10 +4260,10 @@ builtins@^5.0.0, builtins@^5.0.1: dependencies: semver "^7.0.0" -byte-size@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-7.0.1.tgz#b1daf3386de7ab9d706b941a748dbfc71130dee3" - integrity sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A== +byte-size@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-7.0.0.tgz#36528cd1ca87d39bd9abd51f5715dc93b6ceb032" + integrity sha512-NNiBxKgxybMBtWdmvx7ZITJi4ZG+CYUgwOSZTfqB1qogkRHrhbQE/R2r5Fh94X+InN5MCYz6SvB/ejHMj/HbsQ== bytes@3.0.0: version "3.0.0" @@ -4130,7 +4275,7 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -cacache@^16.0.0, cacache@^16.0.6, cacache@^16.1.0: +cacache@^16.1.0: version "16.1.3" resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== @@ -4154,6 +4299,24 @@ cacache@^16.0.0, cacache@^16.0.6, cacache@^16.1.0: tar "^6.1.11" unique-filename "^2.0.0" +cacache@^17.0.0, cacache@^17.0.4: + version "17.1.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-17.1.4.tgz#b3ff381580b47e85c6e64f801101508e26604b35" + integrity sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A== + dependencies: + "@npmcli/fs" "^3.1.0" + fs-minipass "^3.0.0" + glob "^10.2.2" + lru-cache "^7.7.1" + minipass "^7.0.3" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + p-map "^4.0.0" + ssri "^10.0.0" + tar "^6.1.11" + unique-filename "^3.0.0" + cacheable-lookup@^5.0.3: version "5.0.4" resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" @@ -4307,7 +4470,7 @@ cheerio@^1.0.0-rc.9: parse5 "^7.0.0" parse5-htmlparser2-tree-adapter "^7.0.0" -chokidar@3.5.3, chokidar@^3.5.1, chokidar@^3.5.3: +chokidar@3.5.3, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -4327,7 +4490,7 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -chrome-trace-event@^1.0.2: +chrome-trace-event@^1.0.2, chrome-trace-event@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== @@ -4342,6 +4505,11 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +ci-info@^3.6.1: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + clean-css@^5.2.2: version "5.2.4" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.2.4.tgz#982b058f8581adb2ae062520808fb2429bd487a4" @@ -4368,6 +4536,13 @@ cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== + dependencies: + restore-cursor "^4.0.0" + cli-progress@^3.9.0: version "3.11.2" resolved "https://registry.yarnpkg.com/cli-progress/-/cli-progress-3.11.2.tgz#f8c89bd157e74f3f2c43bcfb3505670b4d48fc77" @@ -4433,7 +4608,7 @@ cliui@^8.0.1: strip-ansi "^6.0.1" wrap-ansi "^7.0.0" -clone-deep@^4.0.1: +clone-deep@4.0.1, clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== @@ -4454,13 +4629,18 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= -cmd-shim@^5.0.0: +cmd-shim@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724" integrity sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw== dependencies: mkdirp-infer-owner "^2.0.0" +cmd-shim@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.2.tgz#435fd9e5c95340e61715e19f90209ed6fcd9e0a4" + integrity sha512-+FFYbB0YLaAkhkcrjkyNLYDiOsFSfRjwjY19LXk/psmMx1z00xlCv7hhQoTGXXIKi+YXHL/iiFo8NqMVQX9nOw== + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -4495,7 +4675,7 @@ color-support@^1.1.2, color-support@^1.1.3: resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -colorette@^2.0.10, colorette@^2.0.19: +colorette@^2.0.10: version "2.0.19" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== @@ -4505,12 +4685,17 @@ colorette@^2.0.16: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== +colorette@^2.0.20: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + colors@1.0.x: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= -columnify@^1.6.0: +columnify@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== @@ -4518,7 +4703,7 @@ columnify@^1.6.0: strip-ansi "^6.0.1" wcwidth "^1.0.0" -combined-stream@^1.0.8: +combined-stream@^1.0.6, combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -4550,6 +4735,11 @@ commander@^8.3.0: resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== +commander@^9.4.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" + integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== + common-ancestor-path@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" @@ -4568,7 +4758,7 @@ compare-version@^0.1.2: resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080" integrity sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A== -compressible@~2.0.16: +compressible@^2.0.12, compressible@~2.0.16: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== @@ -4603,10 +4793,10 @@ concat-stream@^2.0.0: readable-stream "^3.0.2" typedarray "^0.0.6" -config-chain@^1.1.11, config-chain@^1.1.12: - version "1.1.13" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" - integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== +config-chain@1.1.12: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== dependencies: ini "^1.3.4" proto-list "~1.2.1" @@ -4628,20 +4818,20 @@ content-disposition@0.5.4: dependencies: safe-buffer "5.2.1" -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -conventional-changelog-angular@^5.0.12: - version "5.0.13" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" - integrity sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA== +conventional-changelog-angular@5.0.12: + version "5.0.12" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz#c979b8b921cbfe26402eb3da5bbfda02d865a2b9" + integrity sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw== dependencies: compare-func "^2.0.0" q "^1.5.1" -conventional-changelog-core@^4.2.4: +conventional-changelog-core@4.2.4: version "4.2.4" resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz#e50d047e8ebacf63fac3dc67bf918177001e1e9f" integrity sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg== @@ -4701,7 +4891,7 @@ conventional-commits-parser@^3.2.0: split2 "^3.0.0" through2 "^4.0.0" -conventional-recommended-bump@^6.1.0: +conventional-recommended-bump@6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz#cfa623285d1de554012f2ffde70d9c8a22231f55" integrity sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw== @@ -4727,10 +4917,10 @@ cookie-signature@1.0.6: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== core-js@^3.0.0: version "3.21.0" @@ -4742,10 +4932,10 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cosmiconfig@7.0.1, cosmiconfig@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== +cosmiconfig@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== dependencies: "@types/parse-json" "^4.0.0" import-fresh "^3.2.1" @@ -4753,10 +4943,10 @@ cosmiconfig@7.0.1, cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" -cosmiconfig@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" - integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== +cosmiconfig@7.0.1, cosmiconfig@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== dependencies: "@types/parse-json" "^4.0.0" import-fresh "^3.2.1" @@ -4769,6 +4959,11 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== +cross-dirname@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/cross-dirname/-/cross-dirname-0.1.0.tgz#b899599f30a5389f59e78c150e19f957ad16a37c" + integrity sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q== + cross-env@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" @@ -4776,7 +4971,7 @@ cross-env@^7.0.2: dependencies: cross-spawn "^7.0.1" -cross-spawn-windows-exe@^1.1.0, cross-spawn-windows-exe@^1.2.0: +cross-spawn-windows-exe@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/cross-spawn-windows-exe/-/cross-spawn-windows-exe-1.2.0.tgz#46253b0f497676e766faf4a7061004618b5ac5ec" integrity sha512-mkLtJJcYbDCxEG7Js6eUnUNndWjyUZwJ3H7bErmmtOYU/Zb99DyUkpamuIZE0b3bhmJyZ7D90uS6f+CGxRRjOw== @@ -4796,7 +4991,7 @@ cross-spawn@^6.0.0: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -4815,6 +5010,11 @@ crypt@0.0.2: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + css-select@^4.1.3: version "4.3.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" @@ -4842,10 +5042,10 @@ css-what@^6.0.1, css-what@^6.1.0: resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== -cuint@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" - integrity sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs= +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== cycle@1.0.x: version "1.0.3" @@ -4877,14 +5077,14 @@ debug@2.6.9, debug@^2.2.0, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.3, debug@^4.3.4: +debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@4.3.3, debug@^4.3.1, debug@^4.3.2: +debug@4.3.3: version "4.3.3" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== @@ -4935,7 +5135,7 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" -dedent@^0.7.0: +dedent@0.7.0, dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== @@ -4994,6 +5194,20 @@ define-properties@^1.1.3, define-properties@^1.1.4: has-property-descriptors "^1.0.0" object-keys "^1.1.1" +del@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a" + integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== + dependencies: + globby "^11.0.1" + graceful-fs "^4.2.4" + is-glob "^4.0.1" + is-path-cwd "^2.2.0" + is-path-inside "^3.0.2" + p-map "^4.0.0" + rimraf "^3.0.2" + slash "^3.0.0" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -5034,11 +5248,6 @@ detect-indent@^5.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== -detect-indent@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" - integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== - detect-libc@^2.0.0, detect-libc@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" @@ -5074,13 +5283,13 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -dir-compare@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-3.3.0.tgz#2c749f973b5c4b5d087f11edaae730db31788416" - integrity sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg== +dir-compare@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-4.2.0.tgz#d1d4999c14fbf55281071fdae4293b3b9ce86f19" + integrity sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ== dependencies: - buffer-equal "^1.0.0" - minimatch "^3.0.4" + minimatch "^3.0.5" + p-limit "^3.1.0 " dir-glob@^3.0.1: version "3.0.1" @@ -5185,6 +5394,13 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" +dot-prop@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + dot-prop@^5.1.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" @@ -5192,13 +5408,6 @@ dot-prop@^5.1.0: dependencies: is-obj "^2.0.0" -dot-prop@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" - integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== - dependencies: - is-obj "^2.0.0" - dotenv@~10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" @@ -5218,11 +5427,28 @@ duplexer@^0.1.1: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== +duplexify@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" + integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== + dependencies: + end-of-stream "^1.4.1" + inherits "^2.0.3" + readable-stream "^3.1.1" + stream-shift "^1.0.0" + eastasianwidth@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== +ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -5305,31 +5531,6 @@ electron-installer-snap@^5.2.0: which "^2.0.1" yargs "^16.0.2" -electron-packager@^17.1.2: - version "17.1.2" - resolved "https://registry.yarnpkg.com/electron-packager/-/electron-packager-17.1.2.tgz#18030b28024d242b706d0a8a67ed4cd1a57311aa" - integrity sha512-XofXdikjYI7MVBcnXeoOvRR+yFFFHOLs3J7PF5KYQweigtgLshcH4W660PsvHr4lYZ03JBpLyEcUB8DzHZ+BNw== - dependencies: - "@electron/asar" "^3.2.1" - "@electron/get" "^2.0.0" - "@electron/notarize" "^1.2.3" - "@electron/osx-sign" "^1.0.5" - "@electron/universal" "^1.3.2" - cross-spawn-windows-exe "^1.2.0" - debug "^4.0.1" - extract-zip "^2.0.0" - filenamify "^4.1.0" - fs-extra "^11.1.0" - galactus "^1.0.0" - get-package-info "^1.0.0" - junk "^3.1.0" - parse-author "^2.0.0" - plist "^3.0.0" - rcedit "^3.0.1" - resolve "^1.1.6" - semver "^7.1.3" - yargs-parser "^21.1.1" - electron-to-chromium@^1.4.17: version "1.4.71" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz#17056914465da0890ce00351a3b946fd4cd51ff6" @@ -5350,30 +5551,32 @@ electron-windows-store@^2.1.0: multiline "^2.0.0" path-exists "^3.0.0" -electron-winstaller@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/electron-winstaller/-/electron-winstaller-5.0.0.tgz#0db968f34d498b16c69566a40848f562e70e7bcc" - integrity sha512-V+jFda7aVAm0htCG8Q95buPUpmXZW9ujh1HdhSlWY6y4QnJnw4TfrmxTlQWV4p2ioF/71JMI/1YF+/qbSICogA== +electron-winstaller@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/electron-winstaller/-/electron-winstaller-5.3.0.tgz#852aa6d6daf48e22ec30cfd5c287fd8253f110bc" + integrity sha512-ml77/OmeeLFFc+dk3YCwPQrl8rthwYcAea6mMZPFq7cGXlpWyRmmT0LY73XdCukPnevguXJFs+4Xu+aGHJwFDA== dependencies: - asar "^2.0.1" + "@electron/asar" "^3.2.1" debug "^4.1.1" fs-extra "^7.0.1" lodash.template "^4.2.2" temp "^0.9.0" + optionalDependencies: + "@electron/windows-sign" "^1.1.2" -electron-wix-msi@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/electron-wix-msi/-/electron-wix-msi-5.0.0.tgz#6899beabb59180fbe71dede79e9ae805779497a5" - integrity sha512-CfcakpocoGGtzXElHwiSqB5nSlscyZYPBDTj7s+kfw2jXby3Nzzso7vIA+6EiPebn704D4JyKaJ7O4GCY2h5KQ== +electron-wix-msi@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/electron-wix-msi/-/electron-wix-msi-5.1.3.tgz#ab85dc1145a7ce7ae7724ed3ca3f92c447988c9a" + integrity sha512-EYj1cm1nZoVHmIIx3o0aKt784lxdEpJnXbEnyypklUCnglqSb7ni+1xi1Vp/gtrGS/mzIxnWBT+x5fIfuDjhvA== dependencies: + "@electron/windows-sign" "^1.1.2" debug "^4.3.4" - fs-extra "^10.0.1" - klaw "^4.0.1" + fs-extra "^10.1.0" + klaw "^4.1.0" lodash "^4.17.21" - rcedit "^3.0.1" + rcedit "^4.0.1" rcinfo "^0.1.3" - semver "^7.3.5" - uuid "^8.3.2" + semver "^7.6.0" optionalDependencies: "@bitdisaster/exe-icon-extractor" "^1.0.10" @@ -5392,7 +5595,7 @@ encode-utf8@^1.0.3: resolved "https://registry.yarnpkg.com/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda" integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== -encodeurl@^1.0.2, encodeurl@~1.0.2: +encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= @@ -5411,10 +5614,10 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -enhanced-resolve@^5.10.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" - integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== +enhanced-resolve@^5.15.0: + version "5.15.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" + integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -5426,7 +5629,12 @@ enquirer@^2.3.5, enquirer@~2.3.6: dependencies: ansi-colors "^4.1.1" -entities@2.2.0, entities@^2.0.0: +ent@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA== + +entities@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== @@ -5538,10 +5746,10 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== -es-module-lexer@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== +es-module-lexer@^1.2.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz#41ea21b43908fe6a287ffcbe4300f790555331f5" + integrity sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w== es-set-tostringtag@^2.0.1: version "2.0.1" @@ -5569,12 +5777,13 @@ es-to-primitive@^1.2.1: is-symbol "^1.0.2" es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.62, es5-ext@~0.10.14: - version "0.10.62" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" - integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== + version "0.10.64" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714" + integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg== dependencies: es6-iterator "^2.0.3" es6-symbol "^3.1.3" + esniff "^2.0.1" next-tick "^1.1.0" es6-error@^4.1.1: @@ -5633,33 +5842,34 @@ es6-weak-map@^2.0.1: es6-iterator "^2.0.3" es6-symbol "^3.1.1" -esbuild@^0.16.14: - version "0.16.17" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.17.tgz#fc2c3914c57ee750635fee71b89f615f25065259" - integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg== +esbuild@^0.19.3: + version "0.19.11" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.11.tgz#4a02dca031e768b5556606e1b468fe72e3325d96" + integrity sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA== optionalDependencies: - "@esbuild/android-arm" "0.16.17" - "@esbuild/android-arm64" "0.16.17" - "@esbuild/android-x64" "0.16.17" - "@esbuild/darwin-arm64" "0.16.17" - "@esbuild/darwin-x64" "0.16.17" - "@esbuild/freebsd-arm64" "0.16.17" - "@esbuild/freebsd-x64" "0.16.17" - "@esbuild/linux-arm" "0.16.17" - "@esbuild/linux-arm64" "0.16.17" - "@esbuild/linux-ia32" "0.16.17" - "@esbuild/linux-loong64" "0.16.17" - "@esbuild/linux-mips64el" "0.16.17" - "@esbuild/linux-ppc64" "0.16.17" - "@esbuild/linux-riscv64" "0.16.17" - "@esbuild/linux-s390x" "0.16.17" - "@esbuild/linux-x64" "0.16.17" - "@esbuild/netbsd-x64" "0.16.17" - "@esbuild/openbsd-x64" "0.16.17" - "@esbuild/sunos-x64" "0.16.17" - "@esbuild/win32-arm64" "0.16.17" - "@esbuild/win32-ia32" "0.16.17" - "@esbuild/win32-x64" "0.16.17" + "@esbuild/aix-ppc64" "0.19.11" + "@esbuild/android-arm" "0.19.11" + "@esbuild/android-arm64" "0.19.11" + "@esbuild/android-x64" "0.19.11" + "@esbuild/darwin-arm64" "0.19.11" + "@esbuild/darwin-x64" "0.19.11" + "@esbuild/freebsd-arm64" "0.19.11" + "@esbuild/freebsd-x64" "0.19.11" + "@esbuild/linux-arm" "0.19.11" + "@esbuild/linux-arm64" "0.19.11" + "@esbuild/linux-ia32" "0.19.11" + "@esbuild/linux-loong64" "0.19.11" + "@esbuild/linux-mips64el" "0.19.11" + "@esbuild/linux-ppc64" "0.19.11" + "@esbuild/linux-riscv64" "0.19.11" + "@esbuild/linux-s390x" "0.19.11" + "@esbuild/linux-x64" "0.19.11" + "@esbuild/netbsd-x64" "0.19.11" + "@esbuild/openbsd-x64" "0.19.11" + "@esbuild/sunos-x64" "0.19.11" + "@esbuild/win32-arm64" "0.19.11" + "@esbuild/win32-ia32" "0.19.11" + "@esbuild/win32-x64" "0.19.11" escalade@^3.1.1: version "3.1.1" @@ -6063,6 +6273,16 @@ eslint@^8.41.0: strip-json-comments "^3.1.0" text-table "^0.2.0" +esniff@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308" + integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg== + dependencies: + d "^1.0.1" + es5-ext "^0.10.62" + event-emitter "^0.3.5" + type "^2.7.2" + espree@^7.3.0, espree@^7.3.1: version "7.3.1" resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" @@ -6095,7 +6315,7 @@ esprima@^4.0.0, esprima@^4.0.1: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.1, esquery@^1.4.0: +esquery@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== @@ -6149,16 +6369,41 @@ event-emitter@^0.3.5, event-emitter@~0.3.5: d "1" es5-ext "~0.10.14" +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + eventemitter3@^4.0.0, eventemitter3@^4.0.4: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@3.3.0, events@^3.2.0: +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + +events@3.3.0, events@^3.2.0, events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== +execa@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" + integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -6207,16 +6452,16 @@ express-ws@^5.0.2: ws "^7.4.6" express@^4.17.1, express@^4.17.3: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.1" + body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.5.0" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -6250,6 +6495,11 @@ ext@^1.1.2: dependencies: type "^2.7.2" +extend@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + external-editor@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" @@ -6335,10 +6585,19 @@ fast-printf@^1.6.9: dependencies: boolean "^3.1.4" -fast-xml-parser@3.19.0: - version "3.19.0" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz#cb637ec3f3999f51406dd8ff0e6fc4d83e520d01" - integrity sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg== +fast-xml-parser@4.2.5: + version "4.2.5" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz#a6747a09296a6cb34f2ae634019bf1738f3b421f" + integrity sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g== + dependencies: + strnum "^1.0.5" + +fast-xml-parser@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.2.tgz#761e641260706d6e13251c4ef8e3f5694d4b0d79" + integrity sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg== + dependencies: + strnum "^1.0.5" fastq@^1.6.0: version "1.13.0" @@ -6398,6 +6657,11 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" +file-url@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/file-url/-/file-url-3.0.0.tgz#247a586a746ce9f7a8ed05560290968afc262a77" + integrity sha512-g872QGsHexznxkIAdK8UiZRe7SkE6kvylShU4Nsj8NvfvZag7S0QuQ4IgvPDkk75HxgjIVDwycFTDAgIiO4nDA== + filelist@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" @@ -6511,9 +6775,9 @@ fmix@^0.1.0: imul "^1.0.0" follow-redirects@^1.0.0, follow-redirects@^1.15.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== for-each@^0.3.3: version "0.3.3" @@ -6522,6 +6786,14 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + fork-ts-checker-webpack-plugin@^7.2.13: version "7.2.13" resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.13.tgz#51ffd6a2f96f03ab64b92f8aedf305dbf3dee0f1" @@ -6540,6 +6812,15 @@ fork-ts-checker-webpack-plugin@^7.2.13: semver "^7.3.5" tapable "^2.2.1" +form-data@^2.5.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -6578,7 +6859,7 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@10.1.0, fs-extra@^10.0.1, fs-extra@^10.1.0: +fs-extra@10.1.0, fs-extra@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== @@ -6587,6 +6868,16 @@ fs-extra@10.1.0, fs-extra@^10.0.1, fs-extra@^10.1.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@9.1.0, fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" @@ -6605,6 +6896,15 @@ fs-extra@^11.1.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^11.1.1: + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^7.0.0, fs-extra@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -6623,16 +6923,6 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" @@ -6640,6 +6930,13 @@ fs-minipass@^2.0.0, fs-minipass@^2.1.0: dependencies: minipass "^3.0.0" +fs-minipass@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" + integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== + dependencies: + minipass "^7.0.3" + fs-monkey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" @@ -6667,6 +6964,11 @@ fsevents@~2.3.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== +fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -6734,22 +7036,54 @@ gauge@^4.0.0: signal-exit "^3.0.0" string-width "^4.2.3" strip-ansi "^6.0.1" - wide-align "^1.1.2" + wide-align "^1.1.2" + +gauge@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" + integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.3" + console-control-strings "^1.1.0" + has-unicode "^2.0.1" + signal-exit "^3.0.7" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.5" -gauge@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" - integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== +gauge@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-5.0.1.tgz#1efc801b8ff076b86ef3e9a7a280a975df572112" + integrity sha512-CmykPMJGuNan/3S4kZOpvvPYSNqSHANiWnh9XcMU2pSjtBfF0XzZ2p1bFAxTbnFxyBuPxQYHhzwaoOmUdqzvxQ== dependencies: aproba "^1.0.3 || ^2.0.0" color-support "^1.1.3" console-control-strings "^1.1.0" has-unicode "^2.0.1" - signal-exit "^3.0.7" + signal-exit "^4.0.1" string-width "^4.2.3" strip-ansi "^6.0.1" wide-align "^1.1.5" +gaxios@^6.0.0, gaxios@^6.0.2: + version "6.1.1" + resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.1.1.tgz#549629f86a13e756b900f9ff7c94624670102938" + integrity sha512-bw8smrX+XlAoo9o1JAksBwX+hi/RG15J+NTSxmNPIclKC3ZVK6C2afwY8OSdRvOK0+ZLecUJYtj2MmjOt3Dm0w== + dependencies: + extend "^3.0.2" + https-proxy-agent "^7.0.1" + is-stream "^2.0.0" + node-fetch "^2.6.9" + +gcp-metadata@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-6.0.0.tgz#2ae12008bef8caa8726cba31fd0a641ebad5fb56" + integrity sha512-Ozxyi23/1Ar51wjUT2RDklK+3HxqDr8TLBNK8rBBFQ7T85iIGnXnVusauj06QyqCXRFZig8LZC+TUddWbndlpQ== + dependencies: + gaxios "^6.0.0" + json-bigint "^1.0.0" + generate-changelog@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/generate-changelog/-/generate-changelog-1.8.0.tgz#1d788cdef5a13a649da7eb2a1f3b02674850e4a8" @@ -6842,7 +7176,7 @@ get-pkg-repo@^4.0.0: through2 "^2.0.0" yargs "^16.2.0" -get-port@^5.1.1: +get-port@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== @@ -6857,6 +7191,11 @@ get-stdin@~9.0.0: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575" integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA== +get-stream@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" + integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== + get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -6919,7 +7258,7 @@ git-up@^7.0.0: is-ssh "^1.4.0" parse-url "^8.1.0" -git-url-parse@^13.1.0: +git-url-parse@13.1.0: version "13.1.0" resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-13.1.0.tgz#07e136b5baa08d59fabdf0e33170de425adf07b4" integrity sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA== @@ -6938,7 +7277,7 @@ github-url-from-git@^1.4.0: resolved "https://registry.yarnpkg.com/github-url-from-git/-/github-url-from-git-1.5.0.tgz#f985fedcc0a9aa579dc88d7aff068d55cc6251a0" integrity sha1-+YX+3MCpqledyI16/waNVcxiUaA= -glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@5.1.2, glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -6992,6 +7331,17 @@ glob@8.0.3, glob@^8.0.1, glob@~8.0.3: minimatch "^5.0.1" once "^1.3.0" +glob@^10.2.2: + version "10.3.10" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" + glob@^7.1.1, glob@^7.1.3, glob@^7.1.6: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -7057,16 +7407,6 @@ global-prefix@^1.0.1: is-windows "^1.0.1" which "^1.2.14" -global-tunnel-ng@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" - integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== - dependencies: - encodeurl "^1.0.2" - lodash "^4.17.10" - npm-conf "^1.1.3" - tunnel "^0.0.6" - globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -7100,7 +7440,7 @@ globalthis@^1.0.3: dependencies: define-properties "^1.1.3" -globby@^11.0.2, globby@^11.0.3, globby@^11.0.4: +globby@11.1.0, globby@^11.0.1, globby@^11.0.3, globby@^11.0.4: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -7112,6 +7452,18 @@ globby@^11.0.2, globby@^11.0.3, globby@^11.0.4: merge2 "^1.4.1" slash "^3.0.0" +google-auth-library@^9.0.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.2.0.tgz#16c14a775b3a9a1be53b7428ddbd9d2c3599836b" + integrity sha512-1oV3p0JhNEhVbj26eF3FAJcv9MXXQt4S0wcvKZaDbl4oHq5V3UJoSbsGZGQNcjoCdhW4kDSwOs11wLlHog3fgQ== + dependencies: + base64-js "^1.3.0" + ecdsa-sig-formatter "^1.0.11" + gaxios "^6.0.0" + gcp-metadata "^6.0.0" + gtoken "^7.0.0" + jws "^4.0.0" + gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -7136,7 +7488,7 @@ got@^11.7.0, got@^11.8.2, got@^11.8.5: p-cancelable "^2.0.0" responselike "^2.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@4.2.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== @@ -7151,6 +7503,14 @@ growl@1.10.5: resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== +gtoken@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-7.0.1.tgz#b64bd01d88268ea3a3572c9076a85d1c48f1a455" + integrity sha512-KcFVtoP1CVFtQu0aSk3AyAt2og66PFhZAlkUOuWKwzMLoulHXG5W5wE5xAnHb+yl3/wEFoqGW7/cDGMU8igDZQ== + dependencies: + gaxios "^6.0.0" + jws "^4.0.0" + handle-thing@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" @@ -7212,7 +7572,7 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has-unicode@^2.0.1: +has-unicode@2.0.1, has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== @@ -7262,6 +7622,13 @@ hosted-git-info@^5.0.0: dependencies: lru-cache "^7.5.1" +hosted-git-info@^6.0.0, hosted-git-info@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-6.1.1.tgz#629442c7889a69c05de604d52996b74fe6f26d58" + integrity sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w== + dependencies: + lru-cache "^7.5.1" + hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" @@ -7321,7 +7688,7 @@ htmlparser2@^8.0.1: domutils "^3.0.1" entities "^4.3.0" -http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: +http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== @@ -7402,6 +7769,14 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" +https-proxy-agent@^7.0.1: + version "7.0.2" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" + integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA== + dependencies: + agent-base "^7.0.2" + debug "4" + human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -7445,7 +7820,7 @@ iconv-lite@^0.6.2: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -ieee754@^1.1.13, ieee754@^1.1.4: +ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -7457,6 +7832,13 @@ ignore-walk@^5.0.1: dependencies: minimatch "^5.0.1" +ignore-walk@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.3.tgz#0fcdb6decaccda35e308a7b0948645dd9523b7bb" + integrity sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA== + dependencies: + minimatch "^9.0.0" + ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" @@ -7541,7 +7923,7 @@ ini@~3.0.0: resolved "https://registry.yarnpkg.com/ini/-/ini-3.0.1.tgz#c76ec81007875bc44d544ff7a11a55d12294102d" integrity sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ== -init-package-json@^3.0.2: +init-package-json@3.0.2, init-package-json@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-3.0.2.tgz#f5bc9bac93f2bdc005778bc2271be642fecfcd69" integrity sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A== @@ -7554,6 +7936,27 @@ init-package-json@^3.0.2: validate-npm-package-license "^3.0.4" validate-npm-package-name "^4.0.0" +inquirer@8.2.4: + version "8.2.4" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4" + integrity sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^7.0.0" + inquirer@^6.2.0: version "6.5.2" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" @@ -7618,9 +8021,9 @@ interpret@^3.1.1: integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== ip@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" - integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.1.tgz#e8f3595d33a3ea66490204234b77636965307105" + integrity sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ== ipaddr.js@1.9.1: version "1.9.1" @@ -7678,7 +8081,7 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-ci@^2.0.0: +is-ci@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== @@ -7798,7 +8201,12 @@ is-object@~1.0.1: resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== -is-path-inside@^3.0.3: +is-path-cwd@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-inside@^3.0.2, is-path-inside@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== @@ -7808,7 +8216,7 @@ is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== -is-plain-obj@^2.0.0, is-plain-obj@^2.1.0: +is-plain-obj@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== @@ -7857,6 +8265,11 @@ is-ssh@^1.4.0: dependencies: protocols "^2.0.1" +is-stream@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -7904,11 +8317,6 @@ is-typed-array@^1.1.10, is-typed-array@^1.1.9: gopd "^1.0.1" has-tostringtag "^1.0.0" -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" @@ -7963,6 +8371,15 @@ isstream@0.1.x: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + jake@^10.8.5: version "10.8.5" resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" @@ -8012,6 +8429,13 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +json-bigint@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" + integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== + dependencies: + bignumber.js "^9.0.0" + json-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" @@ -8027,6 +8451,11 @@ json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== +json-parse-even-better-errors@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz#02bb29fb5da90b5444581749c22cedd3597c6cb0" + integrity sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg== + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -8059,7 +8488,7 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.2: +json5@^2.1.2, json5@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -8118,20 +8547,37 @@ just-diff-apply@^5.2.0: resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.4.1.tgz#1debed059ad009863b4db0e8d8f333d743cdd83b" integrity sha512-AAV5Jw7tsniWwih8Ly3fXxEZ06y+6p5TwQMsw0dzZ/wPKilzyDgdAnL0Ug4NNIquPUOh1vfFWEHbmXUqM5+o8g== -just-diff@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.1.1.tgz#8da6414342a5ed6d02ccd64f5586cbbed3146202" - integrity sha512-u8HXJ3HlNrTzY7zrYYKjNEfBlyjqhdBkoyTVdjtn7p02RJD5NvR8rIClzeGA7t+UYP1/7eAkWNLU0+P3QrEqKQ== +just-diff@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285" + integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA== just-extend@^4.0.2: version "4.2.1" resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744" integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg== +jwa@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.0.tgz#a7e9c3f29dae94027ebcaf49975c9345593410fc" + integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4" + integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg== + dependencies: + jwa "^2.0.0" + safe-buffer "^5.0.1" + keyv@*, keyv@^4.0.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.0.tgz#dbce9ade79610b6e641a9a65f2f6499ba06b9bc6" - integrity sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA== + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" @@ -8140,44 +8586,97 @@ kind-of@^6.0.2, kind-of@^6.0.3: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -klaw@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-4.0.1.tgz#8dc6f5723f05894e8e931b516a8ff15c2976d368" - integrity sha512-pgsE40/SvC7st04AHiISNewaIMUbY5V/K8b21ekiPiFoYs/EYSdsGa+FJArB1d441uq4Q8zZyIxvAzkGNlBdRw== +klaw@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-4.1.0.tgz#5df608067d8cb62bbfb24374f8e5d956323338f3" + integrity sha512-1zGZ9MF9H22UnkpVeuaGKOjfA2t6WrfdrJmGjy16ykcjnKQDmHVX+KI477rpbGevz/5FD4MC3xf1oxylBgcaQw== kleur@^4.0.3: version "4.1.5" resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== -lerna@^6.0.1: - version "6.0.3" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-6.0.3.tgz#0364eadeedbdf5ade375d8a6f0a87bb9003f6019" - integrity sha512-DzRCTZGoDI502daViNK1Ha+HPAVvTp72xshDOQ6o6SWCDTvnxFI3hGF6CBqGWnOoPwEOlQowHEIcPw5PjoMz8A== - dependencies: - "@lerna/add" "6.0.3" - "@lerna/bootstrap" "6.0.3" - "@lerna/changed" "6.0.3" - "@lerna/clean" "6.0.3" - "@lerna/cli" "6.0.3" - "@lerna/command" "6.0.3" - "@lerna/create" "6.0.3" - "@lerna/diff" "6.0.3" - "@lerna/exec" "6.0.3" - "@lerna/import" "6.0.3" - "@lerna/info" "6.0.3" - "@lerna/init" "6.0.3" - "@lerna/link" "6.0.3" - "@lerna/list" "6.0.3" - "@lerna/publish" "6.0.3" - "@lerna/run" "6.0.3" - "@lerna/version" "6.0.3" - "@nrwl/devkit" ">=14.8.6 < 16" +lerna@^6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-6.6.2.tgz#ad921f913aca4e7307123a598768b6f15ca5804f" + integrity sha512-W4qrGhcdutkRdHEaDf9eqp7u4JvI+1TwFy5woX6OI8WPe4PYBdxuILAsvhp614fUG41rKSGDKlOh+AWzdSidTg== + dependencies: + "@lerna/child-process" "6.6.2" + "@lerna/create" "6.6.2" + "@lerna/legacy-package-management" "6.6.2" + "@npmcli/arborist" "6.2.3" + "@npmcli/run-script" "4.1.7" + "@nrwl/devkit" ">=15.5.2 < 16" + "@octokit/plugin-enterprise-rest" "6.0.1" + "@octokit/rest" "19.0.3" + byte-size "7.0.0" + chalk "4.1.0" + clone-deep "4.0.1" + cmd-shim "5.0.0" + columnify "1.6.0" + config-chain "1.1.12" + conventional-changelog-angular "5.0.12" + conventional-changelog-core "4.2.4" + conventional-recommended-bump "6.1.0" + cosmiconfig "7.0.0" + dedent "0.7.0" + dot-prop "6.0.1" + envinfo "^7.7.4" + execa "5.0.0" + fs-extra "9.1.0" + get-port "5.1.1" + get-stream "6.0.0" + git-url-parse "13.1.0" + glob-parent "5.1.2" + globby "11.1.0" + graceful-fs "4.2.10" + has-unicode "2.0.1" import-local "^3.0.2" + init-package-json "3.0.2" inquirer "^8.2.4" + is-ci "2.0.0" + is-stream "2.0.0" + js-yaml "^4.1.0" + libnpmaccess "^6.0.3" + libnpmpublish "7.1.4" + load-json-file "6.2.0" + make-dir "3.1.0" + minimatch "3.0.5" + multimatch "5.0.0" + node-fetch "2.6.7" + npm-package-arg "8.1.1" + npm-packlist "5.1.1" + npm-registry-fetch "^14.0.3" npmlog "^6.0.2" - nx ">=14.8.6 < 16" + nx ">=15.5.2 < 16" + p-map "4.0.0" + p-map-series "2.1.0" + p-pipe "3.1.0" + p-queue "6.6.2" + p-reduce "2.1.0" + p-waterfall "2.1.1" + pacote "15.1.1" + pify "5.0.0" + read-cmd-shim "3.0.0" + read-package-json "5.0.1" + resolve-from "5.0.0" + rimraf "^4.4.1" + semver "^7.3.8" + signal-exit "3.0.7" + slash "3.0.0" + ssri "9.0.1" + strong-log-transformer "2.1.0" + tar "6.1.11" + temp-dir "1.0.0" typescript "^3 || ^4" + upath "^2.0.1" + uuid "8.3.2" + validate-npm-package-license "3.0.4" + validate-npm-package-name "4.0.0" + write-file-atomic "4.0.1" + write-pkg "4.0.0" + yargs "16.2.0" + yargs-parser "20.2.4" levn@^0.4.1: version "0.4.1" @@ -8197,16 +8696,19 @@ libnpmaccess@^6.0.3: npm-package-arg "^9.0.1" npm-registry-fetch "^13.0.0" -libnpmpublish@^6.0.4: - version "6.0.5" - resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-6.0.5.tgz#5a894f3de2e267d62f86be2a508e362599b5a4b1" - integrity sha512-LUR08JKSviZiqrYTDfywvtnsnxr+tOvBU0BF8H+9frt7HMvc6Qn6F8Ubm72g5hDTHbq8qupKfDvDAln2TVPvFg== - dependencies: - normalize-package-data "^4.0.0" - npm-package-arg "^9.0.1" - npm-registry-fetch "^13.0.0" +libnpmpublish@7.1.4: + version "7.1.4" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-7.1.4.tgz#a0d138e00e52a0c71ffc82273acf0082fc2dfb36" + integrity sha512-mMntrhVwut5prP4rJ228eEbEyvIzLWhqFuY90j5QeXBCTT2pWSMno7Yo2S2qplPUr02zPurGH4heGLZ+wORczg== + dependencies: + ci-info "^3.6.1" + normalize-package-data "^5.0.0" + npm-package-arg "^10.1.0" + npm-registry-fetch "^14.0.3" + proc-log "^3.0.0" semver "^7.3.7" - ssri "^9.0.0" + sigstore "^1.4.0" + ssri "^10.0.1" lilconfig@2.0.5: version "2.0.5" @@ -8223,6 +8725,11 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +lines-and-columns@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.4.tgz#d00318855905d2660d8c0822e3f5a4715855fc42" + integrity sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A== + linkify-it@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-4.0.1.tgz#01f1d5e508190d06669982ba31a7d9f56a5751ec" @@ -8264,19 +8771,27 @@ listr2@^4.0.5: through "^2.3.8" wrap-ansi "^7.0.0" -listr2@^5.0.3: - version "5.0.5" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.5.tgz#4651a940d12b984abecfae4450e40edd5695f808" - integrity sha512-DpBel6fczu7oQKTXMekeprc0o3XDgGMkD7JNYyX+X0xbwK+xgrx9dcyKoXKqpLSUvAWfmoePS7kavniOcq3r4w== +listr2@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-7.0.2.tgz#3aa3e1549dfaf3c57ab5eeaba754da3b87f33063" + integrity sha512-rJysbR9GKIalhTbVL2tYbF2hVyDnrf7pFUZBwjPaMIdadYHmeT+EVi/Bu3qd7ETQPahTotg2WRCatXwRBW554g== dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.19" - log-update "^4.0.0" - p-map "^4.0.0" + cli-truncate "^3.1.0" + colorette "^2.0.20" + eventemitter3 "^5.0.1" + log-update "^5.0.1" rfdc "^1.3.0" - rxjs "^7.5.6" - through "^2.3.8" - wrap-ansi "^7.0.0" + wrap-ansi "^8.1.0" + +load-json-file@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-6.2.0.tgz#5c7770b42cafa97074ca2848707c61662f4251a1" + integrity sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ== + dependencies: + graceful-fs "^4.1.15" + parse-json "^5.0.0" + strip-bom "^4.0.0" + type-fest "^0.6.0" load-json-file@^2.0.0: version "2.0.0" @@ -8309,16 +8824,6 @@ load-json-file@^5.2.0: strip-bom "^3.0.0" type-fest "^0.3.0" -load-json-file@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-6.2.0.tgz#5c7770b42cafa97074ca2848707c61662f4251a1" - integrity sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ== - dependencies: - graceful-fs "^4.1.15" - parse-json "^5.0.0" - strip-bom "^4.0.0" - type-fest "^0.6.0" - loader-runner@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" @@ -8409,7 +8914,7 @@ lodash.truncate@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== -lodash@^4.17.10, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: +lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -8432,6 +8937,17 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" +log-update@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-5.0.1.tgz#9e928bf70cb183c1f0c9e91d9e6b7115d597ce09" + integrity sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw== + dependencies: + ansi-escapes "^5.0.0" + cli-cursor "^4.0.0" + slice-ansi "^5.0.0" + strip-ansi "^7.0.1" + wrap-ansi "^8.0.1" + loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -8475,6 +8991,11 @@ lru-cache@^9.1.1: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.1.2.tgz#255fdbc14b75589d6d0e73644ca167a8db506835" integrity sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ== +"lru-cache@^9.1.1 || ^10.0.0": + version "10.1.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" + integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== + lunr@^2.3.9: version "2.3.9" resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" @@ -8496,6 +9017,13 @@ macos-alias@^0.2.11, macos-alias@~0.2.5: dependencies: nan "^2.4.0" +make-dir@3.1.0, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -8504,13 +9032,6 @@ make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - make-error@^1.1.1: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" @@ -8538,6 +9059,27 @@ make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6: socks-proxy-agent "^7.0.0" ssri "^9.0.0" +make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1, make-fetch-happen@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz#85ceb98079584a9523d4bf71d32996e7e208549f" + integrity sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w== + dependencies: + agentkeepalive "^4.2.1" + cacache "^17.0.0" + http-cache-semantics "^4.1.1" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^7.7.1" + minipass "^5.0.0" + minipass-fetch "^3.0.0" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + promise-retry "^2.0.1" + socks-proxy-agent "^7.0.0" + ssri "^10.0.0" + make-plural@^7.0.0: version "7.2.0" resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-7.2.0.tgz#93174b1419672a48a2340db6c1d3fb217530c684" @@ -8914,7 +9456,7 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@^2.1.25, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.0.8, mime-types@^2.1.12, mime-types@^2.1.25, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -8926,6 +9468,11 @@ mime@1.6.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mime@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" + integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== + mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" @@ -8991,6 +9538,13 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^6.1.6: + version "6.2.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-6.2.0.tgz#2b70fd13294178c69c04dfc05aebdb97a4e79e42" + integrity sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg== + dependencies: + brace-expansion "^2.0.1" + minimatch@^8.0.2: version "8.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-8.0.4.tgz#847c1b25c014d4e9a7f68aaf63dedd668a626229" @@ -8998,6 +9552,13 @@ minimatch@^8.0.2: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + minimatch@~5.1.2: version "5.1.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" @@ -9042,6 +9603,17 @@ minipass-fetch@^2.0.3: optionalDependencies: encoding "^0.1.13" +minipass-fetch@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7" + integrity sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg== + dependencies: + minipass "^7.0.3" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + minipass-flush@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" @@ -9085,16 +9657,26 @@ minipass@^3.1.1: dependencies: yallist "^4.0.0" -minipass@^4.2.4: +minipass@^4.0.0, minipass@^4.2.4: version "4.2.8" resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + "minipass@^5.0.0 || ^6.0.2": version "6.0.2" resolved "https://registry.yarnpkg.com/minipass/-/minipass-6.0.2.tgz#542844b6c4ce95b202c0995b0a471f1229de4c81" integrity sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.3: + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== + minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" @@ -9220,7 +9802,7 @@ multiline@^2.0.0: dependencies: strip-indent "^2.0.0" -multimatch@^5.0.0: +multimatch@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6" integrity sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA== @@ -9256,19 +9838,19 @@ mute-stream@0.0.8, mute-stream@~0.0.4: integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== nan@^2.4.0: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + version "2.18.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554" + integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w== nanoid@3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== -nanoid@^3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" - integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== natural-compare@^1.4.0: version "1.4.0" @@ -9345,7 +9927,7 @@ node-dir@^0.1.17: dependencies: minimatch "^3.0.2" -node-fetch@^2.6.1, node-fetch@^2.6.7: +node-fetch@2.6.7, node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== @@ -9409,6 +9991,13 @@ nopt@^6.0.0: dependencies: abbrev "^1.0.0" +nopt@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.0.tgz#067378c68116f602f552876194fd11f1292503d7" + integrity sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA== + dependencies: + abbrev "^2.0.0" + normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -9439,6 +10028,16 @@ normalize-package-data@^4.0.0: semver "^7.3.5" validate-npm-package-license "^3.0.4" +normalize-package-data@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-5.0.0.tgz#abcb8d7e724c40d88462b84982f7cbf6859b4588" + integrity sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q== + dependencies: + hosted-git-info "^6.0.0" + is-core-module "^2.8.1" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -9449,32 +10048,24 @@ normalize-url@^6.0.1: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -npm-bundled@^1.1.1: +npm-bundled@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== dependencies: npm-normalize-package-bin "^1.0.1" -npm-bundled@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-2.0.1.tgz#94113f7eb342cd7a67de1e789f896b04d2c600f4" - integrity sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw== - dependencies: - npm-normalize-package-bin "^2.0.0" - -npm-conf@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" - integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== +npm-bundled@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-3.0.0.tgz#7e8e2f8bb26b794265028491be60321a25a39db7" + integrity sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ== dependencies: - config-chain "^1.1.11" - pify "^3.0.0" + npm-normalize-package-bin "^3.0.0" -npm-install-checks@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-5.0.0.tgz#5ff27d209a4e3542b8ac6b0c1db6063506248234" - integrity sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA== +npm-install-checks@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe" + integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw== dependencies: semver "^7.1.1" @@ -9488,6 +10079,11 @@ npm-normalize-package-bin@^2.0.0: resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz#9447a1adaaf89d8ad0abe24c6c84ad614a675fff" integrity sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ== +npm-normalize-package-bin@^3.0.0, npm-normalize-package-bin@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" + integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== + npm-package-arg@8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.1.tgz#00ebf16ac395c63318e67ce66780a06db6df1b04" @@ -9497,7 +10093,17 @@ npm-package-arg@8.1.1: semver "^7.0.0" validate-npm-package-name "^3.0.0" -npm-package-arg@^9.0.0, npm-package-arg@^9.0.1: +npm-package-arg@^10.0.0, npm-package-arg@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-10.1.0.tgz#827d1260a683806685d17193073cc152d3c7e9b1" + integrity sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA== + dependencies: + hosted-git-info "^6.0.0" + proc-log "^3.0.0" + semver "^7.3.5" + validate-npm-package-name "^5.0.0" + +npm-package-arg@^9.0.1: version "9.1.2" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-9.1.2.tgz#fc8acecb00235f42270dda446f36926ddd9ac2bc" integrity sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg== @@ -9507,27 +10113,47 @@ npm-package-arg@^9.0.0, npm-package-arg@^9.0.1: semver "^7.3.5" validate-npm-package-name "^4.0.0" -npm-packlist@^5.1.0, npm-packlist@^5.1.1: - version "5.1.3" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.3.tgz#69d253e6fd664b9058b85005905012e00e69274b" - integrity sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg== +npm-packlist@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.1.tgz#79bcaf22a26b6c30aa4dd66b976d69cc286800e0" + integrity sha512-UfpSvQ5YKwctmodvPPkK6Fwk603aoVsf8AEbmVKAEECrfvL8SSe1A2YIwrJ6xmTHAITKPwwZsWo7WwEbNk0kxw== dependencies: glob "^8.0.1" ignore-walk "^5.0.1" - npm-bundled "^2.0.0" - npm-normalize-package-bin "^2.0.0" + npm-bundled "^1.1.2" + npm-normalize-package-bin "^1.0.1" -npm-pick-manifest@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-7.0.2.tgz#1d372b4e7ea7c6712316c0e99388a73ed3496e84" - integrity sha512-gk37SyRmlIjvTfcYl6RzDbSmS9Y4TOBXfsPnoYqTHARNgWbyDiCSMLUpmALDj4jjcTZpURiEfsSHJj9k7EV4Rw== +npm-packlist@^7.0.0: + version "7.0.4" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-7.0.4.tgz#033bf74110eb74daf2910dc75144411999c5ff32" + integrity sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q== dependencies: - npm-install-checks "^5.0.0" - npm-normalize-package-bin "^2.0.0" - npm-package-arg "^9.0.0" + ignore-walk "^6.0.0" + +npm-pick-manifest@^8.0.0, npm-pick-manifest@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz#2159778d9c7360420c925c1a2287b5a884c713aa" + integrity sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg== + dependencies: + npm-install-checks "^6.0.0" + npm-normalize-package-bin "^3.0.0" + npm-package-arg "^10.0.0" semver "^7.3.5" -npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1, npm-registry-fetch@^13.3.0: +npm-registry-fetch@14.0.3: + version "14.0.3" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz#8545e321c2b36d2c6fe6e009e77e9f0e527f547b" + integrity sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA== + dependencies: + make-fetch-happen "^11.0.0" + minipass "^4.0.0" + minipass-fetch "^3.0.0" + minipass-json-stream "^1.0.1" + minizlib "^2.1.2" + npm-package-arg "^10.0.0" + proc-log "^3.0.0" + +npm-registry-fetch@^13.0.0: version "13.3.1" resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz#bb078b5fa6c52774116ae501ba1af2a33166af7e" integrity sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw== @@ -9540,6 +10166,19 @@ npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1, npm-registry-fetch@^13.3 npm-package-arg "^9.0.1" proc-log "^2.0.0" +npm-registry-fetch@^14.0.0, npm-registry-fetch@^14.0.3: + version "14.0.5" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz#fe7169957ba4986a4853a650278ee02e568d115d" + integrity sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA== + dependencies: + make-fetch-happen "^11.0.0" + minipass "^5.0.0" + minipass-fetch "^3.0.0" + minipass-json-stream "^1.0.1" + minizlib "^2.1.2" + npm-package-arg "^10.0.0" + proc-log "^3.0.0" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -9554,6 +10193,16 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" +npmlog@6.0.2, npmlog@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" + integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== + dependencies: + are-we-there-yet "^3.0.0" + console-control-strings "^1.1.0" + gauge "^4.0.3" + set-blocking "^2.0.0" + npmlog@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" @@ -9574,14 +10223,14 @@ npmlog@^6.0.0: gauge "^4.0.0" set-blocking "^2.0.0" -npmlog@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" - integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== +npmlog@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-7.0.1.tgz#7372151a01ccb095c47d8bf1d0771a4ff1f53ac8" + integrity sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg== dependencies: - are-we-there-yet "^3.0.0" + are-we-there-yet "^4.0.0" console-control-strings "^1.1.0" - gauge "^4.0.3" + gauge "^5.0.0" set-blocking "^2.0.0" nth-check@^2.0.1: @@ -9591,20 +10240,19 @@ nth-check@^2.0.1: dependencies: boolbase "^1.0.0" -nx@15.0.13, "nx@>=14.8.6 < 16": - version "15.0.13" - resolved "https://registry.yarnpkg.com/nx/-/nx-15.0.13.tgz#0ea00f2a7c3d31085014a1de40fa101f4b0307b7" - integrity sha512-5mJGWz91B9/sxzLjXdD+pmZTel54NeNNxFDis8OhtGDn6eRZ25qWsZNDgzqIDtwKn3c9gThAMHU4XH2OTgWUnA== +nx@15.9.7, "nx@>=15.5.2 < 16": + version "15.9.7" + resolved "https://registry.yarnpkg.com/nx/-/nx-15.9.7.tgz#f0e713cedb8637a517d9c4795c99afec4959a1b6" + integrity sha512-1qlEeDjX9OKZEryC8i4bA+twNg+lB5RKrozlNwWx/lLJHqWPUfvUTvxh+uxlPYL9KzVReQjUuxMLFMsHNqWUrA== dependencies: - "@nrwl/cli" "15.0.13" - "@nrwl/tao" "15.0.13" + "@nrwl/cli" "15.9.7" + "@nrwl/tao" "15.9.7" "@parcel/watcher" "2.0.4" "@yarnpkg/lockfile" "^1.1.0" - "@yarnpkg/parsers" "^3.0.0-rc.18" + "@yarnpkg/parsers" "3.0.0-rc.46" "@zkochan/js-yaml" "0.0.6" axios "^1.0.0" - chalk "4.1.0" - chokidar "^3.5.1" + chalk "^4.1.0" cli-cursor "3.1.0" cli-spinners "2.6.1" cliui "^7.0.2" @@ -9613,24 +10261,35 @@ nx@15.0.13, "nx@>=14.8.6 < 16": fast-glob "3.2.7" figures "3.2.0" flat "^5.0.2" - fs-extra "^10.1.0" + fs-extra "^11.1.0" glob "7.1.4" ignore "^5.0.4" js-yaml "4.1.0" jsonc-parser "3.2.0" + lines-and-columns "~2.0.3" minimatch "3.0.5" npm-run-path "^4.0.1" open "^8.4.0" - semver "7.3.4" + semver "7.5.4" string-width "^4.2.3" strong-log-transformer "^2.1.0" tar-stream "~2.2.0" tmp "~0.2.1" - tsconfig-paths "^3.9.0" + tsconfig-paths "^4.1.2" tslib "^2.3.0" v8-compile-cache "2.3.0" yargs "^17.6.2" yargs-parser "21.1.1" + optionalDependencies: + "@nrwl/nx-darwin-arm64" "15.9.7" + "@nrwl/nx-darwin-x64" "15.9.7" + "@nrwl/nx-linux-arm-gnueabihf" "15.9.7" + "@nrwl/nx-linux-arm64-gnu" "15.9.7" + "@nrwl/nx-linux-arm64-musl" "15.9.7" + "@nrwl/nx-linux-x64-gnu" "15.9.7" + "@nrwl/nx-linux-x64-musl" "15.9.7" + "@nrwl/nx-win32-arm64-msvc" "15.9.7" + "@nrwl/nx-win32-x64-msvc" "15.9.7" object-assign@^4.1.1: version "4.1.1" @@ -9829,7 +10488,7 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.2: +p-limit@^3.0.1, p-limit@^3.0.2, "p-limit@^3.1.0 ": version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== @@ -9864,24 +10523,24 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" -p-map-series@^2.1.0: +p-map-series@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-2.1.0.tgz#7560d4c452d9da0c07e692fdbfe6e2c81a2a91f2" integrity sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q== -p-map@^4.0.0: +p-map@4.0.0, p-map@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" -p-pipe@^3.1.0: +p-pipe@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-3.1.0.tgz#48b57c922aa2e1af6a6404cb7c6bf0eb9cc8e60e" integrity sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw== -p-queue@^6.6.2: +p-queue@6.6.2: version "6.6.2" resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== @@ -9889,7 +10548,7 @@ p-queue@^6.6.2: eventemitter3 "^4.0.4" p-timeout "^3.2.0" -p-reduce@^2.0.0, p-reduce@^2.1.0: +p-reduce@2.1.0, p-reduce@^2.0.0, p-reduce@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== @@ -9919,38 +10578,59 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -p-waterfall@^2.1.1: +p-waterfall@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/p-waterfall/-/p-waterfall-2.1.1.tgz#63153a774f472ccdc4eb281cdb2967fcf158b2ee" integrity sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw== dependencies: p-reduce "^2.0.0" -pacote@^13.0.3, pacote@^13.6.1: - version "13.6.2" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-13.6.2.tgz#0d444ba3618ab3e5cd330b451c22967bbd0ca48a" - integrity sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg== - dependencies: - "@npmcli/git" "^3.0.0" - "@npmcli/installed-package-contents" "^1.0.7" - "@npmcli/promise-spawn" "^3.0.0" - "@npmcli/run-script" "^4.1.0" - cacache "^16.0.0" - chownr "^2.0.0" - fs-minipass "^2.1.0" - infer-owner "^1.0.4" - minipass "^3.1.6" - mkdirp "^1.0.4" - npm-package-arg "^9.0.0" - npm-packlist "^5.1.0" - npm-pick-manifest "^7.0.0" - npm-registry-fetch "^13.0.1" - proc-log "^2.0.0" +pacote@15.1.1: + version "15.1.1" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-15.1.1.tgz#94d8c6e0605e04d427610b3aacb0357073978348" + integrity sha512-eeqEe77QrA6auZxNHIp+1TzHQ0HBKf5V6c8zcaYZ134EJe1lCi+fjXATkNiEEfbG+e50nu02GLvUtmZcGOYabQ== + dependencies: + "@npmcli/git" "^4.0.0" + "@npmcli/installed-package-contents" "^2.0.1" + "@npmcli/promise-spawn" "^6.0.1" + "@npmcli/run-script" "^6.0.0" + cacache "^17.0.0" + fs-minipass "^3.0.0" + minipass "^4.0.0" + npm-package-arg "^10.0.0" + npm-packlist "^7.0.0" + npm-pick-manifest "^8.0.0" + npm-registry-fetch "^14.0.0" + proc-log "^3.0.0" + promise-retry "^2.0.1" + read-package-json "^6.0.0" + read-package-json-fast "^3.0.0" + sigstore "^1.0.0" + ssri "^10.0.0" + tar "^6.1.11" + +pacote@^15.0.0, pacote@^15.0.8: + version "15.2.0" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-15.2.0.tgz#0f0dfcc3e60c7b39121b2ac612bf8596e95344d3" + integrity sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA== + dependencies: + "@npmcli/git" "^4.0.0" + "@npmcli/installed-package-contents" "^2.0.1" + "@npmcli/promise-spawn" "^6.0.1" + "@npmcli/run-script" "^6.0.0" + cacache "^17.0.0" + fs-minipass "^3.0.0" + minipass "^5.0.0" + npm-package-arg "^10.0.0" + npm-packlist "^7.0.0" + npm-pick-manifest "^8.0.0" + npm-registry-fetch "^14.0.0" + proc-log "^3.0.0" promise-retry "^2.0.1" - read-package-json "^5.0.0" - read-package-json-fast "^2.0.3" - rimraf "^3.0.2" - ssri "^9.0.0" + read-package-json "^6.0.0" + read-package-json-fast "^3.0.0" + sigstore "^1.3.0" + ssri "^10.0.0" tar "^6.1.11" param-case@^3.0.4: @@ -9982,13 +10662,13 @@ parse-color@^1.0.0: dependencies: color-convert "~0.5.0" -parse-conflict-json@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz#3d05bc8ffe07d39600dc6436c6aefe382033d323" - integrity sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA== +parse-conflict-json@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz#67dc55312781e62aa2ddb91452c7606d1969960c" + integrity sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw== dependencies: - json-parse-even-better-errors "^2.3.1" - just-diff "^5.0.1" + json-parse-even-better-errors "^3.0.0" + just-diff "^6.0.0" just-diff-apply "^5.2.0" parse-json@^2.2.0: @@ -10098,6 +10778,14 @@ path-parse@^1.0.6, path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== + dependencies: + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry@^1.6.1: version "1.9.2" resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.9.2.tgz#90f9d296ac5e37e608028e28a447b11d385b3f63" @@ -10147,6 +10835,11 @@ pathval@^1.1.1: resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== +pe-library@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pe-library/-/pe-library-1.0.0.tgz#360934ccdc25f19ac24d61c9a347caf23a9dc27a" + integrity sha512-yZ+4d3YHKUjO0BX03oXFfHRKLdYKDO2HmCt1RcApPxme/P5ASPbbKnuQkzFrmT482wi2kfO+sPgqasrz5QeU1w== + pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" @@ -10167,6 +10860,11 @@ pidtree@^0.5.0: resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.5.0.tgz#ad5fbc1de78b8a5f99d6fbdd4f6e4eee21d1aca1" integrity sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA== +pify@5.0.0, pify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" + integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== + pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -10182,11 +10880,6 @@ pify@^4.0.1: resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -pify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" - integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== - pirates@^4.0.1: version "4.0.5" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" @@ -10222,15 +10915,7 @@ plist@^3.0.0: base64-js "^1.5.1" xmlbuilder "^9.0.7" -plist@^3.0.4: - version "3.0.6" - resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.6.tgz#7cfb68a856a7834bca6dbfe3218eb9c7740145d3" - integrity sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA== - dependencies: - base64-js "^1.5.1" - xmlbuilder "^15.1.1" - -plist@^3.0.5: +plist@^3.0.5, plist@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/plist/-/plist-3.1.0.tgz#797a516a93e62f5bde55e0b9cc9c967f860893c9" integrity sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ== @@ -10239,15 +10924,30 @@ plist@^3.0.5: base64-js "^1.5.1" xmlbuilder "^15.1.1" -postcss@^8.4.21: - version "8.4.21" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" - integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== +postcss-selector-parser@^6.0.10: + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss@^8.4.32: + version "8.4.33" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" + integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== dependencies: - nanoid "^3.3.4" + nanoid "^3.3.7" picocolors "^1.0.0" source-map-js "^1.0.2" +postject@^1.0.0-alpha.6: + version "1.0.0-alpha.6" + resolved "https://registry.yarnpkg.com/postject/-/postject-1.0.0-alpha.6.tgz#9d022332272e2cfce8dea4cfce1ee6dd1b2ee135" + integrity sha512-b9Eb8h2eVqNE8edvKdwqkrY6O7kAwmI8kcnBv1NScolYJbo59XUF0noFq+lxbC1yN20bmC0WBEbDC5H/7ASb0A== + dependencies: + commander "^9.4.0" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -10273,6 +10973,15 @@ pretty-error@^4.0.0: lodash "^4.17.20" renderkid "^3.0.0" +pretty-format@29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.3.tgz#25500ada21a53c9e8423205cf0337056b201244c" + integrity sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA== + dependencies: + "@jest/schemas" "^29.4.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + pretty-ms@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-7.0.1.tgz#7d903eaab281f7d8e03c66f867e239dc32fb73e8" @@ -10285,11 +10994,21 @@ proc-log@^2.0.0, proc-log@^2.0.1: resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685" integrity sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw== +proc-log@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" + integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + progress@^2.0.0, progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -10436,20 +11155,20 @@ range-parser@^1.2.1, range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" http-errors "2.0.0" iconv-lite "0.4.24" unpipe "1.0.0" -rcedit@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/rcedit/-/rcedit-3.0.1.tgz#ae21b43e49c075f4d84df1929832a12c302f3c90" - integrity sha512-XM0Jv40/y4hVAqj/MO70o/IWs4uOsaSoo2mLyk3klFDW+SStLnCtzuQu+1OBTIMGlM8CvaK9ftlYCp6DJ+cMsw== +rcedit@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/rcedit/-/rcedit-4.0.1.tgz#892ac47a19204a380f49e00ea38ce070443343c2" + integrity sha512-bZdaQi34krFWhrDn+O53ccBDw0MkAT2Vhu75SqhtvhQu4OPyFM4RoVheyYiVQYdjhUi6EJMVWQ0tR6bCIYVkUg== dependencies: cross-spawn-windows-exe "^1.1.0" @@ -10463,12 +11182,22 @@ react-is@^16.13.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -read-cmd-shim@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz#868c235ec59d1de2db69e11aec885bc095aea087" - integrity sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g== +react-is@^18.0.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: +read-cmd-shim@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-3.0.0.tgz#62b8c638225c61e6cc607f8f4b779f3b8238f155" + integrity sha512-KQDVjGqhZk92PPNRj9ZEXEuqg8bUobSKRw+q0YQ3TKI5xkce7bUJobL4Z/OtiEbAAv70yEpYIXp4iQ9L8oPVog== + +read-cmd-shim@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz#640a08b473a49043e394ae0c7a34dd822c73b9bb" + integrity sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q== + +read-package-json-fast@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== @@ -10476,6 +11205,24 @@ read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: json-parse-even-better-errors "^2.3.0" npm-normalize-package-bin "^1.0.1" +read-package-json-fast@^3.0.0, read-package-json-fast@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049" + integrity sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw== + dependencies: + json-parse-even-better-errors "^3.0.0" + npm-normalize-package-bin "^3.0.0" + +read-package-json@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-5.0.1.tgz#1ed685d95ce258954596b13e2e0e76c7d0ab4c26" + integrity sha512-MALHuNgYWdGW3gKzuNMuYtcSSZbGQm94fAp16xt8VsYTLBjUSc55bLMKe6gzpWue0Tfi6CBgwCSdDAqutGDhMg== + dependencies: + glob "^8.0.1" + json-parse-even-better-errors "^2.3.1" + normalize-package-data "^4.0.0" + npm-normalize-package-bin "^1.0.1" + read-package-json@^2.0.0: version "2.1.2" resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a" @@ -10486,7 +11233,7 @@ read-package-json@^2.0.0: normalize-package-data "^2.0.0" npm-normalize-package-bin "^1.0.0" -read-package-json@^5.0.0, read-package-json@^5.0.1: +read-package-json@^5.0.0: version "5.0.2" resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-5.0.2.tgz#b8779ccfd169f523b67208a89cc912e3f663f3fa" integrity sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q== @@ -10496,6 +11243,16 @@ read-package-json@^5.0.0, read-package-json@^5.0.1: normalize-package-data "^4.0.0" npm-normalize-package-bin "^2.0.0" +read-package-json@^6.0.0: + version "6.0.4" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-6.0.4.tgz#90318824ec456c287437ea79595f4c2854708836" + integrity sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw== + dependencies: + glob "^10.2.2" + json-parse-even-better-errors "^3.0.0" + normalize-package-data "^5.0.0" + npm-normalize-package-bin "^3.0.0" + read-package-tree@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636" @@ -10595,7 +11352,18 @@ readable-stream@^2.0.1, readable-stream@~2.3.6: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readdir-scoped-modules@^1.0.0, readdir-scoped-modules@^1.1.0: +readable-stream@^4.1.0: + version "4.4.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.2.tgz#e6aced27ad3b9d726d8308515b9a1b98dc1b9d13" + integrity sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + string_decoder "^1.3.0" + +readdir-scoped-modules@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== @@ -10682,6 +11450,13 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== +resedit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resedit/-/resedit-2.0.0.tgz#cd615f294c38e4b806cf031ede128d5e0c17d1d7" + integrity sha512-vrrJCabKxAW4MT1QivtAAb0poGp8KT2qhnSzfN9tFIxb2rQu1hRHNn1VgGSZR7nmxGaW5Yz0YeW1bjgvRfNoKA== + dependencies: + pe-library "^1.0.0" + resolve-alpn@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" @@ -10702,16 +11477,16 @@ resolve-dir@^1.0.0: expand-tilde "^2.0.0" global-modules "^1.0.0" +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - resolve-package@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-package/-/resolve-package-1.0.1.tgz#686f70b188bd7d675f5bbc4282ccda060abb9d27" @@ -10768,16 +11543,34 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +retry-request@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-7.0.1.tgz#b0163aeb934bd3fa2de76902d683b09b8ce364ba" + integrity sha512-ZI6vJp9rfB71mrZpw+n9p/B6HCsd7QJlSEQftZ+xfJzr3cQ9EPGKw1FF0BnViJ0fYREX6FhymBD2CARpmsFciQ== + dependencies: + "@types/request" "^2.48.8" + debug "^4.1.1" + extend "^3.0.2" + teeny-request "^9.0.0" -retry@^0.13.1: +retry@0.13.1, retry@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -10788,13 +11581,6 @@ rfdc@^1.3.0: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - rimraf@^3.0.0, rimraf@^3.0.1, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -10828,11 +11614,26 @@ roarr@^2.15.3: semver-compare "^1.0.0" sprintf-js "^1.1.2" -rollup@^3.10.0: - version "3.17.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.17.2.tgz#a4ecd29c488672a0606e41ef57474fad715750a9" - integrity sha512-qMNZdlQPCkWodrAZ3qnJtvCAl4vpQ8q77uEujVCCbC/6CLB7Lcmvjq7HyiOSnf4fxTT9XgsE36oLHJBH49xjqA== +rollup@^4.2.0: + version "4.9.6" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.9.6.tgz#4515facb0318ecca254a2ee1315e22e09efc50a0" + integrity sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg== + dependencies: + "@types/estree" "1.0.5" optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.9.6" + "@rollup/rollup-android-arm64" "4.9.6" + "@rollup/rollup-darwin-arm64" "4.9.6" + "@rollup/rollup-darwin-x64" "4.9.6" + "@rollup/rollup-linux-arm-gnueabihf" "4.9.6" + "@rollup/rollup-linux-arm64-gnu" "4.9.6" + "@rollup/rollup-linux-arm64-musl" "4.9.6" + "@rollup/rollup-linux-riscv64-gnu" "4.9.6" + "@rollup/rollup-linux-x64-gnu" "4.9.6" + "@rollup/rollup-linux-x64-musl" "4.9.6" + "@rollup/rollup-win32-arm64-msvc" "4.9.6" + "@rollup/rollup-win32-ia32-msvc" "4.9.6" + "@rollup/rollup-win32-x64-msvc" "4.9.6" fsevents "~2.3.2" run-async@^2.2.0, run-async@^2.4.0: @@ -10864,7 +11665,7 @@ rxjs@^6.4.0, rxjs@^6.5.1: dependencies: tslib "^1.9.0" -rxjs@^7.5.5, rxjs@^7.5.6: +rxjs@^7.5.5: version "7.5.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39" integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA== @@ -10883,7 +11684,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -10907,7 +11708,7 @@ safe-regex-test@^1.0.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -schema-utils@^3.1.0, schema-utils@^3.1.1: +schema-utils@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== @@ -10916,6 +11717,15 @@ schema-utils@^3.1.0, schema-utils@^3.1.1: ajv "^6.12.5" ajv-keywords "^3.5.2" +schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + schema-utils@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" @@ -10944,16 +11754,9 @@ semver-compare@^1.0.0: integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= "semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.3.4: - version "7.3.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== - dependencies: - lru-cache "^6.0.0" + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== semver@7.3.8: version "7.3.8" @@ -10962,15 +11765,22 @@ semver@7.3.8: dependencies: lru-cache "^6.0.0" +semver@7.5.4, semver@^7.0.0, semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + semver@^6.0.0, semver@^6.1.0, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: - version "7.5.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.2.tgz#5b851e66d1be07c1cdaf37dfc856f543325a2beb" - integrity sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ== +semver@^7.6.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" @@ -11000,13 +11810,20 @@ serialize-error@^7.0.1: dependencies: type-fest "^0.13.1" -serialize-javascript@6.0.0, serialize-javascript@^6.0.0: +serialize-javascript@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== dependencies: randombytes "^2.1.0" +serialize-javascript@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" + integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== + dependencies: + randombytes "^2.1.0" + serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -11094,11 +11911,27 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@3.0.7, signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +sigstore@^1.0.0, sigstore@^1.3.0, sigstore@^1.4.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-1.9.0.tgz#1e7ad8933aa99b75c6898ddd0eeebc3eb0d59875" + integrity sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A== + dependencies: + "@sigstore/bundle" "^1.1.0" + "@sigstore/protobuf-specs" "^0.2.0" + "@sigstore/sign" "^1.0.0" + "@sigstore/tuf" "^1.0.3" + make-fetch-happen "^11.0.1" + sinon-chai@^3.6.0: version "3.7.0" resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-3.7.0.tgz#cfb7dec1c50990ed18c153f1840721cf13139783" @@ -11116,7 +11949,7 @@ sinon@^13.0.1: nise "^5.1.1" supports-color "^7.2.0" -slash@^3.0.0: +slash@3.0.0, slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== @@ -11185,13 +12018,6 @@ sort-keys@^2.0.0: dependencies: is-plain-obj "^1.0.0" -sort-keys@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-4.2.0.tgz#6b7638cee42c506fff8c1cecde7376d21315be18" - integrity sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg== - dependencies: - is-plain-obj "^2.0.0" - source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" @@ -11283,13 +12109,20 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -ssri@^9.0.0, ssri@^9.0.1: +ssri@9.0.1, ssri@^9.0.0: version "9.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== dependencies: minipass "^3.1.1" +ssri@^10.0.0, ssri@^10.0.1: + version "10.0.5" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" + integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A== + dependencies: + minipass "^7.0.3" + stack-trace@0.0.x: version "0.0.10" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" @@ -11343,12 +12176,24 @@ stream-buffers@~2.2.0: resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4" integrity sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ= +stream-events@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" + integrity sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg== + dependencies: + stubs "^3.0.0" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + string-argv@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -11374,6 +12219,15 @@ string-width@^5.0.0: emoji-regex "^9.2.2" strip-ansi "^7.0.1" +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string.prototype.matchall@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" @@ -11433,7 +12287,7 @@ string.prototype.trimstart@^1.0.6: define-properties "^1.1.4" es-abstract "^1.20.4" -string_decoder@^1.1.1: +string_decoder@^1.1.1, string_decoder@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -11447,6 +12301,13 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" @@ -11461,13 +12322,6 @@ strip-ansi@^5.1.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" @@ -11519,7 +12373,12 @@ strip-outer@^1.0.1: dependencies: escape-string-regexp "^1.0.2" -strong-log-transformer@^2.1.0: +strnum@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== + +strong-log-transformer@2.1.0, strong-log-transformer@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA== @@ -11528,6 +12387,11 @@ strong-log-transformer@^2.1.0: minimist "^1.2.0" through "^2.3.4" +stubs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b" + integrity sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw== + sudo-prompt@^9.1.1: version "9.2.1" resolved "https://registry.yarnpkg.com/sudo-prompt/-/sudo-prompt-9.2.1.tgz#77efb84309c9ca489527a4e749f287e6bdd52afd" @@ -11614,7 +12478,7 @@ tar-stream@~2.2.0: inherits "^2.0.3" readable-stream "^3.1.1" -tar@^6.0.5, tar@^6.1.11, tar@^6.1.2: +tar@6.1.11, tar@^6.0.5, tar@^6.1.11, tar@^6.1.2: version "6.1.11" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== @@ -11626,19 +12490,18 @@ tar@^6.0.5, tar@^6.1.11, tar@^6.1.2: mkdirp "^1.0.3" yallist "^4.0.0" -tar@^6.1.0: - version "6.1.12" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.12.tgz#3b742fb05669b55671fb769ab67a7791ea1a62e6" - integrity sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw== +teeny-request@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-9.0.0.tgz#18140de2eb6595771b1b02203312dfad79a4716d" + integrity sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g== dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + node-fetch "^2.6.9" + stream-events "^1.0.5" + uuid "^9.0.0" -temp-dir@^1.0.0: +temp-dir@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" integrity sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ== @@ -11656,18 +12519,29 @@ temp@^0.9.0: mkdirp "^0.5.1" rimraf "~2.6.2" -terser-webpack-plugin@^5.1.3: - version "5.3.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz#0320dcc270ad5372c1e8993fabbd927929773e54" - integrity sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g== +tempy@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-1.0.0.tgz#4f192b3ee3328a2684d0e3fc5c491425395aab65" + integrity sha512-eLXG5B1G0mRPHmgH2WydPl5v4jH35qEn3y/rA/aahKhIa91Pn119SsU7n7v/433gtT9ONzC8ISvNHIh2JSTm0w== dependencies: + del "^6.0.0" + is-stream "^2.0.0" + temp-dir "^2.0.0" + type-fest "^0.16.0" + unique-string "^2.0.0" + +terser-webpack-plugin@^5.3.7: + version "5.3.9" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" + integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.17" jest-worker "^27.4.5" schema-utils "^3.1.1" - serialize-javascript "^6.0.0" - source-map "^0.6.1" - terser "^5.7.2" + serialize-javascript "^6.0.1" + terser "^5.16.8" -terser@^5.10.0, terser@^5.7.2: +terser@^5.10.0: version "5.14.2" resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.2.tgz#9ac9f22b06994d736174f4091aa368db896f1c10" integrity sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA== @@ -11677,6 +12551,16 @@ terser@^5.10.0, terser@^5.7.2: commander "^2.20.0" source-map-support "~0.5.20" +terser@^5.16.8: + version "5.24.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.24.0.tgz#4ae50302977bca4831ccc7b4fef63a3c04228364" + integrity sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + text-extensions@^1.0.0: version "1.9.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" @@ -11717,14 +12601,6 @@ tiny-each-async@2.0.3: resolved "https://registry.yarnpkg.com/tiny-each-async/-/tiny-each-async-2.0.3.tgz#8ebbbfd6d6295f1370003fbb37162afe5a0a51d1" integrity sha1-jru/1tYpXxNwAD+7NxYq/loKUdE= -tmp-promise@^1.0.5: - version "1.1.0" - resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-1.1.0.tgz#bb924d239029157b9bc1d506a6aa341f8b13e64c" - integrity sha512-8+Ah9aB1IRXCnIOxXZ0uFozV1nMU5xiu7hhFVUSxZ3bYu+psD4TzagCzVbexUCgNNGJnsmNDQlS4nG3mTyoNkw== - dependencies: - bluebird "^3.5.0" - tmp "0.1.0" - tmp-promise@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" @@ -11732,13 +12608,6 @@ tmp-promise@^3.0.2: dependencies: tmp "^0.2.0" -tmp@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" - integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== - dependencies: - rimraf "^2.6.3" - tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -11794,10 +12663,10 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -treeverse@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-2.0.0.tgz#036dcef04bc3fd79a9b79a68d4da03e882d8a9ca" - integrity sha512-N5gJCkLu1aXccpOTtqV6ddSEi6ZmGkh3hjmbu1IjcavJK4qyOVQmi0myQKM7z5jVGmD68SJoliaVrMmVObhj6A== +treeverse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-3.0.0.tgz#dd82de9eb602115c6ebd77a574aae67003cb48c8" + integrity sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ== trim-newlines@^3.0.0: version "3.0.1" @@ -11830,7 +12699,7 @@ ts-node@^10.0.0: v8-compile-cache-lib "^3.0.0" yn "3.1.1" -tsconfig-paths@^3.14.1, tsconfig-paths@^3.9.0: +tsconfig-paths@^3.14.1: version "3.14.1" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== @@ -11840,6 +12709,15 @@ tsconfig-paths@^3.14.1, tsconfig-paths@^3.9.0: minimist "^1.2.6" strip-bom "^3.0.0" +tsconfig-paths@^4.1.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz#ef78e19039133446d244beac0fd6a1632e2d107c" + integrity sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg== + dependencies: + json5 "^2.2.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + tslib@^1.11.1, tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" @@ -11855,6 +12733,11 @@ tslib@^2.4.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== +tslib@^2.5.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -11862,10 +12745,14 @@ tsutils@^3.21.0: dependencies: tslib "^1.8.1" -tunnel@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" - integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== +tuf-js@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-1.1.7.tgz#21b7ae92a9373015be77dfe0cb282a80ec3bbe43" + integrity sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg== + dependencies: + "@tufjs/models" "1.0.4" + debug "^4.3.4" + make-fetch-happen "^11.1.1" type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" @@ -11884,6 +12771,11 @@ type-fest@^0.13.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== +type-fest@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" + integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== + type-fest@^0.18.0: version "0.18.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" @@ -11919,6 +12811,11 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +type-fest@^1.0.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -11946,13 +12843,6 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -12014,6 +12904,11 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + unique-filename@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" @@ -12021,6 +12916,13 @@ unique-filename@^2.0.0: dependencies: unique-slug "^3.0.0" +unique-filename@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" + integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== + dependencies: + unique-slug "^4.0.0" + unique-slug@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" @@ -12028,6 +12930,20 @@ unique-slug@^3.0.0: dependencies: imurmurhash "^0.1.4" +unique-slug@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" + integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== + dependencies: + imurmurhash "^0.1.4" + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + unist-util-is@^5.0.0: version "5.2.1" resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.1.tgz#b74960e145c18dcb6226bc57933597f5486deae9" @@ -12084,7 +13000,7 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= -upath@^2.0.1: +upath@2.0.1, upath@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== @@ -12104,7 +13020,7 @@ username@^5.1.0: execa "^1.0.0" mem "^4.3.0" -util-deprecate@^1.0.1, util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== @@ -12126,11 +13042,16 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^8.3.2: +uuid@8.3.2, uuid@^8.0.0, uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +uuid@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + uvu@^0.5.0: version "0.5.6" resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" @@ -12151,7 +13072,7 @@ v8-compile-cache@2.3.0, v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== -validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: +validate-npm-package-license@3.0.4, validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== @@ -12159,6 +13080,13 @@ validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +validate-npm-package-name@4.0.0, validate-npm-package-name@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz#fe8f1c50ac20afdb86f177da85b3600f0ac0d747" + integrity sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q== + dependencies: + builtins "^5.0.0" + validate-npm-package-name@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" @@ -12166,10 +13094,10 @@ validate-npm-package-name@^3.0.0: dependencies: builtins "^1.0.3" -validate-npm-package-name@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz#fe8f1c50ac20afdb86f177da85b3600f0ac0d747" - integrity sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q== +validate-npm-package-name@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz#f16afd48318e6f90a1ec101377fa0384cfc8c713" + integrity sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ== dependencies: builtins "^5.0.0" @@ -12183,17 +13111,16 @@ version-guard@^1.1.1: resolved "https://registry.yarnpkg.com/version-guard/-/version-guard-1.1.1.tgz#7a6e87a1babff1b43d6a7b0fd239731e278262fa" integrity sha512-MGQLX89UxmYHgDvcXyjBI0cbmoW+t/dANDppNPrno64rYr8nH4SHSuElQuSYdXGEs0mUzdQe1BY+FhVPNsAmJQ== -vite@^4.1.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.1.5.tgz#9c93d579f62179ab99c4182fa37acf1b380a374b" - integrity sha512-zJ0RiVkf61kpd7O+VtU6r766xgnTaIknP/lR6sJTZq3HtVJ3HGnTo5DaJhTUtYoTyS/CQwZ6yEVdc/lrmQT7dQ== +vite@^5.0.12: + version "5.0.12" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.12.tgz#8a2ffd4da36c132aec4adafe05d7adde38333c47" + integrity sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w== dependencies: - esbuild "^0.16.14" - postcss "^8.4.21" - resolve "^1.22.1" - rollup "^3.10.0" + esbuild "^0.19.3" + postcss "^8.4.32" + rollup "^4.2.0" optionalDependencies: - fsevents "~2.3.2" + fsevents "~2.3.3" vscode-jsonrpc@8.1.0: version "8.1.0" @@ -12278,9 +13205,9 @@ webidl-conversions@^4.0.2: integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== webpack-dev-middleware@^5.3.1: - version "5.3.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f" - integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA== + version "5.3.4" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" + integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== dependencies: colorette "^2.0.10" memfs "^3.4.3" @@ -12337,21 +13264,21 @@ webpack-sources@^3.2.3: integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== webpack@^5.69.1: - version "5.76.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.76.0.tgz#f9fb9fb8c4a7dbdcd0d56a98e56b8a942ee2692c" - integrity sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA== + version "5.89.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.89.0.tgz#56b8bf9a34356e93a6625770006490bf3a7f32dc" + integrity sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw== dependencies: "@types/eslint-scope" "^3.7.3" - "@types/estree" "^0.0.51" - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/wasm-edit" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" + "@types/estree" "^1.0.0" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" acorn "^8.7.1" - acorn-import-assertions "^1.7.6" + acorn-import-assertions "^1.9.0" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.10.0" - es-module-lexer "^0.9.0" + enhanced-resolve "^5.15.0" + es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" @@ -12360,9 +13287,9 @@ webpack@^5.69.1: loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.1.0" + schema-utils "^3.2.0" tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" + terser-webpack-plugin "^5.3.7" watchpack "^2.4.0" webpack-sources "^3.2.3" @@ -12434,6 +13361,13 @@ which@^1.2.14, which@^1.2.4, which@^1.2.9: dependencies: isexe "^2.0.0" +which@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/which/-/which-3.0.1.tgz#89f1cd0c23f629a8105ffe69b8172791c87b4be1" + integrity sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg== + dependencies: + isexe "^2.0.0" + wide-align@^1.1.2, wide-align@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" @@ -12473,6 +13407,15 @@ workerpool@6.2.0: resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.0.tgz#827d93c9ba23ee2019c3ffaff5c27fccea289e8b" integrity sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A== +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -12482,20 +13425,28 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== +wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +write-file-atomic@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" + integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" + write-file-atomic@^2.4.2: version "2.4.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" @@ -12505,23 +13456,13 @@ write-file-atomic@^2.4.2: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -write-file-atomic@^4.0.0, write-file-atomic@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== +write-file-atomic@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" + integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== dependencies: imurmurhash "^0.1.4" - signal-exit "^3.0.7" + signal-exit "^4.0.1" write-json-file@^3.2.0: version "3.2.0" @@ -12535,19 +13476,7 @@ write-json-file@^3.2.0: sort-keys "^2.0.0" write-file-atomic "^2.4.2" -write-json-file@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-4.3.0.tgz#908493d6fd23225344af324016e4ca8f702dd12d" - integrity sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ== - dependencies: - detect-indent "^6.0.0" - graceful-fs "^4.1.15" - is-plain-obj "^2.0.0" - make-dir "^3.0.0" - sort-keys "^4.0.0" - write-file-atomic "^3.0.0" - -write-pkg@^4.0.0: +write-pkg@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-4.0.0.tgz#675cc04ef6c11faacbbc7771b24c0abbf2a20039" integrity sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==