diff --git a/.blueprint/generate-sample/generator.mts b/.blueprint/generate-sample/generator.mts index d8e37704b3dc..3462b4980a3f 100644 --- a/.blueprint/generate-sample/generator.mts +++ b/.blueprint/generate-sample/generator.mts @@ -65,6 +65,7 @@ export default class extends BaseGenerator { const sample = await generateSample(this.sampleName, { destProjectFolder: this.projectFolder, fork: false, + entity: this.entitiesSample, }); assert.ok(sample, `Sample ${this.sampleName} not found`); @@ -103,20 +104,12 @@ export default class extends BaseGenerator { const entitiesFiles = entitiesByType[this.entitiesSample]; if (entitiesFiles) { this.jhipsterConfig.entities = entitiesFiles; - /* + this.log.info(`Copying entities ${this.entitiesSample} (${entitiesFiles})`); this.copyTemplate( entitiesFiles.map(entity => `.jhipster/${entity}.json`), this.projectFolder, { noGlob: true, fromBasePath: this.templatePath('../../../test-integration/samples/') }, ); - */ - entitiesFiles.forEach(entity => - this.copyTemplate( - `../../../test-integration/samples/.jhipster/${entity}.json`, - `${this.projectFolder}/.jhipster/${entity}.json`, - { noGlob: true }, - ), - ); } await this.composeWithJHipster(GENERATOR_APP, { generatorOptions: { destinationRoot: this.projectFolder } }); }, diff --git a/.blueprint/github-build-matrix/command.ts b/.blueprint/github-build-matrix/command.ts index 7f9be6ca2d6a..bac3888949d8 100644 --- a/.blueprint/github-build-matrix/command.ts +++ b/.blueprint/github-build-matrix/command.ts @@ -8,7 +8,7 @@ export default { type: String, }, scope: 'generator', - choices: ['testcontainers'], + choices: ['testcontainers', 'dev-server'], }, }, } as const satisfies JHipsterCommandDefinition; diff --git a/.blueprint/github-build-matrix/generator.ts b/.blueprint/github-build-matrix/generator.ts index ed1d8ffd18b5..133f132dd80f 100644 --- a/.blueprint/github-build-matrix/generator.ts +++ b/.blueprint/github-build-matrix/generator.ts @@ -2,6 +2,8 @@ import BaseGenerator from '../../generators/base/index.js'; import { setGithubTaskOutput } from '../../lib/testing/index.js'; import { convertToGitHubMatrix } from './support/github-ci-matrix.js'; import { dockerComposeMatrix } from './samples/docker-compose-integration.js'; +import { getGitChanges } from './support/git-changes.js'; +import { devServerMatrix } from './samples/dev-server.js'; export default class extends BaseGenerator { workflow; @@ -15,6 +17,21 @@ export default class extends BaseGenerator { async buildMatrix() { if (this.workflow === 'docker-compose-integration') { setGithubTaskOutput('matrix', JSON.stringify(convertToGitHubMatrix(dockerComposeMatrix), null, 2)); + } else if (this.workflow === 'dev-server') { + const { devBlueprint, devserverCi, client, angular, react, vue } = await getGitChanges(); + const matrix = {}; + if (devBlueprint || devserverCi || client || angular) { + Object.assign(matrix, devServerMatrix.angular); + } + if (devBlueprint || devserverCi || client || react) { + Object.assign(matrix, devServerMatrix.react); + } + if (devBlueprint || devserverCi || client || vue) { + Object.assign(matrix, devServerMatrix.vue); + } + const githubMatrix = convertToGitHubMatrix(matrix); + setGithubTaskOutput('matrix', JSON.stringify(githubMatrix, null, 2)); + setGithubTaskOutput('empty-matrix', githubMatrix.include.length === 0); } }, }); diff --git a/.blueprint/github-build-matrix/samples/dev-server.ts b/.blueprint/github-build-matrix/samples/dev-server.ts new file mode 100644 index 000000000000..63896df5e340 --- /dev/null +++ b/.blueprint/github-build-matrix/samples/dev-server.ts @@ -0,0 +1,20 @@ +export const devServerMatrix = { + angular: { + 'ng-default': { + sample: 'samples/ng-default', + args: '--sample-yorc-folder --entities-sample sqllight', + }, + }, + react: { + 'react-default': { + sample: 'samples/react-default', + args: '--sample-yorc-folder --entities-sample sqllight', + }, + }, + vue: { + 'vue-default': { + sample: 'samples/vue-default', + args: '--sample-yorc-folder --entities-sample sqllight', + }, + }, +}; diff --git a/.blueprint/github-build-matrix/support/git-changes.ts b/.blueprint/github-build-matrix/support/git-changes.ts new file mode 100644 index 000000000000..f3e3fea6809d --- /dev/null +++ b/.blueprint/github-build-matrix/support/git-changes.ts @@ -0,0 +1,26 @@ +import { fileURLToPath } from 'url'; +import { minimatch } from 'minimatch'; +import { simpleGit } from 'simple-git'; + +export const getGitChanges = async () => { + const git = simpleGit({ baseDir: fileURLToPath(new URL('../../', import.meta.url).href) }); + const summary = await git.diffSummary({ '@~1': null }); + const files = summary.files.map(({ file }) => file); + const hasPatternChanges = (pattern: string) => files.some(file => minimatch(file, pattern, { dot: true })); + return { + files, + base: + hasPatternChanges('lib/**') || + hasPatternChanges('generators/*') || + hasPatternChanges('generators/{base*,bootstrap*,git,jdl,project-name}/**'), + devBlueprint: hasPatternChanges('.blueprint/**'), + ci: hasPatternChanges('.github/{actions,workflows}/**') || hasPatternChanges('generators/{docker-compose,kubernetes*,workspaces}/**'), + devserverCi: hasPatternChanges('.github/workflows/devserver.yml'), + common: hasPatternChanges('generators/{app,common,cypress,docker,languages}/**'), + client: hasPatternChanges('generators/{client,init,javascript}/**'), + angular: hasPatternChanges('generators/angular/**'), + react: hasPatternChanges('generators/react/**'), + vue: hasPatternChanges('generators/vue/**'), + java: hasPatternChanges('generators/{cucumber,feign-client,gatling,gradle,java,liquibase,maven,server,spring*}/**'), + }; +}; diff --git a/.blueprint/github-build-matrix/support/github-ci-matrix.ts b/.blueprint/github-build-matrix/support/github-ci-matrix.ts index f4ab656f3f2b..fed1eb16f19a 100644 --- a/.blueprint/github-build-matrix/support/github-ci-matrix.ts +++ b/.blueprint/github-build-matrix/support/github-ci-matrix.ts @@ -6,6 +6,7 @@ type GitHubMatrix = { 'java-version': string; 'default-environment': string; 'job-name': string; + sample: string; args: string; }; @@ -31,6 +32,7 @@ export const convertToGitHubMatrix = (matrix: Record): GitHubMatrix return { include: Object.entries(matrix).map(([key, value]) => ({ 'job-name': key, + sample: key, ...defaultEnvironment, ...value, })), diff --git a/.github/dependabot.yml b/.github/dependabot.yml index bf1d29431ca9..bf7b1d46d233 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -146,6 +146,9 @@ updates: # Should match generated project node major version. - dependency-name: '@types/node' versions: ['>=19'] + # https://github.com/jhipster/generator-jhipster/issues/27464#issuecomment-2400505558, https://github.com/twbs/bootstrap/issues/40849 + - dependency-name: 'sass' + versions: ['*'] groups: eslint: patterns: @@ -178,6 +181,9 @@ updates: # https://github.com/bootstrap-vue/bootstrap-vue/issues/5507 - dependency-name: 'bootstrap' versions: ['>=5'] + # Bootstrap v4 issue https://github.com/jhipster/generator-jhipster/issues/23770, https://github.com/twbs/bootstrap/issues/39028, https://github.com/jhipster/generator-jhipster/issues/27464#issuecomment-2400505558, https://github.com/twbs/bootstrap/issues/40849 + - dependency-name: 'sass' + versions: ['*'] # Should match generated project node major version. - dependency-name: '@types/node' versions: ['>=19'] diff --git a/.github/workflows/devserver.yml b/.github/workflows/devserver.yml index e3d903d98aca..195100939663 100644 --- a/.github/workflows/devserver.yml +++ b/.github/workflows/devserver.yml @@ -31,6 +31,7 @@ on: - '.github/workflows/devserver.yml' - 'generators/angular/**' - 'generators/client/**' + - 'generators/javascript/**' - 'generators/react/**' - 'generators/vue/**' - 'generators/*' @@ -49,15 +50,13 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 2 - - name: 'Build matrix' - id: build - uses: ./.github/actions/build-matrix - with: - workflow-file-prefix: devserver + - run: npm ci --ignore-scripts + - id: build + run: bin/jhipster.cjs github-build-matrix dev-server applications: - name: ${{ matrix.app-sample }} + name: ${{ matrix.job-name }} needs: build-matrix - runs-on: ubuntu-20.04 + runs-on: ${{ matrix.os }} defaults: run: working-directory: ${{ github.workspace }}/app @@ -75,44 +74,35 @@ jobs: with: path: generator-jhipster fetch-depth: 2 - - name: 'SETUP: environment' - id: setup - uses: ./generator-jhipster/.github/actions/setup - with: - application-sample: ${{ matrix.setup-application-sample }} - entities-sample: ${{ matrix.setup-entities-sample }} - jdl-entities-sample: ${{ matrix.setup-jdl-entities-sample }} - jdl-sample: ${{ matrix.setup-jdl-sample }} - application-environment: ${{ matrix.setup-application-environment }} - application-packaging: ${{ matrix.setup-application-packaging }} - uses: jhipster/actions/setup-runner@v0 with: - node-version: ${{ steps.setup.outputs.node-version }} - java-version: ${{ steps.setup.outputs.java-version }} + node-version: ${{ matrix.node-version }} + java-version: ${{ matrix.java-version }} + npm-version: ${{ matrix.npm-version }} maven-cache: true + binary-dir: ${{ github.workspace }}/generator-jhipster/bin #---------------------------------------------------------------------- # Install JHipster and generate project+entities #---------------------------------------------------------------------- - - name: 'GENERATION: install JHipster' - run: $JHI_SCRIPTS/10-install-jhipster.sh - - name: 'GENERATION: config' - run: $JHI_SCRIPTS/11-generate-config.sh + - run: npm ci --ignore-scripts + working-directory: ${{ github.workspace }}/generator-jhipster - name: 'GENERATION: project' - run: $JHI_SCRIPTS/12-generate-project.sh ${{ matrix.extra-args }} ${{ matrix.new-extra-args }} - - name: 'GENERATION: jhipster info' - run: $JHI_SCRIPTS/14-jhipster-info.sh + run: jhipster.cjs generate-sample ${{ matrix.sample }} --skip-jhipster-dependencies --skip-install ${{ matrix.args }} + - run: jhipster.cjs info #---------------------------------------------------------------------- # Launch tests #---------------------------------------------------------------------- - name: 'E2E: Run' id: e2e - run: ./npmw run e2e:devserver --if-present + run: | + ./npmw install + ./npmw run e2e:devserver --if-present - name: 'E2E: Store failure screenshots' uses: actions/upload-artifact@v4 if: always() && steps.e2e.outcome == 'failure' with: - name: screenshots-${{ matrix.app-sample }} - path: ${{ steps.setup.outputs.application-path }}/*/cypress/screenshots + name: screenshots-${{ matrix.job-name }} + path: ${{ github.workspace }}/app/*/cypress/screenshots check-dev-server: permissions: contents: none diff --git a/bin/cli.cjs b/bin/cli.cjs deleted file mode 100644 index 3a74d3a170ac..000000000000 --- a/bin/cli.cjs +++ /dev/null @@ -1,6 +0,0 @@ -// Cleanup loaders options, we don't want to pass to child processes. -delete process.env.NODE_OPTIONS; - -process.env.JHIPSTER_DEV_BLUEPRINT = true; - -require('../cli/jhipster.cjs'); diff --git a/bin/jhipster.cjs b/bin/jhipster.cjs index 3ec714c107c2..6b61635ac3ec 100755 --- a/bin/jhipster.cjs +++ b/bin/jhipster.cjs @@ -2,13 +2,14 @@ // Executable file that runs jhipster sources in JIT mode. // This file should be used for development purposes and should not be distributed in the npm package. // Executable should be written in commonjs https://github.com/nodejs/modules/issues/152. -const { join } = require('path'); +const { Module } = require('module'); +const { pathToFileURL } = require('url'); const [_nodeExec, _exec, ...args] = process.argv; // eslint-disable-next-line no-console console.error('jhipster', ...args); -(async () => { - const { default: esbuildx } = await import('@node-loaders/esbuildx'); - await esbuildx(join(__dirname, 'cli.cjs')); -})(); +process.env.JHIPSTER_DEV_BLUEPRINT = true; +Module.register(pathToFileURL(require.resolve('@node-loaders/esbuild/strict')).href); + +require('../cli/jhipster.cjs'); diff --git a/cli/cli.spec.mts b/cli/cli.spec.mts index be8959e38cfc..75ed978ed3ae 100644 --- a/cli/cli.spec.mts +++ b/cli/cli.spec.mts @@ -8,7 +8,6 @@ import { execaCommandSync } from 'execa'; import type { GeneratorMeta } from '@yeoman/types'; import type FullEnvironment from 'yeoman-environment'; import { coerce } from 'semver'; -import quibble from 'quibble'; import { defaultHelpers as helpers, createBlueprintFiles } from '../lib/testing/index.js'; import { getCommand as actualGetCommonand } from './utils.mjs'; @@ -96,7 +95,7 @@ describe('cli', () => { let argv; before(async () => { - await quibble.esm('./utils.mjs', { logger, getCommand, CLI_NAME: 'jhipster', done: () => {} }); + await esmocha.mock('./utils.mjs', { logger, getCommand, CLI_NAME: 'jhipster', done: () => {} } as any); const { buildJHipster } = await import('./program.mjs'); mockCli = async (argv: string[], opts = {}) => { @@ -105,7 +104,7 @@ describe('cli', () => { }; }); after(() => { - quibble.reset(); + esmocha.reset(); }); beforeEach(async () => { diff --git a/cli/jhipster-command.mjs b/cli/jhipster-command.mjs index 00641e5f93a0..54976d427fa6 100644 --- a/cli/jhipster-command.mjs +++ b/cli/jhipster-command.mjs @@ -185,12 +185,14 @@ export default class JHipsterCommand extends Command { addJHipsterConfigs(configs = {}, blueprintOptionDescription) { Object.assign(blueprintOptionDescription ? this.blueprintConfigs : this.configs, configs); - Object.entries(configs).forEach(([name, config]) => { - const option = convertConfigToOption(name, config); - if (option) { - this._addGeneratorOption(kebabCase(option.name), option, blueprintOptionDescription); - } - }); + Object.entries(configs) + .filter(([_name, config]) => config.cli) + .forEach(([name, config]) => { + const option = convertConfigToOption(name, config); + if (option) { + this._addGeneratorOption(kebabCase(option.name), option, blueprintOptionDescription); + } + }); return this; } diff --git a/generators/angular/resources/package.json b/generators/angular/resources/package.json index 009fe2ba4903..03d003b9340b 100644 --- a/generators/angular/resources/package.json +++ b/generators/angular/resources/package.json @@ -1,6 +1,6 @@ { "dependencies": { - "@angular/common": "18.2.7", + "@angular/common": "18.2.8", "@fortawesome/angular-fontawesome": "0.15.0", "@fortawesome/fontawesome-svg-core": "6.6.0", "@fortawesome/free-solid-svg-icons": "6.6.0", @@ -15,7 +15,7 @@ "ngx-infinite-scroll": "18.0.0", "rxjs": "7.8.1", "sockjs-client": "1.6.1", - "tslib": "2.7.0", + "tslib": "2.8.0", "zone.js": "0.14.10" }, "devDependencies": { @@ -23,7 +23,7 @@ "@angular-architects/module-federation-runtime": "18.0.6", "@angular-builders/custom-webpack": "18.0.0", "@angular-builders/jest": "18.0.0", - "@angular/cli": "18.2.7", + "@angular/cli": "18.2.9", "@types/jest": "29.5.13", "@types/node": "20.11.25", "@types/sockjs-client": "1.5.4", @@ -37,7 +37,7 @@ "eslint-plugin-prettier": "5.2.1", "eslint-webpack-plugin": "4.2.0", "folder-hash": "4.0.4", - "globals": "15.10.0", + "globals": "15.11.0", "jest": "29.7.0", "jest-date-mock": "1.0.10", "jest-junit": "16.0.0", @@ -48,7 +48,7 @@ "rimraf": "5.0.8", "ts-jest": "29.2.5", "typescript": "5.5.4", - "typescript-eslint": "8.8.0", + "typescript-eslint": "8.10.0", "webpack": "5.95.0", "webpack-bundle-analyzer": "4.10.2", "webpack-merge": "6.0.1", diff --git a/generators/app/__snapshots__/generator.spec.ts.snap b/generators/app/__snapshots__/generator.spec.ts.snap index e2d74c2262f1..df725a182bc8 100644 --- a/generators/app/__snapshots__/generator.spec.ts.snap +++ b/generators/app/__snapshots__/generator.spec.ts.snap @@ -27,7 +27,7 @@ Options: --skip-jhipster-dependencies Don't write jhipster dependencies to package.json. (env: JHI_SKIP_JHIPSTER_DEPENDENCIES) --creation-timestamp Project creation timestamp (used for reproducible builds) --jdl-store JDL store - --prettier-tab-width Default tab width for prettier + --prettier-tab-width Default tab width for prettier (default: 2) --monorepository Use monorepository --skip-commit-hook Skip adding husky commit hooks --db Provide DB name for the application when skipping server side generation @@ -47,14 +47,14 @@ Options: --reactive Generate a reactive backend --service-discovery-type Service discovery type (choices: "consul", "eureka", "no") --auth Provide authentication type for the application when skipping server side generation (choices: "jwt", "oauth2", "session") - --feign-client Generate a feign client + --feign-client Generate a feign client (default: false) --sync-user-with-idp Allow relationships with User for oauth2 applications --message-broker message broker (choices: "kafka", "pulsar", "no") --database-migration Database migration (choices: "liquibase") --with-generated-flag Add a GeneratedByJHipster annotation to all generated java classes and interfaces --package-name The package name for the generated application - --build Provide build tool for the application when skipping server side generation (choices: "maven", "gradle") - --enable-gradle-enterprise Enable Gradle Enterprise integration + --build Provide build tool for the application when skipping server side generation (default: maven) (choices: "maven", "gradle") + --enable-gradle-enterprise Enable Gradle Enterprise integration (default: false) --gradle-enterprise-host Gradle Enterprise Host --incremental-changelog Creates incremental database changelogs --dev-database-type Development database diff --git a/generators/app/generator.spec.ts b/generators/app/generator.spec.ts index 083edd107d44..4ed0224074e5 100644 --- a/generators/app/generator.spec.ts +++ b/generators/app/generator.spec.ts @@ -217,8 +217,6 @@ describe(`generator - ${generator}`, () => { "databaseType", "prodDatabaseType", "devDatabaseType", - "cacheProvider", - "enableHibernateCache", "serverSideOptions", "enableGradleEnterprise", "clientFramework", diff --git a/generators/base-application/types.d.ts b/generators/base-application/types.d.ts index 42d01d54d498..e0749fabd968 100644 --- a/generators/base-application/types.d.ts +++ b/generators/base-application/types.d.ts @@ -146,6 +146,7 @@ export type CommonClientServerApplication = BaseApplication & SpringBootApplication & ClientApplication & ExportApplicationPropertiesFromCommand & + ExportApplicationPropertiesFromCommand & ApplicationProperties & { clientRootDir: string; clientSrcDir: string; diff --git a/generators/base-core/generator.ts b/generators/base-core/generator.ts index 813ed5978177..6f0b20833de4 100644 --- a/generators/base-core/generator.ts +++ b/generators/base-core/generator.ts @@ -462,7 +462,7 @@ You can ignore this error by passing '--skip-checks' to jhipster command.`); if (!generatorCommand.configs) { throw new Error(`Configs not found for generator ${this.options.namespace}`); } - return this.prompt(this.prepareQuestions(generatorCommand.configs)); + return this.prompt(this.prepareQuestions(generatorCommand.configs) as any); } /** @@ -553,7 +553,7 @@ You can ignore this error by passing '--skip-checks' to jhipster command.`); } else if (optionDesc.scope !== 'none') { throw new Error(`Scope ${optionDesc.scope} not supported`); } - } else if (optionDesc.default && optionDesc.scope === 'generator' && this[optionName] === undefined) { + } else if (optionDesc.default !== undefined && optionDesc.scope === 'generator' && this[optionName] === undefined) { this[optionName] = optionDesc.default; } }); @@ -1372,8 +1372,8 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`; /** * Create a simple-git instance using current destinationPath as baseDir. */ - createGit() { - return simpleGit({ baseDir: this.destinationPath() }).env({ + createGit(options?: Parameters[0]) { + return simpleGit({ baseDir: this.destinationPath(), ...options }).env({ ...process.env, LANG: 'en', }); diff --git a/generators/client/resources/package.json b/generators/client/resources/package.json index 9b4084bf357b..eac4a205739b 100644 --- a/generators/client/resources/package.json +++ b/generators/client/resources/package.json @@ -8,7 +8,7 @@ "babel-plugin-istanbul": "7.0.0", "cypress": "13.15.0", "cypress-audit": "1.1.0", - "eslint-plugin-cypress": "3.5.0", + "eslint-plugin-cypress": "4.0.0", "lighthouse": "12.2.1", "nyc": "17.1.0", "swagger-ui-dist": "5.17.14" diff --git a/generators/client/templates/webpack/webpack.microfrontend.js.jhi.ejs b/generators/client/templates/webpack/webpack.microfrontend.js.jhi.ejs index 687832dba87e..ec5af9442fa6 100644 --- a/generators/client/templates/webpack/webpack.microfrontend.js.jhi.ejs +++ b/generators/client/templates/webpack/webpack.microfrontend.js.jhi.ejs @@ -26,7 +26,7 @@ }); _&> -const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin'); +const { ModuleFederationPlugin } = require('@module-federation/enhanced/webpack'); <&- fragments.importsSection() &> <%_ if (!clientFrameworkVue) { _%> const packageJson = require('../package.json'); @@ -63,6 +63,8 @@ module.exports = () => { filename: 'remoteEntry.js', <%_ } _%> shareScope: 'default', + dts: false, + manifest: false, <&- fragments.moduleFederationSection() &> } <%_ } -%> @@ -71,6 +73,7 @@ module.exports = () => { ], output: { publicPath: 'auto', + scriptType: 'text/javascript', }, }; }; diff --git a/generators/common/__snapshots__/generator.spec.ts.snap b/generators/common/__snapshots__/generator.spec.ts.snap index 2e8f2e914f95..bf8a4874f040 100644 --- a/generators/common/__snapshots__/generator.spec.ts.snap +++ b/generators/common/__snapshots__/generator.spec.ts.snap @@ -123,8 +123,7 @@ This application was generated using JHipster JHIPSTER_VERSION, you can find doc "name": "jhipster", "version": "0.0.0", "description": "Description for JHipster", - "license": "UNLICENSED", - "type": "commonjs" + "license": "UNLICENSED" } ", "stateCleared": "modified", diff --git a/generators/docker/templates/docker/keycloak.yml.ejs b/generators/docker/templates/docker/keycloak.yml.ejs index de486ddf550a..8b3153b57b27 100644 --- a/generators/docker/templates/docker/keycloak.yml.ejs +++ b/generators/docker/templates/docker/keycloak.yml.ejs @@ -43,7 +43,8 @@ services: test: 'bash /opt/keycloak/health-check.sh' interval: 5s timeout: 5s - retries: 40 + # Increased retries due to slow Keycloak startup in GitHub Actions using MacOS + retries: 50 start_period: 10s <%_ if (backendTypeSpringBoot) { _%> labels: diff --git a/generators/generate-blueprint/resources/package.json b/generators/generate-blueprint/resources/package.json index ca86d8d314b7..197cad505c34 100644 --- a/generators/generate-blueprint/resources/package.json +++ b/generators/generate-blueprint/resources/package.json @@ -1,7 +1,7 @@ { "dependencies": { "eslint": "9.12.0", - "globals": "15.10.0", - "vitest": "2.1.2" + "globals": "15.11.0", + "vitest": "2.1.3" } } diff --git a/generators/init/__snapshots__/generator.spec.ts.snap b/generators/init/__snapshots__/generator.spec.ts.snap index 207df51de565..bfca045fdd95 100644 --- a/generators/init/__snapshots__/generator.spec.ts.snap +++ b/generators/init/__snapshots__/generator.spec.ts.snap @@ -16,7 +16,7 @@ Options: --commit-msg Commit changes (implies forceGit) --monorepository Use monorepository --base-name Application base name - --prettier-tab-width Default tab width for prettier + --prettier-tab-width Default tab width for prettier (default: 2) --skip-commit-hook Skip adding husky commit hooks -h, --help display help for command " diff --git a/generators/java/support/checks/check-java.spec.ts b/generators/java/support/checks/check-java.spec.ts index abc3ec1f31cd..49576d5634b4 100644 --- a/generators/java/support/checks/check-java.spec.ts +++ b/generators/java/support/checks/check-java.spec.ts @@ -1,7 +1,6 @@ import { after, before, describe, esmocha, expect, it, resetAllMocks } from 'esmocha'; -import quibble from 'quibble'; -const execa = { execa: esmocha.fn(), execaSync: esmocha.fn(), execaCommandSync: esmocha.fn(), execaCommand: esmocha.fn() }; +const { execaCommandSync } = await esmocha.mock('execa', import('execa')); const baseResult = { cwd: '', @@ -15,13 +14,9 @@ const baseResult = { } as any; describe('generator - server - checkJava', () => { - before(async () => { - await quibble.esm('execa', execa); - }); after(() => { - quibble.reset(); + esmocha.reset(); }); - afterEach(() => { resetAllMocks(); }); @@ -31,7 +26,7 @@ describe('generator - server - checkJava', () => { let result; before(async () => { - execa.execaCommandSync.mockReturnValue({ ...baseResult, stderr }); + execaCommandSync.mockReturnValue({ ...baseResult, stderr }); const { default: checkJava } = await import('./check-java.js'); result = checkJava([]); }); @@ -50,7 +45,7 @@ describe('generator - server - checkJava', () => { let result; before(async () => { - execa.execaCommandSync.mockReturnValue({ ...baseResult, exitCode, stderr }); + execaCommandSync.mockReturnValue({ ...baseResult, exitCode, stderr }); const { default: checkJava } = await import('./check-java.js'); result = checkJava([]); }); @@ -64,7 +59,7 @@ describe('generator - server - checkJava', () => { let result; before(async () => { - execa.execaCommandSync.mockImplementation(() => { + execaCommandSync.mockImplementation(() => { throw new Error('foo'); }); const { default: checkJava } = await import('./check-java.js'); diff --git a/generators/java/support/generated-annotation-transform.spec.ts b/generators/java/support/generated-annotation-transform.spec.ts index d9455d9ba061..604909844aa7 100644 --- a/generators/java/support/generated-annotation-transform.spec.ts +++ b/generators/java/support/generated-annotation-transform.spec.ts @@ -1,6 +1,6 @@ -import { Readable } from 'stream'; +import { Readable } from 'node:stream'; +import { pipeline } from 'node:stream/promises'; import { describe, expect, it } from 'esmocha'; -import { pipeline } from 'p-transform'; import generatedAnnotationTransform from './generated-annotation-transform.js'; describe('generators - java - generated-annotation-transform', () => { diff --git a/generators/javascript/generators/bootstrap/__snapshots__/generator.spec.ts.snap b/generators/javascript/generators/bootstrap/__snapshots__/generator.spec.ts.snap index 0e42ad79e019..cdc6b7b6c88d 100644 --- a/generators/javascript/generators/bootstrap/__snapshots__/generator.spec.ts.snap +++ b/generators/javascript/generators/bootstrap/__snapshots__/generator.spec.ts.snap @@ -19,8 +19,7 @@ exports[`generator - javascript:bootstrap customVersion-commonjs should match fi "name": "dasherizedBaseName", "version": "0.0.0", "description": "projectDescription", - "license": "UNLICENSED", - "type": "commonjs" + "license": "UNLICENSED" } ", "stateCleared": "modified", @@ -73,8 +72,7 @@ exports[`generator - javascript:bootstrap packageJsonNodeEngine(true) should mat "name": "dasherizedBaseName", "version": "0.0.0", "description": "projectDescription", - "license": "UNLICENSED", - "type": "commonjs" + "license": "UNLICENSED" } ", "stateCleared": "modified", diff --git a/generators/javascript/generators/bootstrap/generator.ts b/generators/javascript/generators/bootstrap/generator.ts index f0de65d17c26..a7bb817461b4 100644 --- a/generators/javascript/generators/bootstrap/generator.ts +++ b/generators/javascript/generators/bootstrap/generator.ts @@ -77,7 +77,7 @@ export default class BootstrapGenerator extends BaseApplicationGenerator { description: projectDescription, license: 'UNLICENSED', }); - if (packageJsonType) { + if (packageJsonType === 'module') { this.packageJson.merge({ type: packageJsonType }); } if (packageJsonNodeEngine) { diff --git a/generators/jdl/__snapshots__/generator.spec.ts.snap b/generators/jdl/__snapshots__/generator.spec.ts.snap index 8fb64cbfa892..990c812e0235 100644 --- a/generators/jdl/__snapshots__/generator.spec.ts.snap +++ b/generators/jdl/__snapshots__/generator.spec.ts.snap @@ -192,7 +192,7 @@ Options: --skip-jhipster-dependencies Don't write jhipster dependencies to package.json. (env: JHI_SKIP_JHIPSTER_DEPENDENCIES) --creation-timestamp Project creation timestamp (used for reproducible builds) --jdl-store JDL store - --prettier-tab-width Default tab width for prettier + --prettier-tab-width Default tab width for prettier (default: 2) --skip-commit-hook Skip adding husky commit hooks --db Provide DB name for the application when skipping server side generation --recreate-initial-changelog Recreate the initial database changelog based on the current config @@ -210,14 +210,14 @@ Options: --reactive Generate a reactive backend --service-discovery-type Service discovery type (choices: "consul", "eureka", "no") --auth Provide authentication type for the application when skipping server side generation (choices: "jwt", "oauth2", "session") - --feign-client Generate a feign client + --feign-client Generate a feign client (default: false) --sync-user-with-idp Allow relationships with User for oauth2 applications --message-broker message broker (choices: "kafka", "pulsar", "no") --database-migration Database migration (choices: "liquibase") --with-generated-flag Add a GeneratedByJHipster annotation to all generated java classes and interfaces --package-name The package name for the generated application - --build Provide build tool for the application when skipping server side generation (choices: "maven", "gradle") - --enable-gradle-enterprise Enable Gradle Enterprise integration + --build Provide build tool for the application when skipping server side generation (default: maven) (choices: "maven", "gradle") + --enable-gradle-enterprise Enable Gradle Enterprise integration (default: false) --gradle-enterprise-host Gradle Enterprise Host --incremental-changelog Creates incremental database changelogs --dev-database-type Development database diff --git a/generators/project-name/command.ts b/generators/project-name/command.ts index b96472cfdca9..c0faea90d1b5 100644 --- a/generators/project-name/command.ts +++ b/generators/project-name/command.ts @@ -17,16 +17,32 @@ * limitations under the License. */ import type { JHipsterCommandDefinition } from '../../lib/command/index.js'; -import { BASE_NAME, BASE_NAME_DESCRIPTION } from './constants.js'; +import { BASE_NAME_DESCRIPTION } from './constants.js'; -const command: JHipsterCommandDefinition = { - options: { - [BASE_NAME]: { +const command = { + configs: { + defaultBaseName: { + internal: true, + scope: 'generator', + }, + validateBaseName: { + internal: true, + scope: 'generator', + }, + baseName: { description: BASE_NAME_DESCRIPTION, - type: String, + cli: { + type: String, + }, + prompt: gen => ({ + type: 'input', + validate: input => gen.validateBaseName(input), + message: 'What is the base name of your application?', + default: () => gen.defaultBaseName(), + }), scope: 'storage', }, }, -}; +} as const satisfies JHipsterCommandDefinition; export default command; diff --git a/generators/project-name/generator.spec.ts b/generators/project-name/generator.spec.ts index b4b1a2e838a9..18a6d264bb4e 100644 --- a/generators/project-name/generator.spec.ts +++ b/generators/project-name/generator.spec.ts @@ -21,6 +21,7 @@ import { fileURLToPath } from 'url'; import { describe, expect, it } from 'esmocha'; import { basicTests, testBlueprintSupport } from '../../test/support/tests.js'; import { GENERATOR_PROJECT_NAME } from '../generator-list.js'; +import { defaultHelpers as helpers, runResult } from '../../lib/testing/helpers.js'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); @@ -41,4 +42,27 @@ describe(`generator - ${generator}`, () => { }, generatorPath, }); + describe('run', () => { + before(async () => { + await helpers.runJHipster(generator); + }); + it('should apply default baseName', () => { + expect(runResult.askedQuestions).toMatchInlineSnapshot(` +[ + { + "answer": "jhipster", + "name": "baseName", + }, +] +`); + }); + }); + describe('with defaultBaseName option', () => { + before(async () => { + await helpers.runJHipster(generator).withOptions({ defaults: true, defaultBaseName: () => 'foo' }); + }); + it('should apply default baseName', () => { + runResult.assertJsonFileContent('.yo-rc.json', { 'generator-jhipster': { baseName: 'foo' } }); + }); + }); }); diff --git a/generators/project-name/generator.ts b/generators/project-name/generator.ts index 740ec71bdf63..bb08d95f8f25 100644 --- a/generators/project-name/generator.ts +++ b/generators/project-name/generator.ts @@ -23,15 +23,17 @@ import BaseApplicationGenerator from '../base-application/index.js'; import { getHipster } from '../base/support/index.js'; import { getDefaultAppName } from './support/index.js'; -import { BASE_NAME } from './constants.js'; import { validateProjectName } from './support/name-resolver.js'; -/** - * @class - * @extends {BaseApplicationGenerator} - */ export default class ProjectNameGenerator extends BaseApplicationGenerator { - javaApplication; + javaApplication?: boolean; + defaultBaseName: () => string = () => + getDefaultAppName({ + reproducible: this.options.reproducible, + javaApplication: this.javaApplication, + }); + validateBaseName: (input: string) => boolean | string = (input: string) => + validateProjectName(input, { javaApplication: this.javaApplication }); async beforeQueue() { this.sharedData.getControl().existingProject = Boolean( @@ -48,10 +50,7 @@ export default class ProjectNameGenerator extends BaseApplicationGenerator { parseOptions() { if (this.options.defaults) { if (!this.jhipsterConfig.baseName) { - this.jhipsterConfig.baseName = getDefaultAppName({ - reproducible: this.options.reproducible, - javaApplication: this.javaApplication, - }); + this.jhipsterConfig.baseName = this.defaultBaseName(); } } }, @@ -62,29 +61,6 @@ export default class ProjectNameGenerator extends BaseApplicationGenerator { return this.delegateTasksToBlueprint(() => this.initializing); } - get prompting() { - return this.asPromptingTaskGroup({ - async showPrompts() { - await this.prompt( - [ - { - name: BASE_NAME, - type: 'input', - validate: input => this.validateBaseName(input), - message: 'What is the base name of your application?', - default: () => getDefaultAppName({ reproducible: this.options.reproducible, javaApplication: this.javaApplication }), - }, - ], - this.config, - ); - }, - }); - } - - get [BaseApplicationGenerator.PROMPTING]() { - return this.delegateTasksToBlueprint(() => this.prompting); - } - get loading() { return this.asLoadingTaskGroup({ load({ application }) { @@ -121,17 +97,4 @@ export default class ProjectNameGenerator extends BaseApplicationGenerator { get [BaseApplicationGenerator.PREPARING]() { return this.delegateTasksToBlueprint(() => this.preparing); } - - /* - * Start of local public API, blueprints may override to customize the generator behavior. - */ - - /** - * Validates baseName - * @param {String} input - Base name to be checked - * @returns Boolean - */ - validateBaseName(input) { - return validateProjectName(input, { javaApplication: this.javaApplication }); - } } diff --git a/generators/react/generator.ts b/generators/react/generator.ts index ebf61fb5a8bc..114ce1840e51 100644 --- a/generators/react/generator.ts +++ b/generators/react/generator.ts @@ -189,6 +189,18 @@ export default class ReactGenerator extends BaseApplicationGenerator { get postWriting() { return this.asPostWritingTaskGroup({ + addMicrofrontendDependencies({ application }) { + if (!application.microfrontend) return; + const { applicationTypeGateway } = application; + if (applicationTypeGateway) { + this.packageJson.merge({ + devDependencies: { '@module-federation/utilities': null }, + }); + } + this.packageJson.merge({ + devDependencies: { '@module-federation/enhanced': null }, + }); + }, addWebsocketDependencies({ application }) { const { communicationSpringWebsocket, nodeDependencies } = application; if (communicationSpringWebsocket) { diff --git a/generators/react/resources/package.json b/generators/react/resources/package.json index 360d72325b28..669e7a8e0d33 100644 --- a/generators/react/resources/package.json +++ b/generators/react/resources/package.json @@ -3,7 +3,7 @@ "@fortawesome/fontawesome-svg-core": "6.6.0", "@fortawesome/free-solid-svg-icons": "6.6.0", "@fortawesome/react-fontawesome": "0.2.2", - "@reduxjs/toolkit": "2.2.7", + "@reduxjs/toolkit": "2.3.0", "axios": "1.7.7", "bootstrap": "5.3.3", "bootswatch": "5.3.3", @@ -16,27 +16,28 @@ "react-loadable": "5.5.0", "react-redux": "9.1.2", "react-redux-loading-bar": "5.0.8", - "react-router-dom": "6.26.2", - "react-toastify": "10.0.5", + "react-router-dom": "6.27.0", + "react-toastify": "10.0.6", "react-transition-group": "4.4.5", "reactstrap": "9.2.3", "redux": "5.0.1", "rxjs": "7.8.1", "sockjs-client": "1.6.1", "sonar-scanner": "3.1.0", - "tslib": "2.7.0", + "tslib": "2.8.0", "uuid": "10.0.0", "webstomp-client": "1.2.6" }, "devDependencies": { "@eslint/js": "9.12.0", - "@module-federation/utilities": "3.1.15", + "@module-federation/enhanced": "0.6.11", + "@module-federation/utilities": "3.1.17", "@testing-library/react": "16.0.1", "@types/jest": "29.5.13", "@types/lodash": "4.17.10", "@types/node": "20.11.25", "@types/react": "18.3.11", - "@types/react-dom": "18.3.0", + "@types/react-dom": "18.3.1", "@types/react-redux": "7.1.34", "@types/redux": "3.6.31", "@types/webpack-env": "1.18.5", @@ -55,7 +56,7 @@ "eslint-webpack-plugin": "4.2.0", "folder-hash": "4.0.4", "fork-ts-checker-webpack-plugin": "9.0.2", - "html-webpack-plugin": "5.6.0", + "html-webpack-plugin": "5.6.2", "identity-obj-proxy": "3.0.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", @@ -69,7 +70,7 @@ "react-infinite-scroll-component": "6.1.0", "redux-mock-store": "1.5.4", "rimraf": "5.0.8", - "sass": "1.79.4", + "sass": "1.77.6", "sass-loader": "16.0.2", "simple-progress-webpack-plugin": "2.0.0", "sinon": "19.0.2", @@ -80,8 +81,8 @@ "thread-loader": "4.0.4", "ts-jest": "29.2.5", "ts-loader": "9.5.1", - "typescript": "5.6.2", - "typescript-eslint": "8.8.0", + "typescript": "5.6.3", + "typescript-eslint": "8.10.0", "webpack": "5.95.0", "webpack-cli": "5.1.4", "webpack-dev-server": "5.1.0", diff --git a/generators/react/templates/package.json.ejs b/generators/react/templates/package.json.ejs index 0a7691982536..f319645b111a 100644 --- a/generators/react/templates/package.json.ejs +++ b/generators/react/templates/package.json.ejs @@ -59,9 +59,6 @@ "uuid": "<%= nodeDependencies['uuid'] %>" }, "devDependencies": { -<%_ if (applicationTypeGateway && microfrontend) { _%> - "@module-federation/utilities": "<%= nodeDependencies['@module-federation/utilities'] %>", -<%_ } _%> "@testing-library/react": "<%= nodeDependencies['@testing-library/react'] %>", "@types/jest": "<%= nodeDependencies['@types/jest'] %>", "@types/lodash": "<%= nodeDependencies['@types/lodash'] %>", diff --git a/generators/server/resources/Dockerfile b/generators/server/resources/Dockerfile index 71cbc81a27b2..c5c57fc5cf55 100644 --- a/generators/server/resources/Dockerfile +++ b/generators/server/resources/Dockerfile @@ -16,11 +16,11 @@ LABEL ALIAS=postgresql FROM quay.io/keycloak/keycloak:25.0.1 LABEL ALIAS=keycloak -FROM mysql:9.0.1 +FROM mysql:9.1.0 FROM mariadb:11.5.2 -FROM mongo:8.0.0 +FROM mongo:8.0.1 LABEL ALIAS=mongodb FROM couchbase/server:7.6.3 @@ -31,14 +31,14 @@ FROM cassandra:5.0 FROM mcr.microsoft.com/mssql/server:2019-CU16-GDR1-ubuntu-20.04 LABEL ALIAS=mssql -FROM neo4j:5.24.1 +FROM neo4j:5.24.2 -FROM hazelcast/management-center:5.5.2 +FROM hazelcast/management-center:5.6.0 LABEL ALIAS=hazelcast FROM memcached:1.6.31-alpine -FROM redis:7.4.0 +FROM redis:7.4.1 FROM confluentinc/cp-kafka:7.7.1 LABEL ALIAS=kafka @@ -52,7 +52,7 @@ LABEL ALIAS=pulsar FROM sonarqube:10.7.0-community LABEL ALIAS=sonar -FROM docker.io/bitnami/consul:1.19.2 +FROM docker.io/bitnami/consul:1.20.0 LABEL ALIAS=consul FROM prom/prometheus:v2.54.1 diff --git a/generators/server/resources/gradle/libs.versions.toml b/generators/server/resources/gradle/libs.versions.toml index f94cdfca8117..eb8dc11d1014 100644 --- a/generators/server/resources/gradle/libs.versions.toml +++ b/generators/server/resources/gradle/libs.versions.toml @@ -7,11 +7,11 @@ feign-reactor-bom = { module = 'com.playtika.reactivefeign:feign-reactor-bom', v # Cucumber testng = { module = 'org.testng:testng', version = '7.10.2' } -cucumber-bom = { module = 'io.cucumber:cucumber-bom', version = '7.20.0' } +cucumber-bom = { module = 'io.cucumber:cucumber-bom', version = '7.20.1' } -mongock-bom = { module = 'io.mongock:mongock-bom', version = '5.4.4' } +mongock-bom = { module = 'io.mongock:mongock-bom', version = '5.5.0' } -neo4j-migrations-spring-boot-starter = { module = 'eu.michael-simons.neo4j:neo4j-migrations-spring-boot-starter', version = '2.13.1' } +neo4j-migrations-spring-boot-starter = { module = 'eu.michael-simons.neo4j:neo4j-migrations-spring-boot-starter', version = '2.13.2' } # Cassandra lz4-java = { module = 'org.lz4:lz4-java', version = '1.8.0' } @@ -37,6 +37,6 @@ gradle-enterprise = { id = 'com.gradle.enterprise', version = '3.18.1' } common-custom-user-data-gradle-plugin = { id = 'com.gradle.common-custom-user-data-gradle-plugin', version = '2.0.2' } -gatling-gradle = { id = 'io.gatling.gradle', version = '3.12.0.2' } +gatling-gradle = { id = 'io.gatling.gradle', version = '3.12.0.3' } -gradle-openapi-generator = { id = 'org.openapi.generator', version = '7.8.0' } +gradle-openapi-generator = { id = 'org.openapi.generator', version = '7.9.0' } diff --git a/generators/server/resources/pom.xml b/generators/server/resources/pom.xml index 21803b8ac743..b7ab5a6cebb6 100644 --- a/generators/server/resources/pom.xml +++ b/generators/server/resources/pom.xml @@ -9,19 +9,19 @@ 1.3.0 - 1.0.9.RELEASE + 1.0.10.RELEASE 1.9.4 3.12.0 0.2.6 1.6.2 - 1.1.1 + 1.1.2 4.7.6 10.18.2 1.11 1.15.1 - 4.10.0 + 4.10.1 9.0.1 1.0.0 0.8.12 @@ -39,7 +39,7 @@ 3.4.0 2.9.0 0.0.11 - 7.8.0 + 7.9.0 1.2.1 4.0.0.4121 2.43.0 diff --git a/generators/spring-boot/prompts.ts b/generators/spring-boot/prompts.ts index 8b023b3d559f..59415cbc86d3 100644 --- a/generators/spring-boot/prompts.ts +++ b/generators/spring-boot/prompts.ts @@ -36,16 +36,7 @@ const { GATEWAY, MONOLITH } = applicationTypes; const { CAFFEINE, EHCACHE, HAZELCAST, INFINISPAN, MEMCACHED, REDIS } = cacheTypes; const { OAUTH2 } = authenticationTypes; const { CASSANDRA, H2_DISK, H2_MEMORY, MONGODB, NEO4J, SQL, COUCHBASE } = databaseTypes; -const { - CACHE_PROVIDER, - DATABASE_TYPE, - DEV_DATABASE_TYPE, - PROD_DATABASE_TYPE, - SERVICE_DISCOVERY_TYPE, - WEBSOCKET, - SEARCH_ENGINE, - ENABLE_SWAGGER_CODEGEN, -} = OptionNames; +const { SERVICE_DISCOVERY_TYPE, WEBSOCKET, SEARCH_ENGINE, ENABLE_SWAGGER_CODEGEN } = OptionNames; const NO_DATABASE = databaseTypes.NO; const NO_CACHE_PROVIDER = cacheTypes.NO; const { GATLING, CUCUMBER } = testFrameworkTypes; @@ -71,17 +62,17 @@ const getOptionFromArray = (array, option) => { export async function askForServerSideOpts(this: CoreGenerator, { control }) { if (control.existingProject && !this.options.askAnswered) return; - const { applicationType } = this.jhipsterConfigWithDefaults; + const { applicationType, authenticationType, reactive } = this.jhipsterConfigWithDefaults; await this.prompt( [ { type: 'list', - name: DATABASE_TYPE, + name: 'databaseType', message: `Which ${chalk.yellow('*type*')} of database would you like to use?`, - choices: answers => { + choices: () => { const opts: any[] = []; - if (!answers.reactive) { + if (!reactive) { opts.push({ value: SQL, name: 'SQL (H2, PostgreSQL, MySQL, MariaDB, Oracle, MSSQL)', @@ -96,7 +87,7 @@ export async function askForServerSideOpts(this: CoreGenerator, { control }) { value: MONGODB, name: 'MongoDB', }); - if (answers.authenticationType !== OAUTH2) { + if (authenticationType !== OAUTH2) { opts.push({ value: CASSANDRA, name: 'Cassandra', @@ -121,15 +112,15 @@ export async function askForServerSideOpts(this: CoreGenerator, { control }) { { when: response => response.databaseType === SQL, type: 'list', - name: PROD_DATABASE_TYPE, + name: 'prodDatabaseType', message: `Which ${chalk.yellow('*production*')} database would you like to use?`, - choices: answers => (answers.reactive ? R2DBC_DB_OPTIONS : SQL_DB_OPTIONS), + choices: reactive ? R2DBC_DB_OPTIONS : SQL_DB_OPTIONS, default: this.jhipsterConfigWithDefaults.prodDatabaseType, }, { when: response => response.databaseType === SQL, type: 'list', - name: DEV_DATABASE_TYPE, + name: 'devDatabaseType', message: `Which ${chalk.yellow('*development*')} database would you like to use?`, choices: response => [SQL_DB_OPTIONS.find(it => it.value === response.prodDatabaseType)].concat([ @@ -145,9 +136,9 @@ export async function askForServerSideOpts(this: CoreGenerator, { control }) { default: this.jhipsterConfigWithDefaults.devDatabaseType, }, { - when: answers => !answers.reactive, + when: !reactive, type: 'list', - name: CACHE_PROVIDER, + name: 'cacheProvider', message: 'Which cache do you want to use? (Spring cache abstraction)', choices: [ { @@ -185,7 +176,7 @@ export async function askForServerSideOpts(this: CoreGenerator, { control }) { when: answers => ((answers.cacheProvider !== NO_CACHE_PROVIDER && answers.cacheProvider !== MEMCACHED) || applicationType === GATEWAY) && answers.databaseType === SQL && - !answers.reactive, + !reactive, type: 'confirm', name: 'enableHibernateCache', message: 'Do you want to use Hibernate 2nd level cache?', diff --git a/generators/spring-boot/resources/spring-boot-dependencies.pom b/generators/spring-boot/resources/spring-boot-dependencies.pom index b6110ad9c58d..f15fc2b99c32 100644 --- a/generators/spring-boot/resources/spring-boot-dependencies.pom +++ b/generators/spring-boot/resources/spring-boot-dependencies.pom @@ -46,6 +46,7 @@ 1.6 2.12.0 3.6.3 + 3.4.1 1.4.0 2.8.1 11.5.9.0 @@ -426,6 +427,11 @@ java-client ${couchbase-client.version} + + com.github.differentway + couchmove + ${couchmove.version} + org.crac crac diff --git a/generators/vue/generator.ts b/generators/vue/generator.ts index e9d7d85f0e3e..a3028a28d553 100644 --- a/generators/vue/generator.ts +++ b/generators/vue/generator.ts @@ -238,6 +238,7 @@ export default class VueGenerator extends BaseApplicationGenerator { } this.packageJson.merge({ devDependencies: { + '@module-federation/enhanced': null, 'browser-sync-webpack-plugin': null, 'copy-webpack-plugin': null, 'css-loader': null, @@ -272,6 +273,7 @@ export default class VueGenerator extends BaseApplicationGenerator { '@module-federation/utilities': null, } : undefined), + '@module-federation/enhanced': null, '@rsbuild/plugin-sass': 'latest', '@rsbuild/plugin-vue': 'latest', 'vue-loader': null, diff --git a/generators/vue/resources/package.json b/generators/vue/resources/package.json index cdfc9cfe0f5e..aa1aabe7128a 100644 --- a/generators/vue/resources/package.json +++ b/generators/vue/resources/package.json @@ -16,13 +16,14 @@ "pinia": "2.2.4", "rxjs": "7.8.1", "sockjs-client": "1.6.1", - "vue": "3.5.11", + "vue": "3.5.12", "vue-i18n": "10.0.4", "vue-router": "4.4.5" }, "devDependencies": { "@eslint/js": "9.12.0", - "@module-federation/utilities": "3.1.15", + "@module-federation/enhanced": "0.6.11", + "@module-federation/utilities": "3.1.17", "@pinia/testing": "0.1.6", "@tsconfig/node18": "18.2.4", "@types/node": "20.11.25", @@ -31,18 +32,18 @@ "@vue/test-utils": "2.4.6", "@vue/tsconfig": "0.5.1", "autoprefixer": "10.4.20", - "axios-mock-adapter": "2.0.0", + "axios-mock-adapter": "2.1.0", "browser-sync-webpack-plugin": "2.3.0", "copy-webpack-plugin": "12.0.2", "css-loader": "7.1.2", "css-minimizer-webpack-plugin": "7.0.0", "eslint": "9.12.0", "eslint-plugin-prettier": "5.2.1", - "eslint-plugin-vue": "9.28.0", + "eslint-plugin-vue": "9.29.0", "flush-promises": "1.0.2", "folder-hash": "4.0.4", "happy-dom": "14.12.3", - "html-webpack-plugin": "5.6.0", + "html-webpack-plugin": "5.6.2", "merge-jsons-webpack-plugin": "2.0.1", "mini-css-extract-plugin": "2.9.1", "numeral": "2.0.6", @@ -50,16 +51,16 @@ "postcss-loader": "8.1.1", "postcss-url": "10.1.3", "rimraf": "5.0.8", - "sass": "1.79.4", + "sass": "1.64.2", "sass-loader": "16.0.2", "sinon": "19.0.2", "terser-webpack-plugin": "5.3.10", "ts-loader": "9.5.1", - "typescript": "5.6.2", - "typescript-eslint": "8.8.0", - "vite": "5.4.8", - "vite-plugin-static-copy": "1.0.6", - "vitest": "2.1.2", + "typescript": "5.6.3", + "typescript-eslint": "8.10.0", + "vite": "5.4.9", + "vite-plugin-static-copy": "2.0.0", + "vitest": "2.1.3", "vitest-sonar-reporter": "2.0.0", "vue-loader": "17.4.2", "vue-style-loader": "4.1.3", diff --git a/generators/vue/templates/module-federation.config.cjs.ejs b/generators/vue/templates/module-federation.config.cjs.ejs index a1fb705bb4c5..3ed3cfdfb6c5 100644 --- a/generators/vue/templates/module-federation.config.cjs.ejs +++ b/generators/vue/templates/module-federation.config.cjs.ejs @@ -50,4 +50,6 @@ module.exports = { '@/locale/translation.service', ), }, + dts: false, + manifest: false, }; diff --git a/generators/vue/templates/package.json.ejs b/generators/vue/templates/package.json.ejs index acfa52300c3c..4e25b34c897e 100644 --- a/generators/vue/templates/package.json.ejs +++ b/generators/vue/templates/package.json.ejs @@ -90,8 +90,7 @@ "vitest-sonar-reporter": "<%= nodeDependencies['vitest-sonar-reporter'] %>" }, "engines": { - "node": ">=<%= nodeVersion %>", - "npm": ">= 6.14.4" + "node": ">=<%= nodeVersion %>" }, "config": { "default_environment": "prod" diff --git a/lib/command/converter.ts b/lib/command/converter.ts index 7ff50a3de5d0..403af9c0bca4 100644 --- a/lib/command/converter.ts +++ b/lib/command/converter.ts @@ -31,13 +31,15 @@ export const extractJdlDefinitionFromCommandConfig = (configs: JHipsterConfigs = .sort((a, b) => (b.name.startsWith(a.name) ? 1 : a.name.localeCompare(b.name))); export const convertConfigToOption = (name: string, config?: ConfigSpec): JHipsterOption | undefined => { - if (!config?.cli?.type) return undefined; + if (!config?.cli?.type && config?.internal !== true) return undefined; const choices = config.choices?.map(choice => (typeof choice === 'string' ? choice : choice.value)) as any; return { name, + default: config.default, description: config.description, choices, scope: config.scope ?? 'storage', + type: val => val, ...config.cli, }; }; diff --git a/lib/command/generator-command.spec.ts b/lib/command/generator-command.spec.ts index 95b14e741947..229ae73bca0a 100644 --- a/lib/command/generator-command.spec.ts +++ b/lib/command/generator-command.spec.ts @@ -70,8 +70,13 @@ const expectApplicationTestOption = () => expect(runResult.generator.sharedData. describe('generator commands', () => { for (const scope of ['generator', 'context', 'storage', 'blueprint', 'none'] as const) { describe(`${scope} scoped`, () => { - const checkOptions = (value: any, argument = false) => { - if (argument) { + const checkOptions = ( + value: any, + { argument = false, expectUndefinedOption = false }: { argument?: boolean; expectUndefinedOption?: boolean } = {}, + ) => { + if (expectUndefinedOption) { + expectGeneratorOptionsTestOption().toBe(undefined); + } else if (argument) { // Argument is passed through positionalArguments option. expectGeneratorOptionsTestOption().toBeUndefined(); } else if (typeof value === 'number') { @@ -107,7 +112,7 @@ describe('generator commands', () => { expectBlueprintConfigTestOption().toBe(value); } - if (!['application', 'storage', 'blueprint'].includes(scope)) { + if (!['application', 'context', 'storage', 'blueprint'].includes(scope)) { expectApplicationTestOption().toBeUndefined(); } else if (Array.isArray(value)) { expectApplicationTestOption().toEqual(value); @@ -206,6 +211,95 @@ describe('generator commands', () => { }); }); }); + + if (scope === 'generator') { + describe('cli option with default value', () => { + describe('boolean', () => { + const config: JHipsterConfig = { + cli: { + type: Boolean, + }, + default: true, + scope, + }; + + it('without options', async () => { + await runDummyCli('', config); + checkOptions(true, { expectUndefinedOption: true }); + }); + it('with true option', async () => { + await runDummyCli('--test-option', config); + checkOptions(true); + }); + it('with false option', async () => { + await runDummyCli('--no-test-option', config); + checkOptions(false); + }); + }); + + describe('string', () => { + const config: JHipsterConfig = { + cli: { + type: String, + }, + default: 'foo', + scope, + }; + + it('without options', async () => { + await runDummyCli('', config); + checkOptions('foo', { expectUndefinedOption: true }); + }); + it('with option value', async () => { + await runDummyCli('--test-option 1', config); + checkOptions('1'); + }); + }); + + describe('number', () => { + const config: JHipsterConfig = { + cli: { + type: Number, + }, + default: 1, + scope, + }; + + it('without options', async () => { + await runDummyCli('', config); + checkOptions(1, { expectUndefinedOption: true }); + }); + it('with option value', async () => { + await runDummyCli('--test-option 1', config); + checkOptions(1); + }); + }); + + describe('array', () => { + const config: JHipsterConfig = { + cli: { + type: Array, + }, + default: ['1'], + scope, + }; + + it('without options', async () => { + await runDummyCli('', config); + checkOptions(['1'], { expectUndefinedOption: true }); + }); + it('with option value', async () => { + await runDummyCli('--test-option 1', config); + checkOptions(['1']); + }); + it('with option values', async () => { + await runDummyCli('--test-option 1 2', config); + checkOptions(['1', '2']); + }); + }); + }); + } + describe('cli argument', () => { describe('string', () => { const config: JHipsterConfig = { @@ -217,11 +311,11 @@ describe('generator commands', () => { it('without argument', async () => { await runDummyCli('', config); - checkOptions(undefined, true); + checkOptions(undefined, { argument: true }); }); it('with argument value', async () => { await runDummyCli('1', config); - checkOptions('1', true); + checkOptions('1', { argument: true }); }); }); @@ -235,15 +329,15 @@ describe('generator commands', () => { it('without arguments', async () => { await runDummyCli('', config); - checkOptions(undefined, true); + checkOptions(undefined, { argument: true }); }); it('with argument value', async () => { await runDummyCli('1', config); - checkOptions(['1'], true); + checkOptions(['1'], { argument: true }); }); it('with arguments values', async () => { await runDummyCli('1 2', config); - checkOptions(['1', '2'], true); + checkOptions(['1', '2'], { argument: true }); }); }); }); diff --git a/lib/command/types.d.ts b/lib/command/types.d.ts index d5be589db037..51dc4d70f77c 100644 --- a/lib/command/types.d.ts +++ b/lib/command/types.d.ts @@ -44,6 +44,7 @@ export type ConfigSpec = { readonly choices?: JHispterChoices; readonly cli?: CliSpec; readonly argument?: JHipsterArgumentConfig; + readonly internal?: true; readonly prompt?: | PromptSpec | ((gen: ConfigContext & { jhipsterConfigWithDefaults: Record }, config: ConfigSpec) => PromptSpec); @@ -73,7 +74,10 @@ export type JHipsterArguments = Record; export type JHipsterOptions = Record; -export type JHipsterConfig = RequireAtLeastOne, 'argument' | 'cli' | 'prompt' | 'jdl'>; +export type JHipsterConfig = RequireAtLeastOne< + ConfigSpec, + 'argument' | 'cli' | 'prompt' | 'jdl' | 'internal' +>; export type JHipsterConfigs = Record>; diff --git a/lib/jdl/core/parsing/validator.ts b/lib/jdl/core/parsing/validator.ts index 1dbad7e47505..975c73e447b3 100644 --- a/lib/jdl/core/parsing/validator.ts +++ b/lib/jdl/core/parsing/validator.ts @@ -18,8 +18,8 @@ */ /* eslint-disable no-useless-escape */ -import { first, flatten, includes, values } from 'lodash-es'; -import type { ICstVisitor, TokenType } from 'chevrotain'; +import { first, flatten, includes } from 'lodash-es'; +import type { ICstVisitor, IToken, TokenType } from 'chevrotain'; import { tokenMatcher as matchesToken } from 'chevrotain'; import type { JDLRuntime } from '../types/runtime.js'; @@ -411,7 +411,7 @@ export default function performAdditionalSyntaxChecks(cst, runtime: JDLRuntime) this.visit(context.configValue, context.CONFIG_KEY[0]); } - configValue(context, configKey) { + configValue(context: Record, configKey: IToken) { const configValue = first(first(Object.values(context))); this.checkConfigPropSyntax(configKey, configValue); } @@ -420,8 +420,8 @@ export default function performAdditionalSyntaxChecks(cst, runtime: JDLRuntime) this.visit(context.deploymentConfigValue, context.DEPLOYMENT_KEY[0]); } - deploymentConfigValue(context, configKey) { - const configValue = first(first(values(context))); + deploymentConfigValue(context: Record, configKey: IToken) { + const configValue = first(first(Object.values(context))); this.checkDeploymentConfigPropSyntax(configKey, configValue); } } diff --git a/lib/types/application/options.d.ts b/lib/types/application/options.d.ts index 88482926d6c3..0a327a57a561 100644 --- a/lib/types/application/options.d.ts +++ b/lib/types/application/options.d.ts @@ -15,6 +15,7 @@ export type ApplicationOptions = Simplify< ExportGeneratorOptionsFromCommand & ExportGeneratorOptionsFromCommand & ExportGeneratorOptionsFromCommand & + ExportGeneratorOptionsFromCommand & ExportGeneratorOptionsFromCommand & ExportGeneratorOptionsFromCommand & ExportGeneratorOptionsFromCommand & diff --git a/lib/types/application/yo-rc.d.ts b/lib/types/application/yo-rc.d.ts index 99424fbdb665..bf07fdfcb70b 100644 --- a/lib/types/application/yo-rc.d.ts +++ b/lib/types/application/yo-rc.d.ts @@ -24,6 +24,7 @@ export type ApplicationConfiguration = Simplify< ExportStoragePropertiesFromCommand & ExportStoragePropertiesFromCommand & ExportStoragePropertiesFromCommand & + ExportStoragePropertiesFromCommand & ExportStoragePropertiesFromCommand & ExportStoragePropertiesFromCommand & ExportStoragePropertiesFromCommand & diff --git a/package-lock.json b/package-lock.json index 3e06a111eaaa..71d6f7eadb6a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,8 +14,8 @@ "@iarna/toml": "3.0.0", "@types/ejs": "3.1.5", "@types/lodash-es": "4.17.12", - "@yeoman/adapter": "1.6.0", - "@yeoman/conflicter": "2.3.0", + "@yeoman/adapter": "2.0.0", + "@yeoman/conflicter": "2.3.1", "@yeoman/namespace": "1.0.1", "@yeoman/transform": "2.1.0", "@yeoman/types": "1.5.0", @@ -31,26 +31,26 @@ "eslint": "9.12.0", "eslint-plugin-import-x": "4.3.1", "eslint-plugin-unused-imports": "4.1.4", - "execa": "9.4.0", + "execa": "9.4.1", "fast-xml-parser": "4.5.0", "glob": "10.4.2", - "globals": "15.10.0", - "isbinaryfile": "5.0.2", + "globals": "15.11.0", + "isbinaryfile": "5.0.3", "java-lint": "0.3.0", "latest-version": "9.0.0", "lodash-es": "4.17.21", - "mem-fs": "4.1.0", - "mem-fs-editor": "11.1.1", + "mem-fs": "4.1.1", + "mem-fs-editor": "11.1.3", "minimatch": "9.0.5", "normalize-path": "3.0.0", "os-locale": "6.0.2", - "p-transform": "4.1.5", + "p-transform": "5.0.1", "parse-gitignore": "2.0.0", "piscina": "4.7.0", "pluralize": "8.0.0", "prettier": "3.3.3", "prettier-plugin-java": "2.6.4", - "prettier-plugin-packagejson": "2.5.2", + "prettier-plugin-packagejson": "2.5.3", "prettier-plugin-properties": "0.3.0", "randexp": "0.5.3", "semver": "7.6.3", @@ -58,10 +58,10 @@ "sort-keys": "5.1.0", "type-fest": "4.26.1", "typescript": "5.5.4", - "typescript-eslint": "8.8.0", - "yaml": "2.5.1", - "yeoman-environment": "4.4.1", - "yeoman-generator": "7.3.2" + "typescript-eslint": "8.10.0", + "yaml": "2.6.0", + "yeoman-environment": "4.4.3", + "yeoman-generator": "7.3.3" }, "bin": { "jhipster": "dist/cli/jhipster.cjs" @@ -69,7 +69,7 @@ "devDependencies": { "@actions/core": "1.11.1", "@eslint/core": "0.6.0", - "@node-loaders/esbuildx": "1.4.0", + "@node-loaders/esbuild": "2.0.0", "@types/chai": "4.3.16", "@types/estree": "1.0.6", "@types/node": "20.11.25", @@ -81,15 +81,14 @@ "eslint-import-resolver-typescript": "3.6.3", "eslint-plugin-chai-friendly": "1.0.1", "eslint-plugin-prettier": "5.2.1", - "esmocha": "1.2.0", + "esmocha": "2.3.0", "jsdoc": "4.0.3", "open-cli": "8.0.0", "prettier2": "npm:prettier@2.8.8", - "quibble": "0.9.2", "rimraf": "5.0.7", "sinon": "19.0.2", "sinon-chai": "3.7.0", - "yeoman-test": "9.2.0" + "yeoman-test": "10.0.1" }, "engines": { "node": "^18.19.0 || >= 20.6.1", @@ -100,7 +99,7 @@ "url": "https://opencollective.com/generator-jhipster" }, "peerDependencies": { - "yeoman-test": "9.2.0" + "yeoman-test": "10.0.1" }, "peerDependenciesMeta": { "yeoman-test": { @@ -113,6 +112,7 @@ "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz", "integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==", "dev": true, + "license": "MIT", "dependencies": { "@actions/exec": "^1.1.1", "@actions/http-client": "^2.0.1" @@ -123,6 +123,7 @@ "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", "dev": true, + "license": "MIT", "dependencies": { "@actions/io": "^1.0.1" } @@ -142,7 +143,8 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz", "integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@ampproject/remapping": { "version": "2.3.0", @@ -159,12 +161,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", + "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/highlight": "^7.25.7", "picocolors": "^1.0.0" }, "engines": { @@ -172,9 +174,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", - "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.8.tgz", + "integrity": "sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==", "dev": true, "license": "MIT", "engines": { @@ -182,22 +184,22 @@ } }, "node_modules/@babel/core": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", - "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.8.tgz", + "integrity": "sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helpers": "^7.25.7", + "@babel/parser": "^7.25.8", + "@babel/template": "^7.25.7", + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.8", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -223,31 +225,31 @@ } }, "node_modules/@babel/generator": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", - "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz", + "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.6", + "@babel/types": "^7.25.7", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", - "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz", + "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", + "@babel/compat-data": "^7.25.7", + "@babel/helper-validator-option": "^7.25.7", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -266,30 +268,30 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz", + "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", - "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz", + "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.2" + "@babel/helper-module-imports": "^7.25.7", + "@babel/helper-simple-access": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -299,9 +301,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz", + "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==", "dev": true, "license": "MIT", "engines": { @@ -309,23 +311,23 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", + "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", "dev": true, "license": "MIT", "engines": { @@ -333,18 +335,18 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", - "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz", + "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==", "dev": true, "license": "MIT", "engines": { @@ -352,26 +354,26 @@ } }, "node_modules/@babel/helpers": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.6.tgz", - "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz", + "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6" + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", + "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.7", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -437,13 +439,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", - "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz", + "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.6" + "@babel/types": "^7.25.8" }, "bin": { "parser": "bin/babel-parser.js" @@ -508,13 +510,13 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz", - "integrity": "sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.7.tgz", + "integrity": "sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -550,13 +552,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.7.tgz", + "integrity": "sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -676,13 +678,13 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz", - "integrity": "sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.7.tgz", + "integrity": "sha512-rR+5FDjpCHqqZN2bzZm18bVYGaejGq5ZkpVCJLXor/+zlSrSoc4KWcHI0URVWjl/68Dyr1uwZUz/1njycEAv9g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -692,32 +694,32 @@ } }, "node_modules/@babel/template": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", - "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz", + "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/code-frame": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz", - "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz", + "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.6", - "@babel/parser": "^7.25.6", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6", + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -736,14 +738,14 @@ } }, "node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz", + "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", + "@babel/helper-string-parser": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -790,394 +792,387 @@ "license": "Apache-2.0" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", - "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", + "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", "cpu": [ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", - "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", - "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", - "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", - "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", - "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", - "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", - "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", - "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", - "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", - "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", "cpu": [ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", - "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", "cpu": [ "loong64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", - "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", "cpu": [ "mips64el" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", - "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", "cpu": [ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", - "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", "cpu": [ "riscv64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", - "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", "cpu": [ "s390x" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", - "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", - "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", + "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", - "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", - "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", - "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", - "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", "cpu": [ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", - "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@eslint-community/eslint-utils": { @@ -1322,6 +1317,7 @@ "version": "9.12.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.12.0.tgz", "integrity": "sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==", + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -1357,6 +1353,7 @@ "url": "https://opencollective.com/fakerjs" } ], + "license": "MIT", "engines": { "node": ">=18.0.0", "npm": ">=9.0.0" @@ -1376,6 +1373,7 @@ "version": "0.19.0", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.0.tgz", "integrity": "sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==", + "license": "Apache-2.0", "engines": { "node": ">=18.18.0" } @@ -1384,6 +1382,7 @@ "version": "0.16.5", "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.5.tgz", "integrity": "sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==", + "license": "Apache-2.0", "dependencies": { "@humanfs/core": "^0.19.0", "@humanwhocodes/retry": "^0.3.0" @@ -1409,6 +1408,7 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "license": "Apache-2.0", "engines": { "node": ">=18.18" }, @@ -1423,15 +1423,210 @@ "integrity": "sha512-td6ZUkz2oS3VeleBcN+m//Q6HlCFCPrnI0FZhrt/h4XqLEdOyYp2u21nd8MdsR+WJy5r9PTDaHTDDfhf4H4l6Q==", "license": "ISC" }, + "node_modules/@inquirer/checkbox": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.0.0.tgz", + "integrity": "sha512-TNd+u1fAG8vf8YMgXzK2BI0u0xsphFv//T5rpF1eZ+8AAXby5Ll1qptr4/XVS45dvWDIzuBmmWIpVJRvnaNqzQ==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.0.0", + "@inquirer/figures": "^1.0.7", + "@inquirer/type": "^3.0.0", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/confirm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.0.0.tgz", + "integrity": "sha512-6QEzj6bZg8atviRIL+pR0tODC854cYSjvZxkyCarr8DVaOJPEyuGys7GmEG3W0Rb8kKSQec7P6okt0sJvNneFw==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.0.0", + "@inquirer/type": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.0.0.tgz", + "integrity": "sha512-7dwoKCGvgZGHWTZfOj2KLmbIAIdiXP9NTrwGaTO/XDfKMEmyBahZpnombiG6JDHmiOrmK3GLEJRXrWExXCDLmQ==", + "license": "MIT", + "dependencies": { + "@inquirer/figures": "^1.0.7", + "@inquirer/type": "^3.0.0", + "ansi-escapes": "^4.3.2", + "cli-width": "^4.1.0", + "mute-stream": "^2.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/editor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.0.0.tgz", + "integrity": "sha512-bhHAP7hIOxUjiTZrpjyAYD+2RFRa+PNutWeW7JdDPcWWG3GVRiFsu3pBGw9kN2PktoiilDWFGSR0dwXBzGQang==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.0.0", + "@inquirer/type": "^3.0.0", + "external-editor": "^3.1.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/expand": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.0.tgz", + "integrity": "sha512-mR7JHNIvCB4o12f75KN42he7s1O9tmcSN4wJ6l04oymfXKLn+lYJFI7z9lbe4/Ald6fm8nuF38fuY5hNPl3B+A==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.0.0", + "@inquirer/type": "^3.0.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@inquirer/figures": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.6.tgz", - "integrity": "sha512-yfZzps3Cso2UbM7WlxKwZQh2Hs6plrbjs1QnzQDZhK2DgyCo6D8AaHps9olkNcUFlcYERMqU3uJSp1gmy3s/qQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.7.tgz", + "integrity": "sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/input": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.0.0.tgz", + "integrity": "sha512-LD7MNzaX+q2OpU4Fn0i/SedhnnBCAnEzRr6L0MP6ohofFFlx9kp5EXX7flbRZlUnh8icOwC3NFmXTyP76hvo0g==", "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.0.0", + "@inquirer/type": "^3.0.0" + }, "engines": { "node": ">=18" } }, + "node_modules/@inquirer/number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.0.tgz", + "integrity": "sha512-DUYfROyQNWm3q+JXL3S6s1/y/cOWRstnmt5zDXhdYNJ5N8TgCnHcDXKwW/dRZL7eBZupmDVHxdKCWZDUYUqmeg==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.0.0", + "@inquirer/type": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/password": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.0.tgz", + "integrity": "sha512-W4QRSzJDMKIvWSvQWOIhs6qba1MJ6yIoy+sazSFhl2QIwn58B0Yw3iZ/zLk3QqVcCsTmKcyrSNVWUJ5RVDLStw==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.0.0", + "@inquirer/type": "^3.0.0", + "ansi-escapes": "^4.3.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/prompts": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.0.0.tgz", + "integrity": "sha512-y8kX/TmyBqV0H1i3cWbhiTljcuBtgVgyVXAVub3ba1j5/G+dxhYohK1JLRkaosPGKKf3LnEJsYK+GPabpfnaHw==", + "license": "MIT", + "dependencies": { + "@inquirer/checkbox": "^4.0.0", + "@inquirer/confirm": "^5.0.0", + "@inquirer/editor": "^4.0.0", + "@inquirer/expand": "^4.0.0", + "@inquirer/input": "^4.0.0", + "@inquirer/number": "^3.0.0", + "@inquirer/password": "^4.0.0", + "@inquirer/rawlist": "^4.0.0", + "@inquirer/search": "^3.0.0", + "@inquirer/select": "^4.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/rawlist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.0.0.tgz", + "integrity": "sha512-frzJNoMsQBO1fxLXrtpxt2c8hUy/ASEmBpIOEnXY2CjylPnLsVyxrEq7hcOIqVJKHn1tIPfplfiSPowOTrrUDg==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.0.0", + "@inquirer/type": "^3.0.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/search": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.0.tgz", + "integrity": "sha512-AT9vkC2KD/PLHZZXIW5Tn/FnJzEU3xEZMLxNo9OggKoreDEKfTOKVM1LkYbDg6UQUOOjntXd0SsrvoHfCzS8cw==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.0.0", + "@inquirer/figures": "^1.0.7", + "@inquirer/type": "^3.0.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/select": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.0.0.tgz", + "integrity": "sha512-XTN4AIFusWbNCBU1Xm2YDxbtH94e/FOrC27U3QargSsoDT1mRm+aLfqE+oOZnUuxwtTnInRT8UHRU3MVOu52wg==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.0.0", + "@inquirer/figures": "^1.0.7", + "@inquirer/type": "^3.0.0", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.0.tgz", + "integrity": "sha512-YYykfbw/lefC7yKj7nanzQXILM7r3suIvyFlCcMskc99axmsSewXWkAfXKwMbgxL76iAFVmRwmYdwNZNc8gjog==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -1473,29 +1668,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", @@ -2264,32 +2436,6 @@ "node": ">= 10" } }, - "node_modules/@node-loaders/auto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@node-loaders/auto/-/auto-1.0.1.tgz", - "integrity": "sha512-/AA96vqB+Dno31VlXAIL4SVdgKh8CJZ5cJqdjF/xiGJ6ghWkYLb+07wJT6fUP7VXtLvW54QbelLG5fZZnH6/LA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@node-loaders/core": "^0.6.0" - }, - "engines": { - "node": "^16.13.0 || >=18.12.0" - } - }, - "node_modules/@node-loaders/auto/node_modules/@node-loaders/core": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@node-loaders/core/-/core-0.6.0.tgz", - "integrity": "sha512-8tVD2mXkVsAX8JFnPob+VkRYKETAe5uAJcHLDamXyehN/I+/sBsODaSMnmaGnueGUhIO38HRPihR1OguNpaWWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.13.0 || >=18.12.0" - } - }, "node_modules/@node-loaders/core": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@node-loaders/core/-/core-1.0.2.tgz", @@ -2304,201 +2450,63 @@ } }, "node_modules/@node-loaders/esbuild": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@node-loaders/esbuild/-/esbuild-1.1.0.tgz", - "integrity": "sha512-Mykl7ltfQ+25mx2zWzaOCwsMcJSYLSsu/Gr1WsfRTyLPNpFTmLJRCejZorg7TgvdUwM79vhL6CPjnBxewNdy1A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@node-loaders/esbuild/-/esbuild-2.0.0.tgz", + "integrity": "sha512-tvXAzErZhZFck9ADi4cuAA+xqsJWedLp1+yaz7oMQbjXGIvV2uDKd+G8UFPKIW3Q6xgeoPTB1IoQyclRRsEAvQ==", "dev": true, - "license": "MIT", "dependencies": { "@node-loaders/core": "^1.0.2", - "@node-loaders/resolve": "^1.0.1", - "esbuild": "^0.19.5", + "@node-loaders/resolve": "^2.0.0", + "esbuild": "^0.23.0 || ^0.24.0", "get-tsconfig": "^4.3.0" }, "engines": { - "node": "^16.13.0 || >=18.12.0" - } - }, - "node_modules/@node-loaders/esbuildx": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@node-loaders/esbuildx/-/esbuildx-1.4.0.tgz", - "integrity": "sha512-2FiY2tdg6rSyf+SxYdZndCfLWeKkVY1Gh/nRzg41lOY3j/UQ+7UYHJqyRJxAfBu02ie7wTHspikcjfIr8MlLuw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@node-loaders/esbuild": "^1.1.0", - "execa": "^7.0.0" - }, - "bin": { - "esbuildx": "dist/bin.cjs" - } - }, - "node_modules/@node-loaders/esbuildx/node_modules/execa": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", - "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@node-loaders/esbuildx/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@node-loaders/esbuildx/node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@node-loaders/esbuildx/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^18.19.0 || >=20.6.0" } }, - "node_modules/@node-loaders/esbuildx/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "node_modules/@node-loaders/resolve": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@node-loaders/resolve/-/resolve-2.0.0.tgz", + "integrity": "sha512-lhu/cUK5GkCSluFCCkWzXJkq8EERaYxPqxFRxZe+QyeKNsLcmjoFkvToy7/N6qiRAX2SILFN/5zgAq3MXg7P8A==", "dev": true, - "license": "MIT", "dependencies": { - "path-key": "^4.0.0" + "find-up": "^7.0.0", + "locate-path": "^7.1.1", + "read-package-up": "^11.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^18.19.0 || >=20.6.0" } }, - "node_modules/@node-loaders/esbuildx/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "node_modules/@node-loaders/resolve/node_modules/find-up": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", + "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", "dev": true, - "license": "MIT", "dependencies": { - "mimic-fn": "^4.0.0" + "locate-path": "^7.2.0", + "path-exists": "^5.0.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@node-loaders/esbuildx/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@node-loaders/esbuildx/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/@node-loaders/esbuildx/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "node_modules/@node-loaders/resolve/node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@node-loaders/jest-mock": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@node-loaders/jest-mock/-/jest-mock-1.1.0.tgz", - "integrity": "sha512-hiYTmsyBr3x4uPhe+mUGDWQ2+skMBLdBRxfLyvAKssGMUEjtLhvlVR26oxJS4PM8uiKWRgGrFKXr5ScgKtnPPA==", - "dev": true, - "dependencies": { - "jest-mock": "^29.3.1" - }, - "peerDependencies": { - "@node-loaders/mock": "^1.0.0-beta.0" - } - }, - "node_modules/@node-loaders/mock": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@node-loaders/mock/-/mock-1.1.0.tgz", - "integrity": "sha512-PHtvJSjLv2wrn0I+p8tC4/lZlSqdAyETBelfHrukuMlKp5NPBQ64gf8jRvpZfQWUYP0LLRSSZNn2wwyCjuBFyw==", - "dev": true, - "peer": true, - "dependencies": { - "@node-loaders/core": "^1.0.2", - "stack-utils": "^2.0.6" - }, - "engines": { - "node": "^16.13.0 || >=18.12.0" - } - }, - "node_modules/@node-loaders/resolve": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@node-loaders/resolve/-/resolve-1.0.1.tgz", - "integrity": "sha512-gBXuNWyHi+UnM1q/0SXA4j2YiW/0+i2qbLV+88/ZvA9YrrHAu/94ulfU5mPkBqH+hi1dd2g3jye2qF0gId89Mw==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^6.3.0", - "locate-path": "^7.1.1", - "read-pkg-up": "^9.1.0" - }, - "engines": { - "node": "^16.13.0 || >=18.12.0" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -3381,16 +3389,6 @@ "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", "license": "MIT" }, - "node_modules/@types/inquirer": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-9.0.7.tgz", - "integrity": "sha512-Q0zyBupO6NxGRZut/JdmqYKOnN95Eg5V8Csg3PGKkP+FnvsUZx1jAyK7fztIszxxMuoBA6E3KXWvdZVXIpx60g==", - "license": "MIT", - "dependencies": { - "@types/through": "*", - "rxjs": "^7.2.0" - } - }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -3432,9 +3430,9 @@ "license": "MIT" }, "node_modules/@types/lodash": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.9.tgz", - "integrity": "sha512-w9iWudx1XWOHW5lQRS9iKpK/XuRhnN+0T7HvdCCd802FYkT1AMTnxndJHGrNJwRoRHkslGr4S29tjm1cT7x/7w==", + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-YpS0zzoduEhuOWjAotS6A5AVCva7X4lVlYLF0FYHAY9sdraBfnatttHItlWeZdGhuEkf+OzMNg2ZYAx8t+52uQ==", "license": "MIT" }, "node_modules/@types/lodash-es": { @@ -3465,9 +3463,9 @@ "license": "MIT" }, "node_modules/@types/mocha": { - "version": "10.0.8", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.8.tgz", - "integrity": "sha512-HfMcUmy9hTMJh66VNcmeC9iVErIZJli2bszuXc6julh5YGuRb/W5OnkHjwLNYdFlMis0sY3If5SEAp+PktdJjw==", + "version": "10.0.9", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.9.tgz", + "integrity": "sha512-sicdRoWtYevwxjOHNMPTl3vSfJM6oyW8o1wXeI7uww6b6xHg8eBznQDNSGBCDJmsE8UMxP05JgZRtsKbTqt//Q==", "dev": true, "license": "MIT" }, @@ -3521,15 +3519,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/through": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.33.tgz", - "integrity": "sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/vinyl": { "version": "2.0.12", "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.12.tgz", @@ -3558,15 +3547,15 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.8.0.tgz", - "integrity": "sha512-wORFWjU30B2WJ/aXBfOm1LX9v9nyt9D3jsSOxC3cCaTQGCW5k4jNpmjFv3U7p/7s4yvdjHzwtv2Sd2dOyhjS0A==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.10.0.tgz", + "integrity": "sha512-phuB3hoP7FFKbRXxjl+DRlQDuJqhpOnm5MmtROXyWi3uS/Xg2ZXqiQfcG2BJHiN4QKyzdOJi3NEn/qTnjUlkmQ==", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.8.0", - "@typescript-eslint/type-utils": "8.8.0", - "@typescript-eslint/utils": "8.8.0", - "@typescript-eslint/visitor-keys": "8.8.0", + "@typescript-eslint/scope-manager": "8.10.0", + "@typescript-eslint/type-utils": "8.10.0", + "@typescript-eslint/utils": "8.10.0", + "@typescript-eslint/visitor-keys": "8.10.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -3590,14 +3579,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.8.0.tgz", - "integrity": "sha512-uEFUsgR+tl8GmzmLjRqz+VrDv4eoaMqMXW7ruXfgThaAShO9JTciKpEsB+TvnfFfbg5IpujgMXVV36gOJRLtZg==", - "dependencies": { - "@typescript-eslint/scope-manager": "8.8.0", - "@typescript-eslint/types": "8.8.0", - "@typescript-eslint/typescript-estree": "8.8.0", - "@typescript-eslint/visitor-keys": "8.8.0", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.10.0.tgz", + "integrity": "sha512-E24l90SxuJhytWJ0pTQydFT46Nk0Z+bsLKo/L8rtQSL93rQ6byd1V/QbDpHUTdLPOMsBCcYXZweADNCfOCmOAg==", + "dependencies": { + "@typescript-eslint/scope-manager": "8.10.0", + "@typescript-eslint/types": "8.10.0", + "@typescript-eslint/typescript-estree": "8.10.0", + "@typescript-eslint/visitor-keys": "8.10.0", "debug": "^4.3.4" }, "engines": { @@ -3617,12 +3606,12 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.8.0.tgz", - "integrity": "sha512-EL8eaGC6gx3jDd8GwEFEV091210U97J0jeEHrAYvIYosmEGet4wJ+g0SYmLu+oRiAwbSA5AVrt6DxLHfdd+bUg==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.10.0.tgz", + "integrity": "sha512-AgCaEjhfql9MDKjMUxWvH7HjLeBqMCBfIaBbzzIcBbQPZE7CPh1m6FF+L75NUMJFMLYhCywJXIDEMa3//1A0dw==", "dependencies": { - "@typescript-eslint/types": "8.8.0", - "@typescript-eslint/visitor-keys": "8.8.0" + "@typescript-eslint/types": "8.10.0", + "@typescript-eslint/visitor-keys": "8.10.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3633,12 +3622,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.8.0.tgz", - "integrity": "sha512-IKwJSS7bCqyCeG4NVGxnOP6lLT9Okc3Zj8hLO96bpMkJab+10HIfJbMouLrlpyOr3yrQ1cA413YPFiGd1mW9/Q==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.10.0.tgz", + "integrity": "sha512-PCpUOpyQSpxBn230yIcK+LeCQaXuxrgCm2Zk1S+PTIRJsEfU6nJ0TtwyH8pIwPK/vJoA+7TZtzyAJSGBz+s/dg==", "dependencies": { - "@typescript-eslint/typescript-estree": "8.8.0", - "@typescript-eslint/utils": "8.8.0", + "@typescript-eslint/typescript-estree": "8.10.0", + "@typescript-eslint/utils": "8.10.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -3656,9 +3645,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.8.0.tgz", - "integrity": "sha512-QJwc50hRCgBd/k12sTykOJbESe1RrzmX6COk8Y525C9l7oweZ+1lw9JiU56im7Amm8swlz00DRIlxMYLizr2Vw==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.10.0.tgz", + "integrity": "sha512-k/E48uzsfJCRRbGLapdZgrX52csmWJ2rcowwPvOZ8lwPUv3xW6CcFeJAXgx4uJm+Ge4+a4tFOkdYvSpxhRhg1w==", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -3668,12 +3657,12 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.8.0.tgz", - "integrity": "sha512-ZaMJwc/0ckLz5DaAZ+pNLmHv8AMVGtfWxZe/x2JVEkD5LnmhWiQMMcYT7IY7gkdJuzJ9P14fRy28lUrlDSWYdw==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.10.0.tgz", + "integrity": "sha512-3OE0nlcOHaMvQ8Xu5gAfME3/tWVDpb/HxtpUZ1WeOAksZ/h/gwrBzCklaGzwZT97/lBbbxJ16dMA98JMEngW4w==", "dependencies": { - "@typescript-eslint/types": "8.8.0", - "@typescript-eslint/visitor-keys": "8.8.0", + "@typescript-eslint/types": "8.10.0", + "@typescript-eslint/visitor-keys": "8.10.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -3695,14 +3684,14 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.8.0.tgz", - "integrity": "sha512-QE2MgfOTem00qrlPgyByaCHay9yb1+9BjnMFnSFkUKQfu7adBXDTnCAivURnuPPAG/qiB+kzKkZKmKfaMT0zVg==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.10.0.tgz", + "integrity": "sha512-Oq4uZ7JFr9d1ZunE/QKy5egcDRXT/FrS2z/nlxzPua2VHFtmMvFNDvpq1m/hq0ra+T52aUezfcjGRIB7vNJF9w==", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.8.0", - "@typescript-eslint/types": "8.8.0", - "@typescript-eslint/typescript-estree": "8.8.0" + "@typescript-eslint/scope-manager": "8.10.0", + "@typescript-eslint/types": "8.10.0", + "@typescript-eslint/typescript-estree": "8.10.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3716,11 +3705,11 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.8.0.tgz", - "integrity": "sha512-8mq51Lx6Hpmd7HnA2fcHQo3YgfX1qbccxQOgZcb4tvasu//zXRaA1j5ZRFeCw/VRAdFi4mRM9DnZw0Nu0Q2d1g==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.10.0.tgz", + "integrity": "sha512-k8nekgqwr7FadWk548Lfph6V3r9OVqjzAIVskE7orMZR23cGJjAOVazsZSJW+ElyjfTM4wx/1g88Mi70DDtG9A==", "dependencies": { - "@typescript-eslint/types": "8.8.0", + "@typescript-eslint/types": "8.10.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -3743,14 +3732,14 @@ } }, "node_modules/@yeoman/adapter": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@yeoman/adapter/-/adapter-1.6.0.tgz", - "integrity": "sha512-oJw/i6zUDdfsT5VOPuANDDEWs5NhlMq5+rmyZIVdgBTXalbCw6nUfJQOblO2Fnq+Ov6CxlyzDBTWQvL5cEjA+g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@yeoman/adapter/-/adapter-2.0.0.tgz", + "integrity": "sha512-eeLe2lRfnxXo2ryyuOt3kUAOLfn/X9LhftFKxEC53bdHZtWYiK0MBP7UKvpydZFwalEjGuMZRLhHfD0BmkIWGA==", "license": "MIT", "dependencies": { - "@types/inquirer": "^9.0.3", + "@inquirer/core": "^10.0.0", "chalk": "^5.2.0", - "inquirer": "^9.2.2", + "inquirer": "^12.0.0", "log-symbols": "^7.0.0", "ora": "^8.1.0", "p-queue": "^8.0.1", @@ -3761,41 +3750,35 @@ } }, "node_modules/@yeoman/conflicter": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@yeoman/conflicter/-/conflicter-2.3.0.tgz", - "integrity": "sha512-4VplZPcXqYPVy0dFRDtAuZKao44C52waTSKmisJtw/1YaKlvHmMUEfOtQrgh15UKhY5CeMwBo6Y2+ILcqLAHjg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@yeoman/conflicter/-/conflicter-2.3.1.tgz", + "integrity": "sha512-IWQUj8YuQSC4WBhRaDhGeZDqn9KDpwyNUBrYn+MwroOTMHb8KdqLNobxen8Vufyk4E59QaQQ89hugO6Em1AUMQ==", "dependencies": { "@yeoman/transform": "^1.2.0", - "binary-extensions": "^2.2.0", + "binary-extensions": "^2.3.0", "cli-table": "^0.3.11", "dateformat": "^5.0.3", "diff": "^7.0.0", - "isbinaryfile": "^5.0.0", - "mem-fs-editor": "^11.0.0", - "minimatch": "^9.0.0", - "p-transform": "^4.1.3", - "pretty-bytes": "^6.1.0", + "isbinaryfile": "^5.0.2", + "mem-fs-editor": "^11.1.2", + "minimatch": "^9.0.5", + "p-transform": "^4.1.6", + "pretty-bytes": "^6.1.1", "slash": "^5.1.0", "textextensions": "^6.11.0" }, "acceptDependencies": { - "@yeoman/transform": "^2.0.0" + "@yeoman/transform": "^2.0.0", + "minimatch": "^10.0.1", + "p-transform": "^5.0.1" }, "engines": { "node": ">=18.12.0" }, "peerDependencies": { "@types/node": ">=18.12.0", - "@yeoman/types": "^1.0.0", - "mem-fs": "^4.0.0" - } - }, - "node_modules/@yeoman/conflicter/node_modules/diff": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", - "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", - "engines": { - "node": ">=0.3.1" + "@yeoman/types": "^1.0.0", + "mem-fs": "^4.0.0" } }, "node_modules/@yeoman/namespace": { @@ -3811,6 +3794,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/@yeoman/transform/-/transform-2.1.0.tgz", "integrity": "sha512-dAgDEMa8S+0ORAmrfFtufUccZpvwj6ZsZLZqMS86bxLUnB9h4n4dZN9IOHJHJfuOY+PAiLrEHgQYQvJ9R6IU6A==", + "license": "MIT", "dependencies": { "minimatch": "^9.0.0" }, @@ -3825,6 +3809,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@yeoman/types/-/types-1.5.0.tgz", "integrity": "sha512-uyeQdpKw3ftj3zN5gG28vOgMuqOGEfKiqWH1R04bm5RK8LRsnXO9SqPao1kC6dwowVQE0Wl/D9+6XmA6y/4qzQ==", + "license": "MIT", "dependencies": { "@yeoman/adapter": "^1.6.0" }, @@ -3860,18 +3845,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "license": "MIT", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, "node_modules/acorn": { "version": "8.12.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", @@ -4181,26 +4154,6 @@ "license": "Apache-2.0", "optional": true }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/before-after-hook": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", @@ -4262,55 +4215,6 @@ "url": "https://bevry.me/fund" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -4390,30 +4294,6 @@ "node-int64": "^0.4.0" } }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, "node_modules/bundle-name": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", @@ -4533,9 +4413,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001664", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001664.tgz", - "integrity": "sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==", + "version": "1.0.30001668", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001668.tgz", + "integrity": "sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw==", "dev": true, "funding": [ { @@ -4814,6 +4694,28 @@ "dev": true, "license": "MIT" }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/cliui/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -5177,27 +5079,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defaults/node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, "node_modules/defer-to-connect": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", @@ -5263,12 +5144,10 @@ "license": "Apache-2.0" }, "node_modules/diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", - "dev": true, + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", + "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", "license": "BSD-3-Clause", - "peer": true, "engines": { "node": ">=0.3.1" } @@ -5399,16 +5278,16 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.29", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.29.tgz", - "integrity": "sha512-PF8n2AlIhCKXQ+gTpiJi0VhcHDb69kYX4MtCiivctc2QD3XuNZ/XIOlbGzt7WAjjEev0TtaH6Cu3arZExm5DOw==", + "version": "1.5.36", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.36.tgz", + "integrity": "sha512-HYTX8tKge/VNp6FGO+f/uVDmUkq+cEfcxYhKf15Akc4M5yxt5YmorwlAitKWjWhWQnKcDRBAQKXkhqqXMqcrjw==", "dev": true, "license": "ISC" }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "license": "MIT" }, "node_modules/encoding": { @@ -5479,53 +5358,43 @@ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", "license": "MIT" }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, "node_modules/esbuild": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", - "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", "dev": true, "hasInstallScript": true, - "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.12", - "@esbuild/android-arm": "0.19.12", - "@esbuild/android-arm64": "0.19.12", - "@esbuild/android-x64": "0.19.12", - "@esbuild/darwin-arm64": "0.19.12", - "@esbuild/darwin-x64": "0.19.12", - "@esbuild/freebsd-arm64": "0.19.12", - "@esbuild/freebsd-x64": "0.19.12", - "@esbuild/linux-arm": "0.19.12", - "@esbuild/linux-arm64": "0.19.12", - "@esbuild/linux-ia32": "0.19.12", - "@esbuild/linux-loong64": "0.19.12", - "@esbuild/linux-mips64el": "0.19.12", - "@esbuild/linux-ppc64": "0.19.12", - "@esbuild/linux-riscv64": "0.19.12", - "@esbuild/linux-s390x": "0.19.12", - "@esbuild/linux-x64": "0.19.12", - "@esbuild/netbsd-x64": "0.19.12", - "@esbuild/openbsd-x64": "0.19.12", - "@esbuild/sunos-x64": "0.19.12", - "@esbuild/win32-arm64": "0.19.12", - "@esbuild/win32-ia32": "0.19.12", - "@esbuild/win32-x64": "0.19.12" + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" } }, "node_modules/escalade": { @@ -5554,6 +5423,7 @@ "version": "9.12.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.12.0.tgz", "integrity": "sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==", + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.11.0", @@ -5723,6 +5593,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-4.3.1.tgz", "integrity": "sha512-5TriWkXulDl486XnYYRgsL+VQoS/7mhN/2ci02iLCuL7gdhbiWxnsuL/NTcaKY9fpMgsMFjWZBtIGW7pb+RX0g==", + "license": "MIT", "dependencies": { "@typescript-eslint/utils": "^8.1.0", "debug": "^4.3.4", @@ -5975,159 +5846,33 @@ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/esmocha": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/esmocha/-/esmocha-1.2.0.tgz", - "integrity": "sha512-lfcRv0qvTRqBhkHFRndFATKaSlxJp/Ol6Qiy8Rewd7p9zK5Y6oPpcnErA0ZKxTjZtNSSnJm+fHNzX1IEhyneHg==", - "dev": true, - "dependencies": { - "@node-loaders/auto": "^1.0.1", - "@node-loaders/esbuild": "^1.1.0", - "@node-loaders/esbuildx": "^1.4.0", - "@node-loaders/jest-mock": "^1.1.0", - "@types/mocha": "^10.0.3", - "execa": "^7.2.0", - "mocha-expect-snapshot": "^7.0.1" - }, - "bin": { - "esmocha": "dist/bin.cjs" - }, - "engines": { - "node": "^16.13.0 || >=18.12.0" - }, - "peerDependencies": { - "mocha": "^10.2.0" - } - }, - "node_modules/esmocha/node_modules/execa": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", - "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/esmocha/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/esmocha/node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/esmocha/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/esmocha/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/esmocha/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/esmocha/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esmocha/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/esmocha/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "node_modules/esmocha": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/esmocha/-/esmocha-2.3.0.tgz", + "integrity": "sha512-a9SubuvtLb68O6V/G+NwTkbSO1vsTuGfSGCHfrEGNAGQgP8l9yJb3NiG7E1nFN1x4gvgYmZzrNWo+kaG8fg2Qw==", "dev": true, - "license": "MIT", + "dependencies": { + "@node-loaders/esbuild": "2.0.0", + "@types/mocha": "^10.0.9", + "jest-mock": "^29.7.0", + "mocha-expect-snapshot": "^7.0.1", + "quibble": "^0.9.2", + "stack-utils": "^2.0.6" + }, + "bin": { + "esmocha": "dist/bin.cjs" + }, "engines": { - "node": ">=12" + "node": "^18.19.0 || >=20.6.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "mocha": "^10.2.0" } }, "node_modules/espree": { @@ -6203,35 +5948,16 @@ "node": ">=0.10.0" } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "license": "MIT" }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, "node_modules/execa": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.4.0.tgz", - "integrity": "sha512-yKHlle2YGxZE842MERVIplWwNH5VYmqqcPFgtnlU//K8gxuFFXu0pwd/CrfXTumFpeEiufsP7+opT/bPJa1yVw==", - "license": "MIT", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.4.1.tgz", + "integrity": "sha512-5eo/BRqZm3GYce+1jqX/tJ7duA2AnE39i88fuedNFUV8XxGxUpF3aWkBRfbUcjV49gCkvS/pzc0YrCPhaIewdg==", "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", "cross-spawn": "^7.0.3", @@ -6589,9 +6315,9 @@ } }, "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", @@ -6806,9 +6532,10 @@ } }, "node_modules/globals": { - "version": "15.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.10.0.tgz", - "integrity": "sha512-tqFIbz83w4Y5TCbtgjZjApohbuh7K9BxGYFm7ifwDR240tvdb7P9x+/9VvUKlmkPoiknoJtanI8UOrqxS3a7lQ==", + "version": "15.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz", + "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==", + "license": "MIT", "engines": { "node": ">=18" }, @@ -6937,39 +6664,6 @@ "he": "bin/he" } }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, "node_modules/http-cache-semantics": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", @@ -7040,6 +6734,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, "funding": [ { "type": "github", @@ -7139,6 +6834,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, "license": "ISC" }, "node_modules/ini": { @@ -7148,204 +6844,23 @@ "license": "ISC" }, "node_modules/inquirer": { - "version": "9.3.7", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.3.7.tgz", - "integrity": "sha512-LJKFHCSeIRq9hanN14IlOtPSTe3lNES7TYDTE2xxdAy1LS5rYphajK1qtwvj3YmQXvvk0U2Vbmcni8P9EIQW9w==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-12.0.0.tgz", + "integrity": "sha512-W3mwgzLtWIqHndtAb82zCHbRfdPit3jcqEyYkAjM/4p15g/1tOoduYydx6IJ3sh31FHT82YoqYZB8RoTwoMy7w==", "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.3", + "@inquirer/core": "^10.0.0", + "@inquirer/prompts": "^7.0.0", + "@inquirer/type": "^3.0.0", "ansi-escapes": "^4.3.2", - "cli-width": "^4.1.0", - "external-editor": "^3.1.0", - "mute-stream": "1.0.0", - "ora": "^5.4.1", + "mute-stream": "^2.0.0", "run-async": "^3.0.0", - "rxjs": "^7.8.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0", - "yoctocolors-cjs": "^2.1.2" + "rxjs": "^7.8.1" }, "engines": { "node": ">=18" } }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/inquirer/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/inquirer/node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inquirer/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inquirer/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/inquirer/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inquirer/node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "license": "MIT", - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inquirer/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" - }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/invert-kv": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-3.0.1.tgz", @@ -7371,13 +6886,6 @@ "node": ">= 12" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "license": "MIT" - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -7577,10 +7085,9 @@ } }, "node_modules/isbinaryfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz", - "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", - "license": "MIT", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.3.tgz", + "integrity": "sha512-VR4gNjFaDP8csJQvzInG20JvBj8MaHYLxNOMXysxRbGM7tcsHZwCjhch3FubFtZBkuDbN55i4dUukGeIrzF+6g==", "engines": { "node": ">= 18.0.0" }, @@ -8076,7 +7583,6 @@ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -8369,16 +7875,16 @@ } }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-buffer": { @@ -8387,13 +7893,6 @@ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "license": "MIT" }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "license": "MIT" - }, "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", @@ -8546,13 +8045,6 @@ "node": ">= 0.8.0" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, "node_modules/linkify-it": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", @@ -8734,12 +8226,12 @@ "license": "MIT" }, "node_modules/mem-fs": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-4.1.0.tgz", - "integrity": "sha512-lOB7haBbxO43eZ/++GA+jBMHQ9DNJeliMt35jNutzCfAgEg5gblFCItnzsss8Z4t81bB5jsz77bptqelHQn0Qw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-4.1.1.tgz", + "integrity": "sha512-GwrbYV4U8h1iTfj3Yac2xxSMw1HGVbf3GcTKriFLf1hUmgoUwVPsfcp8ZQLYr6kiAHNXA9ozxrY5JuA23SjGFA==", "license": "MIT", "dependencies": { - "@types/node": "^20.8.3", + "@types/node": ">=18", "@types/vinyl": "^2.0.8", "vinyl": "^3.0.0", "vinyl-file": "^5.0.0" @@ -8749,25 +8241,27 @@ } }, "node_modules/mem-fs-editor": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-11.1.1.tgz", - "integrity": "sha512-bjBczabthdOjNE9+gRk+wObTihMgwkrhr/ffk7e+adZk0F5I3i5fE/MApOwSG/JYmFAfpoThPkA6i+kKShcl0w==", - "license": "MIT", + "version": "11.1.3", + "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-11.1.3.tgz", + "integrity": "sha512-1+FhUWmCLY6Eqdc8HzDx3+wHScNiZQP62iMFZ+zZDpPmTyzfduPimWYjhtiSkVDBB/yXU1qGmlL8vQrQLUG1Lg==", "dependencies": { "@types/ejs": "^3.1.4", - "@types/node": "^18.18.5", + "@types/node": ">=18", "binaryextensions": "^6.11.0", "commondir": "^1.0.1", "deep-extend": "^0.6.0", "ejs": "^3.1.10", "globby": "^14.0.2", - "isbinaryfile": "5.0.2", + "isbinaryfile": "5.0.3", "minimatch": "^9.0.3", "multimatch": "^7.0.0", "normalize-path": "^3.0.0", "textextensions": "^6.11.0", "vinyl": "^3.0.0" }, + "acceptDependencies": { + "isbinaryfile": "^5.0.3" + }, "engines": { "node": ">=18.0.0" }, @@ -9330,6 +8824,25 @@ "license": "MIT", "peer": true }, + "node_modules/mocha/node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/mocha/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/mocha/node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -9478,6 +8991,22 @@ "node": ">=8" } }, + "node_modules/mocha/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/mocha/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -9555,12 +9084,12 @@ } }, "node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/natural-compare": { @@ -9705,22 +9234,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -10281,6 +9794,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -10290,33 +9804,15 @@ } }, "node_modules/p-transform": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/p-transform/-/p-transform-4.1.5.tgz", - "integrity": "sha512-CsXIiCOeBUYMBLpcY71DTq+fg8268ux31pAxI5TcoYEPfWCw5ozrbgWdZ9QmSDd8dUzvNXtmiwJOdTIxIFptfQ==", - "license": "Apache-2.0", - "dependencies": { - "@types/node": "^16.18.31", - "p-queue": "^7.3.0", - "readable-stream": "^4.3.0" - }, - "engines": { - "node": ">=16.13.0" - } - }, - "node_modules/p-transform/node_modules/p-queue": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.4.1.tgz", - "integrity": "sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==", - "license": "MIT", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/p-transform/-/p-transform-5.0.1.tgz", + "integrity": "sha512-tb3/zIwbU6Z9RMDxZM3/UsyL5LpIUQj7Drq7iXWG9ilPpzyGG28EEFRRrGTsxHf3sOSOiQEiwevQH/VWtHbZfg==", "dependencies": { - "eventemitter3": "^5.0.1", - "p-timeout": "^5.0.2" + "@types/node": ">=18.19.0", + "p-queue": "^8.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18.19.0" } }, "node_modules/p-try": { @@ -10428,25 +9924,6 @@ "node": ">=14" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/parse-ms": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", @@ -10681,13 +10158,13 @@ } }, "node_modules/prettier-plugin-packagejson": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.5.2.tgz", - "integrity": "sha512-w+TmoLv2pIa+siplW1cCj2ujEXQQS6z7wmWLOiLQK/2QVl7Wy6xh/ZUpqQw8tbKMXDodmSW4GONxlA33xpdNOg==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.5.3.tgz", + "integrity": "sha512-ATMEEXr+ywls1kgrZEWl4SBPEm0uDdyDAjyNzUC0/Z8WZTD3RqbJcQDR+Dau+wYkW9KHK6zqQIsFyfn+9aduWg==", "license": "MIT", "dependencies": { "sort-package-json": "2.10.1", - "synckit": "0.9.1" + "synckit": "0.9.2" }, "peerDependencies": { "prettier": ">= 1.16.0" @@ -10778,15 +10255,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/proggy": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/proggy/-/proggy-2.0.0.tgz", @@ -11106,85 +10574,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", - "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^2.0.0" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", - "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^6.3.0", - "read-pkg": "^7.1.0", - "type-fest": "^2.5.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/readable-stream": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", - "license": "MIT", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/readable-web-to-node-stream": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", @@ -11470,6 +10859,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, "funding": [ { "type": "github", @@ -11610,16 +11000,6 @@ "sinon": ">=4.0.0" } }, - "node_modules/sinon/node_modules/diff": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", - "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/sinon/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -11832,23 +11212,27 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/string-width-cjs": { @@ -11866,6 +11250,39 @@ "node": ">=8" } }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -11999,9 +11416,9 @@ } }, "node_modules/synckit": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", - "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", + "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", "license": "MIT", "dependencies": { "@pkgr/core": "^0.1.0", @@ -12409,13 +11826,13 @@ } }, "node_modules/typescript-eslint": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.8.0.tgz", - "integrity": "sha512-BjIT/VwJ8+0rVO01ZQ2ZVnjE1svFBiRczcpr1t1Yxt7sT25VSbPfrJtDsQ8uQTy2pilX5nI9gwxhUyLULNentw==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.10.0.tgz", + "integrity": "sha512-YIu230PeN7z9zpu/EtqCIuRVHPs4iSlqW6TEvjbyDAE3MZsSl2RXBo+5ag+lbABCG8sFM1WVKEXhlQ8Ml8A3Fw==", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.8.0", - "@typescript-eslint/parser": "8.8.0", - "@typescript-eslint/utils": "8.8.0" + "@typescript-eslint/eslint-plugin": "8.10.0", + "@typescript-eslint/parser": "8.10.0", + "@typescript-eslint/utils": "8.10.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -12669,15 +12086,6 @@ "makeerror": "1.0.12" } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -12920,6 +12328,26 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -12953,6 +12381,26 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -13015,10 +12463,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", - "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", - "license": "ISC", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", + "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", "bin": { "yaml": "bin.mjs" }, @@ -13098,6 +12545,28 @@ "node": ">=8" } }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", @@ -13109,10 +12578,9 @@ } }, "node_modules/yeoman-environment": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-4.4.1.tgz", - "integrity": "sha512-x1TXPM6msNm9+zWLUuegfBf2AOwilTIUMAKHmhJvm9zidiDDrkp8cIuK32CvADuMxgbrGrvwHejDWnPScasnkw==", - "license": "BSD-2-Clause", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-4.4.3.tgz", + "integrity": "sha512-Irk6rymmb9vNZRhQlg8LUDeopnEot2VGlP4VayTNjayfQ3nFbiINTIjZqrtHrQdw29nTxYVOAsYy98jL1p27QQ==", "dependencies": { "@yeoman/adapter": "^1.4.0", "@yeoman/conflicter": "^2.0.0-alpha.2", @@ -13136,6 +12604,10 @@ "untildify": "^5.0.0", "which-package-manager": "^0.0.1" }, + "acceptDependencies": { + "@yeoman/adapter": "^2.0.0", + "@yeoman/transform": "^2.1.0" + }, "bin": { "yoe": "bin/bin.cjs" }, @@ -13159,20 +12631,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-environment/node_modules/@yeoman/transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@yeoman/transform/-/transform-1.2.0.tgz", - "integrity": "sha512-evb/+2XMEBoHr4BxBeFkjeVTgTS4Qe7VH8DmzZ9kgJK7C7ACPAhW/qBdsKKP1sb5MoeITSaJSVFnc8S1fjZmcw==", - "license": "MIT", - "dependencies": { - "@types/node": "^16.18.28", - "minimatch": "^9.0.0", - "readable-stream": "^4.3.0" - }, - "engines": { - "node": "^16.13.0 || >=18.12.0" - } - }, "node_modules/yeoman-environment/node_modules/commander": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", @@ -13337,13 +12795,12 @@ } }, "node_modules/yeoman-generator": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-7.3.2.tgz", - "integrity": "sha512-23w2fyGtkIliDwTFfhJDxU047ILPLs3Oz4xfpYVh6qhEQT+aobO9jTOJEzTR/FR0Gx7YpJhjQoBWPK9oYIyGUA==", - "license": "BSD-2-Clause", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-7.3.3.tgz", + "integrity": "sha512-wIWCSRvm0R+Y10B+KJ7wEDo/WPyDMC2CG/2lxR/JnWkl40mtmiM442P5jlklMwp/1m7QCWhfnU8FHvlAfbGXhw==", "dependencies": { "@types/lodash-es": "^4.17.9", - "@types/node": "^18.18.5", + "@types/node": ">=18.18.5", "@yeoman/namespace": "^1.0.0", "chalk": "^5.3.0", "debug": "^4.1.1", @@ -13365,13 +12822,7 @@ }, "peerDependencies": { "@yeoman/types": "^1.1.1", - "mem-fs": "^4.0.0", - "yeoman-environment": "^4.0.0" - }, - "peerDependenciesMeta": { - "yeoman-environment": { - "optional": true - } + "mem-fs": "^4.0.0" } }, "node_modules/yeoman-generator/node_modules/execa": { @@ -13518,13 +12969,12 @@ } }, "node_modules/yeoman-test": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/yeoman-test/-/yeoman-test-9.2.0.tgz", - "integrity": "sha512-xpHtoPxPu+qGgBM5zU9JGMxb8R00w5bOmzJdLsdSRhlwnd4QEsFm0D8l6YgmuDajixRg6Kel897JtqAjPGtTXg==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/yeoman-test/-/yeoman-test-10.0.1.tgz", + "integrity": "sha512-zewYvQoVXnlHR58AO8dnLvjlR3JCk/hJbYJL8qE+NuEQLftoqoc/3+K7E14pBq6HQGlTXFLoQMHr70TP7pxMnw==", "dev": true, "license": "MIT", "dependencies": { - "@yeoman/adapter": "^1.6.0", "lodash-es": "^4.17.21", "mem-fs-editor": "^11.1.1", "signal-exit": "^4.1.0", @@ -13535,7 +12985,8 @@ "node": "^18.19.0 || >= 20.6.1" }, "peerDependencies": { - "@yeoman/types": "^1.4.0", + "@yeoman/adapter": "^1.6.0 || ^2.0.0", + "@yeoman/types": "^1.5.0", "mem-fs": "^4.1.0", "yeoman-environment": "^4.0.0", "yeoman-generator": "^7.0.0" diff --git a/package.json b/package.json index c8b9650aae54..8d08701bdf9e 100644 --- a/package.json +++ b/package.json @@ -125,8 +125,8 @@ "@iarna/toml": "3.0.0", "@types/ejs": "3.1.5", "@types/lodash-es": "4.17.12", - "@yeoman/adapter": "1.6.0", - "@yeoman/conflicter": "2.3.0", + "@yeoman/adapter": "2.0.0", + "@yeoman/conflicter": "2.3.1", "@yeoman/namespace": "1.0.1", "@yeoman/transform": "2.1.0", "@yeoman/types": "1.5.0", @@ -142,26 +142,26 @@ "eslint": "9.12.0", "eslint-plugin-import-x": "4.3.1", "eslint-plugin-unused-imports": "4.1.4", - "execa": "9.4.0", + "execa": "9.4.1", "fast-xml-parser": "4.5.0", "glob": "10.4.2", - "globals": "15.10.0", - "isbinaryfile": "5.0.2", + "globals": "15.11.0", + "isbinaryfile": "5.0.3", "java-lint": "0.3.0", "latest-version": "9.0.0", "lodash-es": "4.17.21", - "mem-fs": "4.1.0", - "mem-fs-editor": "11.1.1", + "mem-fs": "4.1.1", + "mem-fs-editor": "11.1.3", "minimatch": "9.0.5", "normalize-path": "3.0.0", "os-locale": "6.0.2", - "p-transform": "4.1.5", + "p-transform": "5.0.1", "parse-gitignore": "2.0.0", "piscina": "4.7.0", "pluralize": "8.0.0", "prettier": "3.3.3", "prettier-plugin-java": "2.6.4", - "prettier-plugin-packagejson": "2.5.2", + "prettier-plugin-packagejson": "2.5.3", "prettier-plugin-properties": "0.3.0", "randexp": "0.5.3", "semver": "7.6.3", @@ -169,15 +169,15 @@ "sort-keys": "5.1.0", "type-fest": "4.26.1", "typescript": "5.5.4", - "typescript-eslint": "8.8.0", - "yaml": "2.5.1", - "yeoman-environment": "4.4.1", - "yeoman-generator": "7.3.2" + "typescript-eslint": "8.10.0", + "yaml": "2.6.0", + "yeoman-environment": "4.4.3", + "yeoman-generator": "7.3.3" }, "devDependencies": { "@actions/core": "1.11.1", "@eslint/core": "0.6.0", - "@node-loaders/esbuildx": "1.4.0", + "@node-loaders/esbuild": "2.0.0", "@types/chai": "4.3.16", "@types/estree": "1.0.6", "@types/node": "20.11.25", @@ -189,18 +189,17 @@ "eslint-import-resolver-typescript": "3.6.3", "eslint-plugin-chai-friendly": "1.0.1", "eslint-plugin-prettier": "5.2.1", - "esmocha": "1.2.0", + "esmocha": "2.3.0", "jsdoc": "4.0.3", "open-cli": "8.0.0", "prettier2": "npm:prettier@2.8.8", - "quibble": "0.9.2", "rimraf": "5.0.7", "sinon": "19.0.2", "sinon-chai": "3.7.0", - "yeoman-test": "9.2.0" + "yeoman-test": "10.0.1" }, "peerDependencies": { - "yeoman-test": "9.2.0" + "yeoman-test": "10.0.1" }, "peerDependenciesMeta": { "yeoman-test": { @@ -217,7 +216,6 @@ "logo": "https://opencollective.com/opencollective/logo.txt" }, "overrides": { - "@types/node": "$@types/node", "ejs-lint": { "ejs": "$ejs" }