From 95bcbecc81129ffd27eb71e9b9589738459d2a18 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 30 Apr 2026 09:02:24 +0000 Subject: [PATCH] build: update all non-major dependencies See associated pull request for more information. Closes #33101 as a pr takeover --- modules/testing/builder/package.json | 6 +- .../testing/builder/src/builder-harness.ts | 2 +- package.json | 8 +- packages/angular/build/package.json | 8 +- .../src/builders/karma/application_builder.ts | 2 +- .../unit-test/runners/vitest/plugins.ts | 4 +- .../lazy-routes-transformer_spec.ts | 9 +- .../tools/vite/middlewares/ssr-middleware.ts | 10 +- .../src/utils/index-file/inline-fonts.ts | 2 +- .../utils/server-rendering/launch-server.ts | 5 +- .../src/utils/server-rendering/prerender.ts | 2 +- .../angular/build/src/utils/service-worker.ts | 2 +- packages/angular/cli/package.json | 2 +- .../src/command-builder/utilities/command.ts | 2 +- .../angular/cli/src/commands/generate/cli.ts | 6 +- .../mcp/tools/devserver/devserver_spec.ts | 4 +- .../commands/update/utilities/migration.ts | 8 +- packages/angular/ssr/test/hooks_spec.ts | 2 +- .../architect/src/create-builder.ts | 2 +- .../architect/src/jobs/simple-scheduler.ts | 7 +- .../angular_devkit/build_angular/package.json | 6 +- .../extract-i18n/application-extraction.ts | 4 +- .../src/builders/prerender/index.ts | 4 +- .../src/tools/babel/webpack-loader.ts | 2 +- .../plugins/javascript-optimizer-worker.ts | 2 +- packages/angular_devkit/core/package.json | 2 +- .../core/src/json/schema/registry.ts | 2 +- .../core/src/json/schema/visitor.ts | 2 +- .../core/src/logger/null-logger.ts | 2 +- .../angular_devkit/core/src/utils/object.ts | 2 +- .../angular_devkit/core/src/utils/template.ts | 10 +- .../core/src/virtual-fs/host/record.ts | 50 +- .../core/src/virtual-fs/host/test_spec.ts | 2 +- .../core/src/virtual-fs/path_spec.ts | 2 +- .../core/src/workspace/host_spec.ts | 2 +- .../core/src/workspace/json/reader.ts | 2 +- .../angular_devkit/schematics/package.json | 2 +- .../schematics/src/rules/template.ts | 4 +- .../schematics/src/sink/host_spec.ts | 2 +- .../schematics/src/tree/host-tree.ts | 10 +- .../schematics/src/tree/host-tree_spec.ts | 2 +- .../schematics/src/tree/scoped_spec.ts | 4 +- .../schematics/tasks/node/index.ts | 2 +- .../tools/file-system-engine-host_spec.ts | 2 +- packages/ngtools/webpack/src/ivy/plugin.ts | 2 +- .../karma-config-analyzer_spec.ts | 47 +- .../karma-config-comparer_spec.ts | 35 +- packages/schematics/angular/ssr/index.ts | 2 +- .../angular/utility/ast-utils_spec.ts | 4 +- pnpm-lock.yaml | 830 +++++++++--------- 50 files changed, 567 insertions(+), 570 deletions(-) diff --git a/modules/testing/builder/package.json b/modules/testing/builder/package.json index 9ffae1c74f5f..4ce0c265aa44 100644 --- a/modules/testing/builder/package.json +++ b/modules/testing/builder/package.json @@ -4,12 +4,12 @@ "@angular-devkit/build-angular": "workspace:*", "@angular-devkit/core": "workspace:*", "@angular/ssr": "workspace:*", - "@vitest/coverage-v8": "4.1.4", + "@vitest/coverage-v8": "4.1.5", "browser-sync": "3.0.4", "istanbul-lib-instrument": "6.0.3", - "jsdom": "29.0.2", + "jsdom": "29.1.0", "ng-packagr": "22.0.0-next.3", "rxjs": "7.8.2", - "vitest": "4.1.4" + "vitest": "4.1.5" } } diff --git a/modules/testing/builder/src/builder-harness.ts b/modules/testing/builder/src/builder-harness.ts index 67b5f760d148..9b328b64e974 100644 --- a/modules/testing/builder/src/builder-harness.ts +++ b/modules/testing/builder/src/builder-harness.ts @@ -230,7 +230,7 @@ export class BuilderHarness { getOptions: async (project, target, configuration) => { this.validateProjectName(project); if (target === this.targetName) { - return (this.options.get(configuration ?? null) ?? {}) as json.JsonObject; + return this.options.get(configuration ?? null) ?? {}; } else if (configuration !== undefined) { // Harness builder targets currently do not support configurations return {}; diff --git a/package.json b/package.json index 56cd8eee6c2e..56e056611e89 100644 --- a/package.json +++ b/package.json @@ -95,9 +95,9 @@ "@types/yargs": "^17.0.20", "@types/yargs-parser": "^21.0.0", "@types/yarnpkg__lockfile": "^1.1.5", - "@typescript-eslint/eslint-plugin": "8.58.2", - "@typescript-eslint/parser": "8.58.2", - "ajv": "8.18.0", + "@typescript-eslint/eslint-plugin": "8.59.1", + "@typescript-eslint/parser": "8.59.1", + "ajv": "8.20.0", "buffer": "6.0.3", "esbuild": "0.28.0", "esbuild-wasm": "0.28.0", @@ -123,7 +123,7 @@ "lodash": "^4.17.21", "magic-string": "0.30.21", "prettier": "^3.0.0", - "puppeteer": "24.41.0", + "puppeteer": "24.42.0", "quicktype-core": "23.2.6", "rollup": "4.60.2", "rollup-license-plugin": "~3.2.0", diff --git a/packages/angular/build/package.json b/packages/angular/build/package.json index ff5008622fd3..141eaded2a16 100644 --- a/packages/angular/build/package.json +++ b/packages/angular/build/package.json @@ -51,13 +51,13 @@ "@angular-devkit/core": "workspace:*", "@angular/ssr": "workspace:*", "istanbul-lib-instrument": "6.0.3", - "jsdom": "29.0.2", + "jsdom": "29.1.0", "less": "4.6.4", "ng-packagr": "22.0.0-next.3", - "postcss": "8.5.10", - "rolldown": "1.0.0-rc.16", + "postcss": "8.5.12", + "rolldown": "1.0.0-rc.17", "rxjs": "7.8.2", - "vitest": "4.1.4" + "vitest": "4.1.5" }, "peerDependencies": { "@angular/compiler": "0.0.0-ANGULAR-FW-PEER-DEP", diff --git a/packages/angular/build/src/builders/karma/application_builder.ts b/packages/angular/build/src/builders/karma/application_builder.ts index 34e94b1b7645..e904bcbbff8b 100644 --- a/packages/angular/build/src/builders/karma/application_builder.ts +++ b/packages/angular/build/src/builders/karma/application_builder.ts @@ -82,7 +82,7 @@ export function execute( } // Close the stream once the Karma server returns. - karmaServer = new karma.Server(karmaConfig as Config, (exitCode) => { + karmaServer = new karma.Server(karmaConfig, (exitCode) => { controller.enqueue({ success: exitCode === 0 }); controller.close(); }); diff --git a/packages/angular/build/src/builders/unit-test/runners/vitest/plugins.ts b/packages/angular/build/src/builders/unit-test/runners/vitest/plugins.ts index eb3d7d106ab4..f42787e0baf3 100644 --- a/packages/angular/build/src/builders/unit-test/runners/vitest/plugins.ts +++ b/packages/angular/build/src/builders/unit-test/runners/vitest/plugins.ts @@ -117,8 +117,8 @@ function getBrowsersToCheck( ): string[] { const browsersToCheck: string[] = []; - const cliBrowser = browser as CustomBrowserConfigOptions | undefined; - const userBrowser = testConfigBrowser as CustomBrowserConfigOptions | undefined; + const cliBrowser = browser; + const userBrowser = testConfigBrowser; // 1. CLI options override the Vitest configuration completely. if (cliBrowser) { diff --git a/packages/angular/build/src/tools/angular/transformers/lazy-routes-transformer_spec.ts b/packages/angular/build/src/tools/angular/transformers/lazy-routes-transformer_spec.ts index 4dd388f28eb1..fcd1ab667bba 100644 --- a/packages/angular/build/src/tools/angular/transformers/lazy-routes-transformer_spec.ts +++ b/packages/angular/build/src/tools/angular/transformers/lazy-routes-transformer_spec.ts @@ -27,12 +27,9 @@ describe('lazyRoutesTransformer', () => { getSourceFile: () => undefined, useCaseSensitiveFileNames: () => true, resolveModuleNames: (moduleNames, containingFile) => - moduleNames.map( - (name) => - ({ - resolvedFileName: `/project/src/${name}.ts`, - }) as ts.ResolvedModule, - ), + moduleNames.map((name) => ({ + resolvedFileName: `/project/src/${name}.ts`, + })), }; }); diff --git a/packages/angular/build/src/tools/vite/middlewares/ssr-middleware.ts b/packages/angular/build/src/tools/vite/middlewares/ssr-middleware.ts index a26fa8e5e257..04c54fc9d845 100644 --- a/packages/angular/build/src/tools/vite/middlewares/ssr-middleware.ts +++ b/packages/angular/build/src/tools/vite/middlewares/ssr-middleware.ts @@ -36,9 +36,8 @@ export function createAngularSsrInternalMiddleware( // Load the compiler because `@angular/ssr/node` depends on `@angular/` packages, // which must be processed by the runtime linker, even if they are not used. await import('@angular/compiler'); - const { writeResponseToNodeResponse, createWebRequestFromNodeRequest } = (await import( - '@angular/ssr/node' as string - )) as typeof import('@angular/ssr/node', { with: { 'resolution-mode': 'import' } }); + const { writeResponseToNodeResponse, createWebRequestFromNodeRequest } = + await import('@angular/ssr/node'); const { ɵgetOrCreateAngularServerApp } = (await server.ssrLoadModule('/main.server.mjs')) as { ɵgetOrCreateAngularServerApp: typeof getOrCreateAngularServerApp; @@ -86,9 +85,8 @@ export async function createAngularSsrExternalMiddleware( // which must be processed by the runtime linker, even if they are not used. await import('@angular/compiler'); - const { createWebRequestFromNodeRequest, writeResponseToNodeResponse } = (await import( - '@angular/ssr/node' as string - )) as typeof import('@angular/ssr/node', { with: { 'resolution-mode': 'import' } }); + const { createWebRequestFromNodeRequest, writeResponseToNodeResponse } = + await import('@angular/ssr/node'); // Disable host check if allowed hosts is true meaning allow all hosts. const { allowedHosts } = server.config.server; diff --git a/packages/angular/build/src/utils/index-file/inline-fonts.ts b/packages/angular/build/src/utils/index-file/inline-fonts.ts index 52181200c885..7e1c071c7f66 100644 --- a/packages/angular/build/src/utils/index-file/inline-fonts.ts +++ b/packages/angular/build/src/utils/index-file/inline-fonts.ts @@ -203,7 +203,7 @@ export class InlineFontsProcessor { // See: https://nodejs.org/en/learn/http/enterprise-network-configuration // See: https://nodejs.org/docs/latest/api/https.html - const { HttpsProxyAgent } = (await import('https-proxy-agent' as string)) as typeof import( + const { HttpsProxyAgent } = (await import('https-proxy-agent')) as typeof import( 'https-proxy-agent', { with: { 'resolution-mode': 'import' } } ); diff --git a/packages/angular/build/src/utils/server-rendering/launch-server.ts b/packages/angular/build/src/utils/server-rendering/launch-server.ts index 95b2784c6f63..fad4044bd69f 100644 --- a/packages/angular/build/src/utils/server-rendering/launch-server.ts +++ b/packages/angular/build/src/utils/server-rendering/launch-server.ts @@ -20,9 +20,8 @@ export const DEFAULT_URL = new URL('http://ng-localhost/'); */ export async function launchServer(): Promise { const { reqHandler } = await loadEsmModuleFromMemory('./server.mjs'); - const { createWebRequestFromNodeRequest, writeResponseToNodeResponse } = (await import( - '@angular/ssr/node' as string - )) as typeof import('@angular/ssr/node', { with: { 'resolution-mode': 'import' } }); + const { createWebRequestFromNodeRequest, writeResponseToNodeResponse } = + await import('@angular/ssr/node'); if (!isSsrNodeRequestHandler(reqHandler) && !isSsrRequestHandler(reqHandler)) { return DEFAULT_URL; diff --git a/packages/angular/build/src/utils/server-rendering/prerender.ts b/packages/angular/build/src/utils/server-rendering/prerender.ts index 1033a7575f88..0010b1032e94 100644 --- a/packages/angular/build/src/utils/server-rendering/prerender.ts +++ b/packages/angular/build/src/utils/server-rendering/prerender.ts @@ -229,7 +229,7 @@ async function renderPages( assetFiles: assetFilesForWorker, outputMode, hasSsrEntry: !!outputFilesForWorker['server.mjs'], - } as RenderWorkerData, + }, execArgv: workerExecArgv, env: { ...process.env, diff --git a/packages/angular/build/src/utils/service-worker.ts b/packages/angular/build/src/utils/service-worker.ts index 3c8b4cbe6b63..493612d0af87 100644 --- a/packages/angular/build/src/utils/service-worker.ts +++ b/packages/angular/build/src/utils/service-worker.ts @@ -219,7 +219,7 @@ export async function augmentAppWithServiceWorkerCore( baseHref: string, ): Promise<{ manifest: string; assetFiles: { source: string; destination: string }[] }> { // eslint-disable-next-line @typescript-eslint/no-explicit-any - const { Generator } = (await import('@angular/service-worker/config' as any)) as typeof import( + const { Generator } = (await import('@angular/service-worker/config')) as typeof import( '@angular/service-worker/config', { with: { 'resolution-mode': 'import' } } ); diff --git a/packages/angular/cli/package.json b/packages/angular/cli/package.json index ef2a02c53a7c..87c93d697f24 100644 --- a/packages/angular/cli/package.json +++ b/packages/angular/cli/package.json @@ -30,7 +30,7 @@ "@modelcontextprotocol/sdk": "1.29.0", "@schematics/angular": "workspace:0.0.0-PLACEHOLDER", "@yarnpkg/lockfile": "1.1.0", - "algoliasearch": "5.50.2", + "algoliasearch": "5.51.0", "ini": "6.0.0", "jsonc-parser": "3.3.1", "listr2": "10.2.1", diff --git a/packages/angular/cli/src/command-builder/utilities/command.ts b/packages/angular/cli/src/command-builder/utilities/command.ts index 8b019aba9064..036e4f97dcfa 100644 --- a/packages/angular/cli/src/command-builder/utilities/command.ts +++ b/packages/angular/cli/src/command-builder/utilities/command.ts @@ -57,7 +57,7 @@ export function addCommandModuleToYargs( ); } - return cmd.builder(argv) as Argv; + return cmd.builder(argv); }, handler: (args) => cmd.handler(args), }); diff --git a/packages/angular/cli/src/commands/generate/cli.ts b/packages/angular/cli/src/commands/generate/cli.ts index 4be29c3eaea0..8f7125965f12 100644 --- a/packages/angular/cli/src/commands/generate/cli.ts +++ b/packages/angular/cli/src/commands/generate/cli.ts @@ -92,11 +92,7 @@ export default class GenerateCommandModule this.handler({ ...options, schematic: `${collectionName}:${schematicName}`, - } as ArgumentsCamelCase< - SchematicsCommandArgs & { - schematic: string; - } - >), + }), }); } diff --git a/packages/angular/cli/src/commands/mcp/tools/devserver/devserver_spec.ts b/packages/angular/cli/src/commands/mcp/tools/devserver/devserver_spec.ts index 52a66902e2ef..2e0bb67d676a 100644 --- a/packages/angular/cli/src/commands/mcp/tools/devserver/devserver_spec.ts +++ b/packages/angular/cli/src/commands/mcp/tools/devserver/devserver_spec.ts @@ -39,7 +39,7 @@ describe('Serve Tools', () => { mockContext = mock.context; // Customize host spies - mockHost.spawn.and.returnValue(mockProcess as unknown as ChildProcess); + mockHost.spawn.and.returnValue(mockProcess); mockHost.getAvailablePort.and.callFake(() => Promise.resolve(portCounter++)); // Setup default project @@ -125,7 +125,7 @@ describe('Serve Tools', () => { // Start server for project 2, returning a new mock process. const process2 = new MockChildProcess(); - mockHost.spawn.and.returnValue(process2 as unknown as ChildProcess); + mockHost.spawn.and.returnValue(process2); const startResult2 = await startDevserver({ project: 'app-two' }, mockContext); expect(startResult2.structuredContent.message).toBe( `Development server for project 'app-two' started and watching for workspace changes.`, diff --git a/packages/angular/cli/src/commands/update/utilities/migration.ts b/packages/angular/cli/src/commands/update/utilities/migration.ts index f52726de5523..4376e021ab8b 100644 --- a/packages/angular/cli/src/commands/update/utilities/migration.ts +++ b/packages/angular/cli/src/commands/update/utilities/migration.ts @@ -100,13 +100,7 @@ export async function executeMigration( logger.info(colors.cyan(`** Executing '${migrationName}' of package '${packageName}' **\n`)); const schematic = workflow.engine.createSchematic(name, collection); - return executePackageMigrations( - workflow, - logger, - [schematic.description as MigrationSchematicDescription], - packageName, - commit, - ); + return executePackageMigrations(workflow, logger, [schematic.description], packageName, commit); } /** diff --git a/packages/angular/ssr/test/hooks_spec.ts b/packages/angular/ssr/test/hooks_spec.ts index 7d27b2a7efdc..b14120dc77d1 100644 --- a/packages/angular/ssr/test/hooks_spec.ts +++ b/packages/angular/ssr/test/hooks_spec.ts @@ -13,7 +13,7 @@ describe('Hooks', () => { const url = new URL('http://example.com/'); beforeEach(() => { - hooks = new Hooks() as Hooks & { run: Function }; + hooks = new Hooks(); }); describe('on', () => { diff --git a/packages/angular_devkit/architect/src/create-builder.ts b/packages/angular_devkit/architect/src/create-builder.ts index de4808aaa296..73bda2743a88 100644 --- a/packages/angular_devkit/architect/src/create-builder.ts +++ b/packages/angular_devkit/architect/src/create-builder.ts @@ -221,7 +221,7 @@ export function createBuilder { progress({ state: BuilderProgressState.Running, current: total }, context); progress({ state: BuilderProgressState.Stopped }, context); diff --git a/packages/angular_devkit/architect/src/jobs/simple-scheduler.ts b/packages/angular_devkit/architect/src/jobs/simple-scheduler.ts index f5ec59b4f364..330c85ba9d30 100644 --- a/packages/angular_devkit/architect/src/jobs/simple-scheduler.ts +++ b/packages/angular_devkit/architect/src/jobs/simple-scheduler.ts @@ -120,8 +120,7 @@ export class SimpleScheduler< MinimumArgumentT extends JsonValue = JsonValue, MinimumInputT extends JsonValue = JsonValue, MinimumOutputT extends JsonValue = JsonValue, -> implements Scheduler -{ +> implements Scheduler { private _internalJobDescriptionMap = new Map(); private _queue: (() => void)[] = []; private _pauseCounter = 0; @@ -343,7 +342,7 @@ export class SimpleScheduler< description: handler.jobDescription, }); } else { - return EMPTY as Observable>; + return EMPTY; } }), ), @@ -422,7 +421,7 @@ export class SimpleScheduler< output: output.data as O, } as JobOutboundMessageOutput; }), - ) as Observable>; + ); }), _jobShare(), ); diff --git a/packages/angular_devkit/build_angular/package.json b/packages/angular_devkit/build_angular/package.json index 5529d776e5d1..60df0b340f3f 100644 --- a/packages/angular_devkit/build_angular/package.json +++ b/packages/angular_devkit/build_angular/package.json @@ -39,10 +39,10 @@ "loader-utils": "3.3.1", "mini-css-extract-plugin": "2.10.2", "open": "11.0.0", - "ora": "9.3.0", + "ora": "9.4.0", "picomatch": "4.0.4", "piscina": "5.1.4", - "postcss": "8.5.10", + "postcss": "8.5.12", "postcss-loader": "8.2.1", "resolve-url-loader": "5.0.0", "rxjs": "7.8.2", @@ -51,7 +51,7 @@ "semver": "7.7.4", "source-map-loader": "5.0.0", "source-map-support": "0.5.21", - "terser": "5.46.1", + "terser": "5.46.2", "tinyglobby": "0.2.16", "tslib": "2.8.1", "webpack": "5.106.2", diff --git a/packages/angular_devkit/build_angular/src/builders/extract-i18n/application-extraction.ts b/packages/angular_devkit/build_angular/src/builders/extract-i18n/application-extraction.ts index fb6e9138982e..180142af0cab 100644 --- a/packages/angular_devkit/build_angular/src/builders/extract-i18n/application-extraction.ts +++ b/packages/angular_devkit/build_angular/src/builders/extract-i18n/application-extraction.ts @@ -32,10 +32,10 @@ export async function extractMessages( // Setup the build options for the application based on the buildTarget option let buildOptions; if (builderName === '@angular-devkit/build-angular:application') { - buildOptions = (await context.validateOptions( + buildOptions = await context.validateOptions( await context.getTargetOptions(options.buildTarget), builderName, - )) as unknown as ApplicationBuilderOptions; + ); } else { buildOptions = convertBrowserOptions( (await context.validateOptions( diff --git a/packages/angular_devkit/build_angular/src/builders/prerender/index.ts b/packages/angular_devkit/build_angular/src/builders/prerender/index.ts index 5fa433f26e8c..75fc19ff0a6b 100644 --- a/packages/angular_devkit/build_angular/src/builders/prerender/index.ts +++ b/packages/angular_devkit/build_angular/src/builders/prerender/index.ts @@ -71,7 +71,7 @@ async function getRoutes( outputPath, serverBundlePath, zonePackage, - } as RoutesExtractorWorkerData, + }, recordTiming: false, }); @@ -133,7 +133,7 @@ async function _scheduleBuilds( const success = browserResult.success && serverResult.success && browserResult.baseOutputPath !== undefined; - const error = browserResult.error || (serverResult.error as string); + const error = browserResult.error || serverResult.error; return { success, error, browserResult, serverResult }; } catch (e) { diff --git a/packages/angular_devkit/build_angular/src/tools/babel/webpack-loader.ts b/packages/angular_devkit/build_angular/src/tools/babel/webpack-loader.ts index 8cee4edf4d90..02e3f446481b 100644 --- a/packages/angular_devkit/build_angular/src/tools/babel/webpack-loader.ts +++ b/packages/angular_devkit/build_angular/src/tools/babel/webpack-loader.ts @@ -201,7 +201,7 @@ export default custom(() => { break; } }, - } as ApplicationPresetOptions, + }, ], ], }; diff --git a/packages/angular_devkit/build_angular/src/tools/webpack/plugins/javascript-optimizer-worker.ts b/packages/angular_devkit/build_angular/src/tools/webpack/plugins/javascript-optimizer-worker.ts index 55cc3bcaa4fa..90c23d82f585 100644 --- a/packages/angular_devkit/build_angular/src/tools/webpack/plugins/javascript-optimizer-worker.ts +++ b/packages/angular_devkit/build_angular/src/tools/webpack/plugins/javascript-optimizer-worker.ts @@ -129,7 +129,7 @@ export default async function ({ asset, options }: OptimizeRequest) { } if (terserResult.map) { - partialSourcemaps.unshift(terserResult.map as SourceMapInput); + partialSourcemaps.unshift(terserResult.map); } if (asset.map) { diff --git a/packages/angular_devkit/core/package.json b/packages/angular_devkit/core/package.json index fe4a5a13032a..55394a8dfcd0 100644 --- a/packages/angular_devkit/core/package.json +++ b/packages/angular_devkit/core/package.json @@ -25,7 +25,7 @@ "./*.js": "./*.js" }, "dependencies": { - "ajv": "8.18.0", + "ajv": "8.20.0", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", "picomatch": "4.0.4", diff --git a/packages/angular_devkit/core/src/json/schema/registry.ts b/packages/angular_devkit/core/src/json/schema/registry.ts index d433a41bd460..30c779dd0ee4 100644 --- a/packages/angular_devkit/core/src/json/schema/registry.ts +++ b/packages/angular_devkit/core/src/json/schema/registry.ts @@ -460,7 +460,7 @@ export class CoreSchemaRegistry implements SchemaRegistry { items = schema.items; } - const propertyTypes = getTypesOfSchema(parentSchema as JsonObject); + const propertyTypes = getTypesOfSchema(parentSchema); if (!type) { if (propertyTypes.size === 1 && propertyTypes.has('boolean')) { type = 'confirmation'; diff --git a/packages/angular_devkit/core/src/json/schema/visitor.ts b/packages/angular_devkit/core/src/json/schema/visitor.ts index f7094615e56e..5a12c974dc66 100644 --- a/packages/angular_devkit/core/src/json/schema/visitor.ts +++ b/packages/angular_devkit/core/src/json/schema/visitor.ts @@ -76,7 +76,7 @@ function _visitJsonRecursive( } } - const value = visitor(json, ptr, schema as JsonObject, root); + const value = visitor(json, ptr, schema, root); return (isObservable(value) ? value : observableOf(value)).pipe( concatMap((value) => { diff --git a/packages/angular_devkit/core/src/logger/null-logger.ts b/packages/angular_devkit/core/src/logger/null-logger.ts index f5f40dfb0f7b..c35a0cbf4e14 100644 --- a/packages/angular_devkit/core/src/logger/null-logger.ts +++ b/packages/angular_devkit/core/src/logger/null-logger.ts @@ -24,6 +24,6 @@ export class NullLogger extends Logger { warn() {}, error() {}, fatal() {}, - } as LoggerApi; + }; } } diff --git a/packages/angular_devkit/core/src/utils/object.ts b/packages/angular_devkit/core/src/utils/object.ts index 9e7e5b78d3ad..351fd3fea1f7 100644 --- a/packages/angular_devkit/core/src/utils/object.ts +++ b/packages/angular_devkit/core/src/utils/object.ts @@ -24,7 +24,7 @@ export function deepCopy(value: T): T { if (valueCasted[copySymbol]) { // This is a circular dependency. Just return the cloned value. - return valueCasted[copySymbol] as T; + return valueCasted[copySymbol]; } if (valueCasted['toJSON']) { diff --git a/packages/angular_devkit/core/src/utils/template.ts b/packages/angular_devkit/core/src/utils/template.ts index f28bbf7ad417..e7448056bcef 100644 --- a/packages/angular_devkit/core/src/utils/template.ts +++ b/packages/angular_devkit/core/src/utils/template.ts @@ -147,19 +147,19 @@ export function templateParser(sourceText: string, fileName: string): TemplateAs if (content) { end = _positionFor(sourceText, offset + content.length); offset += content.length; - children.push({ kind: 'content', content, start, end } as TemplateAstContent); + children.push({ kind: 'content', content, start, end }); start = end; } if (escape) { end = _positionFor(sourceText, offset + escape.length + 5); offset += escape.length + 5; - children.push({ kind: 'escape', expression: escape, start, end } as TemplateAstEscape); + children.push({ kind: 'escape', expression: escape, start, end }); start = end; } if (comment) { end = _positionFor(sourceText, offset + comment.length + 5); offset += comment.length + 5; - children.push({ kind: 'comment', text: comment, start, end } as TemplateAstComment); + children.push({ kind: 'comment', text: comment, start, end }); start = end; } if (interpolate) { @@ -170,13 +170,13 @@ export function templateParser(sourceText: string, fileName: string): TemplateAs expression: interpolate, start, end, - } as TemplateAstInterpolate); + }); start = end; } if (evaluate) { end = _positionFor(sourceText, offset + evaluate.length + 5); offset += evaluate.length + 5; - children.push({ kind: 'evaluate', expression: evaluate, start, end } as TemplateAstEvaluate); + children.push({ kind: 'evaluate', expression: evaluate, start, end }); start = end; } } diff --git a/packages/angular_devkit/core/src/virtual-fs/host/record.ts b/packages/angular_devkit/core/src/virtual-fs/host/record.ts index 98a445385bbb..443cc1504908 100644 --- a/packages/angular_devkit/core/src/virtual-fs/host/record.ts +++ b/packages/angular_devkit/core/src/virtual-fs/host/record.ts @@ -151,37 +151,25 @@ export class CordHost extends SimpleMemoryHost { records(): CordHostRecord[] { return [ - ...[...this._filesToDelete.values()].map( - (path) => - ({ - kind: 'delete', - path, - }) as CordHostRecord, - ), - ...[...this._filesToRename.entries()].map( - ([from, to]) => - ({ - kind: 'rename', - from, - to, - }) as CordHostRecord, - ), - ...[...this._filesToCreate.values()].map( - (path) => - ({ - kind: 'create', - path, - content: this._read(path), - }) as CordHostRecord, - ), - ...[...this._filesToOverwrite.values()].map( - (path) => - ({ - kind: 'overwrite', - path, - content: this._read(path), - }) as CordHostRecord, - ), + ...[...this._filesToDelete.values()].map((path) => ({ + kind: 'delete', + path, + })), + ...[...this._filesToRename.entries()].map(([from, to]) => ({ + kind: 'rename', + from, + to, + })), + ...[...this._filesToCreate.values()].map((path) => ({ + kind: 'create', + path, + content: this._read(path), + })), + ...[...this._filesToOverwrite.values()].map((path) => ({ + kind: 'overwrite', + path, + content: this._read(path), + })), ]; } diff --git a/packages/angular_devkit/core/src/virtual-fs/host/test_spec.ts b/packages/angular_devkit/core/src/virtual-fs/host/test_spec.ts index 044db5725729..91ca45c7c051 100644 --- a/packages/angular_devkit/core/src/virtual-fs/host/test_spec.ts +++ b/packages/angular_devkit/core/src/virtual-fs/host/test_spec.ts @@ -19,6 +19,6 @@ describe('TestHost', () => { }; const host = new test.TestHost(files); - expect(host.files.sort() as string[]).toEqual(Object.keys(files).sort()); + expect(host.files.sort()).toEqual(Object.keys(files).sort()); }); }); diff --git a/packages/angular_devkit/core/src/virtual-fs/path_spec.ts b/packages/angular_devkit/core/src/virtual-fs/path_spec.ts index e5da5e66e838..83c206b88246 100644 --- a/packages/angular_devkit/core/src/virtual-fs/path_spec.ts +++ b/packages/angular_devkit/core/src/virtual-fs/path_spec.ts @@ -97,7 +97,7 @@ describe('path', () => { it(`(${input}) == "${result}"`, () => { const normalizedInput = normalize(input); - expect(split(normalizedInput)).toEqual(result as PathFragment[]); + expect(split(normalizedInput)).toEqual(result); }); } }); diff --git a/packages/angular_devkit/core/src/workspace/host_spec.ts b/packages/angular_devkit/core/src/workspace/host_spec.ts index c3af99a36215..7ed57d086426 100644 --- a/packages/angular_devkit/core/src/workspace/host_spec.ts +++ b/packages/angular_devkit/core/src/workspace/host_spec.ts @@ -46,7 +46,7 @@ describe('createWorkspaceHost', () => { it('supports writeFile', async () => { await workspaceHost.writeFile('newfile', 'baz'); - expect(testHost.files.sort() as string[]).toEqual(['/abc.txt', '/foo/bar.json', '/newfile']); + expect(testHost.files.sort()).toEqual(['/abc.txt', '/foo/bar.json', '/newfile']); expect(testHost.$read('newfile')).toBe('baz'); }); diff --git a/packages/angular_devkit/core/src/workspace/json/reader.ts b/packages/angular_devkit/core/src/workspace/json/reader.ts index cc258bf00e08..2b42666921bf 100644 --- a/packages/angular_devkit/core/src/workspace/json/reader.ts +++ b/packages/angular_devkit/core/src/workspace/json/reader.ts @@ -267,7 +267,7 @@ function parseProject( }, }); - return Object.assign(project, base) as ProjectDefinition; + return Object.assign(project, base); } function parseTargetsObject( diff --git a/packages/angular_devkit/schematics/package.json b/packages/angular_devkit/schematics/package.json index f88844a0b974..a1529867b5f4 100644 --- a/packages/angular_devkit/schematics/package.json +++ b/packages/angular_devkit/schematics/package.json @@ -16,7 +16,7 @@ "@angular-devkit/core": "workspace:0.0.0-PLACEHOLDER", "jsonc-parser": "3.3.1", "magic-string": "0.30.21", - "ora": "9.3.0", + "ora": "9.4.0", "rxjs": "7.8.2" } } diff --git a/packages/angular_devkit/schematics/src/rules/template.ts b/packages/angular_devkit/schematics/src/rules/template.ts index c01249cc235d..7e854e71b60a 100644 --- a/packages/angular_devkit/schematics/src/rules/template.ts +++ b/packages/angular_devkit/schematics/src/rules/template.ts @@ -180,7 +180,7 @@ export function template(options: T): Rule { // Force cast to PathTemplateData. We need the type for the actual pathTemplate() call, // but in this case we cannot do anything as contentTemplate are more permissive. // Since values are coerced to strings in PathTemplates it will be fine in the end. - pathTemplate(options as {} as PathTemplateData), + pathTemplate(options as {}), ]); } @@ -191,7 +191,7 @@ export function applyTemplates(options: T): Rule { composeFileOperators([ applyContentTemplate(options), // See above for this weird cast. - applyPathTemplate(options as {} as PathTemplateData), + applyPathTemplate(options as {}), (entry) => { return { content: entry.content, diff --git a/packages/angular_devkit/schematics/src/sink/host_spec.ts b/packages/angular_devkit/schematics/src/sink/host_spec.ts index 55d92bea7e7f..88fd601d5196 100644 --- a/packages/angular_devkit/schematics/src/sink/host_spec.ts +++ b/packages/angular_devkit/schematics/src/sink/host_spec.ts @@ -34,7 +34,7 @@ describe('FileSystemSink', () => { const sink = new HostSink(outputHost); await sink.commit(tree).toPromise(); const tmpFiles = outputHost.files.sort(); - expect(tmpFiles as string[]).toEqual(files); + expect(tmpFiles).toEqual(files); expect(outputHost.sync.read(normalize('/test')).toString()).toBe('testing testing 1 2'); }); diff --git a/packages/angular_devkit/schematics/src/tree/host-tree.ts b/packages/angular_devkit/schematics/src/tree/host-tree.ts index 8f9d793a31a9..452a91ccd6ae 100644 --- a/packages/angular_devkit/schematics/src/tree/host-tree.ts +++ b/packages/angular_devkit/schematics/src/tree/host-tree.ts @@ -436,7 +436,7 @@ export class HostTree implements Tree { kind: 'c', path: record.path, content: Buffer.from(record.content), - } as CreateFileAction; + }; break; case 'overwrite': yield { @@ -445,7 +445,7 @@ export class HostTree implements Tree { kind: 'o', path: record.path, content: Buffer.from(record.content), - } as OverwriteFileAction; + }; break; case 'rename': yield { @@ -454,7 +454,7 @@ export class HostTree implements Tree { kind: 'r', path: record.from, to: record.to, - } as RenameFileAction; + }; break; case 'delete': yield { @@ -462,7 +462,7 @@ export class HostTree implements Tree { parent: 0, kind: 'd', path: record.path, - } as DeleteFileAction; + }; break; } } @@ -493,7 +493,7 @@ export class FilterHostTree extends HostTree { constructor(tree: HostTree, filter: FilePredicate = () => true) { const newBackend = new virtualFs.SimpleMemoryHost(); // cast to allow access - const originalBackend = (tree as FilterHostTree)._backend; + const originalBackend = tree._backend; // Walk the original backend and add files that match the filter to the new backend const pendingPaths: Path[] = ['/' as Path]; diff --git a/packages/angular_devkit/schematics/src/tree/host-tree_spec.ts b/packages/angular_devkit/schematics/src/tree/host-tree_spec.ts index b5481de95111..994c93b389d1 100644 --- a/packages/angular_devkit/schematics/src/tree/host-tree_spec.ts +++ b/packages/angular_devkit/schematics/src/tree/host-tree_spec.ts @@ -216,6 +216,6 @@ describe('FilterHostTree', () => { }); const tree = new HostTree(fs); const subDirs = tree.getDir('/dir1').subdirs; - expect(subDirs as string[]).toEqual(['dir2', 'dir3']); + expect(subDirs).toEqual(['dir2', 'dir3']); }); }); diff --git a/packages/angular_devkit/schematics/src/tree/scoped_spec.ts b/packages/angular_devkit/schematics/src/tree/scoped_spec.ts index a0bbbe8aacde..5b5ae607bf2c 100644 --- a/packages/angular_devkit/schematics/src/tree/scoped_spec.ts +++ b/packages/angular_devkit/schematics/src/tree/scoped_spec.ts @@ -107,7 +107,7 @@ describe('ScopedTree', () => { expect(scoped.getDir('/level-2')).not.toBeNull(); const dir = scoped.getDir('level-2'); - expect(dir.path as string).toBe('/level-2'); + expect(dir.path).toBe('/level-2'); expect(dir.parent).not.toBeNull(); const files: string[] = []; dir.visit((path) => files.push(path)); @@ -156,7 +156,7 @@ describe('ScopedTree', () => { it('supports root', () => { expect(scoped.root).not.toBeNull(); - expect(scoped.root.path as string).toBe('/'); + expect(scoped.root.path).toBe('/'); expect(scoped.root.parent).toBeNull(); }); }); diff --git a/packages/angular_devkit/schematics/tasks/node/index.ts b/packages/angular_devkit/schematics/tasks/node/index.ts index 419b534cde4b..053f0dd0a517 100644 --- a/packages/angular_devkit/schematics/tasks/node/index.ts +++ b/packages/angular_devkit/schematics/tasks/node/index.ts @@ -25,7 +25,7 @@ export class BuiltinTaskExecutor { static readonly RepositoryInitializer: TaskExecutorFactory = { name: RepositoryInitializerName, - create: async (options) => RepositoryInitializerExecutor(options) as TaskExecutor<{}>, + create: async (options) => RepositoryInitializerExecutor(options), }; static readonly RunSchematic: TaskExecutorFactory<{}> = { name: RunSchematicName, diff --git a/packages/angular_devkit/schematics/tools/file-system-engine-host_spec.ts b/packages/angular_devkit/schematics/tools/file-system-engine-host_spec.ts index c3ad3af40c5b..7d97139c28bb 100644 --- a/packages/angular_devkit/schematics/tools/file-system-engine-host_spec.ts +++ b/packages/angular_devkit/schematics/tools/file-system-engine-host_spec.ts @@ -309,7 +309,7 @@ describe('FileSystemEngineHost', () => { return lastValueFrom(new HostSink(host).commit(tree)); }); - expect(host.files as string[]).toEqual(['/extra-schematic']); + expect(host.files).toEqual(['/extra-schematic']); expect(host.sync.read(normalize('/extra-schematic')).toString()).toEqual('extra-collection'); }); diff --git a/packages/ngtools/webpack/src/ivy/plugin.ts b/packages/ngtools/webpack/src/ivy/plugin.ts index f46b1360f26a..308635bcea97 100644 --- a/packages/ngtools/webpack/src/ivy/plugin.ts +++ b/packages/ngtools/webpack/src/ivy/plugin.ts @@ -731,7 +731,7 @@ export class AngularWebpackPlugin { const historyData: FileEmitHistoryItem = { length: content.length, - hash: this.webpackCreateHash('xxhash64').update(content).digest() as Uint8Array, + hash: this.webpackCreateHash('xxhash64').update(content).digest(), }; if (this.webpackCache) { diff --git a/packages/schematics/angular/migrations/migrate-karma-to-vitest/karma-config-analyzer_spec.ts b/packages/schematics/angular/migrations/migrate-karma-to-vitest/karma-config-analyzer_spec.ts index 79af125c8690..87a0707d8010 100644 --- a/packages/schematics/angular/migrations/migrate-karma-to-vitest/karma-config-analyzer_spec.ts +++ b/packages/schematics/angular/migrations/migrate-karma-to-vitest/karma-config-analyzer_spec.ts @@ -48,15 +48,12 @@ describe('Karma Config Analyzer', () => { const { settings, hasUnsupportedValues } = analyzeKarmaConfig(karmaConf); - expect(settings.get('basePath') as unknown).toBe(''); - expect(settings.get('frameworks') as unknown).toEqual([ - 'jasmine', - '@angular-devkit/build-angular', - ]); - expect(settings.get('port') as unknown).toBe(9876); - expect(settings.get('autoWatch') as boolean).toBe(true); - expect(settings.get('singleRun') as boolean).toBe(false); - expect(settings.get('reporters') as unknown).toEqual(['progress', 'kjhtml']); + expect(settings.get('basePath')).toBe(''); + expect(settings.get('frameworks')).toEqual(['jasmine', '@angular-devkit/build-angular']); + expect(settings.get('port')).toBe(9876); + expect(settings.get('autoWatch')).toBe(true); + expect(settings.get('singleRun')).toBe(false); + expect(settings.get('reporters')).toEqual(['progress', 'kjhtml']); // eslint-disable-next-line @typescript-eslint/no-explicit-any const plugins = settings.get('plugins') as any[]; @@ -71,9 +68,9 @@ describe('Karma Config Analyzer', () => { expect(dirInfo.module).toBe('path'); expect(dirInfo.export).toBe('join'); expect(dirInfo.isCall).toBe(true); - expect(dirInfo.arguments as unknown).toEqual(['__dirname', './coverage/test-project']); + expect(dirInfo.arguments).toEqual(['__dirname', './coverage/test-project']); - expect(settings.get('logLevel') as unknown).toBe('config.LOG_INFO'); + expect(settings.get('logLevel')).toBe('config.LOG_INFO'); expect(hasUnsupportedValues).toBe(false); }); @@ -181,7 +178,7 @@ describe('Karma Config Analyzer', () => { expect(dirInfo.module).toBe('path'); expect(dirInfo.export).toBe('join'); expect(dirInfo.isCall).toBe(true); - expect(dirInfo.arguments as unknown).toEqual(['__dirname', undefined]); // myPath is a variable + expect(dirInfo.arguments).toEqual(['__dirname', undefined]); // myPath is a variable expect(hasUnsupportedValues).toBe(true); }); @@ -190,22 +187,19 @@ describe('Karma Config Analyzer', () => { const { settings, hasUnsupportedValues } = analyzeKarmaConfig(defaultConfig); expect(hasUnsupportedValues).toBe(false); - expect(settings.get('basePath') as unknown).toBe(''); - expect(settings.get('frameworks') as unknown).toEqual([ - 'jasmine', - '@angular-devkit/build-angular', - ]); - expect(settings.get('plugins') as unknown).toEqual([ + expect(settings.get('basePath')).toBe(''); + expect(settings.get('frameworks')).toEqual(['jasmine', '@angular-devkit/build-angular']); + expect(settings.get('plugins')).toEqual([ { module: 'karma-jasmine' }, { module: 'karma-chrome-launcher' }, { module: 'karma-jasmine-html-reporter' }, { module: 'karma-coverage' }, { module: '@angular-devkit/build-angular/plugins/karma' }, ]); - expect(settings.get('client') as unknown).toEqual({ + expect(settings.get('client')).toEqual({ jasmine: {}, }); - expect(settings.get('jasmineHtmlReporter') as unknown).toEqual({ + expect(settings.get('jasmineHtmlReporter')).toEqual({ suppressAll: true, }); const coverageReporter = settings.get('coverageReporter') as { @@ -216,15 +210,12 @@ describe('Karma Config Analyzer', () => { expect(coverageReporter.dir.module).toBe('path'); expect(coverageReporter.dir.export).toBe('join'); expect(coverageReporter.dir.isCall).toBe(true); - expect(coverageReporter.dir.arguments as unknown).toEqual([ - '__dirname', - '../coverage/test-project', - ]); + expect(coverageReporter.dir.arguments).toEqual(['__dirname', '../coverage/test-project']); expect(coverageReporter.subdir).toBe('.'); expect(coverageReporter.reporters).toEqual([{ type: 'html' }, { type: 'text-summary' }]); - expect(settings.get('reporters') as unknown).toEqual(['progress', 'kjhtml']); - expect(settings.get('browsers') as unknown).toEqual(['Chrome']); - expect(settings.get('restartOnFileChange') as unknown).toBe(true); + expect(settings.get('reporters')).toEqual(['progress', 'kjhtml']); + expect(settings.get('browsers')).toEqual(['Chrome']); + expect(settings.get('restartOnFileChange')).toBe(true); }); it('should correctly parse require with property access and a call', () => { @@ -274,7 +265,7 @@ describe('Karma Config Analyzer', () => { `; const { settings, hasUnsupportedValues } = analyzeKarmaConfig(karmaConf); - expect(settings.get('port') as unknown).toBe(9876); + expect(settings.get('port')).toBe(9876); expect(settings.has('basePath')).toBe(false); expect(hasUnsupportedValues).toBe(true); }); diff --git a/packages/schematics/angular/migrations/migrate-karma-to-vitest/karma-config-comparer_spec.ts b/packages/schematics/angular/migrations/migrate-karma-to-vitest/karma-config-comparer_spec.ts index 77fafdc4c2b5..709f96127f95 100644 --- a/packages/schematics/angular/migrations/migrate-karma-to-vitest/karma-config-comparer_spec.ts +++ b/packages/schematics/angular/migrations/migrate-karma-to-vitest/karma-config-comparer_spec.ts @@ -13,6 +13,7 @@ import { generateDefaultKarmaConfig, } from './karma-config-comparer'; +// eslint-disable @typescript-eslint/no-unnecessary-type-assertion describe('Karma Config Comparer', () => { describe('compareKarmaConfigs', () => { it('should find no differences for identical configs', () => { @@ -50,7 +51,7 @@ describe('Karma Config Comparer', () => { expect(diff.isReliable).toBe(true); expect(diff.added.size).toBe(1); - expect(diff.added.get('propB') as unknown).toBe('valueB'); + expect(diff.added.get('propB')).toBe('valueB'); expect(diff.removed.size).toBe(0); expect(diff.modified.size).toBe(0); }); @@ -73,7 +74,7 @@ describe('Karma Config Comparer', () => { expect(diff.isReliable).toBe(true); expect(diff.added.size).toBe(0); expect(diff.removed.size).toBe(1); - expect(diff.removed.get('propB') as unknown).toBe('valueB'); + expect(diff.removed.get('propB')).toBe('valueB'); expect(diff.modified.size).toBe(0); }); @@ -94,8 +95,8 @@ describe('Karma Config Comparer', () => { expect(diff.removed.size).toBe(0); expect(diff.modified.size).toBe(1); const modifiedProp = diff.modified.get('propA'); - expect(modifiedProp?.projectValue as unknown).toBe('newValue'); - expect(modifiedProp?.defaultValue as unknown).toBe('oldValue'); + expect(modifiedProp?.projectValue).toBe('newValue'); + expect(modifiedProp?.defaultValue).toBe('oldValue'); }); it('should handle a mix of added, removed, and modified properties', () => { @@ -120,13 +121,13 @@ describe('Karma Config Comparer', () => { expect(diff.isReliable).toBe(true); expect(diff.added.size).toBe(1); - expect(diff.added.get('propC') as unknown).toBe('valueC'); + expect(diff.added.get('propC')).toBe('valueC'); expect(diff.removed.size).toBe(1); - expect(diff.removed.get('propD') as unknown).toBe('valueD'); + expect(diff.removed.get('propD')).toBe('valueD'); expect(diff.modified.size).toBe(1); const modifiedPropB = diff.modified.get('propB'); - expect(modifiedPropB?.projectValue as unknown).toBe('newValueB'); - expect(modifiedPropB?.defaultValue as unknown).toBe('oldValueB'); + expect(modifiedPropB?.projectValue).toBe('newValueB'); + expect(modifiedPropB?.defaultValue).toBe('oldValueB'); }); it('should detect a modified require call', () => { @@ -190,14 +191,8 @@ describe('Karma Config Comparer', () => { projectValue: { dir: RequireInfo }; defaultValue: { dir: RequireInfo }; }; - expect(modified?.projectValue.dir.arguments as string[]).toEqual([ - '__dirname', - 'project-path', - ]); - expect(modified?.defaultValue.dir.arguments as string[]).toEqual([ - '__dirname', - 'default-path', - ]); + expect(modified?.projectValue.dir.arguments).toEqual(['__dirname', 'project-path']); + expect(modified?.defaultValue.dir.arguments).toEqual(['__dirname', 'default-path']); }); it('should detect an added require call', () => { @@ -279,11 +274,11 @@ describe('Karma Config Comparer', () => { expect(diff.removed.size).toBe(0); expect(diff.modified.size).toBe(2); const restartOnFileChange = diff.modified.get('restartOnFileChange'); - expect(restartOnFileChange?.projectValue as boolean).toBe(false); - expect(restartOnFileChange?.defaultValue as boolean).toBe(true); + expect(restartOnFileChange?.projectValue).toBe(false); + expect(restartOnFileChange?.defaultValue).toBe(true); const reporters = diff.modified.get('reporters'); - expect(reporters?.projectValue as string[]).toEqual(['dots']); - expect(reporters?.defaultValue as string[]).toEqual(['progress', 'kjhtml']); + expect(reporters?.projectValue).toEqual(['dots']); + expect(reporters?.defaultValue).toEqual(['progress', 'kjhtml']); }); it('should return an unreliable diff if the project config has unsupported values', async () => { diff --git a/packages/schematics/angular/ssr/index.ts b/packages/schematics/angular/ssr/index.ts index 49e57d523268..013b0c5309dd 100644 --- a/packages/schematics/angular/ssr/index.ts +++ b/packages/schematics/angular/ssr/index.ts @@ -207,7 +207,7 @@ function updateApplicationBuilderWorkspaceConfigRule( buildTarget.options = { ...buildTarget.options, security: { - ...((buildTarget.options?.security as JsonObject | undefined) ?? {}), + ...(buildTarget.options?.security ?? {}), allowedHosts: [], }, outputPath, diff --git a/packages/schematics/angular/utility/ast-utils_spec.ts b/packages/schematics/angular/utility/ast-utils_spec.ts index c937d7124ebe..77b13dfbf4cd 100644 --- a/packages/schematics/angular/utility/ast-utils_spec.ts +++ b/packages/schematics/angular/utility/ast-utils_spec.ts @@ -257,7 +257,7 @@ describe('ast utils', () => { const elements = (arrayNode.pop() as ts.ArrayLiteralExpression).elements; const change = insertAfterLastOccurrence( - elements as unknown as ts.Node[], + elements, `, 'bar'`, filePath, elements.pos, @@ -275,7 +275,7 @@ describe('ast utils', () => { const elements = (arrayNode.pop() as ts.ArrayLiteralExpression).elements; const change = insertAfterLastOccurrence( - elements as unknown as ts.Node[], + elements, `'bar'`, filePath, elements.pos, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c501ad8d9fc4..dc366513140d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -173,14 +173,14 @@ importers: specifier: ^1.1.5 version: 1.1.9 '@typescript-eslint/eslint-plugin': - specifier: 8.58.2 - version: 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2) + specifier: 8.59.1 + version: 8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2) '@typescript-eslint/parser': - specifier: 8.58.2 - version: 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2) + specifier: 8.59.1 + version: 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2) ajv: - specifier: 8.18.0 - version: 8.18.0 + specifier: 8.20.0 + version: 8.20.0 buffer: specifier: 6.0.3 version: 6.0.3 @@ -198,7 +198,7 @@ importers: version: 10.1.8(eslint@10.2.1(jiti@2.6.1)) eslint-plugin-import: specifier: 2.32.0 - version: 2.32.0(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.1(jiti@2.6.1)) + version: 2.32.0(@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.1(jiti@2.6.1)) express: specifier: 5.2.1 version: 5.2.1 @@ -257,8 +257,8 @@ importers: specifier: ^3.0.0 version: 3.8.3 puppeteer: - specifier: 24.41.0 - version: 24.41.0(bufferutil@4.1.0)(typescript@6.0.2)(utf-8-validate@6.0.6) + specifier: 24.42.0 + version: 24.42.0(bufferutil@4.1.0)(typescript@6.0.2)(utf-8-validate@6.0.6) quicktype-core: specifier: 23.2.6 version: 23.2.6(encoding@0.1.13) @@ -314,8 +314,8 @@ importers: specifier: workspace:* version: link:../../../packages/angular/ssr '@vitest/coverage-v8': - specifier: 4.1.4 - version: 4.1.4(vitest@4.1.4) + specifier: 4.1.5 + version: 4.1.5(vitest@4.1.5) browser-sync: specifier: 3.0.4 version: 3.0.4(bufferutil@4.1.0)(utf-8-validate@6.0.6) @@ -323,8 +323,8 @@ importers: specifier: 6.0.3 version: 6.0.3 jsdom: - specifier: 29.0.2 - version: 29.0.2 + specifier: 29.1.0 + version: 29.1.0 ng-packagr: specifier: 22.0.0-next.3 version: 22.0.0-next.3(@angular/compiler-cli@22.0.0-next.9(@angular/compiler@22.0.0-next.9)(typescript@6.0.2))(tslib@2.8.1)(typescript@6.0.2) @@ -332,8 +332,8 @@ importers: specifier: 7.8.2 version: 7.8.2 vitest: - specifier: 4.1.4 - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@24.12.2)(@vitest/coverage-v8@4.1.4)(jiti@2.6.1)(jsdom@29.0.2)(less@4.6.4)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + specifier: 4.1.5 + version: 4.1.5(@opentelemetry/api@1.9.1)(@types/node@24.12.2)(@vitest/coverage-v8@4.1.5)(jiti@2.6.1)(jsdom@29.1.0)(less@4.6.4)(sass@1.99.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) packages/angular/build: dependencies: @@ -357,7 +357,7 @@ importers: version: 6.0.12(@types/node@24.12.2) '@vitejs/plugin-basic-ssl': specifier: 2.3.0 - version: 2.3.0(vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(less@4.6.4)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 2.3.0(vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(less@4.6.4)(sass@1.99.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) beasties: specifier: 0.4.2 version: 0.4.2 @@ -408,7 +408,7 @@ importers: version: 0.2.16 vite: specifier: 7.3.2 - version: 7.3.2(@types/node@24.12.2)(jiti@2.6.1)(less@4.6.4)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + version: 7.3.2(@types/node@24.12.2)(jiti@2.6.1)(less@4.6.4)(sass@1.99.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) watchpack: specifier: 2.5.1 version: 2.5.1 @@ -423,8 +423,8 @@ importers: specifier: 6.0.3 version: 6.0.3 jsdom: - specifier: 29.0.2 - version: 29.0.2 + specifier: 29.1.0 + version: 29.1.0 less: specifier: 4.6.4 version: 4.6.4 @@ -432,17 +432,17 @@ importers: specifier: 22.0.0-next.3 version: 22.0.0-next.3(@angular/compiler-cli@22.0.0-next.9(@angular/compiler@22.0.0-next.9)(typescript@6.0.2))(tslib@2.8.1)(typescript@6.0.2) postcss: - specifier: 8.5.10 - version: 8.5.10 + specifier: 8.5.12 + version: 8.5.12 rolldown: - specifier: 1.0.0-rc.16 - version: 1.0.0-rc.16 + specifier: 1.0.0-rc.17 + version: 1.0.0-rc.17 rxjs: specifier: 7.8.2 version: 7.8.2 vitest: - specifier: 4.1.4 - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@24.12.2)(@vitest/coverage-v8@4.1.4)(jiti@2.6.1)(jsdom@29.0.2)(less@4.6.4)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + specifier: 4.1.5 + version: 4.1.5(@opentelemetry/api@1.9.1)(@types/node@24.12.2)(@vitest/coverage-v8@4.1.5)(jiti@2.6.1)(jsdom@29.1.0)(less@4.6.4)(sass@1.99.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) optionalDependencies: lmdb: specifier: 3.5.4 @@ -475,8 +475,8 @@ importers: specifier: 1.1.0 version: 1.1.0 algoliasearch: - specifier: 5.50.2 - version: 5.50.2 + specifier: 5.51.0 + version: 5.51.0 ini: specifier: 6.0.0 version: 6.0.0 @@ -615,7 +615,7 @@ importers: version: 4.1.3 autoprefixer: specifier: 10.5.0 - version: 10.5.0(postcss@8.5.10) + version: 10.5.0(postcss@8.5.12) babel-loader: specifier: 10.1.1 version: 10.1.1(@babel/core@7.29.0)(webpack@5.106.2(esbuild@0.28.0)) @@ -662,8 +662,8 @@ importers: specifier: 11.0.0 version: 11.0.0 ora: - specifier: 9.3.0 - version: 9.3.0 + specifier: 9.4.0 + version: 9.4.0 picomatch: specifier: 4.0.4 version: 4.0.4 @@ -671,11 +671,11 @@ importers: specifier: 5.1.4 version: 5.1.4 postcss: - specifier: 8.5.10 - version: 8.5.10 + specifier: 8.5.12 + version: 8.5.12 postcss-loader: specifier: 8.2.1 - version: 8.2.1(postcss@8.5.10)(typescript@6.0.2)(webpack@5.106.2(esbuild@0.28.0)) + version: 8.2.1(postcss@8.5.12)(typescript@6.0.2)(webpack@5.106.2(esbuild@0.28.0)) resolve-url-loader: specifier: 5.0.0 version: 5.0.0 @@ -698,8 +698,8 @@ importers: specifier: 0.5.21 version: 0.5.21 terser: - specifier: 5.46.1 - version: 5.46.1 + specifier: 5.46.2 + version: 5.46.2 tinyglobby: specifier: 0.2.16 version: 0.2.16 @@ -764,11 +764,11 @@ importers: packages/angular_devkit/core: dependencies: ajv: - specifier: 8.18.0 - version: 8.18.0 + specifier: 8.20.0 + version: 8.20.0 ajv-formats: specifier: 3.0.1 - version: 3.0.1(ajv@8.18.0) + version: 3.0.1(ajv@8.20.0) jsonc-parser: specifier: 3.3.1 version: 3.3.1 @@ -798,8 +798,8 @@ importers: specifier: 0.30.21 version: 0.30.21 ora: - specifier: 9.3.0 - version: 9.3.0 + specifier: 9.4.0 + version: 9.4.0 rxjs: specifier: 7.8.2 version: 7.8.2 @@ -875,60 +875,60 @@ packages: '@actions/io@3.0.2': resolution: {integrity: sha512-nRBchcMM+QK1pdjO7/idu86rbJI5YHUKCvKs0KxnSYbVe3F51UfGxuZX4Qy/fWlp6l7gWFwIkrOzN+oUK03kfw==} - '@algolia/abtesting@1.16.2': - resolution: {integrity: sha512-n9s6bEV6imdtIEd+BGP7WkA4pEZ5YTdgQ05JQhHwWawHg3hyjpNwC0TShGz6zWhv+jfLDGA/6FFNbySFS0P9cw==} + '@algolia/abtesting@1.17.0': + resolution: {integrity: sha512-nuhHZdTiCtRzJEe9VSNzyqE9cOQMt01UWBzymFnjbgwrxxZpbGHQde6Oa/y9zyspTCjbUtb7Q5HQek1CLiLyeg==} engines: {node: '>= 14.0.0'} - '@algolia/client-abtesting@5.50.2': - resolution: {integrity: sha512-52iq0vHy1sphgnwoZyx5PmbEt8hsh+m7jD123LmBs6qy4GK7LbYZIeKd+nSnSipN2zvKRZ2zScS6h9PW3J7SXg==} + '@algolia/client-abtesting@5.51.0': + resolution: {integrity: sha512-PKrKlIla1U2J7mFcIQn6N3pWP4oySmkxShnbbDsj/H7818gKbET5KsUwsVoNjWIxHKTJMCTcQ7ekAJ8Ea23NMg==} engines: {node: '>= 14.0.0'} - '@algolia/client-analytics@5.50.2': - resolution: {integrity: sha512-WpPIUg+cSG2aPUG0gS8Ko9DwRgbRPUZxJkolhL2aCsmSlcEEZT65dILrfg5ovcxtx0Kvr+xtBVsTMtsQWRtPDQ==} + '@algolia/client-analytics@5.51.0': + resolution: {integrity: sha512-U+HCY1K16Km91pIRL1kN6bW6BbGFAF/WhkRSCx4wyl1aFpbrlhSFQs/dAwWbmyBiHWwVWhl7stWHQ1pum5EfMw==} engines: {node: '>= 14.0.0'} - '@algolia/client-common@5.50.2': - resolution: {integrity: sha512-Gj2MgtArGcsr82kIqRlo6/dCAFjrs2gLByEqyRENuT7ugrSMFuqg1vDzeBjRL1t3EJEJCFtT0PLX3gB8A6Hq4Q==} + '@algolia/client-common@5.51.0': + resolution: {integrity: sha512-YPJ3dEuZLCRp846Az94t6Z2gwSNRazP+SmBco7p6SCa4fYrtIE820PDXYZshbNrj2Z8Qfbmv7BQ1Lecl5L3G/w==} engines: {node: '>= 14.0.0'} - '@algolia/client-insights@5.50.2': - resolution: {integrity: sha512-CUqoid5jDpmrc0oK3/xuZXFt6kwT0P9Lw7/nsM14YTr6puvmi+OUKmURpmebQF22S2vCG8L1DAoXXujxQUi/ug==} + '@algolia/client-insights@5.51.0': + resolution: {integrity: sha512-/gEwLlR7fQ7YjOW+ADRZ0NxLDtpTC61FSzlZ01Gdl1kTJfU0Rq3Y/TYqwxGxlQGcUiXtGzrpjxXWh3Y0TZD6NA==} engines: {node: '>= 14.0.0'} - '@algolia/client-personalization@5.50.2': - resolution: {integrity: sha512-AndZWFoc0gbP5901OeQJ73BazgGgSGiBEba4ohdoJuZwHTO2Gio8Q4L1VLmytMBYcviVigB0iICToMvEJxI4ug==} + '@algolia/client-personalization@5.51.0': + resolution: {integrity: sha512-nRwUN1Y2cKyOAFZyIBagkEfZSIhP05nWhT4Rjwl84lcjECssYggftrAODrZ4leakXxSGjhxs/AdaAFEIBqwVFA==} engines: {node: '>= 14.0.0'} - '@algolia/client-query-suggestions@5.50.2': - resolution: {integrity: sha512-NWoL+psEkz5dIzweaByVXuEB45wS8/rk0E0AhMMnaVJdVs7TcACPH2/OURm+N0xRDITkTHqCna823rd6Uqntdg==} + '@algolia/client-query-suggestions@5.51.0': + resolution: {integrity: sha512-pybzYCG7VoQKppo+z5iZOKpW8XqtFxhsAIRgEaNboCnfypKukiBHJAwB+pmr7vMZXBsOHwklGYWwCG82e8qshA==} engines: {node: '>= 14.0.0'} - '@algolia/client-search@5.50.2': - resolution: {integrity: sha512-ypSboUJ3XJoQz5DeDo82hCnrRuwq3q9ZdFhVKAik9TnZh1DvLqoQsrbBjXg7C7zQOtV/Qbge/HmyoV6V5L7MhQ==} + '@algolia/client-search@5.51.0': + resolution: {integrity: sha512-DWVIlj6RqcvdhwP0gBU9OpOQPnHdcAk9jlT+z8rsNb2+liWv4eUlfQZ7saGBraFsnygEHD3PtdppIHvqwBAb5w==} engines: {node: '>= 14.0.0'} - '@algolia/ingestion@1.50.2': - resolution: {integrity: sha512-VlR2FRXLw2bCB94SQo6zxg/Qi+547aOji6Pb+dKE7h1DMCCY317St+OpjpmgzE+bT2O9ALIc0V4nVIBOd7Gy+Q==} + '@algolia/ingestion@1.51.0': + resolution: {integrity: sha512-bA25s12iUDJi/X8M7tWlPRT8GeOhls/yDbdoUqinz27lNqsOlcM1UrAxIKdIZ6lm3sXit+ewPIz1pS2x6rXu8g==} engines: {node: '>= 14.0.0'} - '@algolia/monitoring@1.50.2': - resolution: {integrity: sha512-Cmvfp2+qopzQt8OilU97rhLhosq7ZrB6uieok3EwFUqG/aalPg6DgfCmu0yJMrYe+KMC1qRVt1MTRAUwLknUMQ==} + '@algolia/monitoring@1.51.0': + resolution: {integrity: sha512-zj+RcE5e0NE0/ew6oEOTgOplPHry+w2oi7h0Y87lhdq4E0d7xLS31KVB8kKfCGkrG7AYtZvrcyvLOKS5d0no4Q==} engines: {node: '>= 14.0.0'} - '@algolia/recommend@5.50.2': - resolution: {integrity: sha512-jrkuyKoOM7dFWQ/6Y4hQAse2SC3L/RldG6GnPjMvAj65h+7Ubb51S0pKk4ofSStF0xm4LCNe0C4T6XX4nOFDiQ==} + '@algolia/recommend@5.51.0': + resolution: {integrity: sha512-/HDgccfye1Rq3bPxaSCsvSEBHzSMmtpM9ZRGRtAuC62Cv+ql/76IWnxjGTDXtqIJ+/j7ZlFYAzq9fkp95wF2SQ==} engines: {node: '>= 14.0.0'} - '@algolia/requester-browser-xhr@5.50.2': - resolution: {integrity: sha512-4107YLJqCudPiBUlwnk6oTSUVwU7ab+qL1SfQGEDYI8DZH5gsf1ekPt9JykXRKYXf2IfouFL5GiCY/PHTFIjYw==} + '@algolia/requester-browser-xhr@5.51.0': + resolution: {integrity: sha512-nJdW+WBwGlXWMJbxxB7/AJPvNq0lLJSudXmIQCJbmH8jsOXQhRpAtoCD4ceLyJKv3ze9JbQu4Gqu5JDLckuFcw==} engines: {node: '>= 14.0.0'} - '@algolia/requester-fetch@5.50.2': - resolution: {integrity: sha512-vOrd3MQpLgmf6wXAueTuZ/cA0W4uRwIHHaxNy3h+a6YcNn6bCV/gFdZuv3F13v593zRU2k5R75NmvRWLenvMrw==} + '@algolia/requester-fetch@5.51.0': + resolution: {integrity: sha512-bsBgRI/1h1mjS3eCyfGau78yGZVmiDLmT1aU6dMnk75/T0SgKqnSKNpQ53xKoDYVChGDcNnpHXWpoUSo8MH1+w==} engines: {node: '>= 14.0.0'} - '@algolia/requester-node-http@5.50.2': - resolution: {integrity: sha512-Mu9BFtgzGqDUy5Bcs2nMyoILIFSN13GKQaklKAFIsd0K3/9CpNyfeBc+/+Qs6mFZLlxG9qzullO7h+bjcTBuGQ==} + '@algolia/requester-node-http@5.51.0': + resolution: {integrity: sha512-zPrIDVPpmKWgrjmWOqpqrhqAhNjvVkjoj+mqw2NBPxEOuKNzP0H+Qz5NJLLTOepBVj1UFedFaF3AUgxLsB9ukQ==} engines: {node: '>= 14.0.0'} '@ampproject/remapping@2.3.0': @@ -1654,11 +1654,11 @@ packages: resolution: {integrity: sha512-dDlz3W405VMFO4w5kIP9DOmELBcvFQGmLoKSdIRstBDubKFYwaNHV1NnlzMCQpXQFGWVALmeMORAuiLx18AvZQ==} engines: {node: '>=14.17.0'} - '@emnapi/core@1.9.2': - resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - '@emnapi/runtime@1.9.2': - resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} @@ -2997,8 +2997,8 @@ packages: resolution: {integrity: sha512-cifvXDhcqMwwTlTK04GBNeIe7yyo28Mfby85QXFe1Yk8nmi36Ab/5UQwptOx84SsoGNRg+EVSjwzfSZMy6pmlw==} engines: {node: '>=14'} - '@oxc-project/types@0.126.0': - resolution: {integrity: sha512-oGfVtjAgwQVVpfBrbtk4e1XDyWHRFta6BS3GWVzrF8xYBT2VGQAk39yJS/wFSMrZqoiCU4oghT3Ch0HaHGIHcQ==} + '@oxc-project/types@0.127.0': + resolution: {integrity: sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==} '@parcel/watcher-android-arm64@2.5.6': resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} @@ -3184,103 +3184,103 @@ packages: engines: {node: '>=18'} hasBin: true - '@rolldown/binding-android-arm64@1.0.0-rc.16': - resolution: {integrity: sha512-rhY3k7Bsae9qQfOtph2Pm2jZEA+s8Gmjoz4hhmx70K9iMQ/ddeae+xhRQcM5IuVx5ry1+bGfkvMn7D6MJggVSA==} + '@rolldown/binding-android-arm64@1.0.0-rc.17': + resolution: {integrity: sha512-s70pVGhw4zqGeFnXWvAzJDlvxhlRollagdCCKRgOsgUOH3N1l0LIxf83AtGzmb5SiVM4Hjl5HyarMRfdfj3DaQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.0-rc.16': - resolution: {integrity: sha512-rNz0yK078yrNn3DrdgN+PKiMOW8HfQ92jQiXxwX8yW899ayV00MLVdaCNeVBhG/TbH3ouYVObo8/yrkiectkcQ==} + '@rolldown/binding-darwin-arm64@1.0.0-rc.17': + resolution: {integrity: sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-rc.16': - resolution: {integrity: sha512-r/OmdR00HmD4i79Z//xO06uEPOq5hRXdhw7nzkxQxwSavs3PSHa1ijntdpOiZ2mzOQ3fVVu8C1M19FoNM+dMUQ==} + '@rolldown/binding-darwin-x64@1.0.0-rc.17': + resolution: {integrity: sha512-SUSDOI6WwUVNcWxd02QEBjLdY1VPHvlEkw6T/8nYG322iYWCTxRb1vzk4E+mWWYehTp7ERibq54LSJGjmouOsw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-rc.16': - resolution: {integrity: sha512-KcRE5w8h0OnjUatG8pldyD14/CQ5Phs1oxfR+3pKDjboHRo9+MkqQaiIZlZRpsxC15paeXme/I127tUa9TXJ6g==} + '@rolldown/binding-freebsd-x64@1.0.0-rc.17': + resolution: {integrity: sha512-hwnz3nw9dbJ05EDO/PvcjaaewqqDy7Y1rn1UO81l8iIK1GjenME75dl16ajbvSSMfv66WXSRCYKIqfgq2KCfxw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.16': - resolution: {integrity: sha512-bT0guA1bpxEJ/ZhTRniQf7rNF8ybvXOuWbNIeLABaV5NGjx4EtOWBTSRGWFU9ZWVkPOZ+HNFP8RMcBokBiZ0Kg==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17': + resolution: {integrity: sha512-IS+W7epTcwANmFSQFrS1SivEXHtl1JtuQA9wlxrZTcNi6mx+FDOYrakGevvvTwgj2JvWiK8B29/qD9BELZPyXQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.16': - resolution: {integrity: sha512-+tHktCHWV8BDQSjemUqm/Jl/TPk3QObCTIjmdDy/nlupcujZghmKK2962LYrqFpWu+ai01AN/REOH3NEpqvYQg==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17': + resolution: {integrity: sha512-e6usGaHKW5BMNZOymS1UcEYGowQMWcgZ71Z17Sl/h2+ZziNJ1a9n3Zvcz6LdRyIW5572wBCTH/Z+bKuZouGk9Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.16': - resolution: {integrity: sha512-3fPzdREH806oRLxpTWW1Gt4tQHs0TitZFOECB2xzCFLPKnSOy90gwA7P29cksYilFO6XVRY1kzga0cL2nRjKPg==} + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17': + resolution: {integrity: sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.16': - resolution: {integrity: sha512-EKwI1tSrLs7YVw+JPJT/G2dJQ1jl9qlTTTEG0V2Ok/RdOenRfBw2PQdLPyjhIu58ocdBfP7vIRN/pvMsPxs/AQ==} + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17': + resolution: {integrity: sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.16': - resolution: {integrity: sha512-Uknladnb3Sxqu6SEcqBldQyJUpk8NleooZEc0MbRBJ4inEhRYWZX0NJu12vNf2mqAq7gsofAxHrGghiUYjhaLQ==} + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17': + resolution: {integrity: sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.16': - resolution: {integrity: sha512-FIb8+uG49sZBtLTn+zt1AJ20TqVcqWeSIyoVt0or7uAWesgKaHbiBh6OpA/k9v0LTt+PTrb1Lao133kP4uVxkg==} + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17': + resolution: {integrity: sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.0.0-rc.16': - resolution: {integrity: sha512-RuERhF9/EgWxZEXYWCOaViUWHIboceK4/ivdtQ3R0T44NjLkIIlGIAVAuCddFxsZ7vnRHtNQUrt2vR2n2slB2w==} + '@rolldown/binding-linux-x64-musl@1.0.0-rc.17': + resolution: {integrity: sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.0.0-rc.16': - resolution: {integrity: sha512-mXcXnvd9GpazCxeUCCnZ2+YF7nut+ZOEbE4GtaiPtyY6AkhZWbK70y1KK3j+RDhjVq5+U8FySkKRb/+w0EeUwA==} + '@rolldown/binding-openharmony-arm64@1.0.0-rc.17': + resolution: {integrity: sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.0.0-rc.16': - resolution: {integrity: sha512-3Q2KQxnC8IJOLqXmUMoYwyIPZU9hzRbnHaoV3Euz+VVnjZKcY8ktnNP8T9R4/GGQtb27C/UYKABxesKWb8lsvQ==} + '@rolldown/binding-wasm32-wasi@1.0.0-rc.17': + resolution: {integrity: sha512-LEXei6vo0E5wTGwpkJ4KoT3OZJRnglwldt5ziLzOlc6qqb55z4tWNq2A+PFqCJuvWWdP53CVhG1Z9NtToDPJrA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.16': - resolution: {integrity: sha512-tj7XRemQcOcFwv7qhpUxMTBbI5mWMlE4c1Omhg5+h8GuLXzyj8HviYgR+bB2DMDgRqUE+jiDleqSCRjx4aYk/Q==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17': + resolution: {integrity: sha512-gUmyzBl3SPMa6hrqFUth9sVfcLBlYsbMzBx5PlexMroZStgzGqlZ26pYG89rBb45Mnia+oil6YAIFeEWGWhoZA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.16': - resolution: {integrity: sha512-PH5DRZT+F4f2PTXRXR8uJxnBq2po/xFtddyabTJVJs/ZYVHqXPEgNIr35IHTEa6bpa0Q8Awg+ymkTaGnKITw4g==} + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17': + resolution: {integrity: sha512-3hkiolcUAvPB9FLb3UZdfjVVNWherN1f/skkGWJP/fgSQhYUZpSIRr0/I8ZK9TkF3F7kxvJAk0+IcKvPHk9qQg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@rolldown/pluginutils@1.0.0-rc.16': - resolution: {integrity: sha512-45+YtqxLYKDWQouLKCrpIZhke+nXxhsw+qAHVzHDVwttyBlHNBVs2K25rDXrZzhpTp9w1FlAlvweV1H++fdZoA==} + '@rolldown/pluginutils@1.0.0-rc.17': + resolution: {integrity: sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg==} '@rollup/plugin-alias@6.0.0': resolution: {integrity: sha512-tPCzJOtS7uuVZd+xPhoy5W4vThe6KWXNmsFCNktaAh5RTqcLiSfT4huPQIXkgJ6YCOjJHvecOAzQxLFhPxKr+g==} @@ -3766,67 +3766,67 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.58.2': - resolution: {integrity: sha512-aC2qc5thQahutKjP+cl8cgN9DWe3ZUqVko30CMSZHnFEHyhOYoZSzkGtAI2mcwZ38xeImDucI4dnqsHiOYuuCw==} + '@typescript-eslint/eslint-plugin@8.59.1': + resolution: {integrity: sha512-BOziFIfE+6osHO9FoJG4zjoHUcvI7fTNBSpdAwrNH0/TLvzjsk2oo8XSSOT2HhqUyhZPfHv4UOffoJ9oEEQ7Ag==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.58.2 + '@typescript-eslint/parser': ^8.59.1 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.58.2': - resolution: {integrity: sha512-/Zb/xaIDfxeJnvishjGdcR4jmr7S+bda8PKNhRGdljDM+elXhlvN0FyPSsMnLmJUrVG9aPO6dof80wjMawsASg==} + '@typescript-eslint/parser@8.59.1': + resolution: {integrity: sha512-HDQH9O/47Dxi1ceDhBXdaldtf/WV9yRYMjbjCuNk3qnaTD564qwv61Y7+gTxwxRKzSrgO5uhtw584igXVuuZkA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.58.2': - resolution: {integrity: sha512-Cq6UfpZZk15+r87BkIh5rDpi38W4b+Sjnb8wQCPPDDweS/LRCFjCyViEbzHk5Ck3f2QDfgmlxqSa7S7clDtlfg==} + '@typescript-eslint/project-service@8.59.1': + resolution: {integrity: sha512-+MuHQlHiEr00Of/IQbE/MmEoi44znZHbR/Pz7Opq4HryUOlRi+/44dro9Ycy8Fyo+/024IWtw8m4JUMCGTYxDg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.58.2': - resolution: {integrity: sha512-SgmyvDPexWETQek+qzZnrG6844IaO02UVyOLhI4wpo82dpZJY9+6YZCKAMFzXb7qhx37mFK1QcPQ18tud+vo6Q==} + '@typescript-eslint/scope-manager@8.59.1': + resolution: {integrity: sha512-LwuHQI4pDOYVKvmH2dkaJo6YZCSgouVgnS/z7yBPKBMvgtBvyLqiLy9Z6b7+m/TRcX1NFYUqZetI5Y+aT4GEfg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.58.2': - resolution: {integrity: sha512-3SR+RukipDvkkKp/d0jP0dyzuls3DbGmwDpVEc5wqk5f38KFThakqAAO0XMirWAE+kT00oTauTbzMFGPoAzB0A==} + '@typescript-eslint/tsconfig-utils@8.59.1': + resolution: {integrity: sha512-/0nEyPbX7gRsk0Uwfe4ALwwgxuA66d/l2mhRDNlAvaj4U3juhUtJNq0DsY8M2AYwwb9rEq2hrC3IcIcEt++iJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.58.2': - resolution: {integrity: sha512-Z7EloNR/B389FvabdGeTo2XMs4W9TjtPiO9DAsmT0yom0bwlPyRjkJ1uCdW1DvrrrYP50AJZ9Xc3sByZA9+dcg==} + '@typescript-eslint/type-utils@8.59.1': + resolution: {integrity: sha512-klWPBR2ciQHS3f++ug/mVnWKPjBUo7icEL3FAO1lhAR1Z1i5NQYZ1EannMSRYcq5qCv5wNALlXr6fksRHyYl7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.58.2': - resolution: {integrity: sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.59.0': resolution: {integrity: sha512-nLzdsT1gdOgFxxxwrlNVUBzSNBEEHJ86bblmk4QAS6stfig7rcJzWKqCyxFy3YRRHXDWEkb2NralA1nOYkkm/A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.58.2': - resolution: {integrity: sha512-ELGuoofuhhoCvNbQjFFiobFcGgcDCEm0ThWdmO4Z0UzLqPXS3KFvnEZ+SHewwOYHjM09tkzOWXNTv9u6Gqtyuw==} + '@typescript-eslint/types@8.59.1': + resolution: {integrity: sha512-ZDCjgccSdYPw5Bxh+my4Z0lJU96ZDN7jbBzvmEn0FZx3RtU1C7VWl6NbDx94bwY3V5YsgwRzJPOgeY2Q/nLG8A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.59.1': + resolution: {integrity: sha512-OUd+vJS05sSkOip+BkZ/2NS8RMxrAAJemsC6vU3kmfLyeaJT0TftHkV9mcx2107MmsBVXXexhVu4F0TZXyMl4g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.58.2': - resolution: {integrity: sha512-QZfjHNEzPY8+l0+fIXMvuQ2sJlplB4zgDZvA+NmvZsZv3EQwOcc1DuIU1VJUTWZ/RKouBMhDyNaBMx4sWvrzRA==} + '@typescript-eslint/utils@8.59.1': + resolution: {integrity: sha512-3pIeoXhCeYH9FSCBI8P3iNwJlGuzPlYKkTlen2O9T1DSeeg8UG8jstq6BLk+Mda0qup7mgk4z4XL4OzRaxZ8LA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.58.2': - resolution: {integrity: sha512-f1WO2Lx8a9t8DARmcWAUPJbu0G20bJlj8L4z72K00TMeJAoyLr/tHhI/pzYBLrR4dXWkcxO1cWYZEOX8DKHTqA==} + '@typescript-eslint/visitor-keys@8.59.1': + resolution: {integrity: sha512-LdDNl6C5iJExcM0Yh0PwAIBb9PrSiCsWamF/JyEZawm3kFDnRoaq3LGE4bpyRao/fWeGKKyw7icx0YxrLFC5Cg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@verdaccio/auth@8.0.0-next-8.37': @@ -3922,20 +3922,20 @@ packages: peerDependencies: vite: ^6.0.0 || ^7.0.0 || ^8.0.0 - '@vitest/coverage-v8@4.1.4': - resolution: {integrity: sha512-x7FptB5oDruxNPDNY2+S8tCh0pcq7ymCe1gTHcsp733jYjrJl8V1gMUlVysuCD9Kz46Xz9t1akkv08dPcYDs1w==} + '@vitest/coverage-v8@4.1.5': + resolution: {integrity: sha512-38C0/Ddb7HcRG0Z4/DUem8x57d2p9jYgp18mkaYswEOQBGsI1CG4f/hjm0ZCeaJfWhSZ4k7jgs29V1Zom7Ki9A==} peerDependencies: - '@vitest/browser': 4.1.4 - vitest: 4.1.4 + '@vitest/browser': 4.1.5 + vitest: 4.1.5 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@4.1.4': - resolution: {integrity: sha512-iPBpra+VDuXmBFI3FMKHSFXp3Gx5HfmSCE8X67Dn+bwephCnQCaB7qWK2ldHa+8ncN8hJU8VTMcxjPpyMkUjww==} + '@vitest/expect@4.1.5': + resolution: {integrity: sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==} - '@vitest/mocker@4.1.4': - resolution: {integrity: sha512-R9HTZBhW6yCSGbGQnDnH3QHfJxokKN4KB+Yvk9Q1le7eQNYwiCyKxmLmurSpFy6BzJanSLuEUDrD+j97Q+ZLPg==} + '@vitest/mocker@4.1.5': + resolution: {integrity: sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw==} peerDependencies: msw: ^2.4.9 vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -3945,20 +3945,20 @@ packages: vite: optional: true - '@vitest/pretty-format@4.1.4': - resolution: {integrity: sha512-ddmDHU0gjEUyEVLxtZa7xamrpIefdEETu3nZjWtHeZX4QxqJ7tRxSteHVXJOcr8jhiLoGAhkK4WJ3WqBpjx42A==} + '@vitest/pretty-format@4.1.5': + resolution: {integrity: sha512-7I3q6l5qr03dVfMX2wCo9FxwSJbPdwKjy2uu/YPpU3wfHvIL4QHwVRp57OfGrDFeUJ8/8QdfBKIV12FTtLn00g==} - '@vitest/runner@4.1.4': - resolution: {integrity: sha512-xTp7VZ5aXP5ZJrn15UtJUWlx6qXLnGtF6jNxHepdPHpMfz/aVPx+htHtgcAL2mDXJgKhpoo2e9/hVJsIeFbytQ==} + '@vitest/runner@4.1.5': + resolution: {integrity: sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ==} - '@vitest/snapshot@4.1.4': - resolution: {integrity: sha512-MCjCFgaS8aZz+m5nTcEcgk/xhWv0rEH4Yl53PPlMXOZ1/Ka2VcZU6CJ+MgYCZbcJvzGhQRjVrGQNZqkGPttIKw==} + '@vitest/snapshot@4.1.5': + resolution: {integrity: sha512-zypXEt4KH/XgKGPUz4eC2AvErYx0My5hfL8oDb1HzGFpEk1P62bxSohdyOmvz+d9UJwanI68MKwr2EquOaOgMQ==} - '@vitest/spy@4.1.4': - resolution: {integrity: sha512-XxNdAsKW7C+FLydqFJLb5KhJtl3PGCMmYwFRfhvIgxJvLSXhhVI1zM8f1qD3Zg7RCjTSzDVyct6sghs9UEgBEQ==} + '@vitest/spy@4.1.5': + resolution: {integrity: sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ==} - '@vitest/utils@4.1.4': - resolution: {integrity: sha512-13QMT+eysM5uVGa1rG4kegGYNp6cnQcsTc67ELFbhNLQO+vgsygtYJx2khvdt4gVQqSSpC/KT5FZZxUpP3Oatw==} + '@vitest/utils@4.1.5': + resolution: {integrity: sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -4095,8 +4095,11 @@ packages: ajv@8.18.0: resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} - algoliasearch@5.50.2: - resolution: {integrity: sha512-Tfp26yoNWurUjfgK4GOrVJQhSNXu9tJtHfFFNosgT2YClG+vPyUjX/gbC8rG39qLncnZg8Fj34iarQWpMkqefw==} + ajv@8.20.0: + resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} + + algoliasearch@5.51.0: + resolution: {integrity: sha512-u3XS8HaTzt5YN90KPsOXMRjYJUMVD1dtr6yi4NXQluMbZ5IjQNBu1MEabdAxFhYtEuexqomPMSmRIhQJUd3QSg==} engines: {node: '>= 14.0.0'} ansi-colors@4.1.3: @@ -6134,8 +6137,8 @@ packages: jsbn@0.1.1: resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} - jsdom@29.0.2: - resolution: {integrity: sha512-9VnGEBosc/ZpwyOsJBCQ/3I5p7Q5ngOY14a9bf5btenAORmZfDse1ZEheMiWcJ3h81+Fv7HmJFdS0szo/waF2w==} + jsdom@29.1.0: + resolution: {integrity: sha512-YNUc7fB9QuvSSQWfrH0xF+TyABkxUwx8sswgIDaCrw4Hol8BghdZDkITtZheRJeMtzWlnTfsM3bBBusRvpO1wg==} engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} peerDependencies: canvas: ^3.0.0 @@ -6843,6 +6846,10 @@ packages: resolution: {integrity: sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==} engines: {node: '>=20'} + ora@9.4.0: + resolution: {integrity: sha512-84cglkRILFxdtA8hAvLNdMrtBpPNBTrQ9/ulg0FA7xLMnD6mifv+enAIeRmvtv+WgdCE+LPGOfQmtJRrVaIVhQ==} + engines: {node: '>=20'} + ordered-binary@1.6.1: resolution: {integrity: sha512-QkCdPooczexPLiXIrbVOPYkR3VO3T6v2OyKRkR1Xbhpy7/LAVXwahnRCgRp78Oe/Ehf0C/HATAxfSr6eA1oX+w==} @@ -7097,6 +7104,10 @@ packages: resolution: {integrity: sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.12: + resolution: {integrity: sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==} + engines: {node: ^10 || ^12 || >=14} + powershell-utils@0.1.0: resolution: {integrity: sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==} engines: {node: '>=20'} @@ -7173,12 +7184,12 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - puppeteer-core@24.41.0: - resolution: {integrity: sha512-rLIUri7E/NQ3APSEYCCozaSJx0u8Tu9wxO6BJwnvXmIgILSK3L0TombaVh3izp1njAGrO6H2ru0hcIrLF+gWLw==} + puppeteer-core@24.42.0: + resolution: {integrity: sha512-T4zXokk/izH01fYPhyyev1A4piWiOKrYq7CUFpdoYQxmOnXoV6YjUabmfIjCYkNspSoAXIxRid3Tw+Vg0fthYg==} engines: {node: '>=18'} - puppeteer@24.41.0: - resolution: {integrity: sha512-W6Fk0J3TPjjtwjXOyR/qf+YaL0H/Uq8HIgHcXG4mNM/IgbKMCH/HPyK0Fi2qbTU/QpSl9bCte2yBpGHKejTpIw==} + puppeteer@24.42.0: + resolution: {integrity: sha512-94MoPfFp2eY3eYIMdINkez4IOP5TMHntlZbVx06fHlQTtiQiYgaY0L2Zzfod8PVUkPqP7m3Qlre2v8YS8cudPA==} engines: {node: '>=18'} hasBin: true @@ -7359,8 +7370,8 @@ packages: resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true - rolldown@1.0.0-rc.16: - resolution: {integrity: sha512-rzi5WqKzEZw3SooTt7cgm4eqIoujPIyGcJNGFL7iPEuajQw7vxMHUkXylu4/vhCkJGXsgRmxqMKXUpT6FEgl0g==} + rolldown@1.0.0-rc.17: + resolution: {integrity: sha512-ZrT53oAKrtA4+YtBWPQbtPOxIbVDbxT0orcYERKd63VJTF13zPcgXTvD4843L8pcsI7M6MErt8QtON6lrB9tyA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -7862,8 +7873,8 @@ packages: uglify-js: optional: true - terser@5.46.1: - resolution: {integrity: sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==} + terser@5.46.2: + resolution: {integrity: sha512-uxfo9fPcSgLDYob/w1FuL0c99MWiJDnv+5qXSQc5+Ki5NjVNsYi66INnMFBjf6uFz6OnX12piJQPF4IpjJTNTw==} engines: {node: '>=10'} hasBin: true @@ -8150,6 +8161,7 @@ packages: uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true validate-npm-package-name@7.0.2: @@ -8225,20 +8237,20 @@ packages: yaml: optional: true - vitest@4.1.4: - resolution: {integrity: sha512-tFuJqTxKb8AvfyqMfnavXdzfy3h3sWZRWwfluGbkeR7n0HUev+FmNgZ8SDrRBTVrVCjgH5cA21qGbCffMNtWvg==} + vitest@4.1.5: + resolution: {integrity: sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.4 - '@vitest/browser-preview': 4.1.4 - '@vitest/browser-webdriverio': 4.1.4 - '@vitest/coverage-istanbul': 4.1.4 - '@vitest/coverage-v8': 4.1.4 - '@vitest/ui': 4.1.4 + '@vitest/browser-playwright': 4.1.5 + '@vitest/browser-preview': 4.1.5 + '@vitest/browser-webdriverio': 4.1.5 + '@vitest/coverage-istanbul': 4.1.5 + '@vitest/coverage-v8': 4.1.5 + '@vitest/ui': 4.1.5 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -8579,89 +8591,89 @@ snapshots: '@actions/io@3.0.2': {} - '@algolia/abtesting@1.16.2': + '@algolia/abtesting@1.17.0': dependencies: - '@algolia/client-common': 5.50.2 - '@algolia/requester-browser-xhr': 5.50.2 - '@algolia/requester-fetch': 5.50.2 - '@algolia/requester-node-http': 5.50.2 + '@algolia/client-common': 5.51.0 + '@algolia/requester-browser-xhr': 5.51.0 + '@algolia/requester-fetch': 5.51.0 + '@algolia/requester-node-http': 5.51.0 - '@algolia/client-abtesting@5.50.2': + '@algolia/client-abtesting@5.51.0': dependencies: - '@algolia/client-common': 5.50.2 - '@algolia/requester-browser-xhr': 5.50.2 - '@algolia/requester-fetch': 5.50.2 - '@algolia/requester-node-http': 5.50.2 + '@algolia/client-common': 5.51.0 + '@algolia/requester-browser-xhr': 5.51.0 + '@algolia/requester-fetch': 5.51.0 + '@algolia/requester-node-http': 5.51.0 - '@algolia/client-analytics@5.50.2': + '@algolia/client-analytics@5.51.0': dependencies: - '@algolia/client-common': 5.50.2 - '@algolia/requester-browser-xhr': 5.50.2 - '@algolia/requester-fetch': 5.50.2 - '@algolia/requester-node-http': 5.50.2 + '@algolia/client-common': 5.51.0 + '@algolia/requester-browser-xhr': 5.51.0 + '@algolia/requester-fetch': 5.51.0 + '@algolia/requester-node-http': 5.51.0 - '@algolia/client-common@5.50.2': {} + '@algolia/client-common@5.51.0': {} - '@algolia/client-insights@5.50.2': + '@algolia/client-insights@5.51.0': dependencies: - '@algolia/client-common': 5.50.2 - '@algolia/requester-browser-xhr': 5.50.2 - '@algolia/requester-fetch': 5.50.2 - '@algolia/requester-node-http': 5.50.2 + '@algolia/client-common': 5.51.0 + '@algolia/requester-browser-xhr': 5.51.0 + '@algolia/requester-fetch': 5.51.0 + '@algolia/requester-node-http': 5.51.0 - '@algolia/client-personalization@5.50.2': + '@algolia/client-personalization@5.51.0': dependencies: - '@algolia/client-common': 5.50.2 - '@algolia/requester-browser-xhr': 5.50.2 - '@algolia/requester-fetch': 5.50.2 - '@algolia/requester-node-http': 5.50.2 + '@algolia/client-common': 5.51.0 + '@algolia/requester-browser-xhr': 5.51.0 + '@algolia/requester-fetch': 5.51.0 + '@algolia/requester-node-http': 5.51.0 - '@algolia/client-query-suggestions@5.50.2': + '@algolia/client-query-suggestions@5.51.0': dependencies: - '@algolia/client-common': 5.50.2 - '@algolia/requester-browser-xhr': 5.50.2 - '@algolia/requester-fetch': 5.50.2 - '@algolia/requester-node-http': 5.50.2 + '@algolia/client-common': 5.51.0 + '@algolia/requester-browser-xhr': 5.51.0 + '@algolia/requester-fetch': 5.51.0 + '@algolia/requester-node-http': 5.51.0 - '@algolia/client-search@5.50.2': + '@algolia/client-search@5.51.0': dependencies: - '@algolia/client-common': 5.50.2 - '@algolia/requester-browser-xhr': 5.50.2 - '@algolia/requester-fetch': 5.50.2 - '@algolia/requester-node-http': 5.50.2 + '@algolia/client-common': 5.51.0 + '@algolia/requester-browser-xhr': 5.51.0 + '@algolia/requester-fetch': 5.51.0 + '@algolia/requester-node-http': 5.51.0 - '@algolia/ingestion@1.50.2': + '@algolia/ingestion@1.51.0': dependencies: - '@algolia/client-common': 5.50.2 - '@algolia/requester-browser-xhr': 5.50.2 - '@algolia/requester-fetch': 5.50.2 - '@algolia/requester-node-http': 5.50.2 + '@algolia/client-common': 5.51.0 + '@algolia/requester-browser-xhr': 5.51.0 + '@algolia/requester-fetch': 5.51.0 + '@algolia/requester-node-http': 5.51.0 - '@algolia/monitoring@1.50.2': + '@algolia/monitoring@1.51.0': dependencies: - '@algolia/client-common': 5.50.2 - '@algolia/requester-browser-xhr': 5.50.2 - '@algolia/requester-fetch': 5.50.2 - '@algolia/requester-node-http': 5.50.2 + '@algolia/client-common': 5.51.0 + '@algolia/requester-browser-xhr': 5.51.0 + '@algolia/requester-fetch': 5.51.0 + '@algolia/requester-node-http': 5.51.0 - '@algolia/recommend@5.50.2': + '@algolia/recommend@5.51.0': dependencies: - '@algolia/client-common': 5.50.2 - '@algolia/requester-browser-xhr': 5.50.2 - '@algolia/requester-fetch': 5.50.2 - '@algolia/requester-node-http': 5.50.2 + '@algolia/client-common': 5.51.0 + '@algolia/requester-browser-xhr': 5.51.0 + '@algolia/requester-fetch': 5.51.0 + '@algolia/requester-node-http': 5.51.0 - '@algolia/requester-browser-xhr@5.50.2': + '@algolia/requester-browser-xhr@5.51.0': dependencies: - '@algolia/client-common': 5.50.2 + '@algolia/client-common': 5.51.0 - '@algolia/requester-fetch@5.50.2': + '@algolia/requester-fetch@5.51.0': dependencies: - '@algolia/client-common': 5.50.2 + '@algolia/client-common': 5.51.0 - '@algolia/requester-node-http@5.50.2': + '@algolia/requester-node-http@5.51.0': dependencies: - '@algolia/client-common': 5.50.2 + '@algolia/client-common': 5.51.0 '@ampproject/remapping@2.3.0': dependencies: @@ -9598,13 +9610,13 @@ snapshots: '@discoveryjs/json-ext@1.0.0': {} - '@emnapi/core@1.9.2': + '@emnapi/core@1.10.0': dependencies: '@emnapi/wasi-threads': 1.2.1 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.9.2': + '@emnapi/runtime@1.10.0': dependencies: tslib: 2.8.1 optional: true @@ -10710,10 +10722,10 @@ snapshots: '@napi-rs/nice-win32-x64-msvc': 1.1.1 optional: true - '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: - '@emnapi/core': 1.9.2 - '@emnapi/runtime': 1.9.2 + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 '@tybys/wasm-util': 0.10.1 optional: true @@ -10920,7 +10932,7 @@ snapshots: '@opentelemetry/semantic-conventions@1.40.0': {} - '@oxc-project/types@0.126.0': {} + '@oxc-project/types@0.127.0': {} '@parcel/watcher-android-arm64@2.5.6': optional: true @@ -11136,56 +11148,56 @@ snapshots: - react-native-b4a - supports-color - '@rolldown/binding-android-arm64@1.0.0-rc.16': + '@rolldown/binding-android-arm64@1.0.0-rc.17': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-rc.16': + '@rolldown/binding-darwin-arm64@1.0.0-rc.17': optional: true - '@rolldown/binding-darwin-x64@1.0.0-rc.16': + '@rolldown/binding-darwin-x64@1.0.0-rc.17': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-rc.16': + '@rolldown/binding-freebsd-x64@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.16': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.16': + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.16': + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.16': + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.16': + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.16': + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-rc.16': + '@rolldown/binding-linux-x64-musl@1.0.0-rc.17': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-rc.16': + '@rolldown/binding-openharmony-arm64@1.0.0-rc.17': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-rc.16': + '@rolldown/binding-wasm32-wasi@1.0.0-rc.17': dependencies: - '@emnapi/core': 1.9.2 - '@emnapi/runtime': 1.9.2 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.16': + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.16': + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17': optional: true - '@rolldown/pluginutils@1.0.0-rc.16': {} + '@rolldown/pluginutils@1.0.0-rc.17': {} '@rollup/plugin-alias@6.0.0(rollup@4.60.2)': optionalDependencies: @@ -11674,14 +11686,14 @@ snapshots: '@types/node': 22.19.17 optional: true - '@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2)': + '@typescript-eslint/eslint-plugin@8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/type-utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/visitor-keys': 8.58.2 + '@typescript-eslint/parser': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/scope-manager': 8.59.1 + '@typescript-eslint/type-utils': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/utils': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/visitor-keys': 8.59.1 eslint: 10.2.1(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 @@ -11690,41 +11702,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2)': + '@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2)': dependencies: - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.2) - '@typescript-eslint/visitor-keys': 8.58.2 + '@typescript-eslint/scope-manager': 8.59.1 + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/typescript-estree': 8.59.1(typescript@6.0.2) + '@typescript-eslint/visitor-keys': 8.59.1 debug: 4.4.3(supports-color@10.2.2) eslint: 10.2.1(jiti@2.6.1) typescript: 6.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.58.2(typescript@6.0.2)': + '@typescript-eslint/project-service@8.59.1(typescript@6.0.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@6.0.2) - '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/tsconfig-utils': 8.59.1(typescript@6.0.2) + '@typescript-eslint/types': 8.59.1 debug: 4.4.3(supports-color@10.2.2) typescript: 6.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.58.2': + '@typescript-eslint/scope-manager@8.59.1': dependencies: - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/visitor-keys': 8.58.2 + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/visitor-keys': 8.59.1 - '@typescript-eslint/tsconfig-utils@8.58.2(typescript@6.0.2)': + '@typescript-eslint/tsconfig-utils@8.59.1(typescript@6.0.2)': dependencies: typescript: 6.0.2 - '@typescript-eslint/type-utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2)': + '@typescript-eslint/type-utils@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2)': dependencies: - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.2) - '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/typescript-estree': 8.59.1(typescript@6.0.2) + '@typescript-eslint/utils': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2) debug: 4.4.3(supports-color@10.2.2) eslint: 10.2.1(jiti@2.6.1) ts-api-utils: 2.5.0(typescript@6.0.2) @@ -11732,16 +11744,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.58.2': {} - '@typescript-eslint/types@8.59.0': {} - '@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.2)': + '@typescript-eslint/types@8.59.1': {} + + '@typescript-eslint/typescript-estree@8.59.1(typescript@6.0.2)': dependencies: - '@typescript-eslint/project-service': 8.58.2(typescript@6.0.2) - '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@6.0.2) - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/visitor-keys': 8.58.2 + '@typescript-eslint/project-service': 8.59.1(typescript@6.0.2) + '@typescript-eslint/tsconfig-utils': 8.59.1(typescript@6.0.2) + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/visitor-keys': 8.59.1 debug: 4.4.3(supports-color@10.2.2) minimatch: 10.2.5 semver: 7.7.4 @@ -11751,20 +11763,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2)': + '@typescript-eslint/utils@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.2) + '@typescript-eslint/scope-manager': 8.59.1 + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/typescript-estree': 8.59.1(typescript@6.0.2) eslint: 10.2.1(jiti@2.6.1) typescript: 6.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.58.2': + '@typescript-eslint/visitor-keys@8.59.1': dependencies: - '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/types': 8.59.1 eslint-visitor-keys: 5.0.1 '@verdaccio/auth@8.0.0-next-8.37': @@ -11945,14 +11957,14 @@ snapshots: lodash: 4.18.1 minimatch: 7.4.9 - '@vitejs/plugin-basic-ssl@2.3.0(vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(less@4.6.4)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': + '@vitejs/plugin-basic-ssl@2.3.0(vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(less@4.6.4)(sass@1.99.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))': dependencies: - vite: 7.3.2(@types/node@24.12.2)(jiti@2.6.1)(less@4.6.4)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@24.12.2)(jiti@2.6.1)(less@4.6.4)(sass@1.99.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) - '@vitest/coverage-v8@4.1.4(vitest@4.1.4)': + '@vitest/coverage-v8@4.1.5(vitest@4.1.5)': dependencies: '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.1.4 + '@vitest/utils': 4.1.5 ast-v8-to-istanbul: 1.0.0 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 @@ -11961,46 +11973,46 @@ snapshots: obug: 2.1.1 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@24.12.2)(@vitest/coverage-v8@4.1.4)(jiti@2.6.1)(jsdom@29.0.2)(less@4.6.4)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + vitest: 4.1.5(@opentelemetry/api@1.9.1)(@types/node@24.12.2)(@vitest/coverage-v8@4.1.5)(jiti@2.6.1)(jsdom@29.1.0)(less@4.6.4)(sass@1.99.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) - '@vitest/expect@4.1.4': + '@vitest/expect@4.1.5': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.1.4 - '@vitest/utils': 4.1.4 + '@vitest/spy': 4.1.5 + '@vitest/utils': 4.1.5 chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.4(vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(less@4.6.4)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': + '@vitest/mocker@4.1.5(vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(less@4.6.4)(sass@1.99.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))': dependencies: - '@vitest/spy': 4.1.4 + '@vitest/spy': 4.1.5 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.2(@types/node@24.12.2)(jiti@2.6.1)(less@4.6.4)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@24.12.2)(jiti@2.6.1)(less@4.6.4)(sass@1.99.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) - '@vitest/pretty-format@4.1.4': + '@vitest/pretty-format@4.1.5': dependencies: tinyrainbow: 3.1.0 - '@vitest/runner@4.1.4': + '@vitest/runner@4.1.5': dependencies: - '@vitest/utils': 4.1.4 + '@vitest/utils': 4.1.5 pathe: 2.0.3 - '@vitest/snapshot@4.1.4': + '@vitest/snapshot@4.1.5': dependencies: - '@vitest/pretty-format': 4.1.4 - '@vitest/utils': 4.1.4 + '@vitest/pretty-format': 4.1.5 + '@vitest/utils': 4.1.5 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.1.4': {} + '@vitest/spy@4.1.5': {} - '@vitest/utils@4.1.4': + '@vitest/utils@4.1.5': dependencies: - '@vitest/pretty-format': 4.1.4 + '@vitest/pretty-format': 4.1.5 convert-source-map: 2.0.0 tinyrainbow: 3.1.0 @@ -12136,15 +12148,19 @@ snapshots: ajv-formats@2.1.1: dependencies: - ajv: 8.18.0 + ajv: 8.20.0 ajv-formats@3.0.1(ajv@8.18.0): optionalDependencies: ajv: 8.18.0 - ajv-keywords@5.1.0(ajv@8.18.0): + ajv-formats@3.0.1(ajv@8.20.0): + optionalDependencies: + ajv: 8.20.0 + + ajv-keywords@5.1.0(ajv@8.20.0): dependencies: - ajv: 8.18.0 + ajv: 8.20.0 fast-deep-equal: 3.1.3 ajv@6.15.0: @@ -12168,22 +12184,29 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - algoliasearch@5.50.2: - dependencies: - '@algolia/abtesting': 1.16.2 - '@algolia/client-abtesting': 5.50.2 - '@algolia/client-analytics': 5.50.2 - '@algolia/client-common': 5.50.2 - '@algolia/client-insights': 5.50.2 - '@algolia/client-personalization': 5.50.2 - '@algolia/client-query-suggestions': 5.50.2 - '@algolia/client-search': 5.50.2 - '@algolia/ingestion': 1.50.2 - '@algolia/monitoring': 1.50.2 - '@algolia/recommend': 5.50.2 - '@algolia/requester-browser-xhr': 5.50.2 - '@algolia/requester-fetch': 5.50.2 - '@algolia/requester-node-http': 5.50.2 + ajv@8.20.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.0 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + algoliasearch@5.51.0: + dependencies: + '@algolia/abtesting': 1.17.0 + '@algolia/client-abtesting': 5.51.0 + '@algolia/client-analytics': 5.51.0 + '@algolia/client-common': 5.51.0 + '@algolia/client-insights': 5.51.0 + '@algolia/client-personalization': 5.51.0 + '@algolia/client-query-suggestions': 5.51.0 + '@algolia/client-search': 5.51.0 + '@algolia/ingestion': 1.51.0 + '@algolia/monitoring': 1.51.0 + '@algolia/recommend': 5.51.0 + '@algolia/requester-browser-xhr': 5.51.0 + '@algolia/requester-fetch': 5.51.0 + '@algolia/requester-node-http': 5.51.0 ansi-colors@4.1.3: {} @@ -12308,13 +12331,13 @@ snapshots: atomic-sleep@1.0.0: {} - autoprefixer@10.5.0(postcss@8.5.10): + autoprefixer@10.5.0(postcss@8.5.12): dependencies: browserslist: 4.28.2 caniuse-lite: 1.0.30001791 fraction.js: 5.3.4 picocolors: 1.1.1 - postcss: 8.5.10 + postcss: 8.5.12 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: @@ -12426,9 +12449,9 @@ snapshots: domhandler: 5.0.3 htmlparser2: 10.1.0 picocolors: 1.1.1 - postcss: 8.5.10 + postcss: 8.5.12 postcss-media-query-parser: 0.2.3 - postcss-safe-parser: 7.0.1(postcss@8.5.10) + postcss-safe-parser: 7.0.1(postcss@8.5.12) before-after-hook@4.0.0: {} @@ -12880,12 +12903,12 @@ snapshots: css-loader@7.1.4(webpack@5.106.2(esbuild@0.28.0)): dependencies: - icss-utils: 5.1.0(postcss@8.5.10) - postcss: 8.5.10 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.10) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.10) - postcss-modules-scope: 3.2.1(postcss@8.5.10) - postcss-modules-values: 4.0.0(postcss@8.5.10) + icss-utils: 5.1.0(postcss@8.5.12) + postcss: 8.5.12 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.12) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.12) + postcss-modules-scope: 3.2.1(postcss@8.5.12) + postcss-modules-values: 4.0.0(postcss@8.5.12) postcss-value-parser: 4.2.0 semver: 7.7.4 optionalDependencies: @@ -13365,17 +13388,17 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2))(eslint-import-resolver-node@0.3.10)(eslint@10.2.1(jiti@2.6.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2))(eslint-import-resolver-node@0.3.10)(eslint@10.2.1(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/parser': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2) eslint: 10.2.1(jiti@2.6.1) eslint-import-resolver-node: 0.3.10 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.1(jiti@2.6.1)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.1(jiti@2.6.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -13386,7 +13409,7 @@ snapshots: doctrine: 2.1.0 eslint: 10.2.1(jiti@2.6.1) eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2))(eslint-import-resolver-node@0.3.10)(eslint@10.2.1(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2))(eslint-import-resolver-node@0.3.10)(eslint@10.2.1(jiti@2.6.1)) hasown: 2.0.3 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -13398,7 +13421,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/parser': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -14218,9 +14241,9 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.5.10): + icss-utils@5.1.0(postcss@8.5.12): dependencies: - postcss: 8.5.10 + postcss: 8.5.12 idb@7.1.1: {} @@ -14555,7 +14578,7 @@ snapshots: jsbn@0.1.1: {} - jsdom@29.0.2: + jsdom@29.1.0: dependencies: '@asamuzakjp/css-color': 5.1.11 '@asamuzakjp/dom-selector': 7.1.1 @@ -15364,6 +15387,17 @@ snapshots: stdin-discarder: 0.3.2 string-width: 8.2.0 + ora@9.4.0: + dependencies: + chalk: 5.6.2 + cli-cursor: 5.0.0 + cli-spinners: 3.4.0 + is-interactive: 2.0.0 + is-unicode-supported: 2.1.0 + log-symbols: 7.0.1 + stdin-discarder: 0.3.2 + string-width: 8.2.0 + ordered-binary@1.6.1: optional: true @@ -15584,11 +15618,11 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-loader@8.2.1(postcss@8.5.10)(typescript@6.0.2)(webpack@5.106.2(esbuild@0.28.0)): + postcss-loader@8.2.1(postcss@8.5.12)(typescript@6.0.2)(webpack@5.106.2(esbuild@0.28.0)): dependencies: cosmiconfig: 9.0.1(typescript@6.0.2) jiti: 2.6.1 - postcss: 8.5.10 + postcss: 8.5.12 semver: 7.7.4 optionalDependencies: webpack: 5.106.2(esbuild@0.28.0) @@ -15597,30 +15631,30 @@ snapshots: postcss-media-query-parser@0.2.3: {} - postcss-modules-extract-imports@3.1.0(postcss@8.5.10): + postcss-modules-extract-imports@3.1.0(postcss@8.5.12): dependencies: - postcss: 8.5.10 + postcss: 8.5.12 - postcss-modules-local-by-default@4.2.0(postcss@8.5.10): + postcss-modules-local-by-default@4.2.0(postcss@8.5.12): dependencies: - icss-utils: 5.1.0(postcss@8.5.10) - postcss: 8.5.10 + icss-utils: 5.1.0(postcss@8.5.12) + postcss: 8.5.12 postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.1(postcss@8.5.10): + postcss-modules-scope@3.2.1(postcss@8.5.12): dependencies: - postcss: 8.5.10 + postcss: 8.5.12 postcss-selector-parser: 7.1.1 - postcss-modules-values@4.0.0(postcss@8.5.10): + postcss-modules-values@4.0.0(postcss@8.5.12): dependencies: - icss-utils: 5.1.0(postcss@8.5.10) - postcss: 8.5.10 + icss-utils: 5.1.0(postcss@8.5.12) + postcss: 8.5.12 - postcss-safe-parser@7.0.1(postcss@8.5.10): + postcss-safe-parser@7.0.1(postcss@8.5.12): dependencies: - postcss: 8.5.10 + postcss: 8.5.12 postcss-selector-parser@7.1.1: dependencies: @@ -15635,6 +15669,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.12: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + powershell-utils@0.1.0: {} prelude-ls@1.2.1: {} @@ -15717,7 +15757,7 @@ snapshots: punycode@2.3.1: {} - puppeteer-core@24.41.0(bufferutil@4.1.0)(utf-8-validate@6.0.6): + puppeteer-core@24.42.0(bufferutil@4.1.0)(utf-8-validate@6.0.6): dependencies: '@puppeteer/browsers': 2.13.0 chromium-bidi: 14.0.0(devtools-protocol@0.0.1595872) @@ -15734,13 +15774,13 @@ snapshots: - supports-color - utf-8-validate - puppeteer@24.41.0(bufferutil@4.1.0)(typescript@6.0.2)(utf-8-validate@6.0.6): + puppeteer@24.42.0(bufferutil@4.1.0)(typescript@6.0.2)(utf-8-validate@6.0.6): dependencies: '@puppeteer/browsers': 2.13.0 chromium-bidi: 14.0.0(devtools-protocol@0.0.1595872) cosmiconfig: 9.0.1(typescript@6.0.2) devtools-protocol: 0.0.1595872 - puppeteer-core: 24.41.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + puppeteer-core: 24.42.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) typed-query-selector: 2.12.2 transitivePeerDependencies: - bare-abort-controller @@ -15912,7 +15952,7 @@ snapshots: adjust-sourcemap-loader: 4.0.0 convert-source-map: 1.9.0 loader-utils: 2.0.4 - postcss: 8.5.10 + postcss: 8.5.12 source-map: 0.6.1 resolve@1.22.12: @@ -15968,26 +16008,26 @@ snapshots: dependencies: glob: 10.5.0 - rolldown@1.0.0-rc.16: + rolldown@1.0.0-rc.17: dependencies: - '@oxc-project/types': 0.126.0 - '@rolldown/pluginutils': 1.0.0-rc.16 + '@oxc-project/types': 0.127.0 + '@rolldown/pluginutils': 1.0.0-rc.17 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-rc.16 - '@rolldown/binding-darwin-arm64': 1.0.0-rc.16 - '@rolldown/binding-darwin-x64': 1.0.0-rc.16 - '@rolldown/binding-freebsd-x64': 1.0.0-rc.16 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.16 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.16 - '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.16 - '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.16 - '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.16 - '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.16 - '@rolldown/binding-linux-x64-musl': 1.0.0-rc.16 - '@rolldown/binding-openharmony-arm64': 1.0.0-rc.16 - '@rolldown/binding-wasm32-wasi': 1.0.0-rc.16 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.16 - '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.16 + '@rolldown/binding-android-arm64': 1.0.0-rc.17 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.17 + '@rolldown/binding-darwin-x64': 1.0.0-rc.17 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.17 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.17 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.17 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.17 + '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.17 + '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.17 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.17 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.17 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.17 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.17 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.17 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.17 rollup-license-plugin@3.2.1: dependencies: @@ -16119,9 +16159,9 @@ snapshots: schema-utils@4.3.3: dependencies: '@types/json-schema': 7.0.15 - ajv: 8.18.0 + ajv: 8.20.0 ajv-formats: 2.1.1 - ajv-keywords: 5.1.0(ajv@8.18.0) + ajv-keywords: 5.1.0(ajv@8.20.0) select-hose@2.0.0: {} @@ -16655,12 +16695,12 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 - terser: 5.46.1 + terser: 5.46.2 webpack: 5.106.2(esbuild@0.28.0) optionalDependencies: esbuild: 0.28.0 - terser@5.46.1: + terser@5.46.2: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.16.0 @@ -17015,12 +17055,12 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(less@4.6.4)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3): + vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(less@4.6.4)(sass@1.99.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3): dependencies: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - postcss: 8.5.10 + postcss: 8.5.12 rollup: 4.60.2 tinyglobby: 0.2.16 optionalDependencies: @@ -17029,19 +17069,19 @@ snapshots: jiti: 2.6.1 less: 4.6.4 sass: 1.99.0 - terser: 5.46.1 + terser: 5.46.2 tsx: 4.21.0 yaml: 2.8.3 - vitest@4.1.4(@opentelemetry/api@1.9.1)(@types/node@24.12.2)(@vitest/coverage-v8@4.1.4)(jiti@2.6.1)(jsdom@29.0.2)(less@4.6.4)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3): + vitest@4.1.5(@opentelemetry/api@1.9.1)(@types/node@24.12.2)(@vitest/coverage-v8@4.1.5)(jiti@2.6.1)(jsdom@29.1.0)(less@4.6.4)(sass@1.99.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3): dependencies: - '@vitest/expect': 4.1.4 - '@vitest/mocker': 4.1.4(vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(less@4.6.4)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) - '@vitest/pretty-format': 4.1.4 - '@vitest/runner': 4.1.4 - '@vitest/snapshot': 4.1.4 - '@vitest/spy': 4.1.4 - '@vitest/utils': 4.1.4 + '@vitest/expect': 4.1.5 + '@vitest/mocker': 4.1.5(vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(less@4.6.4)(sass@1.99.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/pretty-format': 4.1.5 + '@vitest/runner': 4.1.5 + '@vitest/snapshot': 4.1.5 + '@vitest/spy': 4.1.5 + '@vitest/utils': 4.1.5 es-module-lexer: 2.1.0 expect-type: 1.3.0 magic-string: 0.30.21 @@ -17053,13 +17093,13 @@ snapshots: tinyexec: 1.1.1 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 7.3.2(@types/node@24.12.2)(jiti@2.6.1)(less@4.6.4)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@24.12.2)(jiti@2.6.1)(less@4.6.4)(sass@1.99.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 '@types/node': 24.12.2 - '@vitest/coverage-v8': 4.1.4(vitest@4.1.4) - jsdom: 29.0.2 + '@vitest/coverage-v8': 4.1.5(vitest@4.1.5) + jsdom: 29.1.0 transitivePeerDependencies: - jiti - less