From 1104ed05c1149e0bf8592c716323f06344996019 Mon Sep 17 00:00:00 2001 From: Aliullov Vlad Date: Wed, 4 Mar 2026 15:44:27 +0100 Subject: [PATCH 1/5] build devextreme as modern node format library (with fixed exports) --- .../Demos/Charts/MultipleAxes/Vue/App.vue | 2 +- .../Demos/Diagram/ItemSelection/Vue/App.vue | 4 +- .../Vue/App.vue | 4 +- .../DragAndDropPlainDataStructure/Vue/App.vue | 2 +- .../babel-plugin-add-import-extensions.js | 69 +++++++++++++++ .../devextreme/build/gulp/fix-imports-path.js | 81 ++++++++++++++++++ .../build/gulp/modules_metadata.json | 8 +- packages/devextreme/build/gulp/npm.js | 85 ++++++++++++++++++- .../devextreme/build/gulp/transpile-config.js | 11 ++- .../scheduler/recurrence/generate_dates.ts | 7 +- .../generate_recurrence_utc_dates.ts | 4 +- 11 files changed, 262 insertions(+), 15 deletions(-) create mode 100644 packages/devextreme/build/gulp/babel-plugin-add-import-extensions.js create mode 100644 packages/devextreme/build/gulp/fix-imports-path.js diff --git a/apps/demos/Demos/Charts/MultipleAxes/Vue/App.vue b/apps/demos/Demos/Charts/MultipleAxes/Vue/App.vue index 65d5d0ba4d27..31e03cbb1fab 100644 --- a/apps/demos/Demos/Charts/MultipleAxes/Vue/App.vue +++ b/apps/demos/Demos/Charts/MultipleAxes/Vue/App.vue @@ -70,7 +70,7 @@ function customizeTooltip(pointInfo: DxChartTypes.PointInfo) { const items = pointInfo.valueText?.split('\n'); const color = pointInfo.point?.getColor(); - items?.forEach((item, index) => { + items?.forEach((item: string, index: number) => { if (item.indexOf(pointInfo.seriesName) === 0) { const element = document.createElement('span'); diff --git a/apps/demos/Demos/Diagram/ItemSelection/Vue/App.vue b/apps/demos/Demos/Diagram/ItemSelection/Vue/App.vue index 2f9587c008ef..0c271828b571 100644 --- a/apps/demos/Demos/Diagram/ItemSelection/Vue/App.vue +++ b/apps/demos/Demos/Diagram/ItemSelection/Vue/App.vue @@ -46,7 +46,7 @@ const textExpression = 'Full_Name'; function onContentReady(e: DxDiagramTypes.ContentReadyEvent) { const diagram = e.component; // preselect some shape - const items = diagram.getItems().filter(({ itemType, dataItem }) => itemType === 'shape' && (dataItem[textExpression] === 'Greta Sims')); + const items = diagram.getItems().filter(({ itemType, dataItem }: DxDiagramTypes.Item) => itemType === 'shape' && (dataItem[textExpression] === 'Greta Sims')); if (items.length > 0) { diagram.setSelectedItems(items); diagram.scrollToItem(items[0]); @@ -56,7 +56,7 @@ function onContentReady(e: DxDiagramTypes.ContentReadyEvent) { function onSelectionChanged({ items }: DxDiagramTypes.SelectionChangedEvent) { selectedItemNames.value = 'Nobody has been selected'; const filteredItems = items - .filter((item) => item.itemType === 'shape') + .filter((item: DxDiagramTypes.Item) => item.itemType === 'shape') .map(({ text }: Record) => text); if (filteredItems.length > 0) { selectedItemNames.value = filteredItems.join(', '); diff --git a/apps/demos/Demos/TreeView/DragAndDropHierarchicalDataStructure/Vue/App.vue b/apps/demos/Demos/TreeView/DragAndDropHierarchicalDataStructure/Vue/App.vue index d76877e5223c..57c1c3ab6a62 100644 --- a/apps/demos/Demos/TreeView/DragAndDropHierarchicalDataStructure/Vue/App.vue +++ b/apps/demos/Demos/TreeView/DragAndDropHierarchicalDataStructure/Vue/App.vue @@ -167,7 +167,7 @@ function moveNode( ) { const fromNodeContainingArray = getNodeContainingArray(fromNode, fromItems); const fromIndex = fromNodeContainingArray - ?.findIndex((item) => item.id === fromNode.itemData?.id) || -1; + ?.findIndex((item: DriveItem) => item.id === fromNode.itemData?.id) || -1; if (fromIndex !== -1 && fromNodeContainingArray) { fromNodeContainingArray.splice(fromIndex, 1); @@ -179,7 +179,7 @@ function moveNode( const toNodeContainingArray = getNodeContainingArray(toNode, toItems); const toIndex = toNode === null ? toNodeContainingArray?.length || 0 - : toNodeContainingArray?.findIndex((item) => item.id === toNode.itemData?.id) || 0; + : toNodeContainingArray?.findIndex((item: DriveItem) => item.id === toNode.itemData?.id) || 0; toNodeContainingArray?.splice(toIndex, 0, fromNode.itemData); } } diff --git a/apps/demos/Demos/TreeView/DragAndDropPlainDataStructure/Vue/App.vue b/apps/demos/Demos/TreeView/DragAndDropPlainDataStructure/Vue/App.vue index ca750ebcae7c..8e3c4fce7fa1 100644 --- a/apps/demos/Demos/TreeView/DragAndDropPlainDataStructure/Vue/App.vue +++ b/apps/demos/Demos/TreeView/DragAndDropPlainDataStructure/Vue/App.vue @@ -184,7 +184,7 @@ function moveChildren(node: Node, fromDataSource: DriveItem[], toDataSource: any return; } - node.children?.forEach((child) => { + node.children?.forEach((child: Node) => { if (child.itemData?.isDirectory) { moveChildren(child, fromDataSource, toDataSource); } diff --git a/packages/devextreme/build/gulp/babel-plugin-add-import-extensions.js b/packages/devextreme/build/gulp/babel-plugin-add-import-extensions.js new file mode 100644 index 000000000000..5b3498895123 --- /dev/null +++ b/packages/devextreme/build/gulp/babel-plugin-add-import-extensions.js @@ -0,0 +1,69 @@ +'use strict'; + +const path = require('path'); +const fs = require('fs'); + +module.exports = function addImportExtensions() { + return { + name: 'add-import-extensions', + visitor: { + 'ImportDeclaration|ExportNamedDeclaration|ExportAllDeclaration'(astPath) { + const source = astPath.node.source; + + if (!source) return; + + const value = source.value; + + if (!value || (!value.startsWith('./') && !value.startsWith('../'))) { + return; + } + + if (value.match(/\.(js|mjs|json|css)$/)) { + return; + } + + if (value.endsWith('/')) { + source.value = value + 'index.js'; + return; + } + + const currentFile = astPath.hub?.file?.opts?.filename; + const distPathRegExp = /artifacts[\/\\]dist_ts/; + + if (currentFile) { + const currentDir = path.dirname(currentFile); + const resolvedPath = path.resolve(currentDir, value).replace(distPathRegExp,'js'); + + if (fs.existsSync(resolvedPath)) { + const stat = fs.statSync(resolvedPath); + + if (stat.isDirectory()) { + const indexPath = path.join(resolvedPath, 'index.js'); + + if (fs.existsSync(indexPath)) { + source.value = value + '/index.js'; + return; + } + } + } + + let jsFilePath = resolvedPath + '.js'; + + if ( fs.existsSync(jsFilePath) + || fs.existsSync(jsFilePath = resolvedPath + '.ts') + ) { + const stat = fs.statSync(jsFilePath); + + if (stat.isFile()) { + source.value = value + '.js'; + return; + } + } + } + + source.value = value + '.js'; + } + } + }; +}; + diff --git a/packages/devextreme/build/gulp/fix-imports-path.js b/packages/devextreme/build/gulp/fix-imports-path.js new file mode 100644 index 000000000000..b0e55927b4cc --- /dev/null +++ b/packages/devextreme/build/gulp/fix-imports-path.js @@ -0,0 +1,81 @@ +// fix-imports.js +const fs = require('fs'); +const path = require('path'); + +const ROOT_DIR = process.argv[2]; // Папка передаётся первым аргументом + +if (!ROOT_DIR) { + console.error('Использование: node fix-imports.js '); + process.exit(1); +} + +function walkDir(dir, callback) { + for (const entry of fs.readdirSync(dir, { withFileTypes: true })) { + const fullPath = path.join(dir, entry.name); + if (entry.isDirectory()) { + walkDir(fullPath, callback); + } else if (entry.isFile() && fullPath.endsWith('.js')) { + callback(fullPath); + } + } +} + +function resolveImport(fileDir, importSpecifier) { + const basePath = path.resolve(fileDir, importSpecifier); + + const candidates = [ + basePath + '.js', + path.join(basePath, 'index.js'), + ]; + + for (const full of candidates) { + if (fs.existsSync(full) && fs.statSync(full).isFile()) { + let rel = path.relative(fileDir, full).replace(/\\/g, '/'); + if (!rel.startsWith('.')) { + rel = './' + rel; + } + return rel; + } + } + return null; +} + +function processFile(filePath) { + const original = fs.readFileSync(filePath, 'utf8'); + let content = original; + const fileDir = path.dirname(filePath); + + const importExportRegex = + /(?:import|export)\s+(?:[^'"]*?\s+from\s+)?(['"])(\.{1,2}\/[^'"]*)\1/g; + + const requireRegex = + /require\(\s*(['"])(\.{1,2}\/[^'"]*)\1\s*\)/g; + + function replaceCallback(_, quote, spec) { + // Если уже есть .js или .mjs — не трогаем + if (spec.endsWith('.js') || spec.endsWith('.mjs')) { + return _; + } + + const resolved = resolveImport(fileDir, spec); + if (!resolved) return _; + + return _.replace(spec, resolved); + } + + content = content.replace(importExportRegex, replaceCallback); + content = content.replace(requireRegex, replaceCallback); + + if (content !== original) { + fs.writeFileSync(filePath, content, 'utf8'); + console.log('Updated:', filePath); + } +} + +; + +module.exports = { + addExtensionToImportsPath: function (dir) { + walkDir(path.resolve(dir), processFile) + }, +}; diff --git a/packages/devextreme/build/gulp/modules_metadata.json b/packages/devextreme/build/gulp/modules_metadata.json index 6ec06d899a89..6c204b5ec4be 100644 --- a/packages/devextreme/build/gulp/modules_metadata.json +++ b/packages/devextreme/build/gulp/modules_metadata.json @@ -654,7 +654,8 @@ "name": "ui/widget/template", "exports": { "Template": { "path": "ui.template", "exportAs": "type" } - } + }, + "types": "./ui/widget/template.d.ts" }, { "name": "utils", @@ -687,6 +688,11 @@ "default": { "path": "viz.dxCircularGauge", "isWidget": true } } }, + { + "name": "viz/common", + "exports": {}, + "types": "./viz/common.d.ts" + }, { "name": "viz/export", "exports": { diff --git a/packages/devextreme/build/gulp/npm.js b/packages/devextreme/build/gulp/npm.js index 9f7f9d5e67bd..c752ce660eb8 100644 --- a/packages/devextreme/build/gulp/npm.js +++ b/packages/devextreme/build/gulp/npm.js @@ -11,6 +11,7 @@ const replace = require('gulp-replace'); const lazyPipe = require('lazypipe'); const gulpFilter = require('gulp-filter'); const gulpRename = require('gulp-rename'); +const MODULES = require('./modules_metadata.json'); const compressionPipes = require('./compression-pipes.js'); const ctx = require('./context.js'); @@ -18,6 +19,8 @@ const env = require('./env-variables.js'); const dataUri = require('./gulp-data-uri').gulpPipe; const headerPipes = require('./header-pipes.js'); const { packageDir, packageDistDir, isEsmPackage, stringSrc, devextremeDistDir } = require('./utils'); +const path = require('path'); +const fs = require('fs'); const resultPath = ctx.RESULT_NPM_PATH; @@ -150,6 +153,58 @@ const sources = (src, dist, distGlob) => (() => merge( const packagePath = `${resultPath}/${packageDir}`; const distPath = `${resultPath}/${packageDistDir}`; +function collectExports(baseDir) { + const exportsMap = {}; + + function getPath(p) { + return path.posix.join(p.replace(/\\/g, '/')) + .replace(/^.+\/esm\//, './esm/') + .replace(/^.+\/cjs\//, './cjs/') + } + + function walk(currentDir, relativePath = '.') { + const packageJsonPath = path.join(currentDir, 'package.json'); + + if (fs.existsSync(packageJsonPath) && !/(cjs|esm)$/.test(currentDir)) { + try { + const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8')); + const exportEntry = {}; + + if (pkg.module) { + exportEntry.import = getPath(pkg.module); + } + if (pkg.main) { + exportEntry.require = getPath(pkg.main); + } + if (pkg.typings || pkg.types) { + const typesFile = pkg.typings || pkg.types; + exportEntry.types = path.join(currentDir, typesFile) + .replace(/\\/g, '/') + .replace(/^.*\/devextreme\//, './'); + } + + if (Object.keys(exportEntry).length > 0) { + const exportKey = relativePath === '.' ? '.' : `./${relativePath.replace(/\\/g, '/')}`; + exportsMap[exportKey] = exportEntry; + } + } catch (err) { + console.warn(`Failed to read package.json in ${packageJsonPath}:`, err.message); + } + } + + const entries = fs.readdirSync(currentDir, { withFileTypes: true }); + + for (const entry of entries) { + if (entry.isDirectory()) { + walk(path.join(currentDir, entry.name), path.join(relativePath, entry.name)); + } + } + } + + walk(baseDir); + return exportsMap; +} + gulp.task('npm-sources', gulp.series( 'ts-sources', () => gulp @@ -164,6 +219,33 @@ gulp.task('npm-dist', () => gulp .pipe(gulp.dest(distPath)) ); +gulp.task('add-exports-to-package-json', () => gulp + .src(`${packagePath}/package.json`) + .pipe( + through.obj((file, enc, callback) => { + const pkg = JSON.parse(file.contents.toString(enc)); + + pkg.exports = { + "./dist/*":"./dist/*", + ...collectExports(path.resolve(packagePath)) + }; + + MODULES.forEach((item) => { + const exportPath = './' + item.name; + if(item.types && !pkg.exports[exportPath]?.types) { + pkg.exports[exportPath] = pkg.exports[exportPath] || {}; + pkg.exports[exportPath].types = item.types; + } + }) + + file.contents = Buffer.from(JSON.stringify(pkg, null, 2)); + + callback(null, file); + }) + ) + .pipe(gulp.dest(packagePath)) +); + const scssDir = `${packagePath}/scss`; gulp.task('npm-sass', gulp.series( @@ -183,4 +265,5 @@ gulp.task('npm-sass', gulp.series( ) )); -gulp.task('npm', gulp.series('npm-sources', 'npm-dist', 'ts-check-public-modules', 'npm-sass')); +gulp.task('npm', gulp.series('npm-sources', 'npm-dist', 'ts-check-public-modules', 'npm-sass', 'add-exports-to-package-json')); + diff --git a/packages/devextreme/build/gulp/transpile-config.js b/packages/devextreme/build/gulp/transpile-config.js index 9bee0fbd6141..efd7e9aafdd4 100644 --- a/packages/devextreme/build/gulp/transpile-config.js +++ b/packages/devextreme/build/gulp/transpile-config.js @@ -1,5 +1,7 @@ 'use strict'; +const addImportExtensions = require('./babel-plugin-add-import-extensions'); + const common = { plugins: [ ['babel-plugin-inferno', { 'imports': true }], @@ -33,11 +35,12 @@ module.exports = { esm: Object.assign({}, common, { // eslint-disable-next-line spellcheck/spell-checker presets: [['@babel/preset-env', { targets, modules: false }]], - plugins: common.plugins.concat( - [['@babel/plugin-transform-runtime', { + plugins: common.plugins.concat([ + addImportExtensions, + ['@babel/plugin-transform-runtime', { useESModules: true, version: '7.5.0' // https://github.com/babel/babel/issues/10261#issuecomment-514687857 - }]] - ) + }] + ]) }) }; diff --git a/packages/devextreme/js/__internal/scheduler/recurrence/generate_dates.ts b/packages/devextreme/js/__internal/scheduler/recurrence/generate_dates.ts index 6027f03aa3ba..b0292084a32f 100644 --- a/packages/devextreme/js/__internal/scheduler/recurrence/generate_dates.ts +++ b/packages/devextreme/js/__internal/scheduler/recurrence/generate_dates.ts @@ -1,11 +1,14 @@ import { dateUtilsTs } from '@ts/core/utils/date'; -import { RRule, RRuleSet } from 'rrule'; +import type { RRuleSet as RRuleSetType } from 'rrule'; +import * as rrule from 'rrule'; import timeZoneUtils from '../m_utils_time_zone'; import { getDateByAsciiString, parseRecurrenceRule } from './base'; import type { ProcessorOptions, RRuleParams } from './types'; import { validateRRuleObject } from './validate_rule'; +const { RRule, RRuleSet } = rrule; + const { addOffsets } = dateUtilsTs; const MS_IN_HOUR = 1000 * 60 * 60; @@ -121,7 +124,7 @@ const createRRule = ( options: ProcessorOptions, startDateUtc: Date, until?: Date | null, -): RRuleSet => { +): RRuleSetType => { const ruleOptions = RRule.parseString(String(options.rule)); const { firstDayOfWeek } = options; diff --git a/packages/devextreme/js/__internal/scheduler/view_model/filtration/utils/split_by_recurrence/generate_recurrence_utc_dates.ts b/packages/devextreme/js/__internal/scheduler/view_model/filtration/utils/split_by_recurrence/generate_recurrence_utc_dates.ts index e2587cf09bd5..400fa0c74e1d 100644 --- a/packages/devextreme/js/__internal/scheduler/view_model/filtration/utils/split_by_recurrence/generate_recurrence_utc_dates.ts +++ b/packages/devextreme/js/__internal/scheduler/view_model/filtration/utils/split_by_recurrence/generate_recurrence_utc_dates.ts @@ -1,10 +1,12 @@ import { dateUtilsTs } from '@ts/core/utils/date'; -import { RRule, RRuleSet } from 'rrule'; +import * as rrule from 'rrule'; import { parseRecurrenceRule } from '../../../../recurrence/base'; import type { DateInterval, MinimalAppointmentEntity } from '../../../types'; import { getDateOffsetMs } from './get_date_information'; +const { RRule, RRuleSet } = rrule; + interface Options { firstDayOfWeek?: number; interval: DateInterval; From 62f1defdee88e1a5e0a8294e81b14dbfa7bbbbba Mon Sep 17 00:00:00 2001 From: Aliullov Vlad Date: Wed, 4 Mar 2026 22:01:45 +0100 Subject: [PATCH 2/5] build devextreme as modern node + fix using window in devextreme --- .../core/state_manager/dev/redux_dev_tools_connector.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/devextreme/js/__internal/core/state_manager/dev/redux_dev_tools_connector.ts b/packages/devextreme/js/__internal/core/state_manager/dev/redux_dev_tools_connector.ts index a949ad99a00d..d347aa3b72fe 100644 --- a/packages/devextreme/js/__internal/core/state_manager/dev/redux_dev_tools_connector.ts +++ b/packages/devextreme/js/__internal/core/state_manager/dev/redux_dev_tools_connector.ts @@ -1,8 +1,11 @@ /* eslint-disable spellcheck/spell-checker */ +import { getWindow } from '../../utils/m_window'; import { EventEmitter } from './event_emitter'; import type * as StateManagementTypes from './types'; import { isObject } from './utils'; +const window = getWindow(); + export class ReduxDevToolsConnector implements StateManagementTypes.DevToolsConnector { private devTools: StateManagementTypes.ReduxDevToolsInstance | null = null; From b9b5d5ec86df7aa692dd77b1a4cb02c814f25628 Mon Sep 17 00:00:00 2001 From: Aliullov Vlad Date: Wed, 4 Mar 2026 23:01:09 +0100 Subject: [PATCH 3/5] build devextreme as modern node + remake ssr tests --- packages/devextreme-angular/package.json | 7 +- packages/devextreme-angular/project.json | 22 + .../tests/src/server/hydration.spec.ts | 131 -- .../tests/src/server/ssr-ajax.spec.ts | 27 +- .../tests/src/server/ssr-components.spec.ts | 2 +- .../tests/src/server/vitest.setup.ts | 18 + .../tests/src/ssr-app.test.js | 37 + .../tests/ssr-app/.editorconfig | 17 + .../tests/ssr-app/.gitignore | 42 + .../tests/ssr-app/README.md | 59 + .../tests/ssr-app/angular.json | 91 + .../tests/ssr-app/package.json | 38 + .../tests/ssr-app/public/favicon.ico | Bin 0 -> 82 bytes .../tests/ssr-app/src/app/app.component.html | 75 + .../tests/ssr-app/src/app/app.component.ts | 11 + .../ssr-app/src/app/app.config.server.ts | 13 + .../tests/ssr-app/src/app/app.config.ts | 9 + .../ssr-app/src/app/app.routes.server.ts | 8 + .../tests/ssr-app/src/app/app.routes.ts | 3 + .../tests/ssr-app/src/index.html | 12 + .../tests/ssr-app/src/main.server.ts | 8 + .../tests/ssr-app/src/main.ts | 6 + .../tests/ssr-app/src/server.ts | 72 + .../tests/ssr-app/tsconfig.app.json | 19 + .../tests/ssr-app/tsconfig.json | 27 + .../tests/ssr-app/tsconfig.spec.json | 15 + .../tests/testcafe/.testcaferc.json | 8 + .../tests/testcafe/package.json | 8 + .../tests/testcafe/run-ssr-testcafe.mjs | 172 ++ .../vitest.server.config.ts | 19 + pnpm-lock.yaml | 1627 ++++++++++++----- pnpm-workspace.yaml | 4 + 32 files changed, 1970 insertions(+), 637 deletions(-) delete mode 100644 packages/devextreme-angular/tests/src/server/hydration.spec.ts create mode 100644 packages/devextreme-angular/tests/src/server/vitest.setup.ts create mode 100644 packages/devextreme-angular/tests/src/ssr-app.test.js create mode 100644 packages/devextreme-angular/tests/ssr-app/.editorconfig create mode 100644 packages/devextreme-angular/tests/ssr-app/.gitignore create mode 100644 packages/devextreme-angular/tests/ssr-app/README.md create mode 100644 packages/devextreme-angular/tests/ssr-app/angular.json create mode 100644 packages/devextreme-angular/tests/ssr-app/package.json create mode 100644 packages/devextreme-angular/tests/ssr-app/public/favicon.ico create mode 100644 packages/devextreme-angular/tests/ssr-app/src/app/app.component.html create mode 100644 packages/devextreme-angular/tests/ssr-app/src/app/app.component.ts create mode 100644 packages/devextreme-angular/tests/ssr-app/src/app/app.config.server.ts create mode 100644 packages/devextreme-angular/tests/ssr-app/src/app/app.config.ts create mode 100644 packages/devextreme-angular/tests/ssr-app/src/app/app.routes.server.ts create mode 100644 packages/devextreme-angular/tests/ssr-app/src/app/app.routes.ts create mode 100644 packages/devextreme-angular/tests/ssr-app/src/index.html create mode 100644 packages/devextreme-angular/tests/ssr-app/src/main.server.ts create mode 100644 packages/devextreme-angular/tests/ssr-app/src/main.ts create mode 100644 packages/devextreme-angular/tests/ssr-app/src/server.ts create mode 100644 packages/devextreme-angular/tests/ssr-app/tsconfig.app.json create mode 100644 packages/devextreme-angular/tests/ssr-app/tsconfig.json create mode 100644 packages/devextreme-angular/tests/ssr-app/tsconfig.spec.json create mode 100644 packages/devextreme-angular/tests/testcafe/.testcaferc.json create mode 100644 packages/devextreme-angular/tests/testcafe/package.json create mode 100644 packages/devextreme-angular/tests/testcafe/run-ssr-testcafe.mjs create mode 100644 packages/devextreme-angular/vitest.server.config.ts diff --git a/packages/devextreme-angular/package.json b/packages/devextreme-angular/package.json index 03d3fd71c4f5..7abdf2700585 100644 --- a/packages/devextreme-angular/package.json +++ b/packages/devextreme-angular/package.json @@ -13,9 +13,12 @@ "lint": "eslint . --quiet", "lint:fix": "eslint . --fix", "test": "pnpm --workspace-root nx test devextreme-angular", + "test:ssr-components:vitest": "pnpm --workspace-root nx test:ssr-components:vitest devextreme-angular", "pack": "pnpm --workspace-root nx pack devextreme-angular", "pack-with-descriptions": "pnpm --workspace-root nx pack --configuration with-descriptions devextreme-angular", - "test:dev": "pnpm --workspace-root nx run:tests devextreme-angular" + "test:dev": "pnpm --workspace-root nx run:tests devextreme-angular", + "test:ssr": "node tests/testcafe/run-ssr-testcafe.mjs" + }, "author": "Developer Express Inc.", "license": "MIT", @@ -49,6 +52,7 @@ "core-js": "2.6.12", "css-loader": "6.10.0", "devextreme-metadata": "workspace:*", + "domino": "^2.1.6", "eslint": "catalog:", "eslint-config-devextreme": "catalog:", "eslint-plugin-import": "catalog:", @@ -67,6 +71,7 @@ "style-loader": "3.3.4", "tslib": "2.6.3", "typescript": "catalog:angular", + "vitest": "^3.0.0", "webpack": "5.105.0", "yargs": "17.7.2", "zone.js": "catalog:angular" diff --git a/packages/devextreme-angular/project.json b/packages/devextreme-angular/project.json index 975a6e471e9c..33eba251521b 100644 --- a/packages/devextreme-angular/project.json +++ b/packages/devextreme-angular/project.json @@ -421,6 +421,26 @@ "{projectRoot}/tests/dist/**/*" ] }, + "test:ssr-components:vitest": { + "executor": "nx:run-commands", + "options": { + "commands": [ + "pnpm --workspace-root nx build:tests devextreme-angular", + "vitest run --config vitest.server.config.ts" + ], + "parallel": false, + "cwd": "packages/devextreme-angular" + }, + "dependsOn": ["build:tests"], + "inputs": [ + "default", + "test", + "{projectRoot}/tests/dist/**/*", + "{projectRoot}/vitest.server.config.ts", + "{projectRoot}/tests/src/server/vitest.setup.ts" + ], + "cache": true + }, "watch:test": { "executor": "devextreme-nx-infra-plugin:karma-multi-env", "options": { @@ -492,6 +512,8 @@ "{projectRoot}/karma.server.test.shim.js", "{projectRoot}/karma.hydration.test.shim.js", "{projectRoot}/webpack.test.js", + "{projectRoot}/vitest.server.config.ts", + "{projectRoot}/tests/src/server/vitest.setup.ts", "{projectRoot}/tsconfig.tests.json", "{projectRoot}/src/**/*.spec.ts", "{projectRoot}/src/**/*.test.ts" diff --git a/packages/devextreme-angular/tests/src/server/hydration.spec.ts b/packages/devextreme-angular/tests/src/server/hydration.spec.ts deleted file mode 100644 index cc69b14e7a49..000000000000 --- a/packages/devextreme-angular/tests/src/server/hydration.spec.ts +++ /dev/null @@ -1,131 +0,0 @@ -import { BrowserModule, provideClientHydration } from '@angular/platform-browser'; -import { - Component, - destroyPlatform, - NgModule, - PLATFORM_ID, - importProvidersFrom, -} from '@angular/core'; -import { ServerModule, renderModule } from '@angular/platform-server'; -import { DxServerModule } from 'devextreme-angular/server'; -import infernoRenderer from 'devextreme/core/inferno_renderer'; -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; -import { DevExtremeModule } from 'devextreme-angular'; -import { componentNames as componentNamesAll } from './component-names'; - -const componentNames = componentNamesAll.filter((n) => ['toast', 'action-sheet'].includes(n)); - -const containerClass = 'container'; -const containerSelector = `.${containerClass}`; - -@Component({ - selector: 'app-root', - standalone: false, - template: `
- ${componentNames.map((name) => ``).join('\n')} -
`, -}) -class AppComponent {} - -@NgModule({ - declarations: [AppComponent], - imports: [BrowserModule, DevExtremeModule], - bootstrap: [AppComponent], - providers: [provideClientHydration()], -}) -class AppBrowserModule {} - -@NgModule({ - declarations: [AppComponent], - imports: [ServerModule, DevExtremeModule], - bootstrap: [AppComponent], - providers: [ - provideClientHydration(), - { provide: PLATFORM_ID, useValue: 'server' }, - importProvidersFrom(DxServerModule), - ], -}) -class AppSSRModule {} - -class TestHelpers { - static normalizeClassNames(element: HTMLElement): void { - const classNames = Array.from(element.classList).sort(); - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - element.classList.remove(...element.classList); - element.classList.add(...classNames); - } - - static hasConsoleMessage(spy: jasmine.Spy, messages: string[]): boolean { - return spy.calls.allArgs().some((args) => messages.some((msg) => args[0].toLowerCase().includes(msg.toLowerCase()))); - } -} - -describe('Angular Components Hydration Test', () => { - let consoleSpies: { - warn: jasmine.Spy; - error: jasmine.Spy; - log: jasmine.Spy; - }; - const ssrState: { - containerHtml: string; - ssrHTML: string; - } = { - containerHtml: '', - ssrHTML: '', - }; - - beforeAll(() => { - consoleSpies = { - warn: spyOn(console, 'warn').and.callThrough(), - error: spyOn(console, 'error').and.callThrough(), - log: spyOn(console, 'log').and.callThrough(), - }; - }); - - beforeEach(() => { - destroyPlatform(); - }); - - afterEach(() => { - expect(consoleSpies.error).not.toHaveBeenCalled(); - expect(TestHelpers.hasConsoleMessage(consoleSpies.warn, ['exception', 'hydration'])).toBeFalsy(); - }); - - it('should generate correct SSR HTML', async () => { - const html = await renderModule(AppSSRModule, { - document: '', - url: '/', - }); - - ssrState.ssrHTML = html - .replace(/ng-server-context="other"/g, 'ng-server-context="ssg"') - .replace(/^.*.*$/, ''); - - const tempDiv = document.createElement('div'); - tempDiv.innerHTML = ssrState.ssrHTML; - - // Assert - ssrState.containerHtml = tempDiv.querySelector(`${containerSelector}`)?.innerHTML ?? ''; - - expect(ssrState.containerHtml).toBeTruthy(); - expect(ssrState.ssrHTML).toBeTruthy(); - }); - - it('should correctly hydrate server-rendered HTML', async () => { - infernoRenderer.resetInjection(); - - document.body.outerHTML = ssrState.ssrHTML; - - // Act - await platformBrowserDynamic().bootstrapModule(AppBrowserModule); - - expect(TestHelpers.hasConsoleMessage( - consoleSpies.log, - ['Angular hydrated 1 component(s)'], - )).toBeTruthy(); - - expect(ssrState.containerHtml).toEqual(document.querySelector(`${containerSelector}`).innerHTML); - }); -}); diff --git a/packages/devextreme-angular/tests/src/server/ssr-ajax.spec.ts b/packages/devextreme-angular/tests/src/server/ssr-ajax.spec.ts index 0d831e6ba84d..2afb2c1f7b20 100644 --- a/packages/devextreme-angular/tests/src/server/ssr-ajax.spec.ts +++ b/packages/devextreme-angular/tests/src/server/ssr-ajax.spec.ts @@ -1,4 +1,3 @@ -/* tslint:disable:component-selector */ import { Component, PLATFORM_ID, @@ -6,8 +5,9 @@ import { makeStateKey, } from '@angular/core'; +import domino from 'domino'; import { isPlatformServer } from '@angular/common'; - +import { setWindow } from 'devextreme/core/utils/window'; import { DxServerTransferStateModule } from 'devextreme-angular'; import { DxServerModule } from 'devextreme-angular/server'; @@ -20,6 +20,7 @@ import { ServerModule } from '@angular/platform-server'; import { TestBed, } from '@angular/core/testing'; +import {beforeAll} from "vitest"; const mockSendRequest = { callBase() { @@ -41,8 +42,30 @@ class TestContainerComponent { describe('Universal', () => { let sendRequest: any; const ajaxInject = ajax.inject; + + beforeAll(() => { + const dominoWindow = domino.createWindow(''); + + Object.defineProperty(globalThis, 'window', { + value: dominoWindow, + configurable: true, + }); + Object.defineProperty(globalThis, 'document', { + value: dominoWindow.document, + configurable: true, + }); + Object.defineProperty(globalThis, 'navigator', { + value: { userAgent: 'node' }, + configurable: true, + }); + + + setWindow(dominoWindow); + }) + beforeEach(() => { ajax.inject = function (obj) { + ajaxInject.call(this, obj); sendRequest = obj.sendRequest; }; TestBed.configureTestingModule( diff --git a/packages/devextreme-angular/tests/src/server/ssr-components.spec.ts b/packages/devextreme-angular/tests/src/server/ssr-components.spec.ts index 54060939189b..195b3e059d08 100644 --- a/packages/devextreme-angular/tests/src/server/ssr-components.spec.ts +++ b/packages/devextreme-angular/tests/src/server/ssr-components.spec.ts @@ -43,7 +43,7 @@ describe('Universal', () => { TestBed.overrideComponent(TestContainerComponent, { set: { template: ` - ${componentNames.map((name) => ``).join('')} + ${componentNames.filter((_name) => !['diagram'].includes(_name)).map((name) => ``).join('')} `, }, }); diff --git a/packages/devextreme-angular/tests/src/server/vitest.setup.ts b/packages/devextreme-angular/tests/src/server/vitest.setup.ts new file mode 100644 index 000000000000..52da3f5aed79 --- /dev/null +++ b/packages/devextreme-angular/tests/src/server/vitest.setup.ts @@ -0,0 +1,18 @@ +import '@angular/compiler'; +import 'reflect-metadata'; +import 'zone.js/node'; +import 'zone.js/testing'; + +import { TestBed } from '@angular/core/testing'; +import { ServerTestingModule, platformServerTesting } from '@angular/platform-server/testing'; + +import { setWindow } from 'devextreme/core/utils/window'; + +const windowMock: { window?: unknown } = {}; +windowMock.window = windowMock; +setWindow(windowMock); + +TestBed.initTestEnvironment( + ServerTestingModule, + platformServerTesting(), +); diff --git a/packages/devextreme-angular/tests/src/ssr-app.test.js b/packages/devextreme-angular/tests/src/ssr-app.test.js new file mode 100644 index 000000000000..7c1a4d285ebe --- /dev/null +++ b/packages/devextreme-angular/tests/src/ssr-app.test.js @@ -0,0 +1,37 @@ +import { componentNames } from '../src/server/component-names.ts' +const baseUrl = 'http://localhost:4200/'; + +const dxComponentNames = componentNames.filter((name) => { + return !['diagram', 'scheduler'].includes(name); +}); + +fixture('SSR app markup'); + +test('should render widget markup on the server', async (t) => { + const response = await t.request({ + url: baseUrl, + method: 'GET', + }); + + await t.expect(response.status).eql(200); + + const html = response.body || ''; + + for (const componentName of dxComponentNames) { + await t.expect(html).contains(` { + await t.navigateTo(baseUrl, { waitForPageLoad: false }); + + const bodyHtml = await t.eval(() => document.body?.innerHTML || ''); + + for (const componentName of dxComponentNames) { + await t.expect(bodyHtml).contains(`04%=%xBvhE literal 0 HcmV?d00001 diff --git a/packages/devextreme-angular/tests/ssr-app/src/app/app.component.html b/packages/devextreme-angular/tests/ssr-app/src/app/app.component.html new file mode 100644 index 000000000000..e5a8a2d9439a --- /dev/null +++ b/packages/devextreme-angular/tests/ssr-app/src/app/app.component.html @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/devextreme-angular/tests/ssr-app/src/app/app.component.ts b/packages/devextreme-angular/tests/ssr-app/src/app/app.component.ts new file mode 100644 index 000000000000..83b79a073538 --- /dev/null +++ b/packages/devextreme-angular/tests/ssr-app/src/app/app.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { DevExtremeModule } from 'devextreme-angular'; + +@Component({ + selector: 'app-root', + imports: [DevExtremeModule], + templateUrl: './app.component.html', +}) +export class AppComponent { + title = 'ssr-app'; +} diff --git a/packages/devextreme-angular/tests/ssr-app/src/app/app.config.server.ts b/packages/devextreme-angular/tests/ssr-app/src/app/app.config.server.ts new file mode 100644 index 000000000000..73acf623878e --- /dev/null +++ b/packages/devextreme-angular/tests/ssr-app/src/app/app.config.server.ts @@ -0,0 +1,13 @@ +import {mergeApplicationConfig, ApplicationConfig, importProvidersFrom} from '@angular/core'; +import { provideServerRendering } from '@angular/platform-server'; +import { appConfig } from './app.config'; +import { DxServerModule } from 'devextreme-angular/server'; + +const serverConfig: ApplicationConfig = { + providers: [ + importProvidersFrom(DxServerModule), + provideServerRendering() + ] +}; + +export const config = mergeApplicationConfig(appConfig, serverConfig); diff --git a/packages/devextreme-angular/tests/ssr-app/src/app/app.config.ts b/packages/devextreme-angular/tests/ssr-app/src/app/app.config.ts new file mode 100644 index 000000000000..885ea31fd397 --- /dev/null +++ b/packages/devextreme-angular/tests/ssr-app/src/app/app.config.ts @@ -0,0 +1,9 @@ +import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core'; +import { provideClientHydration, withEventReplay } from '@angular/platform-browser'; + +export const appConfig: ApplicationConfig = { + providers: [ + provideZoneChangeDetection({ eventCoalescing: true }), + provideClientHydration(withEventReplay()), + ] +}; diff --git a/packages/devextreme-angular/tests/ssr-app/src/app/app.routes.server.ts b/packages/devextreme-angular/tests/ssr-app/src/app/app.routes.server.ts new file mode 100644 index 000000000000..ffd37b1f233c --- /dev/null +++ b/packages/devextreme-angular/tests/ssr-app/src/app/app.routes.server.ts @@ -0,0 +1,8 @@ +import { RenderMode, ServerRoute } from '@angular/ssr'; + +export const serverRoutes: ServerRoute[] = [ + { + path: '**', + renderMode: RenderMode.Prerender + } +]; diff --git a/packages/devextreme-angular/tests/ssr-app/src/app/app.routes.ts b/packages/devextreme-angular/tests/ssr-app/src/app/app.routes.ts new file mode 100644 index 000000000000..dc39edb5f23a --- /dev/null +++ b/packages/devextreme-angular/tests/ssr-app/src/app/app.routes.ts @@ -0,0 +1,3 @@ +import { Routes } from '@angular/router'; + +export const routes: Routes = []; diff --git a/packages/devextreme-angular/tests/ssr-app/src/index.html b/packages/devextreme-angular/tests/ssr-app/src/index.html new file mode 100644 index 000000000000..69677162dd8b --- /dev/null +++ b/packages/devextreme-angular/tests/ssr-app/src/index.html @@ -0,0 +1,12 @@ + + + + + SsrApp + + + + + + + diff --git a/packages/devextreme-angular/tests/ssr-app/src/main.server.ts b/packages/devextreme-angular/tests/ssr-app/src/main.server.ts new file mode 100644 index 000000000000..f678724860de --- /dev/null +++ b/packages/devextreme-angular/tests/ssr-app/src/main.server.ts @@ -0,0 +1,8 @@ +import { BootstrapContext, bootstrapApplication } from '@angular/platform-browser'; +import { AppComponent } from './app/app.component'; +import { config } from './app/app.config.server'; + +const bootstrap = (context: BootstrapContext) => + bootstrapApplication(AppComponent, config, context); + +export default bootstrap; diff --git a/packages/devextreme-angular/tests/ssr-app/src/main.ts b/packages/devextreme-angular/tests/ssr-app/src/main.ts new file mode 100644 index 000000000000..35b00f346331 --- /dev/null +++ b/packages/devextreme-angular/tests/ssr-app/src/main.ts @@ -0,0 +1,6 @@ +import { bootstrapApplication } from '@angular/platform-browser'; +import { appConfig } from './app/app.config'; +import { AppComponent } from './app/app.component'; + +bootstrapApplication(AppComponent, appConfig) + .catch((err) => console.error(err)); diff --git a/packages/devextreme-angular/tests/ssr-app/src/server.ts b/packages/devextreme-angular/tests/ssr-app/src/server.ts new file mode 100644 index 000000000000..74925fb0b018 --- /dev/null +++ b/packages/devextreme-angular/tests/ssr-app/src/server.ts @@ -0,0 +1,72 @@ +import { APP_BASE_HREF } from '@angular/common'; +import { CommonEngine, isMainModule } from '@angular/ssr/node'; +import express from 'express'; +import { dirname, join, resolve } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import bootstrap from './main.server'; + +const serverDistFolder = dirname(fileURLToPath(import.meta.url)); +const browserDistFolder = resolve(serverDistFolder, '../browser'); +const indexHtml = join(serverDistFolder, 'index.server.html'); + +const app = express(); +const commonEngine = new CommonEngine(); + +// Chrome DevTools probes this endpoint; avoid SSR router errors. +app.get('/.well-known/appspecific/com.chrome.devtools.json', (_req, res) => { + res.status(204).end(); +}); + +/** + * Example Express Rest API endpoints can be defined here. + * Uncomment and define endpoints as necessary. + * + * Example: + * ```ts + * app.get('/api/**', (req, res) => { + * // Handle API request + * }); + * ``` + */ + +/** + * Serve static files from /browser + */ +app.get( + '**', + express.static(browserDistFolder, { + maxAge: '1y', + index: 'index.html' + }), +); + +/** + * Handle all other requests by rendering the Angular application. + */ +app.get('**', (req, res, next) => { + const { protocol, originalUrl, baseUrl, headers } = req; + + commonEngine + .render({ + bootstrap, + documentFilePath: indexHtml, + url: `${protocol}://${headers.host}${originalUrl}`, + publicPath: browserDistFolder, + providers: [{ provide: APP_BASE_HREF, useValue: baseUrl }], + }) + .then((html) => res.send(html)) + .catch((err) => next(err)); +}); + +/** + * Start the server if this module is the main entry point. + * The server listens on the port defined by the `PORT` environment variable, or defaults to 4000. + */ +if (isMainModule(import.meta.url)) { + const port = process.env['PORT'] || 4000; + app.listen(port, () => { + console.log(`Node Express server listening on http://localhost:${port}`); + }); +} + +export default app; diff --git a/packages/devextreme-angular/tests/ssr-app/tsconfig.app.json b/packages/devextreme-angular/tests/ssr-app/tsconfig.app.json new file mode 100644 index 000000000000..9ab8527bfebb --- /dev/null +++ b/packages/devextreme-angular/tests/ssr-app/tsconfig.app.json @@ -0,0 +1,19 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [ + "node" + ] + }, + "files": [ + "src/main.ts", + "src/main.server.ts", + "src/server.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/packages/devextreme-angular/tests/ssr-app/tsconfig.json b/packages/devextreme-angular/tests/ssr-app/tsconfig.json new file mode 100644 index 000000000000..5525117c6744 --- /dev/null +++ b/packages/devextreme-angular/tests/ssr-app/tsconfig.json @@ -0,0 +1,27 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "compileOnSave": false, + "compilerOptions": { + "outDir": "./dist/out-tsc", + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "isolatedModules": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "moduleResolution": "bundler", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022" + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/packages/devextreme-angular/tests/ssr-app/tsconfig.spec.json b/packages/devextreme-angular/tests/ssr-app/tsconfig.spec.json new file mode 100644 index 000000000000..5fb748d9207a --- /dev/null +++ b/packages/devextreme-angular/tests/ssr-app/tsconfig.spec.json @@ -0,0 +1,15 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/packages/devextreme-angular/tests/testcafe/.testcaferc.json b/packages/devextreme-angular/tests/testcafe/.testcaferc.json new file mode 100644 index 000000000000..f0e15c6cce82 --- /dev/null +++ b/packages/devextreme-angular/tests/testcafe/.testcaferc.json @@ -0,0 +1,8 @@ +{ + "browsers": [ + "chrome:headless --use-fake-ui-for-media-stream --use-fake-device-for-media-stream --enable-features=SpeechRecognition,WebSpeechAPI" + ], + "src": [ + "../src/ssr-app.test.js" + ] +} diff --git a/packages/devextreme-angular/tests/testcafe/package.json b/packages/devextreme-angular/tests/testcafe/package.json new file mode 100644 index 000000000000..d7700af24d66 --- /dev/null +++ b/packages/devextreme-angular/tests/testcafe/package.json @@ -0,0 +1,8 @@ +{ + "name": "devextreme-angular-ssr-testcafe", + "private": true, + "type": "module", + "devDependencies": { + "testcafe": "3.7.2" + } +} diff --git a/packages/devextreme-angular/tests/testcafe/run-ssr-testcafe.mjs b/packages/devextreme-angular/tests/testcafe/run-ssr-testcafe.mjs new file mode 100644 index 000000000000..2755232227f8 --- /dev/null +++ b/packages/devextreme-angular/tests/testcafe/run-ssr-testcafe.mjs @@ -0,0 +1,172 @@ +import { spawn } from 'node:child_process'; +import http from 'node:http'; +import { dirname, resolve } from 'node:path'; +import { fileURLToPath, pathToFileURL } from 'node:url'; +import fs from 'fs/promises'; +import path from 'path'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); +const repoRoot = resolve(__dirname, '..', '..', '..', '..'); +const ssrAppDir = resolve(repoRoot, 'packages/devextreme-angular/tests/ssr-app'); +const testcafeDir = resolve(repoRoot, 'packages/devextreme-angular/tests/testcafe'); +const testcafeConfig = resolve(__dirname, '.testcaferc.json'); +const port = Number(process.env.SSR_APP_PORT || 4200); +const baseUrl = `http://localhost:${port}/`; + +const addDxComponentsToApp = async () => { + const __filename = fileURLToPath(import.meta.url); + const __dirname = path.dirname(__filename); + + const componentNamesPath = path.resolve(__dirname, '../dist/server/component-names.js'); + const { componentNames } = await import(pathToFileURL(componentNamesPath).href); + + const template = (componentNames) + .filter((_name) => !['diagram', 'scheduler'].includes(_name)) + .map((name) => `\n`) + .join(''); + + const appTemplatePath = path.resolve(__dirname, '../ssr-app/src/app/app.component.html'); + await fs.writeFile(appTemplatePath, template, 'utf8'); +} + +const runCommand = (command, args, options = {}) => new Promise((resolvePromise, rejectPromise) => { + const child = spawn(command, args, { + shell: true, + stdio: 'inherit', + ...options, + }); + + child.on('close', (code) => { + if (code === 0) { + resolvePromise(); + } else { + rejectPromise(new Error(`${command} ${args.join(' ')} failed with code ${code}`)); + } + }); +}); + +const waitForServer = (url, timeoutMs = 60000) => new Promise((resolvePromise, rejectPromise) => { + const timeoutAt = Date.now() + timeoutMs; + + const ping = () => { + http.get(url, (response) => { + response.resume(); + if (response.statusCode && response.statusCode >= 200 && response.statusCode < 500) { + resolvePromise(); + return; + } + response.on('end', scheduleRetry); + }).on('error', scheduleRetry); + }; + + const scheduleRetry = () => { + if (Date.now() > timeoutAt) { + rejectPromise(new Error(`SSR server did not respond at ${url}`)); + return; + } + setTimeout(ping, 500); + }; + + ping(); +}); + +const buildSsrApp = () => runCommand( + 'pnpm', + ['--dir', ssrAppDir, 'run', 'build', '--configuration', 'development'], + { + env: process.env, + }, +); + +const startServer = () => spawn( + 'node', + [resolve(ssrAppDir, 'dist/ssr-app/server/server.mjs')], + { + shell: false, + stdio: 'inherit', + env: { + ...process.env, + PORT: String(port), + }, + }, +); + +let serverProcess; + +const shutdownServer = () => { + if (serverProcess?.pid) { + const pid = serverProcess.pid; + if (process.platform === 'win32') { + spawn('taskkill', ['/PID', String(pid), '/T', '/F'], { shell: true, stdio: 'ignore' }); + } else { + serverProcess.kill('SIGTERM'); + } + serverProcess = undefined; + } +}; + +process.on('SIGINT', () => { + shutdownServer(); + process.exit(130); +}); + +process.on('SIGTERM', () => { + shutdownServer(); + process.exit(143); +}); + +process.on('uncaughtException', (error) => { + console.error(error); + shutdownServer(); + process.exit(1); +}); + +process.on('unhandledRejection', (error) => { + console.error(error); + shutdownServer(); + process.exit(1); +}); + +process.on('exit', () => { + shutdownServer(); +}); + +try { + console.log('Add devextreme-components to app'); + await addDxComponentsToApp(); + console.log('Building ssr-app for SSR'); + await buildSsrApp(); + console.log(`Starting ssr-app SSR server on ${baseUrl}`); + serverProcess = startServer(); + await waitForServer(baseUrl); + console.log('ssr-app is ready, starting TestCafe'); + + await runCommand( + 'pnpm', + [ + '--dir', + testcafeDir, + 'exec', + 'testcafe', + '--config-file', + testcafeConfig, + '--reporter', + 'spec', + '--disable-native-automation', + '--page-load-timeout', + '60000', + '--selector-timeout', + '10000', + '--assertion-timeout', + '10000', + ], + { + env: { + ...process.env, + }, + }, + ); + console.log('TestCafe finished'); +} finally { + shutdownServer(); +} diff --git a/packages/devextreme-angular/vitest.server.config.ts b/packages/devextreme-angular/vitest.server.config.ts new file mode 100644 index 000000000000..4dd478730058 --- /dev/null +++ b/packages/devextreme-angular/vitest.server.config.ts @@ -0,0 +1,19 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + ssr: { + noExternal: ['devextreme', 'devextreme-angular'], + }, + test: { + environment: 'node', + globals: true, + include: ['tests/dist/server/*.spec.js'], + exclude: [ + '**/node_modules/**', + '**/cypress/**', + '**/.{idea,git,cache,output,temp}/**', + '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build,eslint,prettier}.config.*', + ], + setupFiles: ['tests/src/server/vitest.setup.ts'], + }, +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 011e8672ff61..daca93b7a943 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,6 +45,9 @@ catalogs: '@angular/router': specifier: ~19.2.19 version: 19.2.19 + '@angular/ssr': + specifier: ~19.2.19 + version: 19.2.22 ng-packagr: specifier: ~19.2.2 version: 19.2.2 @@ -323,7 +326,7 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: catalog:angular - version: 19.2.19(q73uzzvvaqautkhd5fn7ymtc7q) + version: 19.2.19(klblgv647bjbaezcoupchzblae) '@angular/cli': specifier: catalog:angular version: 19.2.19(@types/node@20.11.17)(chokidar@4.0.1) @@ -347,13 +350,13 @@ importers: dependencies: '@angular-devkit/build-angular': specifier: ~21.1.0 - version: 21.1.5(3dkepsjg2eq2qcrysfmce3ermm) + version: 21.1.5(smriwfh52ovpi6l2nbhygrfcai) '@angular/animations': specifier: ~21.1.0 version: 21.1.6(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/cli': specifier: ~21.1.5 - version: 21.1.5(@types/node@20.12.8)(chokidar@5.0.0) + version: 21.1.5(@types/node@18.19.130)(chokidar@5.0.0) '@angular/common': specifier: ~21.1.0 version: 21.1.6(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) @@ -714,7 +717,7 @@ importers: version: 1.1.4 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) + version: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)) jest-environment-node: specifier: 29.7.0 version: 29.7.0 @@ -765,7 +768,7 @@ importers: version: 4.0.0 ts-node: specifier: 10.9.2 - version: 10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3) + version: 10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3) vue-eslint-parser: specifier: 'catalog:' version: 10.0.0(eslint@9.39.2(jiti@2.6.1)) @@ -1252,10 +1255,10 @@ importers: devDependencies: '@analogjs/vite-plugin-angular': specifier: 1.22.5 - version: 1.22.5(@angular-devkit/build-angular@19.2.19(2oqflqmsb5vivclh332finvb4a))(@angular/build@19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(@angular/compiler@19.2.19)(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@types/node@20.14.5)(chokidar@4.0.1)(jiti@2.6.1)(karma@6.4.4)(less@4.4.2)(lightningcss@1.30.2)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(tslib@2.6.3)(typescript@5.8.3))(postcss@8.5.6)(sass-embedded@1.97.1)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.1)) + version: 1.22.5(@angular-devkit/build-angular@19.2.19(arqfj4db6npl4xat2lhz6uulvm))(@angular/build@19.2.19(f4gy5tpc4stoud3foq2fj264kq)) '@angular-devkit/build-angular': specifier: catalog:angular - version: 19.2.19(2oqflqmsb5vivclh332finvb4a) + version: 19.2.19(arqfj4db6npl4xat2lhz6uulvm) '@angular/cli': specifier: catalog:angular version: 19.2.19(@types/node@20.14.5)(chokidar@4.0.1) @@ -1373,25 +1376,25 @@ importers: version: 7.28.6(@babel/core@7.28.6) '@devextreme-generator/angular': specifier: 3.0.12 - version: 3.0.12(wqcgvevbyusbjfwzjpj634rvom) + version: 3.0.12(zucp2mqrjepf7anjfge3a3eetq) '@devextreme-generator/build-helpers': specifier: 3.0.12 - version: 3.0.12(5tfktok6byrukgqkit3c44gmkm) + version: 3.0.12(6zxdvlwvzr7qylaiaitsyoimja) '@devextreme-generator/core': specifier: 3.0.12 - version: 3.0.12(wqcgvevbyusbjfwzjpj634rvom) + version: 3.0.12(zucp2mqrjepf7anjfge3a3eetq) '@devextreme-generator/declarations': specifier: 3.0.12 version: 3.0.12 '@devextreme-generator/inferno': specifier: 3.0.12 - version: 3.0.12(wqcgvevbyusbjfwzjpj634rvom) + version: 3.0.12(zucp2mqrjepf7anjfge3a3eetq) '@devextreme-generator/react': specifier: 3.0.12 - version: 3.0.12(wqcgvevbyusbjfwzjpj634rvom) + version: 3.0.12(zucp2mqrjepf7anjfge3a3eetq) '@devextreme-generator/vue': specifier: 3.0.12 - version: 3.0.12(wqcgvevbyusbjfwzjpj634rvom) + version: 3.0.12(zucp2mqrjepf7anjfge3a3eetq) '@eslint-stylistic/metadata': specifier: 'catalog:' version: 2.13.0 @@ -1502,7 +1505,7 @@ importers: version: 18.0.0(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) eslint-config-devextreme: specifier: 'catalog:' - version: 1.1.9(6omxhflejertg6royplc5nvzey) + version: 1.1.9(ew2ifb6druv6usnx5jl63dqcme) eslint-migration-utils: specifier: workspace:* version: link:../eslint-migration-utils @@ -1514,7 +1517,7 @@ importers: version: 2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-jest: specifier: 29.0.1 - version: 29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)))(typescript@4.9.5) + version: 29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)))(typescript@4.9.5) eslint-plugin-jest-formatting: specifier: 3.1.0 version: 3.1.0(eslint@9.39.2(jiti@2.6.1)) @@ -1769,7 +1772,7 @@ importers: version: 2.0.5 ts-jest: specifier: 29.1.2 - version: 29.1.2(@babel/core@7.28.6)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.6))(jest@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)))(typescript@4.9.5) + version: 29.1.2(@babel/core@7.28.6)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.6))(jest@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)))(typescript@4.9.5) tsc-alias: specifier: 1.8.16 version: 1.8.16 @@ -1886,6 +1889,9 @@ importers: devextreme-metadata: specifier: workspace:* version: link:../devextreme-metadata + domino: + specifier: ^2.1.6 + version: 2.1.6 eslint: specifier: 'catalog:' version: 9.39.2(jiti@2.6.1) @@ -1940,6 +1946,9 @@ importers: typescript: specifier: catalog:angular version: 5.5.4 + vitest: + specifier: ^3.0.0 + version: 3.2.4(@types/debug@4.1.12)(@types/node@20.11.17)(jiti@2.6.1)(jsdom@20.0.3)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1) webpack: specifier: 5.105.0 version: 5.105.0(@swc/core@1.15.3) @@ -1951,6 +1960,73 @@ importers: version: 0.15.1 publishDirectory: npm/dist + packages/devextreme-angular/tests/ssr-app: + dependencies: + '@angular/common': + specifier: catalog:angular + version: 19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/compiler': + specifier: catalog:angular + version: 19.2.19 + '@angular/core': + specifier: catalog:angular + version: 19.2.19(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/forms': + specifier: catalog:angular + version: 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/platform-browser': + specifier: catalog:angular + version: 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/platform-browser-dynamic': + specifier: catalog:angular + version: 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))) + '@angular/platform-server': + specifier: catalog:angular + version: 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/router': + specifier: catalog:angular + version: 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/ssr': + specifier: catalog:angular + version: 19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)) + devextreme: + specifier: workspace:* + version: link:../../../devextreme/artifacts/npm/devextreme + devextreme-angular: + specifier: workspace:* + version: link:../../npm/dist + express: + specifier: ^4.18.2 + version: 4.22.1 + rxjs: + specifier: ~7.8.0 + version: 7.8.2 + tslib: + specifier: ^2.3.0 + version: 2.6.3 + zone.js: + specifier: catalog:angular + version: 0.15.1 + devDependencies: + '@angular-devkit/build-angular': + specifier: catalog:angular + version: 19.2.19(yqad35dkuarvhl4iyrg2j7hvfa) + '@angular/cli': + specifier: catalog:angular + version: 19.2.19(@types/node@18.19.130)(chokidar@4.0.1) + '@angular/compiler-cli': + specifier: catalog:angular + version: 19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4) + '@types/express': + specifier: ^4.17.17 + version: 4.17.25 + '@types/node': + specifier: ^18.18.0 + version: 18.19.130 + typescript: + specifier: catalog:angular + version: 5.5.4 + packages/devextreme-metadata: devDependencies: '@types/node': @@ -2834,6 +2910,17 @@ packages: '@angular/platform-browser': 19.2.19 rxjs: ^6.5.3 || ^7.4.0 + '@angular/ssr@19.2.22': + resolution: {integrity: sha512-dqj5sHI7Sl/B6SvUsMp0lnfDbm9ZOUxnSIh/a4F78kkHmyfOyXHdsUj0yDAYQBkzMyuChI0JU7GaM6oDYXNzqQ==} + peerDependencies: + '@angular/common': ^19.0.0 || ^19.2.0-next.0 + '@angular/core': ^19.0.0 || ^19.2.0-next.0 + '@angular/platform-server': ^19.0.0 || ^19.2.0-next.0 + '@angular/router': ^19.0.0 || ^19.2.0-next.0 + peerDependenciesMeta: + '@angular/platform-server': + optional: true + '@aspnet/signalr@1.0.27': resolution: {integrity: sha512-utZvBF9snjdwIBpvcFa6htqFTVaTN50QIZUoiznKpYSZImew1a1Ci7VYmK8HODqwRqUtj0o5/xR1nzt8xex5sA==} deprecated: This package is no longer supported. Consider using @microsoft/signalr. @@ -7154,6 +7241,12 @@ packages: '@vitest/pretty-format@3.2.4': resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} + '@vitest/runner@3.2.4': + resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} + + '@vitest/snapshot@3.2.4': + resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} + '@vitest/spy@3.2.4': resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} @@ -8470,6 +8563,10 @@ packages: resolution: {integrity: sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==} engines: {node: '>=6.0.0'} + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + cacache@19.0.1: resolution: {integrity: sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==} engines: {node: ^18.17.0 || >=20.5.0} @@ -9732,6 +9829,9 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} + domino@2.1.6: + resolution: {integrity: sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==} + dompurify@3.3.1: resolution: {integrity: sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==} @@ -10649,6 +10749,10 @@ packages: resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} engines: {node: '>=0.10.0'} + expect-type@1.3.0: + resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} + engines: {node: '>=12.0.0'} + expect@29.7.0: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -14829,6 +14933,9 @@ packages: resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} engines: {node: '>=18'} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} @@ -16399,6 +16506,9 @@ packages: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -16608,6 +16718,9 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + stackblur-canvas@2.7.0: resolution: {integrity: sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==} engines: {node: '>=0.1.14'} @@ -16635,6 +16748,9 @@ packages: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + stdin-discarder@0.2.2: resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} engines: {node: '>=18'} @@ -16829,6 +16945,9 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strip-literal@3.1.0: + resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} + style-loader@3.3.4: resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} engines: {node: '>= 12.13.0'} @@ -17224,10 +17343,20 @@ packages: tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} + tinypool@1.1.1: + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} + engines: {node: ^18.0.0 || >=20.0.0} + tinyrainbow@2.0.0: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} @@ -17983,6 +18112,11 @@ packages: resolution: {integrity: sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==} engines: {node: '>=10.13.0'} + vite-node@3.2.4: + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + vite@5.4.21: resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} engines: {node: ^18.0.0 || >=20.0.0} @@ -18094,6 +18228,34 @@ packages: yaml: optional: true + vitest@3.2.4: + resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/debug': ^4.1.12 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 3.2.4 + '@vitest/ui': 3.2.4 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/debug': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + vm-browserify@1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} @@ -18461,6 +18623,11 @@ packages: engines: {node: ^20.17.0 || >=22.9.0} hasBin: true + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + wildcard@2.0.1: resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} @@ -18798,13 +18965,13 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@analogjs/vite-plugin-angular@1.22.5(@angular-devkit/build-angular@19.2.19(2oqflqmsb5vivclh332finvb4a))(@angular/build@19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(@angular/compiler@19.2.19)(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@types/node@20.14.5)(chokidar@4.0.1)(jiti@2.6.1)(karma@6.4.4)(less@4.4.2)(lightningcss@1.30.2)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(tslib@2.6.3)(typescript@5.8.3))(postcss@8.5.6)(sass-embedded@1.97.1)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.1))': + '@analogjs/vite-plugin-angular@1.22.5(@angular-devkit/build-angular@19.2.19(arqfj4db6npl4xat2lhz6uulvm))(@angular/build@19.2.19(f4gy5tpc4stoud3foq2fj264kq))': dependencies: ts-morph: 21.0.1 vfile: 6.0.3 optionalDependencies: - '@angular-devkit/build-angular': 19.2.19(2oqflqmsb5vivclh332finvb4a) - '@angular/build': 19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(@angular/compiler@19.2.19)(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@types/node@20.14.5)(chokidar@4.0.1)(jiti@2.6.1)(karma@6.4.4)(less@4.4.2)(lightningcss@1.30.2)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(tslib@2.6.3)(typescript@5.8.3))(postcss@8.5.6)(sass-embedded@1.97.1)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.1) + '@angular-devkit/build-angular': 19.2.19(arqfj4db6npl4xat2lhz6uulvm) + '@angular/build': 19.2.19(f4gy5tpc4stoud3foq2fj264kq) '@angular-devkit/architect@0.1902.19(chokidar@4.0.1)': dependencies: @@ -18820,13 +18987,13 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@19.2.19(2oqflqmsb5vivclh332finvb4a)': + '@angular-devkit/build-angular@19.2.19(arqfj4db6npl4xat2lhz6uulvm)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) - '@angular-devkit/build-webpack': 0.1902.19(chokidar@4.0.1)(webpack-dev-server@5.2.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)))(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + '@angular-devkit/build-webpack': 0.1902.19(chokidar@4.0.1)(webpack-dev-server@5.2.2(webpack@5.98.0(@swc/core@1.15.3)))(webpack@5.98.0(@swc/core@1.15.3)) '@angular-devkit/core': 19.2.19(chokidar@4.0.1) - '@angular/build': 19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(@angular/compiler@19.2.19)(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@types/node@20.14.5)(chokidar@4.0.1)(jiti@2.6.1)(karma@6.4.4)(less@4.2.2)(lightningcss@1.30.2)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(tslib@2.6.3)(typescript@5.8.3))(postcss@8.5.2)(sass-embedded@1.97.1)(terser@5.39.0)(typescript@5.8.3)(yaml@2.8.1) + '@angular/build': 19.2.19(jrn573iey4reuuv2r3moekrpty) '@angular/compiler-cli': 19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3) '@babel/core': 7.26.10 '@babel/generator': 7.26.10 @@ -18842,10 +19009,10 @@ snapshots: '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1)) ansi-colors: 4.1.3 autoprefixer: 10.4.20(postcss@8.5.2) - babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(@swc/core@1.15.3)) browserslist: 4.28.1 - copy-webpack-plugin: 12.0.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) - css-loader: 7.1.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + copy-webpack-plugin: 12.0.2(webpack@5.98.0(@swc/core@1.15.3)) + css-loader: 7.1.2(webpack@5.98.0(@swc/core@1.15.3)) esbuild-wasm: 0.25.4 fast-glob: 3.3.3 http-proxy-middleware: 3.0.5 @@ -18853,10 +19020,10 @@ snapshots: jsonc-parser: 3.3.1 karma-source-map-support: 1.4.0 less: 4.2.2 - less-loader: 12.2.0(less@4.2.2)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) - license-webpack-plugin: 4.0.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + less-loader: 12.2.0(less@4.2.2)(webpack@5.98.0(@swc/core@1.15.3)) + license-webpack-plugin: 4.0.2(webpack@5.98.0(@swc/core@1.15.3)) loader-utils: 3.3.1 - mini-css-extract-plugin: 2.9.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + mini-css-extract-plugin: 2.9.2(webpack@5.98.0(@swc/core@1.15.3)) open: 10.1.0 ora: 5.4.1 picomatch: 4.0.2 @@ -18866,21 +19033,22 @@ snapshots: resolve-url-loader: 5.0.0 rxjs: 7.8.1 sass: 1.85.0 - sass-loader: 16.0.5(sass-embedded@1.97.1)(sass@1.85.0)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + sass-loader: 16.0.5(sass-embedded@1.97.1)(sass@1.85.0)(webpack@5.98.0(@swc/core@1.15.3)) semver: 7.7.1 - source-map-loader: 5.0.0(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + source-map-loader: 5.0.0(webpack@5.98.0(@swc/core@1.15.3)) source-map-support: 0.5.21 terser: 5.39.0 tree-kill: 1.2.2 tslib: 2.8.1 typescript: 5.8.3 webpack: 5.98.0(@swc/core@1.15.3)(esbuild@0.25.4) - webpack-dev-middleware: 7.4.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) - webpack-dev-server: 5.2.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + webpack-dev-middleware: 7.4.2(webpack@5.98.0(@swc/core@1.15.3)) + webpack-dev-server: 5.2.2(webpack@5.98.0(@swc/core@1.15.3)) webpack-merge: 6.0.1 webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.3(webpack@5.105.2(@swc/core@1.15.3)))(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) optionalDependencies: '@angular/platform-server': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + '@angular/ssr': 19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1)) esbuild: 0.25.4 jest: 29.7.0(@types/node@20.14.5)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) jest-environment-jsdom: 29.7.0 @@ -18909,13 +19077,13 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-angular@19.2.19(q73uzzvvaqautkhd5fn7ymtc7q)': + '@angular-devkit/build-angular@19.2.19(klblgv647bjbaezcoupchzblae)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) - '@angular-devkit/build-webpack': 0.1902.19(chokidar@4.0.1)(webpack-dev-server@5.2.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)))(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + '@angular-devkit/build-webpack': 0.1902.19(chokidar@4.0.1)(webpack-dev-server@5.2.2(webpack@5.98.0(@swc/core@1.15.3)))(webpack@5.98.0(@swc/core@1.15.3)) '@angular-devkit/core': 19.2.19(chokidar@4.0.1) - '@angular/build': 19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(@angular/compiler@19.2.19)(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(@types/node@20.11.17)(chokidar@4.0.1)(jiti@2.6.1)(karma@6.4.4)(less@4.2.2)(lightningcss@1.30.2)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(tslib@2.6.3)(typescript@5.5.4))(postcss@8.5.2)(sass-embedded@1.97.1)(terser@5.39.0)(typescript@5.5.4)(yaml@2.8.1) + '@angular/build': 19.2.19(bjmrlgrljm32ej3rqdhidgl2qe) '@angular/compiler-cli': 19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4) '@babel/core': 7.26.10 '@babel/generator': 7.26.10 @@ -18927,14 +19095,14 @@ snapshots: '@babel/preset-env': 7.26.9(@babel/core@7.26.10) '@babel/runtime': 7.26.10 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1)) + '@ngtools/webpack': 19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3)) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@7.3.0(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1)) ansi-colors: 4.1.3 autoprefixer: 10.4.20(postcss@8.5.2) - babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(@swc/core@1.15.3)) browserslist: 4.28.1 - copy-webpack-plugin: 12.0.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) - css-loader: 7.1.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + copy-webpack-plugin: 12.0.2(webpack@5.98.0(@swc/core@1.15.3)) + css-loader: 7.1.2(webpack@5.98.0(@swc/core@1.15.3)) esbuild-wasm: 0.25.4 fast-glob: 3.3.3 http-proxy-middleware: 3.0.5 @@ -18942,34 +19110,35 @@ snapshots: jsonc-parser: 3.3.1 karma-source-map-support: 1.4.0 less: 4.2.2 - less-loader: 12.2.0(less@4.2.2)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) - license-webpack-plugin: 4.0.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + less-loader: 12.2.0(less@4.2.2)(webpack@5.98.0(@swc/core@1.15.3)) + license-webpack-plugin: 4.0.2(webpack@5.98.0(@swc/core@1.15.3)) loader-utils: 3.3.1 - mini-css-extract-plugin: 2.9.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + mini-css-extract-plugin: 2.9.2(webpack@5.98.0(@swc/core@1.15.3)) open: 10.1.0 ora: 5.4.1 picomatch: 4.0.2 piscina: 4.8.0 postcss: 8.5.2 - postcss-loader: 8.1.1(postcss@8.5.2)(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + postcss-loader: 8.1.1(postcss@8.5.2)(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3)) resolve-url-loader: 5.0.0 rxjs: 7.8.1 sass: 1.85.0 - sass-loader: 16.0.5(sass-embedded@1.97.1)(sass@1.85.0)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + sass-loader: 16.0.5(sass-embedded@1.97.1)(sass@1.85.0)(webpack@5.98.0(@swc/core@1.15.3)) semver: 7.7.1 - source-map-loader: 5.0.0(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + source-map-loader: 5.0.0(webpack@5.98.0(@swc/core@1.15.3)) source-map-support: 0.5.21 terser: 5.39.0 tree-kill: 1.2.2 tslib: 2.8.1 typescript: 5.5.4 webpack: 5.98.0(@swc/core@1.15.3)(esbuild@0.25.4) - webpack-dev-middleware: 7.4.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) - webpack-dev-server: 5.2.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + webpack-dev-middleware: 7.4.2(webpack@5.98.0(@swc/core@1.15.3)) + webpack-dev-server: 5.2.2(webpack@5.98.0(@swc/core@1.15.3)) webpack-merge: 6.0.1 - webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.3(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)))(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.3(webpack@5.105.2(@swc/core@1.15.3)))(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) optionalDependencies: '@angular/platform-server': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/ssr': 19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)) esbuild: 0.25.4 jest: 29.7.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)) jest-environment-jsdom: 29.7.0 @@ -18998,13 +19167,103 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-angular@21.1.5(3dkepsjg2eq2qcrysfmce3ermm)': + '@angular-devkit/build-angular@19.2.19(yqad35dkuarvhl4iyrg2j7hvfa)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) + '@angular-devkit/build-webpack': 0.1902.19(chokidar@4.0.1)(webpack-dev-server@5.2.2(webpack@5.98.0(@swc/core@1.15.3)))(webpack@5.98.0(@swc/core@1.15.3)) + '@angular-devkit/core': 19.2.19(chokidar@4.0.1) + '@angular/build': 19.2.19(vryjvcyhhlfuztvcxdmh2rux4u) + '@angular/compiler-cli': 19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4) + '@babel/core': 7.26.10 + '@babel/generator': 7.26.10 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.10) + '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-runtime': 7.26.10(@babel/core@7.26.10) + '@babel/preset-env': 7.26.9(@babel/core@7.26.10) + '@babel/runtime': 7.26.10 + '@discoveryjs/json-ext': 0.6.3 + '@ngtools/webpack': 19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3)) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.4.1(@types/node@18.19.130)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1)) + ansi-colors: 4.1.3 + autoprefixer: 10.4.20(postcss@8.5.2) + babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(@swc/core@1.15.3)) + browserslist: 4.28.1 + copy-webpack-plugin: 12.0.2(webpack@5.98.0(@swc/core@1.15.3)) + css-loader: 7.1.2(webpack@5.98.0(@swc/core@1.15.3)) + esbuild-wasm: 0.25.4 + fast-glob: 3.3.3 + http-proxy-middleware: 3.0.5 + istanbul-lib-instrument: 6.0.3 + jsonc-parser: 3.3.1 + karma-source-map-support: 1.4.0 + less: 4.2.2 + less-loader: 12.2.0(less@4.2.2)(webpack@5.98.0(@swc/core@1.15.3)) + license-webpack-plugin: 4.0.2(webpack@5.98.0(@swc/core@1.15.3)) + loader-utils: 3.3.1 + mini-css-extract-plugin: 2.9.2(webpack@5.98.0(@swc/core@1.15.3)) + open: 10.1.0 + ora: 5.4.1 + picomatch: 4.0.2 + piscina: 4.8.0 + postcss: 8.5.2 + postcss-loader: 8.1.1(postcss@8.5.2)(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3)) + resolve-url-loader: 5.0.0 + rxjs: 7.8.1 + sass: 1.85.0 + sass-loader: 16.0.5(sass-embedded@1.97.1)(sass@1.85.0)(webpack@5.98.0(@swc/core@1.15.3)) + semver: 7.7.1 + source-map-loader: 5.0.0(webpack@5.98.0(@swc/core@1.15.3)) + source-map-support: 0.5.21 + terser: 5.39.0 + tree-kill: 1.2.2 + tslib: 2.8.1 + typescript: 5.5.4 + webpack: 5.98.0(@swc/core@1.15.3)(esbuild@0.25.4) + webpack-dev-middleware: 7.4.2(webpack@5.98.0(@swc/core@1.15.3)) + webpack-dev-server: 5.2.2(webpack@5.98.0(@swc/core@1.15.3)) + webpack-merge: 6.0.1 + webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.3(webpack@5.98.0(@swc/core@1.15.3)))(webpack@5.98.0(@swc/core@1.15.3)) + optionalDependencies: + '@angular/platform-server': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/ssr': 19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)) + esbuild: 0.25.4 + jest: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) + jest-environment-jsdom: 29.7.0 + karma: 6.4.4 + ng-packagr: 19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(tslib@2.6.3)(typescript@5.5.4) + transitivePeerDependencies: + - '@angular/compiler' + - '@rspack/core' + - '@swc/core' + - '@types/node' + - bufferutil + - chokidar + - debug + - html-webpack-plugin + - jiti + - lightningcss + - node-sass + - sass-embedded + - stylus + - sugarss + - supports-color + - tsx + - uglify-js + - utf-8-validate + - vite + - webpack-cli + - yaml + + '@angular-devkit/build-angular@21.1.5(smriwfh52ovpi6l2nbhygrfcai)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2101.5(chokidar@5.0.0) '@angular-devkit/build-webpack': 0.2101.5(chokidar@5.0.0)(webpack-dev-server@5.2.2(webpack@5.105.0(@swc/core@1.15.3)(esbuild@0.27.2)))(webpack@5.105.0(@swc/core@1.15.3)(esbuild@0.27.2)) '@angular-devkit/core': 21.1.5(chokidar@5.0.0) - '@angular/build': 21.1.5(dw74beal2ssqaj6424muef3wmm) + '@angular/build': 21.1.5(iftqimmc47rrfw3clyws6s2cqu) '@angular/compiler-cli': 21.1.6(@angular/compiler@21.1.6)(typescript@5.9.3) '@babel/core': 7.28.5 '@babel/generator': 7.28.5 @@ -19061,7 +19320,7 @@ snapshots: '@angular/platform-browser': 21.1.6(@angular/animations@21.1.6(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.1.6(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': 21.1.6(@angular/common@21.1.6(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@21.1.6)(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.1.6(@angular/animations@21.1.6(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.1.6(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) esbuild: 0.27.2 - jest: 29.7.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) + jest: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)) karma: 6.4.4 transitivePeerDependencies: - '@angular/compiler' @@ -19086,12 +19345,12 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.1902.19(chokidar@4.0.1)(webpack-dev-server@5.2.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)))(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4))': + '@angular-devkit/build-webpack@0.1902.19(chokidar@4.0.1)(webpack-dev-server@5.2.2(webpack@5.98.0(@swc/core@1.15.3)))(webpack@5.98.0(@swc/core@1.15.3))': dependencies: '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) rxjs: 7.8.1 webpack: 5.98.0(@swc/core@1.15.3)(esbuild@0.25.4) - webpack-dev-server: 5.2.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + webpack-dev-server: 5.2.2(webpack@5.98.0(@swc/core@1.15.3)) transitivePeerDependencies: - chokidar @@ -19170,7 +19429,7 @@ snapshots: '@angular/core': 21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.6.3 - '@angular/build@19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(@angular/compiler@19.2.19)(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(@types/node@20.11.17)(chokidar@4.0.1)(jiti@2.6.1)(karma@6.4.4)(less@4.2.2)(lightningcss@1.30.2)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(tslib@2.6.3)(typescript@5.5.4))(postcss@8.5.2)(sass-embedded@1.97.1)(terser@5.39.0)(typescript@5.5.4)(yaml@2.8.1)': + '@angular/build@19.2.19(bjmrlgrljm32ej3rqdhidgl2qe)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) @@ -19203,6 +19462,7 @@ snapshots: watchpack: 2.4.2 optionalDependencies: '@angular/platform-server': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/ssr': 19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)) karma: 6.4.4 less: 4.2.2 lmdb: 3.2.6 @@ -19221,7 +19481,7 @@ snapshots: - tsx - yaml - '@angular/build@19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(@angular/compiler@19.2.19)(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@types/node@20.14.5)(chokidar@4.0.1)(jiti@2.6.1)(karma@6.4.4)(less@4.2.2)(lightningcss@1.30.2)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(tslib@2.6.3)(typescript@5.8.3))(postcss@8.5.2)(sass-embedded@1.97.1)(terser@5.39.0)(typescript@5.8.3)(yaml@2.8.1)': + '@angular/build@19.2.19(f4gy5tpc4stoud3foq2fj264kq)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) @@ -19250,15 +19510,16 @@ snapshots: semver: 7.7.1 source-map-support: 0.5.21 typescript: 5.8.3 - vite: 6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1) + vite: 6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.46.0)(yaml@2.8.1) watchpack: 2.4.2 optionalDependencies: '@angular/platform-server': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + '@angular/ssr': 19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1)) karma: 6.4.4 - less: 4.2.2 + less: 4.4.2 lmdb: 3.2.6 ng-packagr: 19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(tslib@2.6.3)(typescript@5.8.3) - postcss: 8.5.2 + postcss: 8.5.6 transitivePeerDependencies: - '@types/node' - chokidar @@ -19271,8 +19532,9 @@ snapshots: - terser - tsx - yaml + optional: true - '@angular/build@19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(@angular/compiler@19.2.19)(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@types/node@20.14.5)(chokidar@4.0.1)(jiti@2.6.1)(karma@6.4.4)(less@4.4.2)(lightningcss@1.30.2)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(tslib@2.6.3)(typescript@5.8.3))(postcss@8.5.6)(sass-embedded@1.97.1)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.1)': + '@angular/build@19.2.19(jrn573iey4reuuv2r3moekrpty)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) @@ -19301,15 +19563,16 @@ snapshots: semver: 7.7.1 source-map-support: 0.5.21 typescript: 5.8.3 - vite: 6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.46.0)(yaml@2.8.1) + vite: 6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1) watchpack: 2.4.2 optionalDependencies: '@angular/platform-server': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + '@angular/ssr': 19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1)) karma: 6.4.4 - less: 4.4.2 + less: 4.2.2 lmdb: 3.2.6 ng-packagr: 19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(tslib@2.6.3)(typescript@5.8.3) - postcss: 8.5.6 + postcss: 8.5.2 transitivePeerDependencies: - '@types/node' - chokidar @@ -19322,9 +19585,60 @@ snapshots: - terser - tsx - yaml - optional: true - '@angular/build@21.1.5(dw74beal2ssqaj6424muef3wmm)': + '@angular/build@19.2.19(vryjvcyhhlfuztvcxdmh2rux4u)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) + '@angular/compiler': 19.2.19 + '@angular/compiler-cli': 19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4) + '@babel/core': 7.26.10 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) + '@inquirer/confirm': 5.1.6(@types/node@18.19.130) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.4.1(@types/node@18.19.130)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1)) + beasties: 0.3.2 + browserslist: 4.28.1 + esbuild: 0.25.4 + fast-glob: 3.3.3 + https-proxy-agent: 7.0.6 + istanbul-lib-instrument: 6.0.3 + listr2: 8.2.5 + magic-string: 0.30.17 + mrmime: 2.0.1 + parse5-html-rewriting-stream: 7.0.0 + picomatch: 4.0.2 + piscina: 4.8.0 + rollup: 4.59.0 + sass: 1.85.0 + semver: 7.7.1 + source-map-support: 0.5.21 + typescript: 5.5.4 + vite: 6.4.1(@types/node@18.19.130)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1) + watchpack: 2.4.2 + optionalDependencies: + '@angular/platform-server': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/ssr': 19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)) + karma: 6.4.4 + less: 4.2.2 + lmdb: 3.2.6 + ng-packagr: 19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(tslib@2.6.3)(typescript@5.5.4) + postcss: 8.5.2 + transitivePeerDependencies: + - '@types/node' + - chokidar + - jiti + - lightningcss + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + '@angular/build@21.1.5(iftqimmc47rrfw3clyws6s2cqu)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2101.5(chokidar@5.0.0) @@ -19333,8 +19647,8 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@inquirer/confirm': 5.1.21(@types/node@20.12.8) - '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.3.0(@types/node@20.12.8)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1)) + '@inquirer/confirm': 5.1.21(@types/node@18.19.130) + '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.3.0(@types/node@18.19.130)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1)) beasties: 0.3.5 browserslist: 4.28.1 esbuild: 0.27.2 @@ -19355,7 +19669,7 @@ snapshots: tslib: 2.8.1 typescript: 5.9.3 undici: 7.20.0 - vite: 7.3.0(@types/node@20.12.8)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1) + vite: 7.3.0(@types/node@18.19.130)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1) watchpack: 2.5.0 optionalDependencies: '@angular/core': 21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1) @@ -19378,6 +19692,30 @@ snapshots: - tsx - yaml + '@angular/cli@19.2.19(@types/node@18.19.130)(chokidar@4.0.1)': + dependencies: + '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) + '@angular-devkit/core': 19.2.19(chokidar@4.0.1) + '@angular-devkit/schematics': 19.2.19(chokidar@4.0.1) + '@inquirer/prompts': 7.3.2(@types/node@18.19.130) + '@listr2/prompt-adapter-inquirer': 2.0.18(@inquirer/prompts@7.3.2(@types/node@18.19.130)) + '@schematics/angular': 19.2.19(chokidar@4.0.1) + '@yarnpkg/lockfile': 1.1.0 + ini: 5.0.0 + jsonc-parser: 3.3.1 + listr2: 8.2.5 + npm-package-arg: 12.0.2 + npm-pick-manifest: 10.0.0 + pacote: 20.0.0 + resolve: 1.22.10 + semver: 7.7.1 + symbol-observable: 4.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - chokidar + - supports-color + '@angular/cli@19.2.19(@types/node@20.11.17)(chokidar@4.0.1)': dependencies: '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) @@ -19426,13 +19764,13 @@ snapshots: - chokidar - supports-color - '@angular/cli@21.1.5(@types/node@20.12.8)(chokidar@5.0.0)': + '@angular/cli@21.1.5(@types/node@18.19.130)(chokidar@5.0.0)': dependencies: '@angular-devkit/architect': 0.2101.5(chokidar@5.0.0) '@angular-devkit/core': 21.1.5(chokidar@5.0.0) '@angular-devkit/schematics': 21.1.5(chokidar@5.0.0) - '@inquirer/prompts': 7.10.1(@types/node@20.12.8) - '@listr2/prompt-adapter-inquirer': 3.0.5(@inquirer/prompts@7.10.1(@types/node@20.12.8))(@types/node@20.12.8)(listr2@9.0.5) + '@inquirer/prompts': 7.10.1(@types/node@18.19.130) + '@listr2/prompt-adapter-inquirer': 3.0.5(@inquirer/prompts@7.10.1(@types/node@18.19.130))(@types/node@18.19.130)(listr2@9.0.5) '@modelcontextprotocol/sdk': 1.26.0(zod@4.3.5) '@schematics/angular': 21.1.5(chokidar@5.0.0) '@yarnpkg/lockfile': 1.1.0 @@ -19683,6 +20021,25 @@ snapshots: rxjs: 7.8.2 tslib: 2.6.3 + '@angular/ssr@19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))': + dependencies: + '@angular/common': 19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + '@angular/core': 19.2.19(rxjs@7.8.1)(zone.js@0.15.0) + '@angular/router': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + tslib: 2.6.3 + optionalDependencies: + '@angular/platform-server': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + optional: true + + '@angular/ssr@19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))': + dependencies: + '@angular/common': 19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 19.2.19(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/router': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + tslib: 2.6.3 + optionalDependencies: + '@angular/platform-server': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@aspnet/signalr@1.0.27': {} '@babel/code-frame@7.12.11': @@ -21954,9 +22311,9 @@ snapshots: dependencies: tslib: 2.3.1 - '@devextreme-generator/angular@3.0.12(wqcgvevbyusbjfwzjpj634rvom)': + '@devextreme-generator/angular@3.0.12(zucp2mqrjepf7anjfge3a3eetq)': dependencies: - '@devextreme-generator/core': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) + '@devextreme-generator/core': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - eslint @@ -21971,13 +22328,13 @@ snapshots: - eslint-plugin-spellcheck - supports-color - '@devextreme-generator/build-helpers@3.0.12(5tfktok6byrukgqkit3c44gmkm)': + '@devextreme-generator/build-helpers@3.0.12(6zxdvlwvzr7qylaiaitsyoimja)': dependencies: - '@devextreme-generator/angular': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) - '@devextreme-generator/core': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) - '@devextreme-generator/inferno': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) - '@devextreme-generator/preact': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) - '@devextreme-generator/react': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) + '@devextreme-generator/angular': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) + '@devextreme-generator/core': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) + '@devextreme-generator/inferno': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) + '@devextreme-generator/preact': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) + '@devextreme-generator/react': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) loader-utils: 2.0.4 typescript: 4.3.5 vinyl: 2.2.1 @@ -22000,10 +22357,10 @@ snapshots: - uglify-js - webpack-cli - '@devextreme-generator/core@3.0.12(wqcgvevbyusbjfwzjpj634rvom)': + '@devextreme-generator/core@3.0.12(zucp2mqrjepf7anjfge3a3eetq)': dependencies: code-block-writer: 10.1.1 - eslint-config-devextreme: 0.2.0(wqcgvevbyusbjfwzjpj634rvom) + eslint-config-devextreme: 0.2.0(zucp2mqrjepf7anjfge3a3eetq) prettier: 2.8.8 prettier-eslint: 13.0.0 typescript: 4.3.5 @@ -22026,11 +22383,11 @@ snapshots: react: 17.0.2 react-dom: 17.0.2(react@17.0.2) - '@devextreme-generator/inferno@3.0.12(wqcgvevbyusbjfwzjpj634rvom)': + '@devextreme-generator/inferno@3.0.12(zucp2mqrjepf7anjfge3a3eetq)': dependencies: - '@devextreme-generator/core': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) - '@devextreme-generator/preact': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) - '@devextreme-generator/react': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) + '@devextreme-generator/core': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) + '@devextreme-generator/preact': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) + '@devextreme-generator/react': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - eslint @@ -22045,10 +22402,10 @@ snapshots: - eslint-plugin-spellcheck - supports-color - '@devextreme-generator/preact@3.0.12(wqcgvevbyusbjfwzjpj634rvom)': + '@devextreme-generator/preact@3.0.12(zucp2mqrjepf7anjfge3a3eetq)': dependencies: - '@devextreme-generator/core': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) - '@devextreme-generator/react': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) + '@devextreme-generator/core': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) + '@devextreme-generator/react': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - eslint @@ -22063,9 +22420,9 @@ snapshots: - eslint-plugin-spellcheck - supports-color - '@devextreme-generator/react@3.0.12(wqcgvevbyusbjfwzjpj634rvom)': + '@devextreme-generator/react@3.0.12(zucp2mqrjepf7anjfge3a3eetq)': dependencies: - '@devextreme-generator/core': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) + '@devextreme-generator/core': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - eslint @@ -22080,10 +22437,10 @@ snapshots: - eslint-plugin-spellcheck - supports-color - '@devextreme-generator/vue@3.0.12(wqcgvevbyusbjfwzjpj634rvom)': + '@devextreme-generator/vue@3.0.12(zucp2mqrjepf7anjfge3a3eetq)': dependencies: - '@devextreme-generator/angular': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) - '@devextreme-generator/core': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) + '@devextreme-generator/angular': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) + '@devextreme-generator/core': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) prettier: 2.8.8 transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' @@ -22550,25 +22907,25 @@ snapshots: '@inquirer/ansi@1.0.2': {} - '@inquirer/checkbox@4.3.2(@types/node@20.11.17)': + '@inquirer/checkbox@4.3.2(@types/node@18.19.130)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@20.11.17) + '@inquirer/core': 10.3.2(@types/node@18.19.130) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@20.11.17) + '@inquirer/type': 3.0.10(@types/node@18.19.130) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.11.17 + '@types/node': 18.19.130 - '@inquirer/checkbox@4.3.2(@types/node@20.12.8)': + '@inquirer/checkbox@4.3.2(@types/node@20.11.17)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@20.12.8) + '@inquirer/core': 10.3.2(@types/node@20.11.17) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@20.12.8) + '@inquirer/type': 3.0.10(@types/node@20.11.17) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.12.8 + '@types/node': 20.11.17 '@inquirer/checkbox@4.3.2(@types/node@20.14.5)': dependencies: @@ -22580,6 +22937,13 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 + '@inquirer/confirm@5.1.21(@types/node@18.19.130)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@18.19.130) + '@inquirer/type': 3.0.10(@types/node@18.19.130) + optionalDependencies: + '@types/node': 18.19.130 + '@inquirer/confirm@5.1.21(@types/node@20.11.17)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.11.17) @@ -22587,13 +22951,6 @@ snapshots: optionalDependencies: '@types/node': 20.11.17 - '@inquirer/confirm@5.1.21(@types/node@20.12.8)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@20.12.8) - '@inquirer/type': 3.0.10(@types/node@20.12.8) - optionalDependencies: - '@types/node': 20.12.8 - '@inquirer/confirm@5.1.21(@types/node@20.14.5)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.14.5) @@ -22601,6 +22958,13 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 + '@inquirer/confirm@5.1.6(@types/node@18.19.130)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@18.19.130) + '@inquirer/type': 3.0.10(@types/node@18.19.130) + optionalDependencies: + '@types/node': 18.19.130 + '@inquirer/confirm@5.1.6(@types/node@20.11.17)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.11.17) @@ -22615,31 +22979,31 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/core@10.3.2(@types/node@20.11.17)': + '@inquirer/core@10.3.2(@types/node@18.19.130)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@20.11.17) + '@inquirer/type': 3.0.10(@types/node@18.19.130) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.11.17 + '@types/node': 18.19.130 - '@inquirer/core@10.3.2(@types/node@20.12.8)': + '@inquirer/core@10.3.2(@types/node@20.11.17)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@20.12.8) + '@inquirer/type': 3.0.10(@types/node@20.11.17) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.12.8 + '@types/node': 20.11.17 '@inquirer/core@10.3.2(@types/node@20.14.5)': dependencies: @@ -22654,6 +23018,14 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 + '@inquirer/editor@4.2.23(@types/node@18.19.130)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@18.19.130) + '@inquirer/external-editor': 1.0.3(@types/node@18.19.130) + '@inquirer/type': 3.0.10(@types/node@18.19.130) + optionalDependencies: + '@types/node': 18.19.130 + '@inquirer/editor@4.2.23(@types/node@20.11.17)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.11.17) @@ -22662,14 +23034,6 @@ snapshots: optionalDependencies: '@types/node': 20.11.17 - '@inquirer/editor@4.2.23(@types/node@20.12.8)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@20.12.8) - '@inquirer/external-editor': 1.0.3(@types/node@20.12.8) - '@inquirer/type': 3.0.10(@types/node@20.12.8) - optionalDependencies: - '@types/node': 20.12.8 - '@inquirer/editor@4.2.23(@types/node@20.14.5)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.14.5) @@ -22678,21 +23042,21 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/expand@4.0.23(@types/node@20.11.17)': + '@inquirer/expand@4.0.23(@types/node@18.19.130)': dependencies: - '@inquirer/core': 10.3.2(@types/node@20.11.17) - '@inquirer/type': 3.0.10(@types/node@20.11.17) + '@inquirer/core': 10.3.2(@types/node@18.19.130) + '@inquirer/type': 3.0.10(@types/node@18.19.130) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.11.17 + '@types/node': 18.19.130 - '@inquirer/expand@4.0.23(@types/node@20.12.8)': + '@inquirer/expand@4.0.23(@types/node@20.11.17)': dependencies: - '@inquirer/core': 10.3.2(@types/node@20.12.8) - '@inquirer/type': 3.0.10(@types/node@20.12.8) + '@inquirer/core': 10.3.2(@types/node@20.11.17) + '@inquirer/type': 3.0.10(@types/node@20.11.17) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.12.8 + '@types/node': 20.11.17 '@inquirer/expand@4.0.23(@types/node@20.14.5)': dependencies: @@ -22702,19 +23066,19 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/external-editor@1.0.3(@types/node@20.11.17)': + '@inquirer/external-editor@1.0.3(@types/node@18.19.130)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.1 optionalDependencies: - '@types/node': 20.11.17 + '@types/node': 18.19.130 - '@inquirer/external-editor@1.0.3(@types/node@20.12.8)': + '@inquirer/external-editor@1.0.3(@types/node@20.11.17)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.1 optionalDependencies: - '@types/node': 20.12.8 + '@types/node': 20.11.17 '@inquirer/external-editor@1.0.3(@types/node@20.14.5)': dependencies: @@ -22725,6 +23089,13 @@ snapshots: '@inquirer/figures@1.0.15': {} + '@inquirer/input@4.3.1(@types/node@18.19.130)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@18.19.130) + '@inquirer/type': 3.0.10(@types/node@18.19.130) + optionalDependencies: + '@types/node': 18.19.130 + '@inquirer/input@4.3.1(@types/node@20.11.17)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.11.17) @@ -22732,13 +23103,6 @@ snapshots: optionalDependencies: '@types/node': 20.11.17 - '@inquirer/input@4.3.1(@types/node@20.12.8)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@20.12.8) - '@inquirer/type': 3.0.10(@types/node@20.12.8) - optionalDependencies: - '@types/node': 20.12.8 - '@inquirer/input@4.3.1(@types/node@20.14.5)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.14.5) @@ -22746,6 +23110,13 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 + '@inquirer/number@3.0.23(@types/node@18.19.130)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@18.19.130) + '@inquirer/type': 3.0.10(@types/node@18.19.130) + optionalDependencies: + '@types/node': 18.19.130 + '@inquirer/number@3.0.23(@types/node@20.11.17)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.11.17) @@ -22753,13 +23124,6 @@ snapshots: optionalDependencies: '@types/node': 20.11.17 - '@inquirer/number@3.0.23(@types/node@20.12.8)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@20.12.8) - '@inquirer/type': 3.0.10(@types/node@20.12.8) - optionalDependencies: - '@types/node': 20.12.8 - '@inquirer/number@3.0.23(@types/node@20.14.5)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.14.5) @@ -22767,21 +23131,21 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/password@4.0.23(@types/node@20.11.17)': + '@inquirer/password@4.0.23(@types/node@18.19.130)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@20.11.17) - '@inquirer/type': 3.0.10(@types/node@20.11.17) + '@inquirer/core': 10.3.2(@types/node@18.19.130) + '@inquirer/type': 3.0.10(@types/node@18.19.130) optionalDependencies: - '@types/node': 20.11.17 + '@types/node': 18.19.130 - '@inquirer/password@4.0.23(@types/node@20.12.8)': + '@inquirer/password@4.0.23(@types/node@20.11.17)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@20.12.8) - '@inquirer/type': 3.0.10(@types/node@20.12.8) + '@inquirer/core': 10.3.2(@types/node@20.11.17) + '@inquirer/type': 3.0.10(@types/node@20.11.17) optionalDependencies: - '@types/node': 20.12.8 + '@types/node': 20.11.17 '@inquirer/password@4.0.23(@types/node@20.14.5)': dependencies: @@ -22791,20 +23155,35 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/prompts@7.10.1(@types/node@20.12.8)': + '@inquirer/prompts@7.10.1(@types/node@18.19.130)': dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@20.12.8) - '@inquirer/confirm': 5.1.21(@types/node@20.12.8) - '@inquirer/editor': 4.2.23(@types/node@20.12.8) - '@inquirer/expand': 4.0.23(@types/node@20.12.8) - '@inquirer/input': 4.3.1(@types/node@20.12.8) - '@inquirer/number': 3.0.23(@types/node@20.12.8) - '@inquirer/password': 4.0.23(@types/node@20.12.8) - '@inquirer/rawlist': 4.1.11(@types/node@20.12.8) - '@inquirer/search': 3.2.2(@types/node@20.12.8) - '@inquirer/select': 4.4.2(@types/node@20.12.8) + '@inquirer/checkbox': 4.3.2(@types/node@18.19.130) + '@inquirer/confirm': 5.1.21(@types/node@18.19.130) + '@inquirer/editor': 4.2.23(@types/node@18.19.130) + '@inquirer/expand': 4.0.23(@types/node@18.19.130) + '@inquirer/input': 4.3.1(@types/node@18.19.130) + '@inquirer/number': 3.0.23(@types/node@18.19.130) + '@inquirer/password': 4.0.23(@types/node@18.19.130) + '@inquirer/rawlist': 4.1.11(@types/node@18.19.130) + '@inquirer/search': 3.2.2(@types/node@18.19.130) + '@inquirer/select': 4.4.2(@types/node@18.19.130) optionalDependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 + + '@inquirer/prompts@7.3.2(@types/node@18.19.130)': + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@18.19.130) + '@inquirer/confirm': 5.1.21(@types/node@18.19.130) + '@inquirer/editor': 4.2.23(@types/node@18.19.130) + '@inquirer/expand': 4.0.23(@types/node@18.19.130) + '@inquirer/input': 4.3.1(@types/node@18.19.130) + '@inquirer/number': 3.0.23(@types/node@18.19.130) + '@inquirer/password': 4.0.23(@types/node@18.19.130) + '@inquirer/rawlist': 4.1.11(@types/node@18.19.130) + '@inquirer/search': 3.2.2(@types/node@18.19.130) + '@inquirer/select': 4.4.2(@types/node@18.19.130) + optionalDependencies: + '@types/node': 18.19.130 '@inquirer/prompts@7.3.2(@types/node@20.11.17)': dependencies: @@ -22836,21 +23215,21 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/rawlist@4.1.11(@types/node@20.11.17)': + '@inquirer/rawlist@4.1.11(@types/node@18.19.130)': dependencies: - '@inquirer/core': 10.3.2(@types/node@20.11.17) - '@inquirer/type': 3.0.10(@types/node@20.11.17) + '@inquirer/core': 10.3.2(@types/node@18.19.130) + '@inquirer/type': 3.0.10(@types/node@18.19.130) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.11.17 + '@types/node': 18.19.130 - '@inquirer/rawlist@4.1.11(@types/node@20.12.8)': + '@inquirer/rawlist@4.1.11(@types/node@20.11.17)': dependencies: - '@inquirer/core': 10.3.2(@types/node@20.12.8) - '@inquirer/type': 3.0.10(@types/node@20.12.8) + '@inquirer/core': 10.3.2(@types/node@20.11.17) + '@inquirer/type': 3.0.10(@types/node@20.11.17) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.12.8 + '@types/node': 20.11.17 '@inquirer/rawlist@4.1.11(@types/node@20.14.5)': dependencies: @@ -22860,23 +23239,23 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/search@3.2.2(@types/node@20.11.17)': + '@inquirer/search@3.2.2(@types/node@18.19.130)': dependencies: - '@inquirer/core': 10.3.2(@types/node@20.11.17) + '@inquirer/core': 10.3.2(@types/node@18.19.130) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@20.11.17) + '@inquirer/type': 3.0.10(@types/node@18.19.130) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.11.17 + '@types/node': 18.19.130 - '@inquirer/search@3.2.2(@types/node@20.12.8)': + '@inquirer/search@3.2.2(@types/node@20.11.17)': dependencies: - '@inquirer/core': 10.3.2(@types/node@20.12.8) + '@inquirer/core': 10.3.2(@types/node@20.11.17) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@20.12.8) + '@inquirer/type': 3.0.10(@types/node@20.11.17) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.12.8 + '@types/node': 20.11.17 '@inquirer/search@3.2.2(@types/node@20.14.5)': dependencies: @@ -22887,25 +23266,25 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/select@4.4.2(@types/node@20.11.17)': + '@inquirer/select@4.4.2(@types/node@18.19.130)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@20.11.17) + '@inquirer/core': 10.3.2(@types/node@18.19.130) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@20.11.17) + '@inquirer/type': 3.0.10(@types/node@18.19.130) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.11.17 + '@types/node': 18.19.130 - '@inquirer/select@4.4.2(@types/node@20.12.8)': + '@inquirer/select@4.4.2(@types/node@20.11.17)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@20.12.8) + '@inquirer/core': 10.3.2(@types/node@20.11.17) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@20.12.8) + '@inquirer/type': 3.0.10(@types/node@20.11.17) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.12.8 + '@types/node': 20.11.17 '@inquirer/select@4.4.2(@types/node@20.14.5)': dependencies: @@ -22921,13 +23300,13 @@ snapshots: dependencies: mute-stream: 1.0.0 - '@inquirer/type@3.0.10(@types/node@20.11.17)': + '@inquirer/type@3.0.10(@types/node@18.19.130)': optionalDependencies: - '@types/node': 20.11.17 + '@types/node': 18.19.130 - '@inquirer/type@3.0.10(@types/node@20.12.8)': + '@inquirer/type@3.0.10(@types/node@20.11.17)': optionalDependencies: - '@types/node': 20.12.8 + '@types/node': 20.11.17 '@inquirer/type@3.0.10(@types/node@20.14.5)': optionalDependencies: @@ -22959,7 +23338,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 20.12.8 + '@types/node': 18.19.130 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -22968,27 +23347,27 @@ snapshots: '@jest/console@30.2.0': dependencies: '@jest/types': 30.2.0 - '@types/node': 20.12.8 + '@types/node': 18.19.130 chalk: 4.1.2 jest-message-util: 30.2.0 jest-util: 30.2.0 slash: 3.0.0 - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0(node-notifier@9.0.1) '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.12.8 + '@types/node': 18.19.130 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)) + jest-config: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -23010,23 +23389,22 @@ snapshots: - babel-plugin-macros - supports-color - ts-node - optional: true - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0(node-notifier@9.0.1) '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.12.8 + '@types/node': 18.19.130 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -23048,46 +23426,46 @@ snapshots: - babel-plugin-macros - supports-color - ts-node + optional: true - '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3))': dependencies: - '@jest/console': 30.2.0 - '@jest/pattern': 30.0.1 - '@jest/reporters': 30.2.0(node-notifier@9.0.1) - '@jest/test-result': 30.2.0 - '@jest/transform': 30.2.0 - '@jest/types': 30.2.0 - '@types/node': 20.12.8 + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0(node-notifier@9.0.1) + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.19.130 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 4.3.0 - exit-x: 0.2.2 + ci-info: 3.9.0 + exit: 0.1.2 graceful-fs: 4.2.11 - jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)) - jest-haste-map: 30.2.0 - jest-message-util: 30.2.0 - jest-regex-util: 30.0.1 - jest-resolve: 30.2.0 - jest-resolve-dependencies: 30.2.0 - jest-runner: 30.2.0 - jest-runtime: 30.2.0 - jest-snapshot: 30.2.0 - jest-util: 30.2.0 - jest-validate: 30.2.0 - jest-watcher: 30.2.0 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 micromatch: 4.0.8 - pretty-format: 30.2.0 + pretty-format: 29.7.0 slash: 3.0.0 + strip-ansi: 6.0.1 optionalDependencies: node-notifier: 9.0.1 transitivePeerDependencies: - babel-plugin-macros - - esbuild-register - supports-color - ts-node - '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5))': + '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5))': dependencies: '@jest/console': 30.2.0 '@jest/pattern': 30.0.1 @@ -23095,14 +23473,14 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 20.12.8 + '@types/node': 18.19.130 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 4.3.0 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)) + jest-config: 30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -23125,7 +23503,7 @@ snapshots: - supports-color - ts-node - '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4))': + '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5))': dependencies: '@jest/console': 30.2.0 '@jest/pattern': 30.0.1 @@ -23133,14 +23511,14 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 20.12.8 + '@types/node': 18.19.130 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 4.3.0 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)) + jest-config: 30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -23162,9 +23540,8 @@ snapshots: - esbuild-register - supports-color - ts-node - optional: true - '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5))': + '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4))': dependencies: '@jest/console': 30.2.0 '@jest/pattern': 30.0.1 @@ -23172,14 +23549,14 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 20.12.8 + '@types/node': 18.19.130 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 4.3.0 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)) + jest-config: 30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -23201,6 +23578,7 @@ snapshots: - esbuild-register - supports-color - ts-node + optional: true '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5))': dependencies: @@ -23210,14 +23588,14 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 20.12.8 + '@types/node': 18.19.130 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 4.3.0 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5)) + jest-config: 30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5)) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -23248,14 +23626,14 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 20.12.8 + '@types/node': 18.19.130 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 4.3.0 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.5.4)) + jest-config: 30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.5.4)) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -23287,14 +23665,14 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 20.12.8 + '@types/node': 18.19.130 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 4.3.0 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.9.3)) + jest-config: 30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.9.3)) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -23323,14 +23701,14 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.12.8 + '@types/node': 18.19.130 jest-mock: 29.7.0 '@jest/environment@30.2.0': dependencies: '@jest/fake-timers': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 20.12.8 + '@types/node': 18.19.130 jest-mock: 30.2.0 '@jest/expect-utils@29.7.0': @@ -23359,7 +23737,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.12.8 + '@types/node': 18.19.130 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -23368,7 +23746,7 @@ snapshots: dependencies: '@jest/types': 30.2.0 '@sinonjs/fake-timers': 13.0.5 - '@types/node': 20.12.8 + '@types/node': 18.19.130 jest-message-util: 30.2.0 jest-mock: 30.2.0 jest-util: 30.2.0 @@ -23395,7 +23773,7 @@ snapshots: '@jest/pattern@30.0.1': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 jest-regex-util: 30.0.1 '@jest/reporters@29.7.0(node-notifier@9.0.1)': @@ -23406,7 +23784,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.31 - '@types/node': 20.12.8 + '@types/node': 18.19.130 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -23437,7 +23815,7 @@ snapshots: '@jest/transform': 30.2.0 '@jest/types': 30.2.0 '@jridgewell/trace-mapping': 0.3.31 - '@types/node': 20.12.8 + '@types/node': 18.19.130 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit-x: 0.2.2 @@ -23559,7 +23937,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/yargs': 17.0.35 chalk: 4.1.2 @@ -23569,7 +23947,7 @@ snapshots: '@jest/schemas': 30.0.5 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/yargs': 17.0.35 chalk: 4.1.2 @@ -23659,6 +24037,11 @@ snapshots: dependencies: '@lezer/common': 1.2.3 + '@listr2/prompt-adapter-inquirer@2.0.18(@inquirer/prompts@7.3.2(@types/node@18.19.130))': + dependencies: + '@inquirer/prompts': 7.3.2(@types/node@18.19.130) + '@inquirer/type': 1.5.5 + '@listr2/prompt-adapter-inquirer@2.0.18(@inquirer/prompts@7.3.2(@types/node@20.11.17))': dependencies: '@inquirer/prompts': 7.3.2(@types/node@20.11.17) @@ -23669,10 +24052,10 @@ snapshots: '@inquirer/prompts': 7.3.2(@types/node@20.14.5) '@inquirer/type': 1.5.5 - '@listr2/prompt-adapter-inquirer@3.0.5(@inquirer/prompts@7.10.1(@types/node@20.12.8))(@types/node@20.12.8)(listr2@9.0.5)': + '@listr2/prompt-adapter-inquirer@3.0.5(@inquirer/prompts@7.10.1(@types/node@18.19.130))(@types/node@18.19.130)(listr2@9.0.5)': dependencies: - '@inquirer/prompts': 7.10.1(@types/node@20.12.8) - '@inquirer/type': 3.0.10(@types/node@20.12.8) + '@inquirer/prompts': 7.10.1(@types/node@18.19.130) + '@inquirer/type': 3.0.10(@types/node@18.19.130) listr2: 9.0.5 transitivePeerDependencies: - '@types/node' @@ -23878,7 +24261,7 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@ngtools/webpack@19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4))': + '@ngtools/webpack@19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3))': dependencies: '@angular/compiler-cli': 19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4) typescript: 5.5.4 @@ -25617,11 +26000,11 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/bonjour@3.5.13': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/chai@5.2.3': dependencies: @@ -25630,27 +26013,27 @@ snapshots: '@types/cheerio@0.22.35': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/clean-css@4.2.11': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 source-map: 0.6.1 '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 5.0.1 - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/connect@3.4.38': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/cookie@0.4.1': {} '@types/cors@2.8.17': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/debug@4.1.12': dependencies: @@ -25701,14 +26084,14 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 '@types/express-serve-static-core@5.0.1': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -25734,16 +26117,16 @@ snapshots: '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/hast@2.3.10': dependencies: @@ -25755,7 +26138,7 @@ snapshots: '@types/http-proxy@1.17.15': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/istanbul-lib-coverage@2.0.6': {} @@ -25782,7 +26165,7 @@ snapshots: '@types/jsdom@20.0.1': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/tough-cookie': 4.0.5 parse5: 7.2.1 @@ -25792,7 +26175,7 @@ snapshots: '@types/jsonfile@6.1.4': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/lodash@4.17.23': {} @@ -25814,12 +26197,12 @@ snapshots: '@types/node-fetch@2.6.12': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 form-data: 4.0.5 '@types/node-forge@1.3.11': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/node@18.19.130': dependencies: @@ -25894,7 +26277,7 @@ snapshots: '@types/resolve@1.17.1': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/resolve@1.20.2': {} @@ -25909,7 +26292,7 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/serve-index@1.9.4': dependencies: @@ -25918,30 +26301,30 @@ snapshots: '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/send': 0.17.4 '@types/shelljs@0.8.15': dependencies: '@types/glob': 7.2.0 - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/sizzle@2.3.9': {} '@types/sockjs@0.3.36': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/stack-utils@2.0.3': {} '@types/tar-fs@2.0.4': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/tar-stream': 3.1.3 '@types/tar-stream@3.1.3': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/tough-cookie@4.0.5': {} @@ -25957,11 +26340,11 @@ snapshots: '@types/vinyl@2.0.12': dependencies: '@types/expect': 1.20.4 - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/ws@8.5.13': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@types/yargs-parser@21.0.3': {} @@ -25971,7 +26354,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 optional: true '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': @@ -26519,6 +26902,10 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true + '@vitejs/plugin-basic-ssl@1.2.0(vite@6.4.1(@types/node@18.19.130)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1))': + dependencies: + vite: 6.4.1(@types/node@18.19.130)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1) + '@vitejs/plugin-basic-ssl@1.2.0(vite@6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1))': dependencies: vite: 6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1) @@ -26527,9 +26914,13 @@ snapshots: dependencies: vite: 6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1) - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.3.0(@types/node@20.12.8)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@1.2.0(vite@7.3.0(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1))': dependencies: - vite: 7.3.0(@types/node@20.12.8)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1) + vite: 7.3.0(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1) + + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.3.0(@types/node@18.19.130)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1))': + dependencies: + vite: 7.3.0(@types/node@18.19.130)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1) '@vitejs/plugin-react@4.4.1(vite@6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1))': dependencies: @@ -26555,11 +26946,19 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 + '@vitest/mocker@3.2.4(vite@6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1))': + dependencies: + '@vitest/spy': 3.2.4 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1) + '@vitest/mocker@3.2.4(vite@6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 - magic-string: 0.30.19 + magic-string: 0.30.21 optionalDependencies: vite: 6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1) @@ -26567,6 +26966,18 @@ snapshots: dependencies: tinyrainbow: 2.0.0 + '@vitest/runner@3.2.4': + dependencies: + '@vitest/utils': 3.2.4 + pathe: 2.0.3 + strip-literal: 3.1.0 + + '@vitest/snapshot@3.2.4': + dependencies: + '@vitest/pretty-format': 3.2.4 + magic-string: 0.30.21 + pathe: 2.0.3 + '@vitest/spy@3.2.4': dependencies: tinyspy: 4.0.4 @@ -26685,7 +27096,7 @@ snapshots: '@vue/compiler-ssr': 3.5.13 '@vue/shared': 3.5.13 estree-walker: 2.0.2 - magic-string: 0.30.19 + magic-string: 0.30.21 postcss: 8.5.6 source-map-js: 1.2.1 @@ -27684,7 +28095,7 @@ snapshots: find-up: 5.0.0 webpack: 5.105.0(@swc/core@1.15.3)(esbuild@0.25.0) - babel-loader@9.2.1(@babel/core@7.26.10)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): + babel-loader@9.2.1(@babel/core@7.26.10)(webpack@5.98.0(@swc/core@1.15.3)): dependencies: '@babel/core': 7.26.10 find-cache-dir: 4.0.0 @@ -28298,7 +28709,7 @@ snapshots: browserslist@4.28.0: dependencies: baseline-browser-mapping: 2.8.30 - caniuse-lite: 1.0.30001756 + caniuse-lite: 1.0.30001763 electron-to-chromium: 1.5.259 node-releases: 2.0.27 update-browserslist-db: 1.1.4(browserslist@4.28.0) @@ -28362,6 +28773,8 @@ snapshots: bytestreamjs@2.0.1: {} + cac@6.7.14: {} + cacache@19.0.1: dependencies: '@npmcli/fs': 4.0.0 @@ -28576,7 +28989,7 @@ snapshots: htmlparser2: 6.1.0 parse5: 6.0.1 parse5-htmlparser2-tree-adapter: 6.0.1 - tslib: 2.8.1 + tslib: 2.6.3 chokidar@2.1.8: dependencies: @@ -29032,7 +29445,7 @@ snapshots: each-props: 1.3.2 is-plain-object: 5.0.0 - copy-webpack-plugin@12.0.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): + copy-webpack-plugin@12.0.2(webpack@5.98.0(@swc/core@1.15.3)): dependencies: fast-glob: 3.3.3 glob-parent: 6.0.2 @@ -29161,6 +29574,37 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.12 + create-jest@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)): + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + create-jest@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + optional: true + create-jest@29.7.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): dependencies: '@jest/types': 29.6.3 @@ -29291,7 +29735,7 @@ snapshots: optionalDependencies: webpack: 5.105.0(@swc/core@1.15.3)(esbuild@0.25.0) - css-loader@7.1.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): + css-loader@7.1.2(webpack@5.98.0(@swc/core@1.15.3)): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 @@ -29863,6 +30307,8 @@ snapshots: dependencies: domelementtype: 2.3.0 + domino@2.1.6: {} + dompurify@3.3.1: optionalDependencies: '@types/trusted-types': 2.0.7 @@ -30009,7 +30455,7 @@ snapshots: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 20.12.8 + '@types/node': 18.19.130 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -30616,28 +31062,28 @@ snapshots: transitivePeerDependencies: - eslint-plugin-import - eslint-config-devextreme@0.2.0(wqcgvevbyusbjfwzjpj634rvom): + eslint-config-devextreme@0.2.0(zucp2mqrjepf7anjfge3a3eetq): dependencies: '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5) eslint: 9.39.2(jiti@2.6.1) eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) eslint-config-airbnb-typescript: 18.0.0(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-jest: 29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)))(typescript@4.9.5) + eslint-plugin-jest: 29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)))(typescript@4.9.5) eslint-plugin-jest-formatting: 3.1.0(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-qunit: 8.2.5(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-rulesdir: 0.2.2 eslint-plugin-spellcheck: 0.0.20(eslint@9.39.2(jiti@2.6.1)) - eslint-config-devextreme@1.1.9(6omxhflejertg6royplc5nvzey): + eslint-config-devextreme@1.1.9(7la2fiwu4vznyc7bu5sp5evnqy): dependencies: '@stylistic/eslint-plugin': 5.7.1(eslint@9.39.2(jiti@2.6.1)) - '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5) - '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4) + '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4) eslint: 9.39.2(jiti@2.6.1) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-jest: 29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)))(typescript@4.9.5) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-jest: 29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)))(typescript@5.5.4) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-no-only-tests: 3.3.0 eslint-plugin-qunit: 8.2.5(eslint@9.39.2(jiti@2.6.1)) @@ -30645,18 +31091,18 @@ snapshots: eslint-plugin-react-perf: 3.3.3(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-rulesdir: 0.2.2 eslint-plugin-spellcheck: 0.0.20(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-vue: 10.6.2(@stylistic/eslint-plugin@5.7.1(eslint@9.39.2(jiti@2.6.1)))(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1))) - stylelint: 15.11.0(typescript@4.9.5) - stylelint-config-standard: 38.0.0(stylelint@15.11.0(typescript@4.9.5)) + eslint-plugin-vue: 10.6.2(@stylistic/eslint-plugin@5.7.1(eslint@9.39.2(jiti@2.6.1)))(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1))) + stylelint: 16.22.0(typescript@5.5.4) + stylelint-config-standard: 38.0.0(stylelint@16.22.0(typescript@5.5.4)) - eslint-config-devextreme@1.1.9(7la2fiwu4vznyc7bu5sp5evnqy): + eslint-config-devextreme@1.1.9(ew2ifb6druv6usnx5jl63dqcme): dependencies: '@stylistic/eslint-plugin': 5.7.1(eslint@9.39.2(jiti@2.6.1)) - '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4) - '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5) + '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5) eslint: 9.39.2(jiti@2.6.1) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-jest: 29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)))(typescript@5.5.4) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-jest: 29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)))(typescript@4.9.5) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-no-only-tests: 3.3.0 eslint-plugin-qunit: 8.2.5(eslint@9.39.2(jiti@2.6.1)) @@ -30664,9 +31110,9 @@ snapshots: eslint-plugin-react-perf: 3.3.3(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-rulesdir: 0.2.2 eslint-plugin-spellcheck: 0.0.20(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-vue: 10.6.2(@stylistic/eslint-plugin@5.7.1(eslint@9.39.2(jiti@2.6.1)))(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1))) - stylelint: 16.22.0(typescript@5.5.4) - stylelint-config-standard: 38.0.0(stylelint@16.22.0(typescript@5.5.4)) + eslint-plugin-vue: 10.6.2(@stylistic/eslint-plugin@5.7.1(eslint@9.39.2(jiti@2.6.1)))(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1))) + stylelint: 15.11.0(typescript@4.9.5) + stylelint-config-standard: 38.0.0(stylelint@15.11.0(typescript@4.9.5)) eslint-config-devextreme@1.1.9(ksgq2dg4tckjngwpxis3tdg5ru): dependencies: @@ -30911,24 +31357,24 @@ snapshots: dependencies: eslint: 9.39.2(jiti@2.6.1) - eslint-plugin-jest@29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)))(typescript@4.9.5): + eslint-plugin-jest@29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)))(typescript@4.9.5): dependencies: '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5) eslint: 9.39.2(jiti@2.6.1) optionalDependencies: '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5) - jest: 30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)) + jest: 30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jest@29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)))(typescript@4.9.5): + eslint-plugin-jest@29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)))(typescript@4.9.5): dependencies: '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5) eslint: 9.39.2(jiti@2.6.1) optionalDependencies: '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5) - jest: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)) + jest: 30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)) transitivePeerDependencies: - supports-color - typescript @@ -31475,6 +31921,8 @@ snapshots: dependencies: homedir-polyfill: 1.0.3 + expect-type@1.3.0: {} + expect@29.7.0: dependencies: '@jest/expect-utils': 29.7.0 @@ -33009,7 +33457,7 @@ snapshots: webpack: 5.105.2(@swc/core@1.15.3) optional: true - html-webpack-plugin@5.6.3(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): + html-webpack-plugin@5.6.3(webpack@5.98.0(@swc/core@1.15.3)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -33883,7 +34331,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.12.8 + '@types/node': 18.19.130 chalk: 4.1.2 co: 4.6.0 dedent: 1.7.0(babel-plugin-macros@3.1.0) @@ -33909,7 +34357,7 @@ snapshots: '@jest/expect': 30.2.0 '@jest/test-result': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 20.12.8 + '@types/node': 18.19.130 chalk: 4.1.2 co: 4.6.0 dedent: 1.7.0(babel-plugin-macros@3.1.0) @@ -33929,6 +34377,49 @@ snapshots: - babel-plugin-macros - supports-color + jest-cli@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)) + exit: 0.1.2 + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + optionalDependencies: + node-notifier: 9.0.1 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jest-cli@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) + exit: 0.1.2 + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + optionalDependencies: + node-notifier: 9.0.1 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + optional: true + jest-cli@29.7.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)) @@ -34058,27 +34549,6 @@ snapshots: - ts-node optional: true - jest-cli@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)): - dependencies: - '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)) - '@jest/test-result': 30.2.0 - '@jest/types': 30.2.0 - chalk: 4.1.2 - exit-x: 0.2.2 - import-local: 3.2.0 - jest-config: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)) - jest-util: 30.2.0 - jest-validate: 30.2.0 - yargs: 17.7.2 - optionalDependencies: - node-notifier: 9.0.1 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - esbuild-register - - supports-color - - ts-node - jest-cli@30.2.0(@types/node@20.14.5)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5)): dependencies: '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5)) @@ -34143,7 +34613,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): + jest-config@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.6 '@jest/test-sequencer': 29.7.0 @@ -34168,14 +34638,13 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.11.17 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4) + '@types/node': 18.19.130 + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - optional: true - jest-config@29.7.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): + jest-config@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): dependencies: '@babel/core': 7.28.6 '@jest/test-sequencer': 29.7.0 @@ -34200,14 +34669,14 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4) transitivePeerDependencies: - babel-plugin-macros - supports-color optional: true - jest-config@29.7.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): + jest-config@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.6 '@jest/test-sequencer': 29.7.0 @@ -34232,13 +34701,13 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@20.14.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): + jest-config@29.7.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): dependencies: '@babel/core': 7.28.6 '@jest/test-sequencer': 29.7.0 @@ -34263,114 +34732,77 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.14.5 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3) + '@types/node': 20.11.17 + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4) transitivePeerDependencies: - babel-plugin-macros - supports-color optional: true - jest-config@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)): - dependencies: - '@babel/core': 7.28.6 - '@jest/get-type': 30.1.0 - '@jest/pattern': 30.0.1 - '@jest/test-sequencer': 30.2.0 - '@jest/types': 30.2.0 - babel-jest: 30.2.0(@babel/core@7.28.6) - chalk: 4.1.2 - ci-info: 4.3.0 - deepmerge: 4.3.1 - glob: 10.5.0 - graceful-fs: 4.2.11 - jest-circus: 30.2.0(babel-plugin-macros@3.1.0) - jest-docblock: 30.2.0 - jest-environment-node: 30.2.0 - jest-regex-util: 30.0.1 - jest-resolve: 30.2.0 - jest-runner: 30.2.0 - jest-util: 30.2.0 - jest-validate: 30.2.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 30.2.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 18.19.130 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5) - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-config@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)): + jest-config@29.7.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.6 - '@jest/get-type': 30.1.0 - '@jest/pattern': 30.0.1 - '@jest/test-sequencer': 30.2.0 - '@jest/types': 30.2.0 - babel-jest: 30.2.0(@babel/core@7.28.6) + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.28.6) chalk: 4.1.2 - ci-info: 4.3.0 + ci-info: 3.9.0 deepmerge: 4.3.1 - glob: 10.5.0 + glob: 7.2.3 graceful-fs: 4.2.11 - jest-circus: 30.2.0(babel-plugin-macros@3.1.0) - jest-docblock: 30.2.0 - jest-environment-node: 30.2.0 - jest-regex-util: 30.0.1 - jest-resolve: 30.2.0 - jest-runner: 30.2.0 - jest-util: 30.2.0 - jest-validate: 30.2.0 + jest-circus: 29.7.0(babel-plugin-macros@3.1.0) + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 micromatch: 4.0.8 parse-json: 5.2.0 - pretty-format: 30.2.0 + pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.11.17 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5) + '@types/node': 20.12.8 + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): + jest-config@29.7.0(@types/node@20.14.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.6 - '@jest/get-type': 30.1.0 - '@jest/pattern': 30.0.1 - '@jest/test-sequencer': 30.2.0 - '@jest/types': 30.2.0 - babel-jest: 30.2.0(@babel/core@7.28.6) + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.28.6) chalk: 4.1.2 - ci-info: 4.3.0 + ci-info: 3.9.0 deepmerge: 4.3.1 - glob: 10.5.0 + glob: 7.2.3 graceful-fs: 4.2.11 - jest-circus: 30.2.0(babel-plugin-macros@3.1.0) - jest-docblock: 30.2.0 - jest-environment-node: 30.2.0 - jest-regex-util: 30.0.1 - jest-resolve: 30.2.0 - jest-runner: 30.2.0 - jest-util: 30.2.0 - jest-validate: 30.2.0 + jest-circus: 29.7.0(babel-plugin-macros@3.1.0) + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 micromatch: 4.0.8 parse-json: 5.2.0 - pretty-format: 30.2.0 + pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.11.17 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4) + '@types/node': 20.14.5 + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color optional: true - jest-config@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)): + jest-config@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)): dependencies: '@babel/core': 7.28.6 '@jest/get-type': 30.1.0 @@ -34397,13 +34829,13 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)): + jest-config@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)): dependencies: '@babel/core': 7.28.6 '@jest/get-type': 30.1.0 @@ -34430,13 +34862,13 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): + jest-config@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): dependencies: '@babel/core': 7.28.6 '@jest/get-type': 30.1.0 @@ -34463,14 +34895,14 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4) transitivePeerDependencies: - babel-plugin-macros - supports-color optional: true - jest-config@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)): + jest-config@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5)): dependencies: '@babel/core': 7.28.6 '@jest/get-type': 30.1.0 @@ -34497,13 +34929,13 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.12.8 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5) + '@types/node': 18.19.130 + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): + jest-config@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.5.4)): dependencies: '@babel/core': 7.28.6 '@jest/get-type': 30.1.0 @@ -34530,13 +34962,14 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.12.8 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3) + '@types/node': 18.19.130 + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.5.4) transitivePeerDependencies: - babel-plugin-macros - supports-color + optional: true - jest-config@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5)): + jest-config@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.6 '@jest/get-type': 30.1.0 @@ -34563,13 +34996,13 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.12.8 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5) + '@types/node': 18.19.130 + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.5.4)): + jest-config@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)): dependencies: '@babel/core': 7.28.6 '@jest/get-type': 30.1.0 @@ -34596,14 +35029,47 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.12.8 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.5.4) + '@types/node': 20.11.17 + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): + dependencies: + '@babel/core': 7.28.6 + '@jest/get-type': 30.1.0 + '@jest/pattern': 30.0.1 + '@jest/test-sequencer': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.28.6) + chalk: 4.1.2 + ci-info: 4.3.0 + deepmerge: 4.3.1 + glob: 10.5.0 + graceful-fs: 4.2.11 + jest-circus: 30.2.0(babel-plugin-macros@3.1.0) + jest-docblock: 30.2.0 + jest-environment-node: 30.2.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.2.0 + jest-runner: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 30.2.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.11.17 + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4) transitivePeerDependencies: - babel-plugin-macros - supports-color optional: true - jest-config@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.9.3)): + jest-config@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.6 '@jest/get-type': 30.1.0 @@ -34631,7 +35097,7 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 20.12.8 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.9.3) + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -34803,7 +35269,7 @@ snapshots: '@jest/environment': 30.2.0 '@jest/fake-timers': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 20.12.8 + '@types/node': 18.19.130 jest-mock: 30.2.0 jest-util: 30.2.0 jest-validate: 30.2.0 @@ -34814,7 +35280,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.12.8 + '@types/node': 18.19.130 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -34829,7 +35295,7 @@ snapshots: jest-haste-map@30.2.0: dependencies: '@jest/types': 30.2.0 - '@types/node': 20.12.8 + '@types/node': 18.19.130 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -34892,13 +35358,13 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.12.8 + '@types/node': 18.19.130 jest-util: 29.7.0 jest-mock@30.2.0: dependencies: '@jest/types': 30.2.0 - '@types/node': 20.12.8 + '@types/node': 18.19.130 jest-util: 30.2.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -34957,7 +35423,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.12.8 + '@types/node': 18.19.130 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -34983,7 +35449,7 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 20.12.8 + '@types/node': 18.19.130 chalk: 4.1.2 emittery: 0.13.1 exit-x: 0.2.2 @@ -35012,7 +35478,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.12.8 + '@types/node': 18.19.130 chalk: 4.1.2 cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 @@ -35039,7 +35505,7 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 20.12.8 + '@types/node': 18.19.130 chalk: 4.1.2 cjs-module-lexer: 2.2.0 collect-v8-coverage: 1.0.2 @@ -35111,7 +35577,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.12.8 + '@types/node': 18.19.130 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -35120,7 +35586,7 @@ snapshots: jest-util@30.2.0: dependencies: '@jest/types': 30.2.0 - '@types/node': 20.12.8 + '@types/node': 18.19.130 chalk: 4.1.2 ci-info: 4.3.0 graceful-fs: 4.2.11 @@ -35148,7 +35614,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.12.8 + '@types/node': 18.19.130 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -35159,7 +35625,7 @@ snapshots: dependencies: '@jest/test-result': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 20.12.8 + '@types/node': 18.19.130 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -35168,25 +35634,54 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@30.2.0: dependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 '@ungap/structured-clone': 1.3.0 jest-util: 30.2.0 merge-stream: 2.0.0 supports-color: 8.1.1 + jest@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)) + '@jest/types': 29.6.3 + import-local: 3.2.0 + jest-cli: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)) + optionalDependencies: + node-notifier: 9.0.1 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jest@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) + '@jest/types': 29.6.3 + import-local: 3.2.0 + jest-cli: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) + optionalDependencies: + node-notifier: 9.0.1 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + optional: true + jest@29.7.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)) @@ -35277,21 +35772,6 @@ snapshots: - ts-node optional: true - jest@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)): - dependencies: - '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)) - '@jest/types': 30.2.0 - import-local: 3.2.0 - jest-cli: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)) - optionalDependencies: - node-notifier: 9.0.1 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - esbuild-register - - supports-color - - ts-node - jest@30.2.0(@types/node@20.14.5)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5)): dependencies: '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5)) @@ -35660,7 +36140,7 @@ snapshots: lead@4.0.0: {} - less-loader@12.2.0(less@4.2.2)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): + less-loader@12.2.0(less@4.2.2)(webpack@5.98.0(@swc/core@1.15.3)): dependencies: less: 4.2.2 optionalDependencies: @@ -35713,7 +36193,7 @@ snapshots: optionalDependencies: webpack: 5.105.0(@swc/core@1.15.3)(esbuild@0.25.0) - license-webpack-plugin@4.0.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): + license-webpack-plugin@4.0.2(webpack@5.98.0(@swc/core@1.15.3)): dependencies: webpack-sources: 3.3.3 optionalDependencies: @@ -36533,7 +37013,7 @@ snapshots: min-indent@1.0.1: {} - mini-css-extract-plugin@2.9.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): + mini-css-extract-plugin@2.9.2(webpack@5.98.0(@swc/core@1.15.3)): dependencies: schema-utils: 4.3.3 tapable: 2.3.0 @@ -37788,6 +38268,8 @@ snapshots: path-type@6.0.0: {} + pathe@2.0.3: {} + pathval@1.1.1: {} pathval@2.0.1: {} @@ -37927,7 +38409,7 @@ snapshots: postcss: 8.4.38 postcss-safe-parser: 6.0.0(postcss@8.4.38) - postcss-loader@8.1.1(postcss@8.5.2)(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): + postcss-loader@8.1.1(postcss@8.5.2)(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3)): dependencies: cosmiconfig: 9.0.0(typescript@5.5.4) jiti: 1.21.6 @@ -39237,7 +39719,7 @@ snapshots: sass-embedded-win32-x64: 1.97.1 optional: true - sass-loader@16.0.5(sass-embedded@1.97.1)(sass@1.85.0)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): + sass-loader@16.0.5(sass-embedded@1.97.1)(sass@1.85.0)(webpack@5.98.0(@swc/core@1.15.3)): dependencies: neo-async: 2.6.2 optionalDependencies: @@ -39554,6 +40036,8 @@ snapshots: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + siginfo@2.0.0: {} + signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -39701,7 +40185,7 @@ snapshots: source-map-js: 1.2.1 webpack: 5.105.0(@swc/core@1.15.3)(esbuild@0.25.0) - source-map-loader@5.0.0(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): + source-map-loader@5.0.0(webpack@5.98.0(@swc/core@1.15.3)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 @@ -39835,6 +40319,8 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 + stackback@0.0.2: {} + stackblur-canvas@2.7.0: {} stackframe@1.3.4: {} @@ -39852,6 +40338,8 @@ snapshots: statuses@2.0.2: {} + std-env@3.10.0: {} + stdin-discarder@0.2.2: {} stop-iteration-iterator@1.0.0: @@ -40109,6 +40597,10 @@ snapshots: strip-json-comments@3.1.1: {} + strip-literal@3.1.0: + dependencies: + js-tokens: 9.0.1 + style-loader@3.3.4(webpack@5.105.0(@swc/core@1.15.3)): dependencies: webpack: 5.105.0(@swc/core@1.15.3) @@ -41132,11 +41624,17 @@ snapshots: tiny-invariant@1.3.3: {} + tinybench@2.9.0: {} + + tinyexec@0.3.2: {} + tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 + tinypool@1.1.1: {} + tinyrainbow@2.0.0: {} tinyspy@4.0.4: {} @@ -41267,11 +41765,11 @@ snapshots: ts-dedent@2.2.0: {} - ts-jest@29.1.2(@babel/core@7.28.6)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.6))(jest@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)))(typescript@4.9.5): + ts-jest@29.1.2(@babel/core@7.28.6)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.6))(jest@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)))(typescript@4.9.5): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)) + jest: 30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -41284,11 +41782,11 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.28.6) - ts-jest@29.1.2(@babel/core@7.28.6)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.6))(jest@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)))(typescript@4.9.5): + ts-jest@29.1.2(@babel/core@7.28.6)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.6))(jest@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)))(typescript@4.9.5): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)) + jest: 30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -41418,27 +41916,27 @@ snapshots: '@swc/core': 1.15.3 optional: true - ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5): + ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.11.17 + '@types/node': 18.19.130 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.9.5 + typescript: 5.9.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: '@swc/core': 1.15.3 - ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4): + ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -41452,32 +41950,31 @@ snapshots: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.5.4 + typescript: 4.9.5 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: '@swc/core': 1.15.3 - ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5): + ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.12.8 + '@types/node': 20.11.17 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.9.5 + typescript: 5.5.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: '@swc/core': 1.15.3 - optional: true ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3): dependencies: @@ -42271,6 +42768,27 @@ snapshots: replace-ext: 2.0.0 teex: 1.0.1 + vite-node@3.2.4(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1): + dependencies: + cac: 6.7.14 + debug: 4.4.3 + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + vite@5.4.21(@types/node@20.14.5)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0): dependencies: esbuild: 0.21.5 @@ -42285,6 +42803,25 @@ snapshots: sass-embedded: 1.97.1 terser: 5.46.0 + vite@6.4.1(@types/node@18.19.130)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1): + dependencies: + esbuild: 0.25.0 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.59.0 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 18.19.130 + fsevents: 2.3.3 + jiti: 2.6.1 + less: 4.2.2 + lightningcss: 1.30.2 + sass: 1.85.0 + sass-embedded: 1.97.1 + terser: 5.39.0 + yaml: 2.8.1 + vite@6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1): dependencies: esbuild: 0.25.0 @@ -42304,6 +42841,25 @@ snapshots: terser: 5.39.0 yaml: 2.8.1 + vite@6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1): + dependencies: + esbuild: 0.25.0 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.59.0 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 20.11.17 + fsevents: 2.3.3 + jiti: 2.6.1 + less: 4.4.2 + lightningcss: 1.30.2 + sass: 1.97.1 + sass-embedded: 1.97.1 + terser: 5.46.0 + yaml: 2.8.1 + vite@6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1): dependencies: esbuild: 0.25.0 @@ -42362,7 +42918,7 @@ snapshots: terser: 5.46.0 yaml: 2.8.1 - vite@7.3.0(@types/node@20.12.8)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1): + vite@7.3.0(@types/node@18.19.130)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1): dependencies: esbuild: 0.27.2 fdir: 6.5.0(picomatch@4.0.3) @@ -42371,7 +42927,7 @@ snapshots: rollup: 4.59.0 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 20.12.8 + '@types/node': 18.19.130 fsevents: 2.3.3 jiti: 2.6.1 less: 4.4.2 @@ -42381,6 +42937,68 @@ snapshots: terser: 5.44.1 yaml: 2.8.1 + vite@7.3.0(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1): + dependencies: + esbuild: 0.27.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.59.0 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 20.11.17 + fsevents: 2.3.3 + jiti: 2.6.1 + less: 4.4.2 + lightningcss: 1.30.2 + sass: 1.97.1 + sass-embedded: 1.97.1 + terser: 5.46.0 + yaml: 2.8.1 + + vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.11.17)(jiti@2.6.1)(jsdom@20.0.3)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1): + dependencies: + '@types/chai': 5.2.3 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(vite@6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1)) + '@vitest/pretty-format': 3.2.4 + '@vitest/runner': 3.2.4 + '@vitest/snapshot': 3.2.4 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.3.3 + debug: 4.4.3 + expect-type: 1.3.0 + magic-string: 0.30.21 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.15 + tinypool: 1.1.1 + tinyrainbow: 2.0.0 + vite: 6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/debug': 4.1.12 + '@types/node': 20.11.17 + jsdom: 20.0.3 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + vm-browserify@1.1.2: {} void-elements@2.0.1: {} @@ -42581,7 +43199,7 @@ snapshots: optionalDependencies: webpack: 5.105.0(@swc/core@1.15.3)(esbuild@0.25.0) - webpack-dev-middleware@7.4.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): + webpack-dev-middleware@7.4.2(webpack@5.98.0(@swc/core@1.15.3)): dependencies: colorette: 2.0.20 memfs: 4.51.1 @@ -42614,7 +43232,7 @@ snapshots: optionalDependencies: webpack: 5.105.0(@swc/core@1.15.3)(webpack-cli@5.1.4) - webpack-dev-middleware@7.4.5(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): + webpack-dev-middleware@7.4.5(webpack@5.98.0(@swc/core@1.15.3)): dependencies: colorette: 2.0.20 memfs: 4.51.1 @@ -42663,7 +43281,7 @@ snapshots: - supports-color - utf-8-validate - webpack-dev-server@5.2.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): + webpack-dev-server@5.2.2(webpack@5.98.0(@swc/core@1.15.3)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -42691,7 +43309,7 @@ snapshots: serve-index: 1.9.2 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + webpack-dev-middleware: 7.4.5(webpack@5.98.0(@swc/core@1.15.3)) ws: 8.18.0 optionalDependencies: webpack: 5.98.0(@swc/core@1.15.3)(esbuild@0.25.4) @@ -42790,12 +43408,12 @@ snapshots: optionalDependencies: html-webpack-plugin: 5.6.3(webpack@5.105.2(@swc/core@1.15.3)) - webpack-subresource-integrity@5.1.0(html-webpack-plugin@5.6.3(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)))(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): + webpack-subresource-integrity@5.1.0(html-webpack-plugin@5.6.3(webpack@5.98.0(@swc/core@1.15.3)))(webpack@5.98.0(@swc/core@1.15.3)): dependencies: typed-assert: 1.0.9 webpack: 5.98.0(@swc/core@1.15.3)(esbuild@0.25.4) optionalDependencies: - html-webpack-plugin: 5.6.3(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + html-webpack-plugin: 5.6.3(webpack@5.98.0(@swc/core@1.15.3)) webpack-virtual-modules@0.6.2: {} @@ -43118,6 +43736,11 @@ snapshots: dependencies: isexe: 3.1.1 + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + wildcard@2.0.1: {} windows-release@5.1.1: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index f0b40ca595a4..b886cbda2925 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,6 +2,8 @@ packages: - 'apps/*' - 'e2e/*' - 'packages/*' + - 'packages/devextreme-angular/tests/ssr-app' + - 'packages/devextreme-angular/tests/ssr-testcafe' - 'packages/devextreme/artifacts/npm/devextreme-dist' - '!packages/sbom' @@ -41,6 +43,7 @@ catalogs: "@angular-devkit/build-angular": ~19.2.19 "@angular-devkit/architect": ~0.1902.19 "@angular-devkit/schematics": ~19.2.19 + "@angular/build": ~19.2.19 "@angular/cli": ~19.2.19 "@angular/common": ~19.2.19 "@angular/compiler": ~19.2.19 @@ -51,6 +54,7 @@ catalogs: "@angular/platform-browser-dynamic": ~19.2.19 "@angular/platform-server": ~19.2.19 "@angular/router": ~19.2.19 + "@angular/ssr": ~19.2.19 "ng-packagr": ~19.2.2 "typescript": 5.5.4 "zone.js": 0.15.1 From 2619e16043c0296def4154f661fe15e88722005f Mon Sep 17 00:00:00 2001 From: Aliullov Vlad Date: Thu, 5 Mar 2026 13:10:18 +0100 Subject: [PATCH 4/5] Revert "remake SSR tests" This reverts commit b9b5d5ec86df7aa692dd77b1a4cb02c814f25628. --- packages/devextreme-angular/package.json | 7 +- packages/devextreme-angular/project.json | 22 - .../tests/src/server/hydration.spec.ts | 131 ++ .../tests/src/server/ssr-ajax.spec.ts | 27 +- .../tests/src/server/ssr-components.spec.ts | 2 +- .../tests/src/server/vitest.setup.ts | 18 - .../tests/src/ssr-app.test.js | 37 - .../tests/ssr-app/.editorconfig | 17 - .../tests/ssr-app/.gitignore | 42 - .../tests/ssr-app/README.md | 59 - .../tests/ssr-app/angular.json | 91 - .../tests/ssr-app/package.json | 38 - .../tests/ssr-app/public/favicon.ico | Bin 82 -> 0 bytes .../tests/ssr-app/src/app/app.component.html | 75 - .../tests/ssr-app/src/app/app.component.ts | 11 - .../ssr-app/src/app/app.config.server.ts | 13 - .../tests/ssr-app/src/app/app.config.ts | 9 - .../ssr-app/src/app/app.routes.server.ts | 8 - .../tests/ssr-app/src/app/app.routes.ts | 3 - .../tests/ssr-app/src/index.html | 12 - .../tests/ssr-app/src/main.server.ts | 8 - .../tests/ssr-app/src/main.ts | 6 - .../tests/ssr-app/src/server.ts | 72 - .../tests/ssr-app/tsconfig.app.json | 19 - .../tests/ssr-app/tsconfig.json | 27 - .../tests/ssr-app/tsconfig.spec.json | 15 - .../tests/testcafe/.testcaferc.json | 8 - .../tests/testcafe/package.json | 8 - .../tests/testcafe/run-ssr-testcafe.mjs | 172 -- .../vitest.server.config.ts | 19 - pnpm-lock.yaml | 1627 +++++------------ pnpm-workspace.yaml | 4 - 32 files changed, 637 insertions(+), 1970 deletions(-) create mode 100644 packages/devextreme-angular/tests/src/server/hydration.spec.ts delete mode 100644 packages/devextreme-angular/tests/src/server/vitest.setup.ts delete mode 100644 packages/devextreme-angular/tests/src/ssr-app.test.js delete mode 100644 packages/devextreme-angular/tests/ssr-app/.editorconfig delete mode 100644 packages/devextreme-angular/tests/ssr-app/.gitignore delete mode 100644 packages/devextreme-angular/tests/ssr-app/README.md delete mode 100644 packages/devextreme-angular/tests/ssr-app/angular.json delete mode 100644 packages/devextreme-angular/tests/ssr-app/package.json delete mode 100644 packages/devextreme-angular/tests/ssr-app/public/favicon.ico delete mode 100644 packages/devextreme-angular/tests/ssr-app/src/app/app.component.html delete mode 100644 packages/devextreme-angular/tests/ssr-app/src/app/app.component.ts delete mode 100644 packages/devextreme-angular/tests/ssr-app/src/app/app.config.server.ts delete mode 100644 packages/devextreme-angular/tests/ssr-app/src/app/app.config.ts delete mode 100644 packages/devextreme-angular/tests/ssr-app/src/app/app.routes.server.ts delete mode 100644 packages/devextreme-angular/tests/ssr-app/src/app/app.routes.ts delete mode 100644 packages/devextreme-angular/tests/ssr-app/src/index.html delete mode 100644 packages/devextreme-angular/tests/ssr-app/src/main.server.ts delete mode 100644 packages/devextreme-angular/tests/ssr-app/src/main.ts delete mode 100644 packages/devextreme-angular/tests/ssr-app/src/server.ts delete mode 100644 packages/devextreme-angular/tests/ssr-app/tsconfig.app.json delete mode 100644 packages/devextreme-angular/tests/ssr-app/tsconfig.json delete mode 100644 packages/devextreme-angular/tests/ssr-app/tsconfig.spec.json delete mode 100644 packages/devextreme-angular/tests/testcafe/.testcaferc.json delete mode 100644 packages/devextreme-angular/tests/testcafe/package.json delete mode 100644 packages/devextreme-angular/tests/testcafe/run-ssr-testcafe.mjs delete mode 100644 packages/devextreme-angular/vitest.server.config.ts diff --git a/packages/devextreme-angular/package.json b/packages/devextreme-angular/package.json index 7abdf2700585..03d3fd71c4f5 100644 --- a/packages/devextreme-angular/package.json +++ b/packages/devextreme-angular/package.json @@ -13,12 +13,9 @@ "lint": "eslint . --quiet", "lint:fix": "eslint . --fix", "test": "pnpm --workspace-root nx test devextreme-angular", - "test:ssr-components:vitest": "pnpm --workspace-root nx test:ssr-components:vitest devextreme-angular", "pack": "pnpm --workspace-root nx pack devextreme-angular", "pack-with-descriptions": "pnpm --workspace-root nx pack --configuration with-descriptions devextreme-angular", - "test:dev": "pnpm --workspace-root nx run:tests devextreme-angular", - "test:ssr": "node tests/testcafe/run-ssr-testcafe.mjs" - + "test:dev": "pnpm --workspace-root nx run:tests devextreme-angular" }, "author": "Developer Express Inc.", "license": "MIT", @@ -52,7 +49,6 @@ "core-js": "2.6.12", "css-loader": "6.10.0", "devextreme-metadata": "workspace:*", - "domino": "^2.1.6", "eslint": "catalog:", "eslint-config-devextreme": "catalog:", "eslint-plugin-import": "catalog:", @@ -71,7 +67,6 @@ "style-loader": "3.3.4", "tslib": "2.6.3", "typescript": "catalog:angular", - "vitest": "^3.0.0", "webpack": "5.105.0", "yargs": "17.7.2", "zone.js": "catalog:angular" diff --git a/packages/devextreme-angular/project.json b/packages/devextreme-angular/project.json index 33eba251521b..975a6e471e9c 100644 --- a/packages/devextreme-angular/project.json +++ b/packages/devextreme-angular/project.json @@ -421,26 +421,6 @@ "{projectRoot}/tests/dist/**/*" ] }, - "test:ssr-components:vitest": { - "executor": "nx:run-commands", - "options": { - "commands": [ - "pnpm --workspace-root nx build:tests devextreme-angular", - "vitest run --config vitest.server.config.ts" - ], - "parallel": false, - "cwd": "packages/devextreme-angular" - }, - "dependsOn": ["build:tests"], - "inputs": [ - "default", - "test", - "{projectRoot}/tests/dist/**/*", - "{projectRoot}/vitest.server.config.ts", - "{projectRoot}/tests/src/server/vitest.setup.ts" - ], - "cache": true - }, "watch:test": { "executor": "devextreme-nx-infra-plugin:karma-multi-env", "options": { @@ -512,8 +492,6 @@ "{projectRoot}/karma.server.test.shim.js", "{projectRoot}/karma.hydration.test.shim.js", "{projectRoot}/webpack.test.js", - "{projectRoot}/vitest.server.config.ts", - "{projectRoot}/tests/src/server/vitest.setup.ts", "{projectRoot}/tsconfig.tests.json", "{projectRoot}/src/**/*.spec.ts", "{projectRoot}/src/**/*.test.ts" diff --git a/packages/devextreme-angular/tests/src/server/hydration.spec.ts b/packages/devextreme-angular/tests/src/server/hydration.spec.ts new file mode 100644 index 000000000000..cc69b14e7a49 --- /dev/null +++ b/packages/devextreme-angular/tests/src/server/hydration.spec.ts @@ -0,0 +1,131 @@ +import { BrowserModule, provideClientHydration } from '@angular/platform-browser'; +import { + Component, + destroyPlatform, + NgModule, + PLATFORM_ID, + importProvidersFrom, +} from '@angular/core'; +import { ServerModule, renderModule } from '@angular/platform-server'; +import { DxServerModule } from 'devextreme-angular/server'; +import infernoRenderer from 'devextreme/core/inferno_renderer'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; +import { DevExtremeModule } from 'devextreme-angular'; +import { componentNames as componentNamesAll } from './component-names'; + +const componentNames = componentNamesAll.filter((n) => ['toast', 'action-sheet'].includes(n)); + +const containerClass = 'container'; +const containerSelector = `.${containerClass}`; + +@Component({ + selector: 'app-root', + standalone: false, + template: `
+ ${componentNames.map((name) => ``).join('\n')} +
`, +}) +class AppComponent {} + +@NgModule({ + declarations: [AppComponent], + imports: [BrowserModule, DevExtremeModule], + bootstrap: [AppComponent], + providers: [provideClientHydration()], +}) +class AppBrowserModule {} + +@NgModule({ + declarations: [AppComponent], + imports: [ServerModule, DevExtremeModule], + bootstrap: [AppComponent], + providers: [ + provideClientHydration(), + { provide: PLATFORM_ID, useValue: 'server' }, + importProvidersFrom(DxServerModule), + ], +}) +class AppSSRModule {} + +class TestHelpers { + static normalizeClassNames(element: HTMLElement): void { + const classNames = Array.from(element.classList).sort(); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-expect-error + element.classList.remove(...element.classList); + element.classList.add(...classNames); + } + + static hasConsoleMessage(spy: jasmine.Spy, messages: string[]): boolean { + return spy.calls.allArgs().some((args) => messages.some((msg) => args[0].toLowerCase().includes(msg.toLowerCase()))); + } +} + +describe('Angular Components Hydration Test', () => { + let consoleSpies: { + warn: jasmine.Spy; + error: jasmine.Spy; + log: jasmine.Spy; + }; + const ssrState: { + containerHtml: string; + ssrHTML: string; + } = { + containerHtml: '', + ssrHTML: '', + }; + + beforeAll(() => { + consoleSpies = { + warn: spyOn(console, 'warn').and.callThrough(), + error: spyOn(console, 'error').and.callThrough(), + log: spyOn(console, 'log').and.callThrough(), + }; + }); + + beforeEach(() => { + destroyPlatform(); + }); + + afterEach(() => { + expect(consoleSpies.error).not.toHaveBeenCalled(); + expect(TestHelpers.hasConsoleMessage(consoleSpies.warn, ['exception', 'hydration'])).toBeFalsy(); + }); + + it('should generate correct SSR HTML', async () => { + const html = await renderModule(AppSSRModule, { + document: '', + url: '/', + }); + + ssrState.ssrHTML = html + .replace(/ng-server-context="other"/g, 'ng-server-context="ssg"') + .replace(/^.*.*$/, ''); + + const tempDiv = document.createElement('div'); + tempDiv.innerHTML = ssrState.ssrHTML; + + // Assert + ssrState.containerHtml = tempDiv.querySelector(`${containerSelector}`)?.innerHTML ?? ''; + + expect(ssrState.containerHtml).toBeTruthy(); + expect(ssrState.ssrHTML).toBeTruthy(); + }); + + it('should correctly hydrate server-rendered HTML', async () => { + infernoRenderer.resetInjection(); + + document.body.outerHTML = ssrState.ssrHTML; + + // Act + await platformBrowserDynamic().bootstrapModule(AppBrowserModule); + + expect(TestHelpers.hasConsoleMessage( + consoleSpies.log, + ['Angular hydrated 1 component(s)'], + )).toBeTruthy(); + + expect(ssrState.containerHtml).toEqual(document.querySelector(`${containerSelector}`).innerHTML); + }); +}); diff --git a/packages/devextreme-angular/tests/src/server/ssr-ajax.spec.ts b/packages/devextreme-angular/tests/src/server/ssr-ajax.spec.ts index 2afb2c1f7b20..0d831e6ba84d 100644 --- a/packages/devextreme-angular/tests/src/server/ssr-ajax.spec.ts +++ b/packages/devextreme-angular/tests/src/server/ssr-ajax.spec.ts @@ -1,3 +1,4 @@ +/* tslint:disable:component-selector */ import { Component, PLATFORM_ID, @@ -5,9 +6,8 @@ import { makeStateKey, } from '@angular/core'; -import domino from 'domino'; import { isPlatformServer } from '@angular/common'; -import { setWindow } from 'devextreme/core/utils/window'; + import { DxServerTransferStateModule } from 'devextreme-angular'; import { DxServerModule } from 'devextreme-angular/server'; @@ -20,7 +20,6 @@ import { ServerModule } from '@angular/platform-server'; import { TestBed, } from '@angular/core/testing'; -import {beforeAll} from "vitest"; const mockSendRequest = { callBase() { @@ -42,30 +41,8 @@ class TestContainerComponent { describe('Universal', () => { let sendRequest: any; const ajaxInject = ajax.inject; - - beforeAll(() => { - const dominoWindow = domino.createWindow(''); - - Object.defineProperty(globalThis, 'window', { - value: dominoWindow, - configurable: true, - }); - Object.defineProperty(globalThis, 'document', { - value: dominoWindow.document, - configurable: true, - }); - Object.defineProperty(globalThis, 'navigator', { - value: { userAgent: 'node' }, - configurable: true, - }); - - - setWindow(dominoWindow); - }) - beforeEach(() => { ajax.inject = function (obj) { - ajaxInject.call(this, obj); sendRequest = obj.sendRequest; }; TestBed.configureTestingModule( diff --git a/packages/devextreme-angular/tests/src/server/ssr-components.spec.ts b/packages/devextreme-angular/tests/src/server/ssr-components.spec.ts index 195b3e059d08..54060939189b 100644 --- a/packages/devextreme-angular/tests/src/server/ssr-components.spec.ts +++ b/packages/devextreme-angular/tests/src/server/ssr-components.spec.ts @@ -43,7 +43,7 @@ describe('Universal', () => { TestBed.overrideComponent(TestContainerComponent, { set: { template: ` - ${componentNames.filter((_name) => !['diagram'].includes(_name)).map((name) => ``).join('')} + ${componentNames.map((name) => ``).join('')} `, }, }); diff --git a/packages/devextreme-angular/tests/src/server/vitest.setup.ts b/packages/devextreme-angular/tests/src/server/vitest.setup.ts deleted file mode 100644 index 52da3f5aed79..000000000000 --- a/packages/devextreme-angular/tests/src/server/vitest.setup.ts +++ /dev/null @@ -1,18 +0,0 @@ -import '@angular/compiler'; -import 'reflect-metadata'; -import 'zone.js/node'; -import 'zone.js/testing'; - -import { TestBed } from '@angular/core/testing'; -import { ServerTestingModule, platformServerTesting } from '@angular/platform-server/testing'; - -import { setWindow } from 'devextreme/core/utils/window'; - -const windowMock: { window?: unknown } = {}; -windowMock.window = windowMock; -setWindow(windowMock); - -TestBed.initTestEnvironment( - ServerTestingModule, - platformServerTesting(), -); diff --git a/packages/devextreme-angular/tests/src/ssr-app.test.js b/packages/devextreme-angular/tests/src/ssr-app.test.js deleted file mode 100644 index 7c1a4d285ebe..000000000000 --- a/packages/devextreme-angular/tests/src/ssr-app.test.js +++ /dev/null @@ -1,37 +0,0 @@ -import { componentNames } from '../src/server/component-names.ts' -const baseUrl = 'http://localhost:4200/'; - -const dxComponentNames = componentNames.filter((name) => { - return !['diagram', 'scheduler'].includes(name); -}); - -fixture('SSR app markup'); - -test('should render widget markup on the server', async (t) => { - const response = await t.request({ - url: baseUrl, - method: 'GET', - }); - - await t.expect(response.status).eql(200); - - const html = response.body || ''; - - for (const componentName of dxComponentNames) { - await t.expect(html).contains(` { - await t.navigateTo(baseUrl, { waitForPageLoad: false }); - - const bodyHtml = await t.eval(() => document.body?.innerHTML || ''); - - for (const componentName of dxComponentNames) { - await t.expect(bodyHtml).contains(`04%=%xBvhE diff --git a/packages/devextreme-angular/tests/ssr-app/src/app/app.component.html b/packages/devextreme-angular/tests/ssr-app/src/app/app.component.html deleted file mode 100644 index e5a8a2d9439a..000000000000 --- a/packages/devextreme-angular/tests/ssr-app/src/app/app.component.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/devextreme-angular/tests/ssr-app/src/app/app.component.ts b/packages/devextreme-angular/tests/ssr-app/src/app/app.component.ts deleted file mode 100644 index 83b79a073538..000000000000 --- a/packages/devextreme-angular/tests/ssr-app/src/app/app.component.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Component } from '@angular/core'; -import { DevExtremeModule } from 'devextreme-angular'; - -@Component({ - selector: 'app-root', - imports: [DevExtremeModule], - templateUrl: './app.component.html', -}) -export class AppComponent { - title = 'ssr-app'; -} diff --git a/packages/devextreme-angular/tests/ssr-app/src/app/app.config.server.ts b/packages/devextreme-angular/tests/ssr-app/src/app/app.config.server.ts deleted file mode 100644 index 73acf623878e..000000000000 --- a/packages/devextreme-angular/tests/ssr-app/src/app/app.config.server.ts +++ /dev/null @@ -1,13 +0,0 @@ -import {mergeApplicationConfig, ApplicationConfig, importProvidersFrom} from '@angular/core'; -import { provideServerRendering } from '@angular/platform-server'; -import { appConfig } from './app.config'; -import { DxServerModule } from 'devextreme-angular/server'; - -const serverConfig: ApplicationConfig = { - providers: [ - importProvidersFrom(DxServerModule), - provideServerRendering() - ] -}; - -export const config = mergeApplicationConfig(appConfig, serverConfig); diff --git a/packages/devextreme-angular/tests/ssr-app/src/app/app.config.ts b/packages/devextreme-angular/tests/ssr-app/src/app/app.config.ts deleted file mode 100644 index 885ea31fd397..000000000000 --- a/packages/devextreme-angular/tests/ssr-app/src/app/app.config.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core'; -import { provideClientHydration, withEventReplay } from '@angular/platform-browser'; - -export const appConfig: ApplicationConfig = { - providers: [ - provideZoneChangeDetection({ eventCoalescing: true }), - provideClientHydration(withEventReplay()), - ] -}; diff --git a/packages/devextreme-angular/tests/ssr-app/src/app/app.routes.server.ts b/packages/devextreme-angular/tests/ssr-app/src/app/app.routes.server.ts deleted file mode 100644 index ffd37b1f233c..000000000000 --- a/packages/devextreme-angular/tests/ssr-app/src/app/app.routes.server.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { RenderMode, ServerRoute } from '@angular/ssr'; - -export const serverRoutes: ServerRoute[] = [ - { - path: '**', - renderMode: RenderMode.Prerender - } -]; diff --git a/packages/devextreme-angular/tests/ssr-app/src/app/app.routes.ts b/packages/devextreme-angular/tests/ssr-app/src/app/app.routes.ts deleted file mode 100644 index dc39edb5f23a..000000000000 --- a/packages/devextreme-angular/tests/ssr-app/src/app/app.routes.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Routes } from '@angular/router'; - -export const routes: Routes = []; diff --git a/packages/devextreme-angular/tests/ssr-app/src/index.html b/packages/devextreme-angular/tests/ssr-app/src/index.html deleted file mode 100644 index 69677162dd8b..000000000000 --- a/packages/devextreme-angular/tests/ssr-app/src/index.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - SsrApp - - - - - - - diff --git a/packages/devextreme-angular/tests/ssr-app/src/main.server.ts b/packages/devextreme-angular/tests/ssr-app/src/main.server.ts deleted file mode 100644 index f678724860de..000000000000 --- a/packages/devextreme-angular/tests/ssr-app/src/main.server.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { BootstrapContext, bootstrapApplication } from '@angular/platform-browser'; -import { AppComponent } from './app/app.component'; -import { config } from './app/app.config.server'; - -const bootstrap = (context: BootstrapContext) => - bootstrapApplication(AppComponent, config, context); - -export default bootstrap; diff --git a/packages/devextreme-angular/tests/ssr-app/src/main.ts b/packages/devextreme-angular/tests/ssr-app/src/main.ts deleted file mode 100644 index 35b00f346331..000000000000 --- a/packages/devextreme-angular/tests/ssr-app/src/main.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { bootstrapApplication } from '@angular/platform-browser'; -import { appConfig } from './app/app.config'; -import { AppComponent } from './app/app.component'; - -bootstrapApplication(AppComponent, appConfig) - .catch((err) => console.error(err)); diff --git a/packages/devextreme-angular/tests/ssr-app/src/server.ts b/packages/devextreme-angular/tests/ssr-app/src/server.ts deleted file mode 100644 index 74925fb0b018..000000000000 --- a/packages/devextreme-angular/tests/ssr-app/src/server.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { APP_BASE_HREF } from '@angular/common'; -import { CommonEngine, isMainModule } from '@angular/ssr/node'; -import express from 'express'; -import { dirname, join, resolve } from 'node:path'; -import { fileURLToPath } from 'node:url'; -import bootstrap from './main.server'; - -const serverDistFolder = dirname(fileURLToPath(import.meta.url)); -const browserDistFolder = resolve(serverDistFolder, '../browser'); -const indexHtml = join(serverDistFolder, 'index.server.html'); - -const app = express(); -const commonEngine = new CommonEngine(); - -// Chrome DevTools probes this endpoint; avoid SSR router errors. -app.get('/.well-known/appspecific/com.chrome.devtools.json', (_req, res) => { - res.status(204).end(); -}); - -/** - * Example Express Rest API endpoints can be defined here. - * Uncomment and define endpoints as necessary. - * - * Example: - * ```ts - * app.get('/api/**', (req, res) => { - * // Handle API request - * }); - * ``` - */ - -/** - * Serve static files from /browser - */ -app.get( - '**', - express.static(browserDistFolder, { - maxAge: '1y', - index: 'index.html' - }), -); - -/** - * Handle all other requests by rendering the Angular application. - */ -app.get('**', (req, res, next) => { - const { protocol, originalUrl, baseUrl, headers } = req; - - commonEngine - .render({ - bootstrap, - documentFilePath: indexHtml, - url: `${protocol}://${headers.host}${originalUrl}`, - publicPath: browserDistFolder, - providers: [{ provide: APP_BASE_HREF, useValue: baseUrl }], - }) - .then((html) => res.send(html)) - .catch((err) => next(err)); -}); - -/** - * Start the server if this module is the main entry point. - * The server listens on the port defined by the `PORT` environment variable, or defaults to 4000. - */ -if (isMainModule(import.meta.url)) { - const port = process.env['PORT'] || 4000; - app.listen(port, () => { - console.log(`Node Express server listening on http://localhost:${port}`); - }); -} - -export default app; diff --git a/packages/devextreme-angular/tests/ssr-app/tsconfig.app.json b/packages/devextreme-angular/tests/ssr-app/tsconfig.app.json deleted file mode 100644 index 9ab8527bfebb..000000000000 --- a/packages/devextreme-angular/tests/ssr-app/tsconfig.app.json +++ /dev/null @@ -1,19 +0,0 @@ -/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ -/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "./out-tsc/app", - "types": [ - "node" - ] - }, - "files": [ - "src/main.ts", - "src/main.server.ts", - "src/server.ts" - ], - "include": [ - "src/**/*.d.ts" - ] -} diff --git a/packages/devextreme-angular/tests/ssr-app/tsconfig.json b/packages/devextreme-angular/tests/ssr-app/tsconfig.json deleted file mode 100644 index 5525117c6744..000000000000 --- a/packages/devextreme-angular/tests/ssr-app/tsconfig.json +++ /dev/null @@ -1,27 +0,0 @@ -/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ -/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ -{ - "compileOnSave": false, - "compilerOptions": { - "outDir": "./dist/out-tsc", - "strict": true, - "noImplicitOverride": true, - "noPropertyAccessFromIndexSignature": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "skipLibCheck": true, - "isolatedModules": true, - "esModuleInterop": true, - "experimentalDecorators": true, - "moduleResolution": "bundler", - "importHelpers": true, - "target": "ES2022", - "module": "ES2022" - }, - "angularCompilerOptions": { - "enableI18nLegacyMessageIdFormat": false, - "strictInjectionParameters": true, - "strictInputAccessModifiers": true, - "strictTemplates": true - } -} diff --git a/packages/devextreme-angular/tests/ssr-app/tsconfig.spec.json b/packages/devextreme-angular/tests/ssr-app/tsconfig.spec.json deleted file mode 100644 index 5fb748d9207a..000000000000 --- a/packages/devextreme-angular/tests/ssr-app/tsconfig.spec.json +++ /dev/null @@ -1,15 +0,0 @@ -/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ -/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "./out-tsc/spec", - "types": [ - "jasmine" - ] - }, - "include": [ - "src/**/*.spec.ts", - "src/**/*.d.ts" - ] -} diff --git a/packages/devextreme-angular/tests/testcafe/.testcaferc.json b/packages/devextreme-angular/tests/testcafe/.testcaferc.json deleted file mode 100644 index f0e15c6cce82..000000000000 --- a/packages/devextreme-angular/tests/testcafe/.testcaferc.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "browsers": [ - "chrome:headless --use-fake-ui-for-media-stream --use-fake-device-for-media-stream --enable-features=SpeechRecognition,WebSpeechAPI" - ], - "src": [ - "../src/ssr-app.test.js" - ] -} diff --git a/packages/devextreme-angular/tests/testcafe/package.json b/packages/devextreme-angular/tests/testcafe/package.json deleted file mode 100644 index d7700af24d66..000000000000 --- a/packages/devextreme-angular/tests/testcafe/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "devextreme-angular-ssr-testcafe", - "private": true, - "type": "module", - "devDependencies": { - "testcafe": "3.7.2" - } -} diff --git a/packages/devextreme-angular/tests/testcafe/run-ssr-testcafe.mjs b/packages/devextreme-angular/tests/testcafe/run-ssr-testcafe.mjs deleted file mode 100644 index 2755232227f8..000000000000 --- a/packages/devextreme-angular/tests/testcafe/run-ssr-testcafe.mjs +++ /dev/null @@ -1,172 +0,0 @@ -import { spawn } from 'node:child_process'; -import http from 'node:http'; -import { dirname, resolve } from 'node:path'; -import { fileURLToPath, pathToFileURL } from 'node:url'; -import fs from 'fs/promises'; -import path from 'path'; - -const __dirname = dirname(fileURLToPath(import.meta.url)); -const repoRoot = resolve(__dirname, '..', '..', '..', '..'); -const ssrAppDir = resolve(repoRoot, 'packages/devextreme-angular/tests/ssr-app'); -const testcafeDir = resolve(repoRoot, 'packages/devextreme-angular/tests/testcafe'); -const testcafeConfig = resolve(__dirname, '.testcaferc.json'); -const port = Number(process.env.SSR_APP_PORT || 4200); -const baseUrl = `http://localhost:${port}/`; - -const addDxComponentsToApp = async () => { - const __filename = fileURLToPath(import.meta.url); - const __dirname = path.dirname(__filename); - - const componentNamesPath = path.resolve(__dirname, '../dist/server/component-names.js'); - const { componentNames } = await import(pathToFileURL(componentNamesPath).href); - - const template = (componentNames) - .filter((_name) => !['diagram', 'scheduler'].includes(_name)) - .map((name) => `\n`) - .join(''); - - const appTemplatePath = path.resolve(__dirname, '../ssr-app/src/app/app.component.html'); - await fs.writeFile(appTemplatePath, template, 'utf8'); -} - -const runCommand = (command, args, options = {}) => new Promise((resolvePromise, rejectPromise) => { - const child = spawn(command, args, { - shell: true, - stdio: 'inherit', - ...options, - }); - - child.on('close', (code) => { - if (code === 0) { - resolvePromise(); - } else { - rejectPromise(new Error(`${command} ${args.join(' ')} failed with code ${code}`)); - } - }); -}); - -const waitForServer = (url, timeoutMs = 60000) => new Promise((resolvePromise, rejectPromise) => { - const timeoutAt = Date.now() + timeoutMs; - - const ping = () => { - http.get(url, (response) => { - response.resume(); - if (response.statusCode && response.statusCode >= 200 && response.statusCode < 500) { - resolvePromise(); - return; - } - response.on('end', scheduleRetry); - }).on('error', scheduleRetry); - }; - - const scheduleRetry = () => { - if (Date.now() > timeoutAt) { - rejectPromise(new Error(`SSR server did not respond at ${url}`)); - return; - } - setTimeout(ping, 500); - }; - - ping(); -}); - -const buildSsrApp = () => runCommand( - 'pnpm', - ['--dir', ssrAppDir, 'run', 'build', '--configuration', 'development'], - { - env: process.env, - }, -); - -const startServer = () => spawn( - 'node', - [resolve(ssrAppDir, 'dist/ssr-app/server/server.mjs')], - { - shell: false, - stdio: 'inherit', - env: { - ...process.env, - PORT: String(port), - }, - }, -); - -let serverProcess; - -const shutdownServer = () => { - if (serverProcess?.pid) { - const pid = serverProcess.pid; - if (process.platform === 'win32') { - spawn('taskkill', ['/PID', String(pid), '/T', '/F'], { shell: true, stdio: 'ignore' }); - } else { - serverProcess.kill('SIGTERM'); - } - serverProcess = undefined; - } -}; - -process.on('SIGINT', () => { - shutdownServer(); - process.exit(130); -}); - -process.on('SIGTERM', () => { - shutdownServer(); - process.exit(143); -}); - -process.on('uncaughtException', (error) => { - console.error(error); - shutdownServer(); - process.exit(1); -}); - -process.on('unhandledRejection', (error) => { - console.error(error); - shutdownServer(); - process.exit(1); -}); - -process.on('exit', () => { - shutdownServer(); -}); - -try { - console.log('Add devextreme-components to app'); - await addDxComponentsToApp(); - console.log('Building ssr-app for SSR'); - await buildSsrApp(); - console.log(`Starting ssr-app SSR server on ${baseUrl}`); - serverProcess = startServer(); - await waitForServer(baseUrl); - console.log('ssr-app is ready, starting TestCafe'); - - await runCommand( - 'pnpm', - [ - '--dir', - testcafeDir, - 'exec', - 'testcafe', - '--config-file', - testcafeConfig, - '--reporter', - 'spec', - '--disable-native-automation', - '--page-load-timeout', - '60000', - '--selector-timeout', - '10000', - '--assertion-timeout', - '10000', - ], - { - env: { - ...process.env, - }, - }, - ); - console.log('TestCafe finished'); -} finally { - shutdownServer(); -} diff --git a/packages/devextreme-angular/vitest.server.config.ts b/packages/devextreme-angular/vitest.server.config.ts deleted file mode 100644 index 4dd478730058..000000000000 --- a/packages/devextreme-angular/vitest.server.config.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { defineConfig } from 'vitest/config'; - -export default defineConfig({ - ssr: { - noExternal: ['devextreme', 'devextreme-angular'], - }, - test: { - environment: 'node', - globals: true, - include: ['tests/dist/server/*.spec.js'], - exclude: [ - '**/node_modules/**', - '**/cypress/**', - '**/.{idea,git,cache,output,temp}/**', - '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build,eslint,prettier}.config.*', - ], - setupFiles: ['tests/src/server/vitest.setup.ts'], - }, -}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index daca93b7a943..011e8672ff61 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,9 +45,6 @@ catalogs: '@angular/router': specifier: ~19.2.19 version: 19.2.19 - '@angular/ssr': - specifier: ~19.2.19 - version: 19.2.22 ng-packagr: specifier: ~19.2.2 version: 19.2.2 @@ -326,7 +323,7 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: catalog:angular - version: 19.2.19(klblgv647bjbaezcoupchzblae) + version: 19.2.19(q73uzzvvaqautkhd5fn7ymtc7q) '@angular/cli': specifier: catalog:angular version: 19.2.19(@types/node@20.11.17)(chokidar@4.0.1) @@ -350,13 +347,13 @@ importers: dependencies: '@angular-devkit/build-angular': specifier: ~21.1.0 - version: 21.1.5(smriwfh52ovpi6l2nbhygrfcai) + version: 21.1.5(3dkepsjg2eq2qcrysfmce3ermm) '@angular/animations': specifier: ~21.1.0 version: 21.1.6(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/cli': specifier: ~21.1.5 - version: 21.1.5(@types/node@18.19.130)(chokidar@5.0.0) + version: 21.1.5(@types/node@20.12.8)(chokidar@5.0.0) '@angular/common': specifier: ~21.1.0 version: 21.1.6(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) @@ -717,7 +714,7 @@ importers: version: 1.1.4 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)) + version: 29.7.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) jest-environment-node: specifier: 29.7.0 version: 29.7.0 @@ -768,7 +765,7 @@ importers: version: 4.0.0 ts-node: specifier: 10.9.2 - version: 10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3) + version: 10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3) vue-eslint-parser: specifier: 'catalog:' version: 10.0.0(eslint@9.39.2(jiti@2.6.1)) @@ -1255,10 +1252,10 @@ importers: devDependencies: '@analogjs/vite-plugin-angular': specifier: 1.22.5 - version: 1.22.5(@angular-devkit/build-angular@19.2.19(arqfj4db6npl4xat2lhz6uulvm))(@angular/build@19.2.19(f4gy5tpc4stoud3foq2fj264kq)) + version: 1.22.5(@angular-devkit/build-angular@19.2.19(2oqflqmsb5vivclh332finvb4a))(@angular/build@19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(@angular/compiler@19.2.19)(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@types/node@20.14.5)(chokidar@4.0.1)(jiti@2.6.1)(karma@6.4.4)(less@4.4.2)(lightningcss@1.30.2)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(tslib@2.6.3)(typescript@5.8.3))(postcss@8.5.6)(sass-embedded@1.97.1)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.1)) '@angular-devkit/build-angular': specifier: catalog:angular - version: 19.2.19(arqfj4db6npl4xat2lhz6uulvm) + version: 19.2.19(2oqflqmsb5vivclh332finvb4a) '@angular/cli': specifier: catalog:angular version: 19.2.19(@types/node@20.14.5)(chokidar@4.0.1) @@ -1376,25 +1373,25 @@ importers: version: 7.28.6(@babel/core@7.28.6) '@devextreme-generator/angular': specifier: 3.0.12 - version: 3.0.12(zucp2mqrjepf7anjfge3a3eetq) + version: 3.0.12(wqcgvevbyusbjfwzjpj634rvom) '@devextreme-generator/build-helpers': specifier: 3.0.12 - version: 3.0.12(6zxdvlwvzr7qylaiaitsyoimja) + version: 3.0.12(5tfktok6byrukgqkit3c44gmkm) '@devextreme-generator/core': specifier: 3.0.12 - version: 3.0.12(zucp2mqrjepf7anjfge3a3eetq) + version: 3.0.12(wqcgvevbyusbjfwzjpj634rvom) '@devextreme-generator/declarations': specifier: 3.0.12 version: 3.0.12 '@devextreme-generator/inferno': specifier: 3.0.12 - version: 3.0.12(zucp2mqrjepf7anjfge3a3eetq) + version: 3.0.12(wqcgvevbyusbjfwzjpj634rvom) '@devextreme-generator/react': specifier: 3.0.12 - version: 3.0.12(zucp2mqrjepf7anjfge3a3eetq) + version: 3.0.12(wqcgvevbyusbjfwzjpj634rvom) '@devextreme-generator/vue': specifier: 3.0.12 - version: 3.0.12(zucp2mqrjepf7anjfge3a3eetq) + version: 3.0.12(wqcgvevbyusbjfwzjpj634rvom) '@eslint-stylistic/metadata': specifier: 'catalog:' version: 2.13.0 @@ -1505,7 +1502,7 @@ importers: version: 18.0.0(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) eslint-config-devextreme: specifier: 'catalog:' - version: 1.1.9(ew2ifb6druv6usnx5jl63dqcme) + version: 1.1.9(6omxhflejertg6royplc5nvzey) eslint-migration-utils: specifier: workspace:* version: link:../eslint-migration-utils @@ -1517,7 +1514,7 @@ importers: version: 2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-jest: specifier: 29.0.1 - version: 29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)))(typescript@4.9.5) + version: 29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)))(typescript@4.9.5) eslint-plugin-jest-formatting: specifier: 3.1.0 version: 3.1.0(eslint@9.39.2(jiti@2.6.1)) @@ -1772,7 +1769,7 @@ importers: version: 2.0.5 ts-jest: specifier: 29.1.2 - version: 29.1.2(@babel/core@7.28.6)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.6))(jest@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)))(typescript@4.9.5) + version: 29.1.2(@babel/core@7.28.6)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.6))(jest@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)))(typescript@4.9.5) tsc-alias: specifier: 1.8.16 version: 1.8.16 @@ -1889,9 +1886,6 @@ importers: devextreme-metadata: specifier: workspace:* version: link:../devextreme-metadata - domino: - specifier: ^2.1.6 - version: 2.1.6 eslint: specifier: 'catalog:' version: 9.39.2(jiti@2.6.1) @@ -1946,9 +1940,6 @@ importers: typescript: specifier: catalog:angular version: 5.5.4 - vitest: - specifier: ^3.0.0 - version: 3.2.4(@types/debug@4.1.12)(@types/node@20.11.17)(jiti@2.6.1)(jsdom@20.0.3)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1) webpack: specifier: 5.105.0 version: 5.105.0(@swc/core@1.15.3) @@ -1960,73 +1951,6 @@ importers: version: 0.15.1 publishDirectory: npm/dist - packages/devextreme-angular/tests/ssr-app: - dependencies: - '@angular/common': - specifier: catalog:angular - version: 19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/compiler': - specifier: catalog:angular - version: 19.2.19 - '@angular/core': - specifier: catalog:angular - version: 19.2.19(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/forms': - specifier: catalog:angular - version: 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/platform-browser': - specifier: catalog:angular - version: 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)) - '@angular/platform-browser-dynamic': - specifier: catalog:angular - version: 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))) - '@angular/platform-server': - specifier: catalog:angular - version: 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/router': - specifier: catalog:angular - version: 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/ssr': - specifier: catalog:angular - version: 19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)) - devextreme: - specifier: workspace:* - version: link:../../../devextreme/artifacts/npm/devextreme - devextreme-angular: - specifier: workspace:* - version: link:../../npm/dist - express: - specifier: ^4.18.2 - version: 4.22.1 - rxjs: - specifier: ~7.8.0 - version: 7.8.2 - tslib: - specifier: ^2.3.0 - version: 2.6.3 - zone.js: - specifier: catalog:angular - version: 0.15.1 - devDependencies: - '@angular-devkit/build-angular': - specifier: catalog:angular - version: 19.2.19(yqad35dkuarvhl4iyrg2j7hvfa) - '@angular/cli': - specifier: catalog:angular - version: 19.2.19(@types/node@18.19.130)(chokidar@4.0.1) - '@angular/compiler-cli': - specifier: catalog:angular - version: 19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4) - '@types/express': - specifier: ^4.17.17 - version: 4.17.25 - '@types/node': - specifier: ^18.18.0 - version: 18.19.130 - typescript: - specifier: catalog:angular - version: 5.5.4 - packages/devextreme-metadata: devDependencies: '@types/node': @@ -2910,17 +2834,6 @@ packages: '@angular/platform-browser': 19.2.19 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ssr@19.2.22': - resolution: {integrity: sha512-dqj5sHI7Sl/B6SvUsMp0lnfDbm9ZOUxnSIh/a4F78kkHmyfOyXHdsUj0yDAYQBkzMyuChI0JU7GaM6oDYXNzqQ==} - peerDependencies: - '@angular/common': ^19.0.0 || ^19.2.0-next.0 - '@angular/core': ^19.0.0 || ^19.2.0-next.0 - '@angular/platform-server': ^19.0.0 || ^19.2.0-next.0 - '@angular/router': ^19.0.0 || ^19.2.0-next.0 - peerDependenciesMeta: - '@angular/platform-server': - optional: true - '@aspnet/signalr@1.0.27': resolution: {integrity: sha512-utZvBF9snjdwIBpvcFa6htqFTVaTN50QIZUoiznKpYSZImew1a1Ci7VYmK8HODqwRqUtj0o5/xR1nzt8xex5sA==} deprecated: This package is no longer supported. Consider using @microsoft/signalr. @@ -7241,12 +7154,6 @@ packages: '@vitest/pretty-format@3.2.4': resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} - '@vitest/runner@3.2.4': - resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} - - '@vitest/snapshot@3.2.4': - resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} - '@vitest/spy@3.2.4': resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} @@ -8563,10 +8470,6 @@ packages: resolution: {integrity: sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==} engines: {node: '>=6.0.0'} - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - cacache@19.0.1: resolution: {integrity: sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==} engines: {node: ^18.17.0 || >=20.5.0} @@ -9829,9 +9732,6 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - domino@2.1.6: - resolution: {integrity: sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==} - dompurify@3.3.1: resolution: {integrity: sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==} @@ -10749,10 +10649,6 @@ packages: resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} engines: {node: '>=0.10.0'} - expect-type@1.3.0: - resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} - engines: {node: '>=12.0.0'} - expect@29.7.0: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -14933,9 +14829,6 @@ packages: resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} engines: {node: '>=18'} - pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} @@ -16506,9 +16399,6 @@ packages: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} - siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -16718,9 +16608,6 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} - stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - stackblur-canvas@2.7.0: resolution: {integrity: sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==} engines: {node: '>=0.1.14'} @@ -16748,9 +16635,6 @@ packages: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} - std-env@3.10.0: - resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} - stdin-discarder@0.2.2: resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} engines: {node: '>=18'} @@ -16945,9 +16829,6 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - strip-literal@3.1.0: - resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} - style-loader@3.3.4: resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} engines: {node: '>= 12.13.0'} @@ -17343,20 +17224,10 @@ packages: tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - tinybench@2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - - tinyexec@0.3.2: - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} - tinypool@1.1.1: - resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} - engines: {node: ^18.0.0 || >=20.0.0} - tinyrainbow@2.0.0: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} @@ -18112,11 +17983,6 @@ packages: resolution: {integrity: sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==} engines: {node: '>=10.13.0'} - vite-node@3.2.4: - resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - vite@5.4.21: resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} engines: {node: ^18.0.0 || >=20.0.0} @@ -18228,34 +18094,6 @@ packages: yaml: optional: true - vitest@3.2.4: - resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/debug': ^4.1.12 - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.2.4 - '@vitest/ui': 3.2.4 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/debug': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - vm-browserify@1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} @@ -18623,11 +18461,6 @@ packages: engines: {node: ^20.17.0 || >=22.9.0} hasBin: true - why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - engines: {node: '>=8'} - hasBin: true - wildcard@2.0.1: resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} @@ -18965,13 +18798,13 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@analogjs/vite-plugin-angular@1.22.5(@angular-devkit/build-angular@19.2.19(arqfj4db6npl4xat2lhz6uulvm))(@angular/build@19.2.19(f4gy5tpc4stoud3foq2fj264kq))': + '@analogjs/vite-plugin-angular@1.22.5(@angular-devkit/build-angular@19.2.19(2oqflqmsb5vivclh332finvb4a))(@angular/build@19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(@angular/compiler@19.2.19)(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@types/node@20.14.5)(chokidar@4.0.1)(jiti@2.6.1)(karma@6.4.4)(less@4.4.2)(lightningcss@1.30.2)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(tslib@2.6.3)(typescript@5.8.3))(postcss@8.5.6)(sass-embedded@1.97.1)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.1))': dependencies: ts-morph: 21.0.1 vfile: 6.0.3 optionalDependencies: - '@angular-devkit/build-angular': 19.2.19(arqfj4db6npl4xat2lhz6uulvm) - '@angular/build': 19.2.19(f4gy5tpc4stoud3foq2fj264kq) + '@angular-devkit/build-angular': 19.2.19(2oqflqmsb5vivclh332finvb4a) + '@angular/build': 19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(@angular/compiler@19.2.19)(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@types/node@20.14.5)(chokidar@4.0.1)(jiti@2.6.1)(karma@6.4.4)(less@4.4.2)(lightningcss@1.30.2)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(tslib@2.6.3)(typescript@5.8.3))(postcss@8.5.6)(sass-embedded@1.97.1)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.1) '@angular-devkit/architect@0.1902.19(chokidar@4.0.1)': dependencies: @@ -18987,13 +18820,13 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@19.2.19(arqfj4db6npl4xat2lhz6uulvm)': + '@angular-devkit/build-angular@19.2.19(2oqflqmsb5vivclh332finvb4a)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) - '@angular-devkit/build-webpack': 0.1902.19(chokidar@4.0.1)(webpack-dev-server@5.2.2(webpack@5.98.0(@swc/core@1.15.3)))(webpack@5.98.0(@swc/core@1.15.3)) + '@angular-devkit/build-webpack': 0.1902.19(chokidar@4.0.1)(webpack-dev-server@5.2.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)))(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) '@angular-devkit/core': 19.2.19(chokidar@4.0.1) - '@angular/build': 19.2.19(jrn573iey4reuuv2r3moekrpty) + '@angular/build': 19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(@angular/compiler@19.2.19)(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@types/node@20.14.5)(chokidar@4.0.1)(jiti@2.6.1)(karma@6.4.4)(less@4.2.2)(lightningcss@1.30.2)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(tslib@2.6.3)(typescript@5.8.3))(postcss@8.5.2)(sass-embedded@1.97.1)(terser@5.39.0)(typescript@5.8.3)(yaml@2.8.1) '@angular/compiler-cli': 19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3) '@babel/core': 7.26.10 '@babel/generator': 7.26.10 @@ -19009,10 +18842,10 @@ snapshots: '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1)) ansi-colors: 4.1.3 autoprefixer: 10.4.20(postcss@8.5.2) - babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(@swc/core@1.15.3)) + babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) browserslist: 4.28.1 - copy-webpack-plugin: 12.0.2(webpack@5.98.0(@swc/core@1.15.3)) - css-loader: 7.1.2(webpack@5.98.0(@swc/core@1.15.3)) + copy-webpack-plugin: 12.0.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + css-loader: 7.1.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) esbuild-wasm: 0.25.4 fast-glob: 3.3.3 http-proxy-middleware: 3.0.5 @@ -19020,10 +18853,10 @@ snapshots: jsonc-parser: 3.3.1 karma-source-map-support: 1.4.0 less: 4.2.2 - less-loader: 12.2.0(less@4.2.2)(webpack@5.98.0(@swc/core@1.15.3)) - license-webpack-plugin: 4.0.2(webpack@5.98.0(@swc/core@1.15.3)) + less-loader: 12.2.0(less@4.2.2)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + license-webpack-plugin: 4.0.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) loader-utils: 3.3.1 - mini-css-extract-plugin: 2.9.2(webpack@5.98.0(@swc/core@1.15.3)) + mini-css-extract-plugin: 2.9.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) open: 10.1.0 ora: 5.4.1 picomatch: 4.0.2 @@ -19033,22 +18866,21 @@ snapshots: resolve-url-loader: 5.0.0 rxjs: 7.8.1 sass: 1.85.0 - sass-loader: 16.0.5(sass-embedded@1.97.1)(sass@1.85.0)(webpack@5.98.0(@swc/core@1.15.3)) + sass-loader: 16.0.5(sass-embedded@1.97.1)(sass@1.85.0)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) semver: 7.7.1 - source-map-loader: 5.0.0(webpack@5.98.0(@swc/core@1.15.3)) + source-map-loader: 5.0.0(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) source-map-support: 0.5.21 terser: 5.39.0 tree-kill: 1.2.2 tslib: 2.8.1 typescript: 5.8.3 webpack: 5.98.0(@swc/core@1.15.3)(esbuild@0.25.4) - webpack-dev-middleware: 7.4.2(webpack@5.98.0(@swc/core@1.15.3)) - webpack-dev-server: 5.2.2(webpack@5.98.0(@swc/core@1.15.3)) + webpack-dev-middleware: 7.4.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + webpack-dev-server: 5.2.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) webpack-merge: 6.0.1 webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.3(webpack@5.105.2(@swc/core@1.15.3)))(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) optionalDependencies: '@angular/platform-server': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) - '@angular/ssr': 19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1)) esbuild: 0.25.4 jest: 29.7.0(@types/node@20.14.5)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) jest-environment-jsdom: 29.7.0 @@ -19077,13 +18909,13 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-angular@19.2.19(klblgv647bjbaezcoupchzblae)': + '@angular-devkit/build-angular@19.2.19(q73uzzvvaqautkhd5fn7ymtc7q)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) - '@angular-devkit/build-webpack': 0.1902.19(chokidar@4.0.1)(webpack-dev-server@5.2.2(webpack@5.98.0(@swc/core@1.15.3)))(webpack@5.98.0(@swc/core@1.15.3)) + '@angular-devkit/build-webpack': 0.1902.19(chokidar@4.0.1)(webpack-dev-server@5.2.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)))(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) '@angular-devkit/core': 19.2.19(chokidar@4.0.1) - '@angular/build': 19.2.19(bjmrlgrljm32ej3rqdhidgl2qe) + '@angular/build': 19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(@angular/compiler@19.2.19)(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(@types/node@20.11.17)(chokidar@4.0.1)(jiti@2.6.1)(karma@6.4.4)(less@4.2.2)(lightningcss@1.30.2)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(tslib@2.6.3)(typescript@5.5.4))(postcss@8.5.2)(sass-embedded@1.97.1)(terser@5.39.0)(typescript@5.5.4)(yaml@2.8.1) '@angular/compiler-cli': 19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4) '@babel/core': 7.26.10 '@babel/generator': 7.26.10 @@ -19095,14 +18927,14 @@ snapshots: '@babel/preset-env': 7.26.9(@babel/core@7.26.10) '@babel/runtime': 7.26.10 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3)) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@7.3.0(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1)) + '@ngtools/webpack': 19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1)) ansi-colors: 4.1.3 autoprefixer: 10.4.20(postcss@8.5.2) - babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(@swc/core@1.15.3)) + babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) browserslist: 4.28.1 - copy-webpack-plugin: 12.0.2(webpack@5.98.0(@swc/core@1.15.3)) - css-loader: 7.1.2(webpack@5.98.0(@swc/core@1.15.3)) + copy-webpack-plugin: 12.0.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + css-loader: 7.1.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) esbuild-wasm: 0.25.4 fast-glob: 3.3.3 http-proxy-middleware: 3.0.5 @@ -19110,35 +18942,34 @@ snapshots: jsonc-parser: 3.3.1 karma-source-map-support: 1.4.0 less: 4.2.2 - less-loader: 12.2.0(less@4.2.2)(webpack@5.98.0(@swc/core@1.15.3)) - license-webpack-plugin: 4.0.2(webpack@5.98.0(@swc/core@1.15.3)) + less-loader: 12.2.0(less@4.2.2)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + license-webpack-plugin: 4.0.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) loader-utils: 3.3.1 - mini-css-extract-plugin: 2.9.2(webpack@5.98.0(@swc/core@1.15.3)) + mini-css-extract-plugin: 2.9.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) open: 10.1.0 ora: 5.4.1 picomatch: 4.0.2 piscina: 4.8.0 postcss: 8.5.2 - postcss-loader: 8.1.1(postcss@8.5.2)(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3)) + postcss-loader: 8.1.1(postcss@8.5.2)(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) resolve-url-loader: 5.0.0 rxjs: 7.8.1 sass: 1.85.0 - sass-loader: 16.0.5(sass-embedded@1.97.1)(sass@1.85.0)(webpack@5.98.0(@swc/core@1.15.3)) + sass-loader: 16.0.5(sass-embedded@1.97.1)(sass@1.85.0)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) semver: 7.7.1 - source-map-loader: 5.0.0(webpack@5.98.0(@swc/core@1.15.3)) + source-map-loader: 5.0.0(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) source-map-support: 0.5.21 terser: 5.39.0 tree-kill: 1.2.2 tslib: 2.8.1 typescript: 5.5.4 webpack: 5.98.0(@swc/core@1.15.3)(esbuild@0.25.4) - webpack-dev-middleware: 7.4.2(webpack@5.98.0(@swc/core@1.15.3)) - webpack-dev-server: 5.2.2(webpack@5.98.0(@swc/core@1.15.3)) + webpack-dev-middleware: 7.4.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + webpack-dev-server: 5.2.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) webpack-merge: 6.0.1 - webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.3(webpack@5.105.2(@swc/core@1.15.3)))(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) + webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.3(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)))(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) optionalDependencies: '@angular/platform-server': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/ssr': 19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)) esbuild: 0.25.4 jest: 29.7.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)) jest-environment-jsdom: 29.7.0 @@ -19167,103 +18998,13 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-angular@19.2.19(yqad35dkuarvhl4iyrg2j7hvfa)': - dependencies: - '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) - '@angular-devkit/build-webpack': 0.1902.19(chokidar@4.0.1)(webpack-dev-server@5.2.2(webpack@5.98.0(@swc/core@1.15.3)))(webpack@5.98.0(@swc/core@1.15.3)) - '@angular-devkit/core': 19.2.19(chokidar@4.0.1) - '@angular/build': 19.2.19(vryjvcyhhlfuztvcxdmh2rux4u) - '@angular/compiler-cli': 19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4) - '@babel/core': 7.26.10 - '@babel/generator': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.10) - '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-runtime': 7.26.10(@babel/core@7.26.10) - '@babel/preset-env': 7.26.9(@babel/core@7.26.10) - '@babel/runtime': 7.26.10 - '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3)) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.4.1(@types/node@18.19.130)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1)) - ansi-colors: 4.1.3 - autoprefixer: 10.4.20(postcss@8.5.2) - babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(@swc/core@1.15.3)) - browserslist: 4.28.1 - copy-webpack-plugin: 12.0.2(webpack@5.98.0(@swc/core@1.15.3)) - css-loader: 7.1.2(webpack@5.98.0(@swc/core@1.15.3)) - esbuild-wasm: 0.25.4 - fast-glob: 3.3.3 - http-proxy-middleware: 3.0.5 - istanbul-lib-instrument: 6.0.3 - jsonc-parser: 3.3.1 - karma-source-map-support: 1.4.0 - less: 4.2.2 - less-loader: 12.2.0(less@4.2.2)(webpack@5.98.0(@swc/core@1.15.3)) - license-webpack-plugin: 4.0.2(webpack@5.98.0(@swc/core@1.15.3)) - loader-utils: 3.3.1 - mini-css-extract-plugin: 2.9.2(webpack@5.98.0(@swc/core@1.15.3)) - open: 10.1.0 - ora: 5.4.1 - picomatch: 4.0.2 - piscina: 4.8.0 - postcss: 8.5.2 - postcss-loader: 8.1.1(postcss@8.5.2)(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3)) - resolve-url-loader: 5.0.0 - rxjs: 7.8.1 - sass: 1.85.0 - sass-loader: 16.0.5(sass-embedded@1.97.1)(sass@1.85.0)(webpack@5.98.0(@swc/core@1.15.3)) - semver: 7.7.1 - source-map-loader: 5.0.0(webpack@5.98.0(@swc/core@1.15.3)) - source-map-support: 0.5.21 - terser: 5.39.0 - tree-kill: 1.2.2 - tslib: 2.8.1 - typescript: 5.5.4 - webpack: 5.98.0(@swc/core@1.15.3)(esbuild@0.25.4) - webpack-dev-middleware: 7.4.2(webpack@5.98.0(@swc/core@1.15.3)) - webpack-dev-server: 5.2.2(webpack@5.98.0(@swc/core@1.15.3)) - webpack-merge: 6.0.1 - webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.3(webpack@5.98.0(@swc/core@1.15.3)))(webpack@5.98.0(@swc/core@1.15.3)) - optionalDependencies: - '@angular/platform-server': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/ssr': 19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)) - esbuild: 0.25.4 - jest: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) - jest-environment-jsdom: 29.7.0 - karma: 6.4.4 - ng-packagr: 19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(tslib@2.6.3)(typescript@5.5.4) - transitivePeerDependencies: - - '@angular/compiler' - - '@rspack/core' - - '@swc/core' - - '@types/node' - - bufferutil - - chokidar - - debug - - html-webpack-plugin - - jiti - - lightningcss - - node-sass - - sass-embedded - - stylus - - sugarss - - supports-color - - tsx - - uglify-js - - utf-8-validate - - vite - - webpack-cli - - yaml - - '@angular-devkit/build-angular@21.1.5(smriwfh52ovpi6l2nbhygrfcai)': + '@angular-devkit/build-angular@21.1.5(3dkepsjg2eq2qcrysfmce3ermm)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2101.5(chokidar@5.0.0) '@angular-devkit/build-webpack': 0.2101.5(chokidar@5.0.0)(webpack-dev-server@5.2.2(webpack@5.105.0(@swc/core@1.15.3)(esbuild@0.27.2)))(webpack@5.105.0(@swc/core@1.15.3)(esbuild@0.27.2)) '@angular-devkit/core': 21.1.5(chokidar@5.0.0) - '@angular/build': 21.1.5(iftqimmc47rrfw3clyws6s2cqu) + '@angular/build': 21.1.5(dw74beal2ssqaj6424muef3wmm) '@angular/compiler-cli': 21.1.6(@angular/compiler@21.1.6)(typescript@5.9.3) '@babel/core': 7.28.5 '@babel/generator': 7.28.5 @@ -19320,7 +19061,7 @@ snapshots: '@angular/platform-browser': 21.1.6(@angular/animations@21.1.6(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.1.6(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': 21.1.6(@angular/common@21.1.6(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@21.1.6)(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.1.6(@angular/animations@21.1.6(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.1.6(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) esbuild: 0.27.2 - jest: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)) + jest: 29.7.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) karma: 6.4.4 transitivePeerDependencies: - '@angular/compiler' @@ -19345,12 +19086,12 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.1902.19(chokidar@4.0.1)(webpack-dev-server@5.2.2(webpack@5.98.0(@swc/core@1.15.3)))(webpack@5.98.0(@swc/core@1.15.3))': + '@angular-devkit/build-webpack@0.1902.19(chokidar@4.0.1)(webpack-dev-server@5.2.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)))(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4))': dependencies: '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) rxjs: 7.8.1 webpack: 5.98.0(@swc/core@1.15.3)(esbuild@0.25.4) - webpack-dev-server: 5.2.2(webpack@5.98.0(@swc/core@1.15.3)) + webpack-dev-server: 5.2.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) transitivePeerDependencies: - chokidar @@ -19429,7 +19170,7 @@ snapshots: '@angular/core': 21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.6.3 - '@angular/build@19.2.19(bjmrlgrljm32ej3rqdhidgl2qe)': + '@angular/build@19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(@angular/compiler@19.2.19)(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(@types/node@20.11.17)(chokidar@4.0.1)(jiti@2.6.1)(karma@6.4.4)(less@4.2.2)(lightningcss@1.30.2)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(tslib@2.6.3)(typescript@5.5.4))(postcss@8.5.2)(sass-embedded@1.97.1)(terser@5.39.0)(typescript@5.5.4)(yaml@2.8.1)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) @@ -19462,7 +19203,6 @@ snapshots: watchpack: 2.4.2 optionalDependencies: '@angular/platform-server': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/ssr': 19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)) karma: 6.4.4 less: 4.2.2 lmdb: 3.2.6 @@ -19481,7 +19221,7 @@ snapshots: - tsx - yaml - '@angular/build@19.2.19(f4gy5tpc4stoud3foq2fj264kq)': + '@angular/build@19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(@angular/compiler@19.2.19)(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@types/node@20.14.5)(chokidar@4.0.1)(jiti@2.6.1)(karma@6.4.4)(less@4.2.2)(lightningcss@1.30.2)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(tslib@2.6.3)(typescript@5.8.3))(postcss@8.5.2)(sass-embedded@1.97.1)(terser@5.39.0)(typescript@5.8.3)(yaml@2.8.1)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) @@ -19510,16 +19250,15 @@ snapshots: semver: 7.7.1 source-map-support: 0.5.21 typescript: 5.8.3 - vite: 6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.46.0)(yaml@2.8.1) + vite: 6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1) watchpack: 2.4.2 optionalDependencies: '@angular/platform-server': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) - '@angular/ssr': 19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1)) karma: 6.4.4 - less: 4.4.2 + less: 4.2.2 lmdb: 3.2.6 ng-packagr: 19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(tslib@2.6.3)(typescript@5.8.3) - postcss: 8.5.6 + postcss: 8.5.2 transitivePeerDependencies: - '@types/node' - chokidar @@ -19532,9 +19271,8 @@ snapshots: - terser - tsx - yaml - optional: true - '@angular/build@19.2.19(jrn573iey4reuuv2r3moekrpty)': + '@angular/build@19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(@angular/compiler@19.2.19)(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@types/node@20.14.5)(chokidar@4.0.1)(jiti@2.6.1)(karma@6.4.4)(less@4.4.2)(lightningcss@1.30.2)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(tslib@2.6.3)(typescript@5.8.3))(postcss@8.5.6)(sass-embedded@1.97.1)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.1)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) @@ -19563,68 +19301,15 @@ snapshots: semver: 7.7.1 source-map-support: 0.5.21 typescript: 5.8.3 - vite: 6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1) + vite: 6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.46.0)(yaml@2.8.1) watchpack: 2.4.2 optionalDependencies: '@angular/platform-server': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) - '@angular/ssr': 19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1)) karma: 6.4.4 - less: 4.2.2 + less: 4.4.2 lmdb: 3.2.6 ng-packagr: 19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.8.3))(tslib@2.6.3)(typescript@5.8.3) - postcss: 8.5.2 - transitivePeerDependencies: - - '@types/node' - - chokidar - - jiti - - lightningcss - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - - '@angular/build@19.2.19(vryjvcyhhlfuztvcxdmh2rux4u)': - dependencies: - '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) - '@angular/compiler': 19.2.19 - '@angular/compiler-cli': 19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4) - '@babel/core': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) - '@inquirer/confirm': 5.1.6(@types/node@18.19.130) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.4.1(@types/node@18.19.130)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1)) - beasties: 0.3.2 - browserslist: 4.28.1 - esbuild: 0.25.4 - fast-glob: 3.3.3 - https-proxy-agent: 7.0.6 - istanbul-lib-instrument: 6.0.3 - listr2: 8.2.5 - magic-string: 0.30.17 - mrmime: 2.0.1 - parse5-html-rewriting-stream: 7.0.0 - picomatch: 4.0.2 - piscina: 4.8.0 - rollup: 4.59.0 - sass: 1.85.0 - semver: 7.7.1 - source-map-support: 0.5.21 - typescript: 5.5.4 - vite: 6.4.1(@types/node@18.19.130)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1) - watchpack: 2.4.2 - optionalDependencies: - '@angular/platform-server': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/ssr': 19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)) - karma: 6.4.4 - less: 4.2.2 - lmdb: 3.2.6 - ng-packagr: 19.2.2(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(tslib@2.6.3)(typescript@5.5.4) - postcss: 8.5.2 + postcss: 8.5.6 transitivePeerDependencies: - '@types/node' - chokidar @@ -19637,8 +19322,9 @@ snapshots: - terser - tsx - yaml + optional: true - '@angular/build@21.1.5(iftqimmc47rrfw3clyws6s2cqu)': + '@angular/build@21.1.5(dw74beal2ssqaj6424muef3wmm)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2101.5(chokidar@5.0.0) @@ -19647,8 +19333,8 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@inquirer/confirm': 5.1.21(@types/node@18.19.130) - '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.3.0(@types/node@18.19.130)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1)) + '@inquirer/confirm': 5.1.21(@types/node@20.12.8) + '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.3.0(@types/node@20.12.8)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1)) beasties: 0.3.5 browserslist: 4.28.1 esbuild: 0.27.2 @@ -19669,7 +19355,7 @@ snapshots: tslib: 2.8.1 typescript: 5.9.3 undici: 7.20.0 - vite: 7.3.0(@types/node@18.19.130)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1) + vite: 7.3.0(@types/node@20.12.8)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1) watchpack: 2.5.0 optionalDependencies: '@angular/core': 21.1.6(@angular/compiler@21.1.6)(rxjs@7.8.2)(zone.js@0.15.1) @@ -19692,30 +19378,6 @@ snapshots: - tsx - yaml - '@angular/cli@19.2.19(@types/node@18.19.130)(chokidar@4.0.1)': - dependencies: - '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) - '@angular-devkit/core': 19.2.19(chokidar@4.0.1) - '@angular-devkit/schematics': 19.2.19(chokidar@4.0.1) - '@inquirer/prompts': 7.3.2(@types/node@18.19.130) - '@listr2/prompt-adapter-inquirer': 2.0.18(@inquirer/prompts@7.3.2(@types/node@18.19.130)) - '@schematics/angular': 19.2.19(chokidar@4.0.1) - '@yarnpkg/lockfile': 1.1.0 - ini: 5.0.0 - jsonc-parser: 3.3.1 - listr2: 8.2.5 - npm-package-arg: 12.0.2 - npm-pick-manifest: 10.0.0 - pacote: 20.0.0 - resolve: 1.22.10 - semver: 7.7.1 - symbol-observable: 4.0.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - chokidar - - supports-color - '@angular/cli@19.2.19(@types/node@20.11.17)(chokidar@4.0.1)': dependencies: '@angular-devkit/architect': 0.1902.19(chokidar@4.0.1) @@ -19764,13 +19426,13 @@ snapshots: - chokidar - supports-color - '@angular/cli@21.1.5(@types/node@18.19.130)(chokidar@5.0.0)': + '@angular/cli@21.1.5(@types/node@20.12.8)(chokidar@5.0.0)': dependencies: '@angular-devkit/architect': 0.2101.5(chokidar@5.0.0) '@angular-devkit/core': 21.1.5(chokidar@5.0.0) '@angular-devkit/schematics': 21.1.5(chokidar@5.0.0) - '@inquirer/prompts': 7.10.1(@types/node@18.19.130) - '@listr2/prompt-adapter-inquirer': 3.0.5(@inquirer/prompts@7.10.1(@types/node@18.19.130))(@types/node@18.19.130)(listr2@9.0.5) + '@inquirer/prompts': 7.10.1(@types/node@20.12.8) + '@listr2/prompt-adapter-inquirer': 3.0.5(@inquirer/prompts@7.10.1(@types/node@20.12.8))(@types/node@20.12.8)(listr2@9.0.5) '@modelcontextprotocol/sdk': 1.26.0(zod@4.3.5) '@schematics/angular': 21.1.5(chokidar@5.0.0) '@yarnpkg/lockfile': 1.1.0 @@ -20021,25 +19683,6 @@ snapshots: rxjs: 7.8.2 tslib: 2.6.3 - '@angular/ssr@19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1))': - dependencies: - '@angular/common': 19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) - '@angular/core': 19.2.19(rxjs@7.8.1)(zone.js@0.15.0) - '@angular/router': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) - tslib: 2.6.3 - optionalDependencies: - '@angular/platform-server': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.2.19(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) - optional: true - - '@angular/ssr@19.2.22(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-server@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(@angular/router@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))': - dependencies: - '@angular/common': 19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 19.2.19(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/router': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - tslib: 2.6.3 - optionalDependencies: - '@angular/platform-server': 19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.19)(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.19(@angular/common@19.2.19(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.19(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@aspnet/signalr@1.0.27': {} '@babel/code-frame@7.12.11': @@ -22311,9 +21954,9 @@ snapshots: dependencies: tslib: 2.3.1 - '@devextreme-generator/angular@3.0.12(zucp2mqrjepf7anjfge3a3eetq)': + '@devextreme-generator/angular@3.0.12(wqcgvevbyusbjfwzjpj634rvom)': dependencies: - '@devextreme-generator/core': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) + '@devextreme-generator/core': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - eslint @@ -22328,13 +21971,13 @@ snapshots: - eslint-plugin-spellcheck - supports-color - '@devextreme-generator/build-helpers@3.0.12(6zxdvlwvzr7qylaiaitsyoimja)': + '@devextreme-generator/build-helpers@3.0.12(5tfktok6byrukgqkit3c44gmkm)': dependencies: - '@devextreme-generator/angular': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) - '@devextreme-generator/core': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) - '@devextreme-generator/inferno': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) - '@devextreme-generator/preact': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) - '@devextreme-generator/react': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) + '@devextreme-generator/angular': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) + '@devextreme-generator/core': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) + '@devextreme-generator/inferno': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) + '@devextreme-generator/preact': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) + '@devextreme-generator/react': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) loader-utils: 2.0.4 typescript: 4.3.5 vinyl: 2.2.1 @@ -22357,10 +22000,10 @@ snapshots: - uglify-js - webpack-cli - '@devextreme-generator/core@3.0.12(zucp2mqrjepf7anjfge3a3eetq)': + '@devextreme-generator/core@3.0.12(wqcgvevbyusbjfwzjpj634rvom)': dependencies: code-block-writer: 10.1.1 - eslint-config-devextreme: 0.2.0(zucp2mqrjepf7anjfge3a3eetq) + eslint-config-devextreme: 0.2.0(wqcgvevbyusbjfwzjpj634rvom) prettier: 2.8.8 prettier-eslint: 13.0.0 typescript: 4.3.5 @@ -22383,11 +22026,11 @@ snapshots: react: 17.0.2 react-dom: 17.0.2(react@17.0.2) - '@devextreme-generator/inferno@3.0.12(zucp2mqrjepf7anjfge3a3eetq)': + '@devextreme-generator/inferno@3.0.12(wqcgvevbyusbjfwzjpj634rvom)': dependencies: - '@devextreme-generator/core': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) - '@devextreme-generator/preact': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) - '@devextreme-generator/react': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) + '@devextreme-generator/core': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) + '@devextreme-generator/preact': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) + '@devextreme-generator/react': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - eslint @@ -22402,10 +22045,10 @@ snapshots: - eslint-plugin-spellcheck - supports-color - '@devextreme-generator/preact@3.0.12(zucp2mqrjepf7anjfge3a3eetq)': + '@devextreme-generator/preact@3.0.12(wqcgvevbyusbjfwzjpj634rvom)': dependencies: - '@devextreme-generator/core': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) - '@devextreme-generator/react': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) + '@devextreme-generator/core': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) + '@devextreme-generator/react': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - eslint @@ -22420,9 +22063,9 @@ snapshots: - eslint-plugin-spellcheck - supports-color - '@devextreme-generator/react@3.0.12(zucp2mqrjepf7anjfge3a3eetq)': + '@devextreme-generator/react@3.0.12(wqcgvevbyusbjfwzjpj634rvom)': dependencies: - '@devextreme-generator/core': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) + '@devextreme-generator/core': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - eslint @@ -22437,10 +22080,10 @@ snapshots: - eslint-plugin-spellcheck - supports-color - '@devextreme-generator/vue@3.0.12(zucp2mqrjepf7anjfge3a3eetq)': + '@devextreme-generator/vue@3.0.12(wqcgvevbyusbjfwzjpj634rvom)': dependencies: - '@devextreme-generator/angular': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) - '@devextreme-generator/core': 3.0.12(zucp2mqrjepf7anjfge3a3eetq) + '@devextreme-generator/angular': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) + '@devextreme-generator/core': 3.0.12(wqcgvevbyusbjfwzjpj634rvom) prettier: 2.8.8 transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' @@ -22907,25 +22550,25 @@ snapshots: '@inquirer/ansi@1.0.2': {} - '@inquirer/checkbox@4.3.2(@types/node@18.19.130)': + '@inquirer/checkbox@4.3.2(@types/node@20.11.17)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@18.19.130) + '@inquirer/core': 10.3.2(@types/node@20.11.17) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@18.19.130) + '@inquirer/type': 3.0.10(@types/node@20.11.17) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 18.19.130 + '@types/node': 20.11.17 - '@inquirer/checkbox@4.3.2(@types/node@20.11.17)': + '@inquirer/checkbox@4.3.2(@types/node@20.12.8)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@20.11.17) + '@inquirer/core': 10.3.2(@types/node@20.12.8) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@20.11.17) + '@inquirer/type': 3.0.10(@types/node@20.12.8) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.11.17 + '@types/node': 20.12.8 '@inquirer/checkbox@4.3.2(@types/node@20.14.5)': dependencies: @@ -22937,13 +22580,6 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/confirm@5.1.21(@types/node@18.19.130)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@18.19.130) - '@inquirer/type': 3.0.10(@types/node@18.19.130) - optionalDependencies: - '@types/node': 18.19.130 - '@inquirer/confirm@5.1.21(@types/node@20.11.17)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.11.17) @@ -22951,6 +22587,13 @@ snapshots: optionalDependencies: '@types/node': 20.11.17 + '@inquirer/confirm@5.1.21(@types/node@20.12.8)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@20.12.8) + '@inquirer/type': 3.0.10(@types/node@20.12.8) + optionalDependencies: + '@types/node': 20.12.8 + '@inquirer/confirm@5.1.21(@types/node@20.14.5)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.14.5) @@ -22958,13 +22601,6 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/confirm@5.1.6(@types/node@18.19.130)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@18.19.130) - '@inquirer/type': 3.0.10(@types/node@18.19.130) - optionalDependencies: - '@types/node': 18.19.130 - '@inquirer/confirm@5.1.6(@types/node@20.11.17)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.11.17) @@ -22979,31 +22615,31 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/core@10.3.2(@types/node@18.19.130)': + '@inquirer/core@10.3.2(@types/node@20.11.17)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@18.19.130) + '@inquirer/type': 3.0.10(@types/node@20.11.17) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 18.19.130 + '@types/node': 20.11.17 - '@inquirer/core@10.3.2(@types/node@20.11.17)': + '@inquirer/core@10.3.2(@types/node@20.12.8)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@20.11.17) + '@inquirer/type': 3.0.10(@types/node@20.12.8) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.11.17 + '@types/node': 20.12.8 '@inquirer/core@10.3.2(@types/node@20.14.5)': dependencies: @@ -23018,14 +22654,6 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/editor@4.2.23(@types/node@18.19.130)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@18.19.130) - '@inquirer/external-editor': 1.0.3(@types/node@18.19.130) - '@inquirer/type': 3.0.10(@types/node@18.19.130) - optionalDependencies: - '@types/node': 18.19.130 - '@inquirer/editor@4.2.23(@types/node@20.11.17)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.11.17) @@ -23034,6 +22662,14 @@ snapshots: optionalDependencies: '@types/node': 20.11.17 + '@inquirer/editor@4.2.23(@types/node@20.12.8)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@20.12.8) + '@inquirer/external-editor': 1.0.3(@types/node@20.12.8) + '@inquirer/type': 3.0.10(@types/node@20.12.8) + optionalDependencies: + '@types/node': 20.12.8 + '@inquirer/editor@4.2.23(@types/node@20.14.5)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.14.5) @@ -23042,14 +22678,6 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/expand@4.0.23(@types/node@18.19.130)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@18.19.130) - '@inquirer/type': 3.0.10(@types/node@18.19.130) - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 18.19.130 - '@inquirer/expand@4.0.23(@types/node@20.11.17)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.11.17) @@ -23058,6 +22686,14 @@ snapshots: optionalDependencies: '@types/node': 20.11.17 + '@inquirer/expand@4.0.23(@types/node@20.12.8)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@20.12.8) + '@inquirer/type': 3.0.10(@types/node@20.12.8) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 20.12.8 + '@inquirer/expand@4.0.23(@types/node@20.14.5)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.14.5) @@ -23066,19 +22702,19 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/external-editor@1.0.3(@types/node@18.19.130)': + '@inquirer/external-editor@1.0.3(@types/node@20.11.17)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.1 optionalDependencies: - '@types/node': 18.19.130 + '@types/node': 20.11.17 - '@inquirer/external-editor@1.0.3(@types/node@20.11.17)': + '@inquirer/external-editor@1.0.3(@types/node@20.12.8)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.1 optionalDependencies: - '@types/node': 20.11.17 + '@types/node': 20.12.8 '@inquirer/external-editor@1.0.3(@types/node@20.14.5)': dependencies: @@ -23089,13 +22725,6 @@ snapshots: '@inquirer/figures@1.0.15': {} - '@inquirer/input@4.3.1(@types/node@18.19.130)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@18.19.130) - '@inquirer/type': 3.0.10(@types/node@18.19.130) - optionalDependencies: - '@types/node': 18.19.130 - '@inquirer/input@4.3.1(@types/node@20.11.17)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.11.17) @@ -23103,6 +22732,13 @@ snapshots: optionalDependencies: '@types/node': 20.11.17 + '@inquirer/input@4.3.1(@types/node@20.12.8)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@20.12.8) + '@inquirer/type': 3.0.10(@types/node@20.12.8) + optionalDependencies: + '@types/node': 20.12.8 + '@inquirer/input@4.3.1(@types/node@20.14.5)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.14.5) @@ -23110,13 +22746,6 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/number@3.0.23(@types/node@18.19.130)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@18.19.130) - '@inquirer/type': 3.0.10(@types/node@18.19.130) - optionalDependencies: - '@types/node': 18.19.130 - '@inquirer/number@3.0.23(@types/node@20.11.17)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.11.17) @@ -23124,6 +22753,13 @@ snapshots: optionalDependencies: '@types/node': 20.11.17 + '@inquirer/number@3.0.23(@types/node@20.12.8)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@20.12.8) + '@inquirer/type': 3.0.10(@types/node@20.12.8) + optionalDependencies: + '@types/node': 20.12.8 + '@inquirer/number@3.0.23(@types/node@20.14.5)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.14.5) @@ -23131,14 +22767,6 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/password@4.0.23(@types/node@18.19.130)': - dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@18.19.130) - '@inquirer/type': 3.0.10(@types/node@18.19.130) - optionalDependencies: - '@types/node': 18.19.130 - '@inquirer/password@4.0.23(@types/node@20.11.17)': dependencies: '@inquirer/ansi': 1.0.2 @@ -23147,6 +22775,14 @@ snapshots: optionalDependencies: '@types/node': 20.11.17 + '@inquirer/password@4.0.23(@types/node@20.12.8)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@20.12.8) + '@inquirer/type': 3.0.10(@types/node@20.12.8) + optionalDependencies: + '@types/node': 20.12.8 + '@inquirer/password@4.0.23(@types/node@20.14.5)': dependencies: '@inquirer/ansi': 1.0.2 @@ -23155,35 +22791,20 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/prompts@7.10.1(@types/node@18.19.130)': - dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@18.19.130) - '@inquirer/confirm': 5.1.21(@types/node@18.19.130) - '@inquirer/editor': 4.2.23(@types/node@18.19.130) - '@inquirer/expand': 4.0.23(@types/node@18.19.130) - '@inquirer/input': 4.3.1(@types/node@18.19.130) - '@inquirer/number': 3.0.23(@types/node@18.19.130) - '@inquirer/password': 4.0.23(@types/node@18.19.130) - '@inquirer/rawlist': 4.1.11(@types/node@18.19.130) - '@inquirer/search': 3.2.2(@types/node@18.19.130) - '@inquirer/select': 4.4.2(@types/node@18.19.130) - optionalDependencies: - '@types/node': 18.19.130 - - '@inquirer/prompts@7.3.2(@types/node@18.19.130)': + '@inquirer/prompts@7.10.1(@types/node@20.12.8)': dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@18.19.130) - '@inquirer/confirm': 5.1.21(@types/node@18.19.130) - '@inquirer/editor': 4.2.23(@types/node@18.19.130) - '@inquirer/expand': 4.0.23(@types/node@18.19.130) - '@inquirer/input': 4.3.1(@types/node@18.19.130) - '@inquirer/number': 3.0.23(@types/node@18.19.130) - '@inquirer/password': 4.0.23(@types/node@18.19.130) - '@inquirer/rawlist': 4.1.11(@types/node@18.19.130) - '@inquirer/search': 3.2.2(@types/node@18.19.130) - '@inquirer/select': 4.4.2(@types/node@18.19.130) + '@inquirer/checkbox': 4.3.2(@types/node@20.12.8) + '@inquirer/confirm': 5.1.21(@types/node@20.12.8) + '@inquirer/editor': 4.2.23(@types/node@20.12.8) + '@inquirer/expand': 4.0.23(@types/node@20.12.8) + '@inquirer/input': 4.3.1(@types/node@20.12.8) + '@inquirer/number': 3.0.23(@types/node@20.12.8) + '@inquirer/password': 4.0.23(@types/node@20.12.8) + '@inquirer/rawlist': 4.1.11(@types/node@20.12.8) + '@inquirer/search': 3.2.2(@types/node@20.12.8) + '@inquirer/select': 4.4.2(@types/node@20.12.8) optionalDependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@inquirer/prompts@7.3.2(@types/node@20.11.17)': dependencies: @@ -23215,14 +22836,6 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/rawlist@4.1.11(@types/node@18.19.130)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@18.19.130) - '@inquirer/type': 3.0.10(@types/node@18.19.130) - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 18.19.130 - '@inquirer/rawlist@4.1.11(@types/node@20.11.17)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.11.17) @@ -23231,6 +22844,14 @@ snapshots: optionalDependencies: '@types/node': 20.11.17 + '@inquirer/rawlist@4.1.11(@types/node@20.12.8)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@20.12.8) + '@inquirer/type': 3.0.10(@types/node@20.12.8) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 20.12.8 + '@inquirer/rawlist@4.1.11(@types/node@20.14.5)': dependencies: '@inquirer/core': 10.3.2(@types/node@20.14.5) @@ -23239,23 +22860,23 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/search@3.2.2(@types/node@18.19.130)': + '@inquirer/search@3.2.2(@types/node@20.11.17)': dependencies: - '@inquirer/core': 10.3.2(@types/node@18.19.130) + '@inquirer/core': 10.3.2(@types/node@20.11.17) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@18.19.130) + '@inquirer/type': 3.0.10(@types/node@20.11.17) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 18.19.130 + '@types/node': 20.11.17 - '@inquirer/search@3.2.2(@types/node@20.11.17)': + '@inquirer/search@3.2.2(@types/node@20.12.8)': dependencies: - '@inquirer/core': 10.3.2(@types/node@20.11.17) + '@inquirer/core': 10.3.2(@types/node@20.12.8) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@20.11.17) + '@inquirer/type': 3.0.10(@types/node@20.12.8) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.11.17 + '@types/node': 20.12.8 '@inquirer/search@3.2.2(@types/node@20.14.5)': dependencies: @@ -23266,25 +22887,25 @@ snapshots: optionalDependencies: '@types/node': 20.14.5 - '@inquirer/select@4.4.2(@types/node@18.19.130)': + '@inquirer/select@4.4.2(@types/node@20.11.17)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@18.19.130) + '@inquirer/core': 10.3.2(@types/node@20.11.17) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@18.19.130) + '@inquirer/type': 3.0.10(@types/node@20.11.17) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 18.19.130 + '@types/node': 20.11.17 - '@inquirer/select@4.4.2(@types/node@20.11.17)': + '@inquirer/select@4.4.2(@types/node@20.12.8)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@20.11.17) + '@inquirer/core': 10.3.2(@types/node@20.12.8) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@20.11.17) + '@inquirer/type': 3.0.10(@types/node@20.12.8) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.11.17 + '@types/node': 20.12.8 '@inquirer/select@4.4.2(@types/node@20.14.5)': dependencies: @@ -23300,14 +22921,14 @@ snapshots: dependencies: mute-stream: 1.0.0 - '@inquirer/type@3.0.10(@types/node@18.19.130)': - optionalDependencies: - '@types/node': 18.19.130 - '@inquirer/type@3.0.10(@types/node@20.11.17)': optionalDependencies: '@types/node': 20.11.17 + '@inquirer/type@3.0.10(@types/node@20.12.8)': + optionalDependencies: + '@types/node': 20.12.8 + '@inquirer/type@3.0.10(@types/node@20.14.5)': optionalDependencies: '@types/node': 20.14.5 @@ -23338,7 +22959,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 20.12.8 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -23347,27 +22968,27 @@ snapshots: '@jest/console@30.2.0': dependencies: '@jest/types': 30.2.0 - '@types/node': 18.19.130 + '@types/node': 20.12.8 chalk: 4.1.2 jest-message-util: 30.2.0 jest-util: 30.2.0 slash: 3.0.0 - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0(node-notifier@9.0.1) '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 20.12.8 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -23389,22 +23010,23 @@ snapshots: - babel-plugin-macros - supports-color - ts-node + optional: true - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0(node-notifier@9.0.1) '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 20.12.8 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)) + jest-config: 29.7.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -23426,46 +23048,46 @@ snapshots: - babel-plugin-macros - supports-color - ts-node - optional: true - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3))': + '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5))': dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0(node-notifier@9.0.1) - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@jest/console': 30.2.0 + '@jest/pattern': 30.0.1 + '@jest/reporters': 30.2.0(node-notifier@9.0.1) + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 20.12.8 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 + ci-info: 4.3.0 + exit-x: 0.2.2 graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 + jest-changed-files: 30.2.0 + jest-config: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)) + jest-haste-map: 30.2.0 + jest-message-util: 30.2.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.2.0 + jest-resolve-dependencies: 30.2.0 + jest-runner: 30.2.0 + jest-runtime: 30.2.0 + jest-snapshot: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 + jest-watcher: 30.2.0 micromatch: 4.0.8 - pretty-format: 29.7.0 + pretty-format: 30.2.0 slash: 3.0.0 - strip-ansi: 6.0.1 optionalDependencies: node-notifier: 9.0.1 transitivePeerDependencies: - babel-plugin-macros + - esbuild-register - supports-color - ts-node - '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5))': + '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5))': dependencies: '@jest/console': 30.2.0 '@jest/pattern': 30.0.1 @@ -23473,14 +23095,14 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 18.19.130 + '@types/node': 20.12.8 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 4.3.0 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)) + jest-config: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -23503,7 +23125,7 @@ snapshots: - supports-color - ts-node - '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5))': + '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4))': dependencies: '@jest/console': 30.2.0 '@jest/pattern': 30.0.1 @@ -23511,14 +23133,14 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 18.19.130 + '@types/node': 20.12.8 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 4.3.0 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)) + jest-config: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -23540,8 +23162,9 @@ snapshots: - esbuild-register - supports-color - ts-node + optional: true - '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4))': + '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5))': dependencies: '@jest/console': 30.2.0 '@jest/pattern': 30.0.1 @@ -23549,14 +23172,14 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 18.19.130 + '@types/node': 20.12.8 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 4.3.0 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)) + jest-config: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -23578,7 +23201,6 @@ snapshots: - esbuild-register - supports-color - ts-node - optional: true '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5))': dependencies: @@ -23588,14 +23210,14 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 18.19.130 + '@types/node': 20.12.8 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 4.3.0 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5)) + jest-config: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5)) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -23626,14 +23248,14 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 18.19.130 + '@types/node': 20.12.8 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 4.3.0 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.5.4)) + jest-config: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.5.4)) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -23665,14 +23287,14 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 18.19.130 + '@types/node': 20.12.8 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 4.3.0 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.9.3)) + jest-config: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.9.3)) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -23701,14 +23323,14 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 20.12.8 jest-mock: 29.7.0 '@jest/environment@30.2.0': dependencies: '@jest/fake-timers': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 18.19.130 + '@types/node': 20.12.8 jest-mock: 30.2.0 '@jest/expect-utils@29.7.0': @@ -23737,7 +23359,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 18.19.130 + '@types/node': 20.12.8 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -23746,7 +23368,7 @@ snapshots: dependencies: '@jest/types': 30.2.0 '@sinonjs/fake-timers': 13.0.5 - '@types/node': 18.19.130 + '@types/node': 20.12.8 jest-message-util: 30.2.0 jest-mock: 30.2.0 jest-util: 30.2.0 @@ -23773,7 +23395,7 @@ snapshots: '@jest/pattern@30.0.1': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 jest-regex-util: 30.0.1 '@jest/reporters@29.7.0(node-notifier@9.0.1)': @@ -23784,7 +23406,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.31 - '@types/node': 18.19.130 + '@types/node': 20.12.8 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -23815,7 +23437,7 @@ snapshots: '@jest/transform': 30.2.0 '@jest/types': 30.2.0 '@jridgewell/trace-mapping': 0.3.31 - '@types/node': 18.19.130 + '@types/node': 20.12.8 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit-x: 0.2.2 @@ -23937,7 +23559,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/yargs': 17.0.35 chalk: 4.1.2 @@ -23947,7 +23569,7 @@ snapshots: '@jest/schemas': 30.0.5 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/yargs': 17.0.35 chalk: 4.1.2 @@ -24037,11 +23659,6 @@ snapshots: dependencies: '@lezer/common': 1.2.3 - '@listr2/prompt-adapter-inquirer@2.0.18(@inquirer/prompts@7.3.2(@types/node@18.19.130))': - dependencies: - '@inquirer/prompts': 7.3.2(@types/node@18.19.130) - '@inquirer/type': 1.5.5 - '@listr2/prompt-adapter-inquirer@2.0.18(@inquirer/prompts@7.3.2(@types/node@20.11.17))': dependencies: '@inquirer/prompts': 7.3.2(@types/node@20.11.17) @@ -24052,10 +23669,10 @@ snapshots: '@inquirer/prompts': 7.3.2(@types/node@20.14.5) '@inquirer/type': 1.5.5 - '@listr2/prompt-adapter-inquirer@3.0.5(@inquirer/prompts@7.10.1(@types/node@18.19.130))(@types/node@18.19.130)(listr2@9.0.5)': + '@listr2/prompt-adapter-inquirer@3.0.5(@inquirer/prompts@7.10.1(@types/node@20.12.8))(@types/node@20.12.8)(listr2@9.0.5)': dependencies: - '@inquirer/prompts': 7.10.1(@types/node@18.19.130) - '@inquirer/type': 3.0.10(@types/node@18.19.130) + '@inquirer/prompts': 7.10.1(@types/node@20.12.8) + '@inquirer/type': 3.0.10(@types/node@20.12.8) listr2: 9.0.5 transitivePeerDependencies: - '@types/node' @@ -24261,7 +23878,7 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@ngtools/webpack@19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3))': + '@ngtools/webpack@19.2.19(@angular/compiler-cli@19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4))(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4))': dependencies: '@angular/compiler-cli': 19.2.19(@angular/compiler@19.2.19)(typescript@5.5.4) typescript: 5.5.4 @@ -26000,11 +25617,11 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/bonjour@3.5.13': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/chai@5.2.3': dependencies: @@ -26013,27 +25630,27 @@ snapshots: '@types/cheerio@0.22.35': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/clean-css@4.2.11': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 source-map: 0.6.1 '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 5.0.1 - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/connect@3.4.38': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/cookie@0.4.1': {} '@types/cors@2.8.17': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/debug@4.1.12': dependencies: @@ -26084,14 +25701,14 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 '@types/express-serve-static-core@5.0.1': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -26117,16 +25734,16 @@ snapshots: '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/hast@2.3.10': dependencies: @@ -26138,7 +25755,7 @@ snapshots: '@types/http-proxy@1.17.15': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/istanbul-lib-coverage@2.0.6': {} @@ -26165,7 +25782,7 @@ snapshots: '@types/jsdom@20.0.1': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/tough-cookie': 4.0.5 parse5: 7.2.1 @@ -26175,7 +25792,7 @@ snapshots: '@types/jsonfile@6.1.4': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/lodash@4.17.23': {} @@ -26197,12 +25814,12 @@ snapshots: '@types/node-fetch@2.6.12': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 form-data: 4.0.5 '@types/node-forge@1.3.11': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/node@18.19.130': dependencies: @@ -26277,7 +25894,7 @@ snapshots: '@types/resolve@1.17.1': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/resolve@1.20.2': {} @@ -26292,7 +25909,7 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/serve-index@1.9.4': dependencies: @@ -26301,30 +25918,30 @@ snapshots: '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/send': 0.17.4 '@types/shelljs@0.8.15': dependencies: '@types/glob': 7.2.0 - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/sizzle@2.3.9': {} '@types/sockjs@0.3.36': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/stack-utils@2.0.3': {} '@types/tar-fs@2.0.4': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/tar-stream': 3.1.3 '@types/tar-stream@3.1.3': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/tough-cookie@4.0.5': {} @@ -26340,11 +25957,11 @@ snapshots: '@types/vinyl@2.0.12': dependencies: '@types/expect': 1.20.4 - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/ws@8.5.13': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@types/yargs-parser@21.0.3': {} @@ -26354,7 +25971,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 optional: true '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': @@ -26902,10 +26519,6 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true - '@vitejs/plugin-basic-ssl@1.2.0(vite@6.4.1(@types/node@18.19.130)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1))': - dependencies: - vite: 6.4.1(@types/node@18.19.130)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1) - '@vitejs/plugin-basic-ssl@1.2.0(vite@6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1))': dependencies: vite: 6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1) @@ -26914,13 +26527,9 @@ snapshots: dependencies: vite: 6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1) - '@vitejs/plugin-basic-ssl@1.2.0(vite@7.3.0(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.3.0(@types/node@20.12.8)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1))': dependencies: - vite: 7.3.0(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1) - - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.3.0(@types/node@18.19.130)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1))': - dependencies: - vite: 7.3.0(@types/node@18.19.130)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1) + vite: 7.3.0(@types/node@20.12.8)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1) '@vitejs/plugin-react@4.4.1(vite@6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1))': dependencies: @@ -26946,19 +26555,11 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1))': - dependencies: - '@vitest/spy': 3.2.4 - estree-walker: 3.0.3 - magic-string: 0.30.21 - optionalDependencies: - vite: 6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1) - '@vitest/mocker@3.2.4(vite@6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 - magic-string: 0.30.21 + magic-string: 0.30.19 optionalDependencies: vite: 6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1) @@ -26966,18 +26567,6 @@ snapshots: dependencies: tinyrainbow: 2.0.0 - '@vitest/runner@3.2.4': - dependencies: - '@vitest/utils': 3.2.4 - pathe: 2.0.3 - strip-literal: 3.1.0 - - '@vitest/snapshot@3.2.4': - dependencies: - '@vitest/pretty-format': 3.2.4 - magic-string: 0.30.21 - pathe: 2.0.3 - '@vitest/spy@3.2.4': dependencies: tinyspy: 4.0.4 @@ -27096,7 +26685,7 @@ snapshots: '@vue/compiler-ssr': 3.5.13 '@vue/shared': 3.5.13 estree-walker: 2.0.2 - magic-string: 0.30.21 + magic-string: 0.30.19 postcss: 8.5.6 source-map-js: 1.2.1 @@ -28095,7 +27684,7 @@ snapshots: find-up: 5.0.0 webpack: 5.105.0(@swc/core@1.15.3)(esbuild@0.25.0) - babel-loader@9.2.1(@babel/core@7.26.10)(webpack@5.98.0(@swc/core@1.15.3)): + babel-loader@9.2.1(@babel/core@7.26.10)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): dependencies: '@babel/core': 7.26.10 find-cache-dir: 4.0.0 @@ -28709,7 +28298,7 @@ snapshots: browserslist@4.28.0: dependencies: baseline-browser-mapping: 2.8.30 - caniuse-lite: 1.0.30001763 + caniuse-lite: 1.0.30001756 electron-to-chromium: 1.5.259 node-releases: 2.0.27 update-browserslist-db: 1.1.4(browserslist@4.28.0) @@ -28773,8 +28362,6 @@ snapshots: bytestreamjs@2.0.1: {} - cac@6.7.14: {} - cacache@19.0.1: dependencies: '@npmcli/fs': 4.0.0 @@ -28989,7 +28576,7 @@ snapshots: htmlparser2: 6.1.0 parse5: 6.0.1 parse5-htmlparser2-tree-adapter: 6.0.1 - tslib: 2.6.3 + tslib: 2.8.1 chokidar@2.1.8: dependencies: @@ -29445,7 +29032,7 @@ snapshots: each-props: 1.3.2 is-plain-object: 5.0.0 - copy-webpack-plugin@12.0.2(webpack@5.98.0(@swc/core@1.15.3)): + copy-webpack-plugin@12.0.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): dependencies: fast-glob: 3.3.3 glob-parent: 6.0.2 @@ -29574,37 +29161,6 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.12 - create-jest@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - create-jest@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - optional: true - create-jest@29.7.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): dependencies: '@jest/types': 29.6.3 @@ -29735,7 +29291,7 @@ snapshots: optionalDependencies: webpack: 5.105.0(@swc/core@1.15.3)(esbuild@0.25.0) - css-loader@7.1.2(webpack@5.98.0(@swc/core@1.15.3)): + css-loader@7.1.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 @@ -30307,8 +29863,6 @@ snapshots: dependencies: domelementtype: 2.3.0 - domino@2.1.6: {} - dompurify@3.3.1: optionalDependencies: '@types/trusted-types': 2.0.7 @@ -30455,7 +30009,7 @@ snapshots: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 18.19.130 + '@types/node': 20.12.8 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -31062,28 +30616,28 @@ snapshots: transitivePeerDependencies: - eslint-plugin-import - eslint-config-devextreme@0.2.0(zucp2mqrjepf7anjfge3a3eetq): + eslint-config-devextreme@0.2.0(wqcgvevbyusbjfwzjpj634rvom): dependencies: '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5) eslint: 9.39.2(jiti@2.6.1) eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) eslint-config-airbnb-typescript: 18.0.0(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-jest: 29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)))(typescript@4.9.5) + eslint-plugin-jest: 29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)))(typescript@4.9.5) eslint-plugin-jest-formatting: 3.1.0(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-qunit: 8.2.5(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-rulesdir: 0.2.2 eslint-plugin-spellcheck: 0.0.20(eslint@9.39.2(jiti@2.6.1)) - eslint-config-devextreme@1.1.9(7la2fiwu4vznyc7bu5sp5evnqy): + eslint-config-devextreme@1.1.9(6omxhflejertg6royplc5nvzey): dependencies: '@stylistic/eslint-plugin': 5.7.1(eslint@9.39.2(jiti@2.6.1)) - '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4) - '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5) + '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5) eslint: 9.39.2(jiti@2.6.1) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-jest: 29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)))(typescript@5.5.4) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-jest: 29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)))(typescript@4.9.5) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-no-only-tests: 3.3.0 eslint-plugin-qunit: 8.2.5(eslint@9.39.2(jiti@2.6.1)) @@ -31091,18 +30645,18 @@ snapshots: eslint-plugin-react-perf: 3.3.3(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-rulesdir: 0.2.2 eslint-plugin-spellcheck: 0.0.20(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-vue: 10.6.2(@stylistic/eslint-plugin@5.7.1(eslint@9.39.2(jiti@2.6.1)))(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1))) - stylelint: 16.22.0(typescript@5.5.4) - stylelint-config-standard: 38.0.0(stylelint@16.22.0(typescript@5.5.4)) + eslint-plugin-vue: 10.6.2(@stylistic/eslint-plugin@5.7.1(eslint@9.39.2(jiti@2.6.1)))(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1))) + stylelint: 15.11.0(typescript@4.9.5) + stylelint-config-standard: 38.0.0(stylelint@15.11.0(typescript@4.9.5)) - eslint-config-devextreme@1.1.9(ew2ifb6druv6usnx5jl63dqcme): + eslint-config-devextreme@1.1.9(7la2fiwu4vznyc7bu5sp5evnqy): dependencies: '@stylistic/eslint-plugin': 5.7.1(eslint@9.39.2(jiti@2.6.1)) - '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5) - '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4) + '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4) eslint: 9.39.2(jiti@2.6.1) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-jest: 29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)))(typescript@4.9.5) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-jest: 29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)))(typescript@5.5.4) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-no-only-tests: 3.3.0 eslint-plugin-qunit: 8.2.5(eslint@9.39.2(jiti@2.6.1)) @@ -31110,9 +30664,9 @@ snapshots: eslint-plugin-react-perf: 3.3.3(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-rulesdir: 0.2.2 eslint-plugin-spellcheck: 0.0.20(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-vue: 10.6.2(@stylistic/eslint-plugin@5.7.1(eslint@9.39.2(jiti@2.6.1)))(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1))) - stylelint: 15.11.0(typescript@4.9.5) - stylelint-config-standard: 38.0.0(stylelint@15.11.0(typescript@4.9.5)) + eslint-plugin-vue: 10.6.2(@stylistic/eslint-plugin@5.7.1(eslint@9.39.2(jiti@2.6.1)))(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.5.4))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1))) + stylelint: 16.22.0(typescript@5.5.4) + stylelint-config-standard: 38.0.0(stylelint@16.22.0(typescript@5.5.4)) eslint-config-devextreme@1.1.9(ksgq2dg4tckjngwpxis3tdg5ru): dependencies: @@ -31357,24 +30911,24 @@ snapshots: dependencies: eslint: 9.39.2(jiti@2.6.1) - eslint-plugin-jest@29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)))(typescript@4.9.5): + eslint-plugin-jest@29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)))(typescript@4.9.5): dependencies: '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5) eslint: 9.39.2(jiti@2.6.1) optionalDependencies: '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5) - jest: 30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)) + jest: 30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jest@29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)))(typescript@4.9.5): + eslint-plugin-jest@29.0.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)))(typescript@4.9.5): dependencies: '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5) eslint: 9.39.2(jiti@2.6.1) optionalDependencies: '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5))(eslint@9.39.2(jiti@2.6.1))(typescript@4.9.5) - jest: 30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)) + jest: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)) transitivePeerDependencies: - supports-color - typescript @@ -31921,8 +31475,6 @@ snapshots: dependencies: homedir-polyfill: 1.0.3 - expect-type@1.3.0: {} - expect@29.7.0: dependencies: '@jest/expect-utils': 29.7.0 @@ -33457,7 +33009,7 @@ snapshots: webpack: 5.105.2(@swc/core@1.15.3) optional: true - html-webpack-plugin@5.6.3(webpack@5.98.0(@swc/core@1.15.3)): + html-webpack-plugin@5.6.3(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -34331,7 +33883,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 20.12.8 chalk: 4.1.2 co: 4.6.0 dedent: 1.7.0(babel-plugin-macros@3.1.0) @@ -34357,7 +33909,7 @@ snapshots: '@jest/expect': 30.2.0 '@jest/test-result': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 18.19.130 + '@types/node': 20.12.8 chalk: 4.1.2 co: 4.6.0 dedent: 1.7.0(babel-plugin-macros@3.1.0) @@ -34377,49 +33929,6 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)): - dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)) - exit: 0.1.2 - import-local: 3.2.0 - jest-config: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - optionalDependencies: - node-notifier: 9.0.1 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - jest-cli@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): - dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) - exit: 0.1.2 - import-local: 3.2.0 - jest-config: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - optionalDependencies: - node-notifier: 9.0.1 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - optional: true - jest-cli@29.7.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)) @@ -34549,6 +34058,27 @@ snapshots: - ts-node optional: true + jest-cli@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)): + dependencies: + '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)) + '@jest/test-result': 30.2.0 + '@jest/types': 30.2.0 + chalk: 4.1.2 + exit-x: 0.2.2 + import-local: 3.2.0 + jest-config: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)) + jest-util: 30.2.0 + jest-validate: 30.2.0 + yargs: 17.7.2 + optionalDependencies: + node-notifier: 9.0.1 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - esbuild-register + - supports-color + - ts-node + jest-cli@30.2.0(@types/node@20.14.5)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5)): dependencies: '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5)) @@ -34613,7 +34143,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)): + jest-config@29.7.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): dependencies: '@babel/core': 7.28.6 '@jest/test-sequencer': 29.7.0 @@ -34638,13 +34168,14 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 18.19.130 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3) + '@types/node': 20.11.17 + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4) transitivePeerDependencies: - babel-plugin-macros - supports-color + optional: true - jest-config@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): + jest-config@29.7.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): dependencies: '@babel/core': 7.28.6 '@jest/test-sequencer': 29.7.0 @@ -34669,14 +34200,14 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4) transitivePeerDependencies: - babel-plugin-macros - supports-color optional: true - jest-config@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): + jest-config@29.7.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.6 '@jest/test-sequencer': 29.7.0 @@ -34701,13 +34232,13 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): + jest-config@29.7.0(@types/node@20.14.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.6 '@jest/test-sequencer': 29.7.0 @@ -34732,77 +34263,114 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.11.17 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4) + '@types/node': 20.14.5 + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color optional: true - jest-config@29.7.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): + jest-config@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)): dependencies: '@babel/core': 7.28.6 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.6) + '@jest/get-type': 30.1.0 + '@jest/pattern': 30.0.1 + '@jest/test-sequencer': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.28.6) chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 4.3.0 deepmerge: 4.3.1 - glob: 7.2.3 + glob: 10.5.0 graceful-fs: 4.2.11 - jest-circus: 29.7.0(babel-plugin-macros@3.1.0) - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 + jest-circus: 30.2.0(babel-plugin-macros@3.1.0) + jest-docblock: 30.2.0 + jest-environment-node: 30.2.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.2.0 + jest-runner: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 micromatch: 4.0.8 parse-json: 5.2.0 - pretty-format: 29.7.0 + pretty-format: 30.2.0 slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.12.8 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3) + '@types/node': 18.19.130 + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@20.14.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): + jest-config@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)): dependencies: '@babel/core': 7.28.6 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.6) + '@jest/get-type': 30.1.0 + '@jest/pattern': 30.0.1 + '@jest/test-sequencer': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.28.6) chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 4.3.0 deepmerge: 4.3.1 - glob: 7.2.3 + glob: 10.5.0 graceful-fs: 4.2.11 - jest-circus: 29.7.0(babel-plugin-macros@3.1.0) - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 + jest-circus: 30.2.0(babel-plugin-macros@3.1.0) + jest-docblock: 30.2.0 + jest-environment-node: 30.2.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.2.0 + jest-runner: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 micromatch: 4.0.8 parse-json: 5.2.0 - pretty-format: 29.7.0 + pretty-format: 30.2.0 slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.14.5 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3) + '@types/node': 20.11.17 + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): + dependencies: + '@babel/core': 7.28.6 + '@jest/get-type': 30.1.0 + '@jest/pattern': 30.0.1 + '@jest/test-sequencer': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.28.6) + chalk: 4.1.2 + ci-info: 4.3.0 + deepmerge: 4.3.1 + glob: 10.5.0 + graceful-fs: 4.2.11 + jest-circus: 30.2.0(babel-plugin-macros@3.1.0) + jest-docblock: 30.2.0 + jest-environment-node: 30.2.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.2.0 + jest-runner: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 30.2.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.11.17 + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4) transitivePeerDependencies: - babel-plugin-macros - supports-color optional: true - jest-config@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)): + jest-config@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)): dependencies: '@babel/core': 7.28.6 '@jest/get-type': 30.1.0 @@ -34829,13 +34397,13 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)): + jest-config@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)): dependencies: '@babel/core': 7.28.6 '@jest/get-type': 30.1.0 @@ -34862,13 +34430,13 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): + jest-config@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): dependencies: '@babel/core': 7.28.6 '@jest/get-type': 30.1.0 @@ -34895,14 +34463,14 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4) transitivePeerDependencies: - babel-plugin-macros - supports-color optional: true - jest-config@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5)): + jest-config@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)): dependencies: '@babel/core': 7.28.6 '@jest/get-type': 30.1.0 @@ -34929,47 +34497,13 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 18.19.130 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5) - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-config@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.5.4)): - dependencies: - '@babel/core': 7.28.6 - '@jest/get-type': 30.1.0 - '@jest/pattern': 30.0.1 - '@jest/test-sequencer': 30.2.0 - '@jest/types': 30.2.0 - babel-jest: 30.2.0(@babel/core@7.28.6) - chalk: 4.1.2 - ci-info: 4.3.0 - deepmerge: 4.3.1 - glob: 10.5.0 - graceful-fs: 4.2.11 - jest-circus: 30.2.0(babel-plugin-macros@3.1.0) - jest-docblock: 30.2.0 - jest-environment-node: 30.2.0 - jest-regex-util: 30.0.1 - jest-resolve: 30.2.0 - jest-runner: 30.2.0 - jest-util: 30.2.0 - jest-validate: 30.2.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 30.2.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 18.19.130 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.5.4) + '@types/node': 20.12.8 + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5) transitivePeerDependencies: - babel-plugin-macros - supports-color - optional: true - jest-config@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.9.3)): + jest-config@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.6 '@jest/get-type': 30.1.0 @@ -34996,13 +34530,13 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 18.19.130 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.9.3) + '@types/node': 20.12.8 + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)): + jest-config@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5)): dependencies: '@babel/core': 7.28.6 '@jest/get-type': 30.1.0 @@ -35029,13 +34563,13 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.11.17 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5) + '@types/node': 20.12.8 + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): + jest-config@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.5.4)): dependencies: '@babel/core': 7.28.6 '@jest/get-type': 30.1.0 @@ -35062,14 +34596,14 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.11.17 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4) + '@types/node': 20.12.8 + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.5.4) transitivePeerDependencies: - babel-plugin-macros - supports-color optional: true - jest-config@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): + jest-config@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.6 '@jest/get-type': 30.1.0 @@ -35097,7 +34631,7 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 20.12.8 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3) + ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -35269,7 +34803,7 @@ snapshots: '@jest/environment': 30.2.0 '@jest/fake-timers': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 18.19.130 + '@types/node': 20.12.8 jest-mock: 30.2.0 jest-util: 30.2.0 jest-validate: 30.2.0 @@ -35280,7 +34814,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 18.19.130 + '@types/node': 20.12.8 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -35295,7 +34829,7 @@ snapshots: jest-haste-map@30.2.0: dependencies: '@jest/types': 30.2.0 - '@types/node': 18.19.130 + '@types/node': 20.12.8 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -35358,13 +34892,13 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 20.12.8 jest-util: 29.7.0 jest-mock@30.2.0: dependencies: '@jest/types': 30.2.0 - '@types/node': 18.19.130 + '@types/node': 20.12.8 jest-util: 30.2.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -35423,7 +34957,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 20.12.8 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -35449,7 +34983,7 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 18.19.130 + '@types/node': 20.12.8 chalk: 4.1.2 emittery: 0.13.1 exit-x: 0.2.2 @@ -35478,7 +35012,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 20.12.8 chalk: 4.1.2 cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 @@ -35505,7 +35039,7 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 18.19.130 + '@types/node': 20.12.8 chalk: 4.1.2 cjs-module-lexer: 2.2.0 collect-v8-coverage: 1.0.2 @@ -35577,7 +35111,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 20.12.8 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -35586,7 +35120,7 @@ snapshots: jest-util@30.2.0: dependencies: '@jest/types': 30.2.0 - '@types/node': 18.19.130 + '@types/node': 20.12.8 chalk: 4.1.2 ci-info: 4.3.0 graceful-fs: 4.2.11 @@ -35614,7 +35148,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 20.12.8 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -35625,7 +35159,7 @@ snapshots: dependencies: '@jest/test-result': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 18.19.130 + '@types/node': 20.12.8 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -35634,54 +35168,25 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@30.2.0: dependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 '@ungap/structured-clone': 1.3.0 jest-util: 30.2.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)): - dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)) - '@jest/types': 29.6.3 - import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3)) - optionalDependencies: - node-notifier: 9.0.1 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - jest@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)): - dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) - '@jest/types': 29.6.3 - import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) - optionalDependencies: - node-notifier: 9.0.1 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - optional: true - jest@29.7.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4)) @@ -35772,6 +35277,21 @@ snapshots: - ts-node optional: true + jest@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)): + dependencies: + '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)) + '@jest/types': 30.2.0 + import-local: 3.2.0 + jest-cli: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)) + optionalDependencies: + node-notifier: 9.0.1 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - esbuild-register + - supports-color + - ts-node + jest@30.2.0(@types/node@20.14.5)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5)): dependencies: '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.14.5)(typescript@4.9.5)) @@ -36140,7 +35660,7 @@ snapshots: lead@4.0.0: {} - less-loader@12.2.0(less@4.2.2)(webpack@5.98.0(@swc/core@1.15.3)): + less-loader@12.2.0(less@4.2.2)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): dependencies: less: 4.2.2 optionalDependencies: @@ -36193,7 +35713,7 @@ snapshots: optionalDependencies: webpack: 5.105.0(@swc/core@1.15.3)(esbuild@0.25.0) - license-webpack-plugin@4.0.2(webpack@5.98.0(@swc/core@1.15.3)): + license-webpack-plugin@4.0.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): dependencies: webpack-sources: 3.3.3 optionalDependencies: @@ -37013,7 +36533,7 @@ snapshots: min-indent@1.0.1: {} - mini-css-extract-plugin@2.9.2(webpack@5.98.0(@swc/core@1.15.3)): + mini-css-extract-plugin@2.9.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): dependencies: schema-utils: 4.3.3 tapable: 2.3.0 @@ -38268,8 +37788,6 @@ snapshots: path-type@6.0.0: {} - pathe@2.0.3: {} - pathval@1.1.1: {} pathval@2.0.1: {} @@ -38409,7 +37927,7 @@ snapshots: postcss: 8.4.38 postcss-safe-parser: 6.0.0(postcss@8.4.38) - postcss-loader@8.1.1(postcss@8.5.2)(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3)): + postcss-loader@8.1.1(postcss@8.5.2)(typescript@5.5.4)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): dependencies: cosmiconfig: 9.0.0(typescript@5.5.4) jiti: 1.21.6 @@ -39719,7 +39237,7 @@ snapshots: sass-embedded-win32-x64: 1.97.1 optional: true - sass-loader@16.0.5(sass-embedded@1.97.1)(sass@1.85.0)(webpack@5.98.0(@swc/core@1.15.3)): + sass-loader@16.0.5(sass-embedded@1.97.1)(sass@1.85.0)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): dependencies: neo-async: 2.6.2 optionalDependencies: @@ -40036,8 +39554,6 @@ snapshots: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 - siginfo@2.0.0: {} - signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -40185,7 +39701,7 @@ snapshots: source-map-js: 1.2.1 webpack: 5.105.0(@swc/core@1.15.3)(esbuild@0.25.0) - source-map-loader@5.0.0(webpack@5.98.0(@swc/core@1.15.3)): + source-map-loader@5.0.0(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 @@ -40319,8 +39835,6 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 - stackback@0.0.2: {} - stackblur-canvas@2.7.0: {} stackframe@1.3.4: {} @@ -40338,8 +39852,6 @@ snapshots: statuses@2.0.2: {} - std-env@3.10.0: {} - stdin-discarder@0.2.2: {} stop-iteration-iterator@1.0.0: @@ -40597,10 +40109,6 @@ snapshots: strip-json-comments@3.1.1: {} - strip-literal@3.1.0: - dependencies: - js-tokens: 9.0.1 - style-loader@3.3.4(webpack@5.105.0(@swc/core@1.15.3)): dependencies: webpack: 5.105.0(@swc/core@1.15.3) @@ -41624,17 +41132,11 @@ snapshots: tiny-invariant@1.3.3: {} - tinybench@2.9.0: {} - - tinyexec@0.3.2: {} - tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 - tinypool@1.1.1: {} - tinyrainbow@2.0.0: {} tinyspy@4.0.4: {} @@ -41765,11 +41267,11 @@ snapshots: ts-dedent@2.2.0: {} - ts-jest@29.1.2(@babel/core@7.28.6)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.6))(jest@30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)))(typescript@4.9.5): + ts-jest@29.1.2(@babel/core@7.28.6)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.6))(jest@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)))(typescript@4.9.5): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 30.2.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@4.9.5)) + jest: 30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -41782,11 +41284,11 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.28.6) - ts-jest@29.1.2(@babel/core@7.28.6)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.6))(jest@30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)))(typescript@4.9.5): + ts-jest@29.1.2(@babel/core@7.28.6)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.6))(jest@30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)))(typescript@4.9.5): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 30.2.0(@types/node@20.11.17)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5)) + jest: 30.2.0(@types/node@20.12.8)(babel-plugin-macros@3.1.0)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -41916,27 +41418,27 @@ snapshots: '@swc/core': 1.15.3 optional: true - ts-node@10.9.2(@swc/core@1.15.3)(@types/node@18.19.130)(typescript@5.9.3): + ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.130 + '@types/node': 20.11.17 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.9.3 + typescript: 4.9.5 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: '@swc/core': 1.15.3 - ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@4.9.5): + ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -41950,31 +41452,32 @@ snapshots: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.9.5 + typescript: 5.5.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: '@swc/core': 1.15.3 - ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.11.17)(typescript@5.5.4): + ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.11.17 + '@types/node': 20.12.8 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.5.4 + typescript: 4.9.5 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: '@swc/core': 1.15.3 + optional: true ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3): dependencies: @@ -42768,27 +42271,6 @@ snapshots: replace-ext: 2.0.0 teex: 1.0.1 - vite-node@3.2.4(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1): - dependencies: - cac: 6.7.14 - debug: 4.4.3 - es-module-lexer: 1.7.0 - pathe: 2.0.3 - vite: 6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1) - transitivePeerDependencies: - - '@types/node' - - jiti - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - vite@5.4.21(@types/node@20.14.5)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0): dependencies: esbuild: 0.21.5 @@ -42803,25 +42285,6 @@ snapshots: sass-embedded: 1.97.1 terser: 5.46.0 - vite@6.4.1(@types/node@18.19.130)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1): - dependencies: - esbuild: 0.25.0 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.59.0 - tinyglobby: 0.2.15 - optionalDependencies: - '@types/node': 18.19.130 - fsevents: 2.3.3 - jiti: 2.6.1 - less: 4.2.2 - lightningcss: 1.30.2 - sass: 1.85.0 - sass-embedded: 1.97.1 - terser: 5.39.0 - yaml: 2.8.1 - vite@6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1): dependencies: esbuild: 0.25.0 @@ -42841,25 +42304,6 @@ snapshots: terser: 5.39.0 yaml: 2.8.1 - vite@6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1): - dependencies: - esbuild: 0.25.0 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.59.0 - tinyglobby: 0.2.15 - optionalDependencies: - '@types/node': 20.11.17 - fsevents: 2.3.3 - jiti: 2.6.1 - less: 4.4.2 - lightningcss: 1.30.2 - sass: 1.97.1 - sass-embedded: 1.97.1 - terser: 5.46.0 - yaml: 2.8.1 - vite@6.4.1(@types/node@20.14.5)(jiti@2.6.1)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.1): dependencies: esbuild: 0.25.0 @@ -42918,7 +42362,7 @@ snapshots: terser: 5.46.0 yaml: 2.8.1 - vite@7.3.0(@types/node@18.19.130)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1): + vite@7.3.0(@types/node@20.12.8)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.1): dependencies: esbuild: 0.27.2 fdir: 6.5.0(picomatch@4.0.3) @@ -42927,7 +42371,7 @@ snapshots: rollup: 4.59.0 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 18.19.130 + '@types/node': 20.12.8 fsevents: 2.3.3 jiti: 2.6.1 less: 4.4.2 @@ -42937,68 +42381,6 @@ snapshots: terser: 5.44.1 yaml: 2.8.1 - vite@7.3.0(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1): - dependencies: - esbuild: 0.27.2 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.59.0 - tinyglobby: 0.2.15 - optionalDependencies: - '@types/node': 20.11.17 - fsevents: 2.3.3 - jiti: 2.6.1 - less: 4.4.2 - lightningcss: 1.30.2 - sass: 1.97.1 - sass-embedded: 1.97.1 - terser: 5.46.0 - yaml: 2.8.1 - - vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.11.17)(jiti@2.6.1)(jsdom@20.0.3)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1): - dependencies: - '@types/chai': 5.2.3 - '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1)) - '@vitest/pretty-format': 3.2.4 - '@vitest/runner': 3.2.4 - '@vitest/snapshot': 3.2.4 - '@vitest/spy': 3.2.4 - '@vitest/utils': 3.2.4 - chai: 5.3.3 - debug: 4.4.3 - expect-type: 1.3.0 - magic-string: 0.30.21 - pathe: 2.0.3 - picomatch: 4.0.3 - std-env: 3.10.0 - tinybench: 2.9.0 - tinyexec: 0.3.2 - tinyglobby: 0.2.15 - tinypool: 1.1.1 - tinyrainbow: 2.0.0 - vite: 6.4.1(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@20.11.17)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.46.0)(yaml@2.8.1) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/debug': 4.1.12 - '@types/node': 20.11.17 - jsdom: 20.0.3 - transitivePeerDependencies: - - jiti - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - vm-browserify@1.1.2: {} void-elements@2.0.1: {} @@ -43199,7 +42581,7 @@ snapshots: optionalDependencies: webpack: 5.105.0(@swc/core@1.15.3)(esbuild@0.25.0) - webpack-dev-middleware@7.4.2(webpack@5.98.0(@swc/core@1.15.3)): + webpack-dev-middleware@7.4.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): dependencies: colorette: 2.0.20 memfs: 4.51.1 @@ -43232,7 +42614,7 @@ snapshots: optionalDependencies: webpack: 5.105.0(@swc/core@1.15.3)(webpack-cli@5.1.4) - webpack-dev-middleware@7.4.5(webpack@5.98.0(@swc/core@1.15.3)): + webpack-dev-middleware@7.4.5(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): dependencies: colorette: 2.0.20 memfs: 4.51.1 @@ -43281,7 +42663,7 @@ snapshots: - supports-color - utf-8-validate - webpack-dev-server@5.2.2(webpack@5.98.0(@swc/core@1.15.3)): + webpack-dev-server@5.2.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -43309,7 +42691,7 @@ snapshots: serve-index: 1.9.2 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(webpack@5.98.0(@swc/core@1.15.3)) + webpack-dev-middleware: 7.4.5(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) ws: 8.18.0 optionalDependencies: webpack: 5.98.0(@swc/core@1.15.3)(esbuild@0.25.4) @@ -43408,12 +42790,12 @@ snapshots: optionalDependencies: html-webpack-plugin: 5.6.3(webpack@5.105.2(@swc/core@1.15.3)) - webpack-subresource-integrity@5.1.0(html-webpack-plugin@5.6.3(webpack@5.98.0(@swc/core@1.15.3)))(webpack@5.98.0(@swc/core@1.15.3)): + webpack-subresource-integrity@5.1.0(html-webpack-plugin@5.6.3(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)))(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)): dependencies: typed-assert: 1.0.9 webpack: 5.98.0(@swc/core@1.15.3)(esbuild@0.25.4) optionalDependencies: - html-webpack-plugin: 5.6.3(webpack@5.98.0(@swc/core@1.15.3)) + html-webpack-plugin: 5.6.3(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.4)) webpack-virtual-modules@0.6.2: {} @@ -43736,11 +43118,6 @@ snapshots: dependencies: isexe: 3.1.1 - why-is-node-running@2.3.0: - dependencies: - siginfo: 2.0.0 - stackback: 0.0.2 - wildcard@2.0.1: {} windows-release@5.1.1: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index b886cbda2925..f0b40ca595a4 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,8 +2,6 @@ packages: - 'apps/*' - 'e2e/*' - 'packages/*' - - 'packages/devextreme-angular/tests/ssr-app' - - 'packages/devextreme-angular/tests/ssr-testcafe' - 'packages/devextreme/artifacts/npm/devextreme-dist' - '!packages/sbom' @@ -43,7 +41,6 @@ catalogs: "@angular-devkit/build-angular": ~19.2.19 "@angular-devkit/architect": ~0.1902.19 "@angular-devkit/schematics": ~19.2.19 - "@angular/build": ~19.2.19 "@angular/cli": ~19.2.19 "@angular/common": ~19.2.19 "@angular/compiler": ~19.2.19 @@ -54,7 +51,6 @@ catalogs: "@angular/platform-browser-dynamic": ~19.2.19 "@angular/platform-server": ~19.2.19 "@angular/router": ~19.2.19 - "@angular/ssr": ~19.2.19 "ng-packagr": ~19.2.2 "typescript": 5.5.4 "zone.js": 0.15.1 From 2af702b928bfb0c264b42c6a62bdb906b2c84bbb Mon Sep 17 00:00:00 2001 From: Aliullov Vlad Date: Thu, 5 Mar 2026 14:48:05 +0100 Subject: [PATCH 5/5] build devextreme as modern node + disable SSR tests --- .../devextreme-angular/karma.test.shim.js | 2 +- packages/devextreme-angular/project.json | 46 +----- .../tests/src/server/hydration.spec.ts | 131 ------------------ 3 files changed, 3 insertions(+), 176 deletions(-) delete mode 100644 packages/devextreme-angular/tests/src/server/hydration.spec.ts diff --git a/packages/devextreme-angular/karma.test.shim.js b/packages/devextreme-angular/karma.test.shim.js index f3e70816c60e..cde076c0cfd6 100644 --- a/packages/devextreme-angular/karma.test.shim.js +++ b/packages/devextreme-angular/karma.test.shim.js @@ -8,6 +8,6 @@ testing.TestBed.initTestEnvironment( browser.platformBrowserDynamicTesting(), ); -const context = require.context('./tests/dist', true, /^.\/(?!.*\/(ssr-components|hydration)\.spec\.js$).*\.spec\.js$/); +const context = require.context('./tests/dist', true, /^.\/(?!.*\/(ssr-)[^\.]+\.spec\.js$).*\.spec\.js$/); context.keys().map(context); __karma__.start(); diff --git a/packages/devextreme-angular/project.json b/packages/devextreme-angular/project.json index 975a6e471e9c..bfca55ac5b52 100644 --- a/packages/devextreme-angular/project.json +++ b/packages/devextreme-angular/project.json @@ -341,9 +341,7 @@ "options": { "karmaConfig": "karma.conf.js", "environments": [ - "client", - "server", - "hydration" + "client" ] }, "dependsOn": [ @@ -385,42 +383,6 @@ "build:tests" ] }, - "test:components-server": { - "executor": "devextreme-nx-infra-plugin:karma-multi-env", - "options": { - "karmaConfig": "karma.conf.js", - "environments": [ - "server", - "hydration" - ] - }, - "dependsOn": [ - "build:tests" - ], - "inputs": [ - "default", - "test", - "{projectRoot}/tests/dist/**/*" - ] - }, - "test:components-server-debug": { - "executor": "devextreme-nx-infra-plugin:karma-multi-env", - "options": { - "karmaConfig": "karma.conf.js", - "environments": [ - "server" - ], - "debug": true - }, - "dependsOn": [ - "build:tests" - ], - "inputs": [ - "default", - "test", - "{projectRoot}/tests/dist/**/*" - ] - }, "watch:test": { "executor": "devextreme-nx-infra-plugin:karma-multi-env", "options": { @@ -444,9 +406,7 @@ "options": { "karmaConfig": "karma.conf.js", "environments": [ - "client", - "server", - "hydration" + "client" ] }, "dependsOn": [ @@ -489,8 +449,6 @@ "{projectRoot}/tests/**/*", "{projectRoot}/karma.conf.js", "{projectRoot}/karma.test.shim.js", - "{projectRoot}/karma.server.test.shim.js", - "{projectRoot}/karma.hydration.test.shim.js", "{projectRoot}/webpack.test.js", "{projectRoot}/tsconfig.tests.json", "{projectRoot}/src/**/*.spec.ts", diff --git a/packages/devextreme-angular/tests/src/server/hydration.spec.ts b/packages/devextreme-angular/tests/src/server/hydration.spec.ts deleted file mode 100644 index cc69b14e7a49..000000000000 --- a/packages/devextreme-angular/tests/src/server/hydration.spec.ts +++ /dev/null @@ -1,131 +0,0 @@ -import { BrowserModule, provideClientHydration } from '@angular/platform-browser'; -import { - Component, - destroyPlatform, - NgModule, - PLATFORM_ID, - importProvidersFrom, -} from '@angular/core'; -import { ServerModule, renderModule } from '@angular/platform-server'; -import { DxServerModule } from 'devextreme-angular/server'; -import infernoRenderer from 'devextreme/core/inferno_renderer'; -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; -import { DevExtremeModule } from 'devextreme-angular'; -import { componentNames as componentNamesAll } from './component-names'; - -const componentNames = componentNamesAll.filter((n) => ['toast', 'action-sheet'].includes(n)); - -const containerClass = 'container'; -const containerSelector = `.${containerClass}`; - -@Component({ - selector: 'app-root', - standalone: false, - template: `
- ${componentNames.map((name) => ``).join('\n')} -
`, -}) -class AppComponent {} - -@NgModule({ - declarations: [AppComponent], - imports: [BrowserModule, DevExtremeModule], - bootstrap: [AppComponent], - providers: [provideClientHydration()], -}) -class AppBrowserModule {} - -@NgModule({ - declarations: [AppComponent], - imports: [ServerModule, DevExtremeModule], - bootstrap: [AppComponent], - providers: [ - provideClientHydration(), - { provide: PLATFORM_ID, useValue: 'server' }, - importProvidersFrom(DxServerModule), - ], -}) -class AppSSRModule {} - -class TestHelpers { - static normalizeClassNames(element: HTMLElement): void { - const classNames = Array.from(element.classList).sort(); - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - element.classList.remove(...element.classList); - element.classList.add(...classNames); - } - - static hasConsoleMessage(spy: jasmine.Spy, messages: string[]): boolean { - return spy.calls.allArgs().some((args) => messages.some((msg) => args[0].toLowerCase().includes(msg.toLowerCase()))); - } -} - -describe('Angular Components Hydration Test', () => { - let consoleSpies: { - warn: jasmine.Spy; - error: jasmine.Spy; - log: jasmine.Spy; - }; - const ssrState: { - containerHtml: string; - ssrHTML: string; - } = { - containerHtml: '', - ssrHTML: '', - }; - - beforeAll(() => { - consoleSpies = { - warn: spyOn(console, 'warn').and.callThrough(), - error: spyOn(console, 'error').and.callThrough(), - log: spyOn(console, 'log').and.callThrough(), - }; - }); - - beforeEach(() => { - destroyPlatform(); - }); - - afterEach(() => { - expect(consoleSpies.error).not.toHaveBeenCalled(); - expect(TestHelpers.hasConsoleMessage(consoleSpies.warn, ['exception', 'hydration'])).toBeFalsy(); - }); - - it('should generate correct SSR HTML', async () => { - const html = await renderModule(AppSSRModule, { - document: '', - url: '/', - }); - - ssrState.ssrHTML = html - .replace(/ng-server-context="other"/g, 'ng-server-context="ssg"') - .replace(/^.*.*$/, ''); - - const tempDiv = document.createElement('div'); - tempDiv.innerHTML = ssrState.ssrHTML; - - // Assert - ssrState.containerHtml = tempDiv.querySelector(`${containerSelector}`)?.innerHTML ?? ''; - - expect(ssrState.containerHtml).toBeTruthy(); - expect(ssrState.ssrHTML).toBeTruthy(); - }); - - it('should correctly hydrate server-rendered HTML', async () => { - infernoRenderer.resetInjection(); - - document.body.outerHTML = ssrState.ssrHTML; - - // Act - await platformBrowserDynamic().bootstrapModule(AppBrowserModule); - - expect(TestHelpers.hasConsoleMessage( - consoleSpies.log, - ['Angular hydrated 1 component(s)'], - )).toBeTruthy(); - - expect(ssrState.containerHtml).toEqual(document.querySelector(`${containerSelector}`).innerHTML); - }); -});