From e5b7559e085768e5e7a2869af542808d4a0dd885 Mon Sep 17 00:00:00 2001 From: Aleksey Semikozov Date: Sat, 14 Mar 2026 20:55:58 -0300 Subject: [PATCH 1/3] Init Vite playground with custom plugin for Inferno + experimental decorators Cherry-picked playground setup from PR #30926, replaced vite-plugin-inferno with custom build/vite-plugin-devextreme.ts that supports: - Inferno JSX transformation via babel-plugin-inferno - TypeScript experimental decorators via @babel/plugin-proposal-decorators - TypeScript parsing via @babel/preset-typescript Co-Authored-By: Claude Opus 4.6 (1M context) --- .../build/vite-plugin-devextreme.ts | 45 + packages/devextreme/eslint.config.mjs | 1 + packages/devextreme/package.json | 5 + packages/devextreme/playground/index.html | 25 + .../devextreme/playground/newThemeSelector.ts | 87 ++ .../playground/scheduler-example.ts | 55 ++ packages/devextreme/vite.config.ts | 27 + pnpm-lock.yaml | 766 ++++++++++++++---- 8 files changed, 843 insertions(+), 168 deletions(-) create mode 100644 packages/devextreme/build/vite-plugin-devextreme.ts create mode 100644 packages/devextreme/playground/index.html create mode 100644 packages/devextreme/playground/newThemeSelector.ts create mode 100644 packages/devextreme/playground/scheduler-example.ts create mode 100644 packages/devextreme/vite.config.ts diff --git a/packages/devextreme/build/vite-plugin-devextreme.ts b/packages/devextreme/build/vite-plugin-devextreme.ts new file mode 100644 index 000000000000..46e006eac508 --- /dev/null +++ b/packages/devextreme/build/vite-plugin-devextreme.ts @@ -0,0 +1,45 @@ +import { transformAsync } from '@babel/core'; +import type { Plugin } from 'vite'; + +export default function devextremeInfernoPlugin(): Plugin { + return { + name: 'devextreme-inferno', + enforce: 'pre', + + async transform(code: string, id: string) { + if (!/\.[jt]sx?$/.test(id) || id.includes('node_modules')) { + return null; + } + + const isTSX = id.endsWith('.tsx'); + const isTS = id.endsWith('.ts') || isTSX; + + const plugins: unknown[] = [ + ['@babel/plugin-proposal-decorators', { legacy: true }], + ['@babel/plugin-transform-class-properties', { loose: true }], + 'babel-plugin-inferno', + ]; + + const presets: unknown[] = []; + if (isTS) { + presets.push([ + '@babel/preset-typescript', + { isTSX, allExtensions: true }, + ]); + } + + const result = await transformAsync(code, { + filename: id, + plugins, + presets, + sourceMaps: true, + }); + + if (!result?.code) { + return null; + } + + return { code: result.code, map: result.map }; + }, + }; +} diff --git a/packages/devextreme/eslint.config.mjs b/packages/devextreme/eslint.config.mjs index d3678fafc1bb..cbdd3148c9c2 100644 --- a/packages/devextreme/eslint.config.mjs +++ b/packages/devextreme/eslint.config.mjs @@ -38,6 +38,7 @@ export default [ 'themebuilder-scss/src/data/metadata/*', 'js/bundles/dx.custom.js', 'testing/jest/utils/transformers/*', + 'vite.config.ts', '**/ts/', 'js/common/core/localization/cldr-data/*', 'js/common/core/localization/default_messages.js', diff --git a/packages/devextreme/package.json b/packages/devextreme/package.json index ad9f9f42a2ca..55dafa3abd8f 100644 --- a/packages/devextreme/package.json +++ b/packages/devextreme/package.json @@ -69,9 +69,12 @@ "@babel/core": "7.23.9", "@babel/eslint-parser": "catalog:", "@babel/parser": "7.23.9", + "@babel/plugin-proposal-decorators": "7.23.9", + "@babel/plugin-transform-class-properties": "7.23.3", "@babel/plugin-transform-modules-commonjs": "7.23.3", "@babel/plugin-transform-runtime": "7.23.3", "@babel/preset-env": "7.23.9", + "@babel/preset-typescript": "7.23.3", "@devextreme-generator/angular": "3.0.12", "@devextreme-generator/build-helpers": "3.0.12", "@devextreme-generator/core": "3.0.12", @@ -208,6 +211,7 @@ "uuid": "9.0.1", "vinyl": "2.2.1", "vinyl-named": "1.1.0", + "vite": "^7.1.3", "webpack": "5.103.0", "webpack-stream": "7.0.0", "yaml": "2.5.0", @@ -244,6 +248,7 @@ "validate-ts": "gulp validate-ts", "validate-declarations": "dx-tools validate-declarations --sources ./js --exclude \"js/(renovation|__internal|.eslintrc.js)\" --compiler-options \"{ \\\"typeRoots\\\": [] }\"", "testcafe-in-docker": "docker build -f ./testing/testcafe/docker/Dockerfile -t testcafe-testing . && docker run -it testcafe-testing", + "dev:playground": "vite", "test-jest": "jest --no-coverage --runInBand", "test-jest:watch": "jest --watch", "tcd-update": "tcd-update" diff --git a/packages/devextreme/playground/index.html b/packages/devextreme/playground/index.html new file mode 100644 index 000000000000..e1f3659444ed --- /dev/null +++ b/packages/devextreme/playground/index.html @@ -0,0 +1,25 @@ + + + + + + DevExtreme HMR Playground + + +
+ +
+
+ + + + diff --git a/packages/devextreme/playground/newThemeSelector.ts b/packages/devextreme/playground/newThemeSelector.ts new file mode 100644 index 000000000000..8ef0fd8b2bcd --- /dev/null +++ b/packages/devextreme/playground/newThemeSelector.ts @@ -0,0 +1,87 @@ +const themeKey = 'currentThemeId'; + +const themeLoaders = import.meta.glob('../artifacts/css/dx.*.css', { as: 'url' }); + +const themeList = Object.keys(themeLoaders).map((path) => { + const match = path.match(/dx\.(.+)\.css$/); + return match ? match[1] : null; +}).filter(Boolean) as string[]; + +function groupThemes(themes: string[]) { + const groups: Record = {}; + themes.forEach((theme) => { + const [group] = theme.split('.'); + const groupName = group.charAt(0).toUpperCase() + group.slice(1); + if (!groups[groupName]) groups[groupName] = []; + groups[groupName].push(theme); + }); + return groups; +} + +const groupedThemes = groupThemes(themeList); + +function initThemes(dropDownList: HTMLSelectElement) { + Object.entries(groupedThemes).forEach(([group, themes]) => { + const parent = document.createElement('optgroup'); + parent.label = group; + + themes.forEach((theme) => { + const child = document.createElement('option'); + child.value = theme; + child.text = theme.replaceAll('.', ' '); + parent.appendChild(child); + }); + + dropDownList.appendChild(parent); + }); +} + +function loadThemeCss(themeId: string): Promise { + return new Promise((resolve, reject) => { + const oldLink = document.getElementById('theme-stylesheet'); + if (oldLink) oldLink.remove(); + + const key = Object.keys(themeLoaders).find((p) => p.includes(`dx.${themeId}.css`)); + if (!key) { + reject(new Error(`Theme not found: ${themeId}`)); + return; + } + + themeLoaders[key]().then((cssUrl: string) => { + const link = document.createElement('link'); + link.id = 'theme-stylesheet'; + link.rel = 'stylesheet'; + link.href = cssUrl; + + link.onload = () => resolve(); + link.onerror = () => reject(new Error(`Failed to load theme: ${themeId}`)); + + document.head.appendChild(link); + }); + }); +} + +export function setupThemeSelector(selectorId: string): Promise { + return new Promise((resolve) => { + const dropDownList = document.querySelector(`#${selectorId}`); + if (!dropDownList) { + resolve(); + return; + } + + initThemes(dropDownList); + + const savedTheme = window.localStorage.getItem(themeKey) || themeList[0]; + dropDownList.value = savedTheme; + + loadThemeCss(savedTheme).then(() => { + dropDownList.addEventListener('change', () => { + const newTheme = dropDownList.value; + window.localStorage.setItem(themeKey, newTheme); + loadThemeCss(newTheme); + }); + + resolve(); + }); + }); +} diff --git a/packages/devextreme/playground/scheduler-example.ts b/packages/devextreme/playground/scheduler-example.ts new file mode 100644 index 000000000000..35d76747c243 --- /dev/null +++ b/packages/devextreme/playground/scheduler-example.ts @@ -0,0 +1,55 @@ +import $ from 'jquery'; +import { setupThemeSelector } from './newthemeSelector'; +import Scheduler from '../js/__internal/scheduler/m_scheduler'; + +const dataSource = [ + { + text: "Meeting with John", + startDate: new Date(2024, 0, 10, 9, 0), + endDate: new Date(2024, 0, 10, 10, 30), + allDay: false + }, + { + text: "Conference Call", + startDate: new Date(2024, 0, 10, 14, 0), + endDate: new Date(2024, 0, 10, 15, 0), + allDay: false + }, + { + text: "Team Building Event", + startDate: new Date(2024, 0, 11, 10, 0), + endDate: new Date(2024, 0, 11, 17, 0), + allDay: false + } +]; + +window.addEventListener('load', () => + setupThemeSelector('theme-selector').then(() => { + + + new (Scheduler as any)($('#container'), { + dataSource, + views: ['day', 'week', 'workWeek', 'month'], + currentView: 'week', + currentDate: new Date(2024, 0, 10), + startDayHour: 8, + endDayHour: 18, + height: 600, + editing: { + allowAdding: true, + allowDeleting: true, + allowUpdating: true, + allowResizing: true, + allowDragging: true + }, + onAppointmentAdded: (e) => { + console.log('Appointment added:', e.appointmentData); + }, + onAppointmentUpdated: (e) => { + console.log('Appointment updated:', e.appointmentData); + }, + onAppointmentDeleted: (e) => { + console.log('Appointment deleted:', e.appointmentData); + } + }); +})); diff --git a/packages/devextreme/vite.config.ts b/packages/devextreme/vite.config.ts new file mode 100644 index 000000000000..723a13265873 --- /dev/null +++ b/packages/devextreme/vite.config.ts @@ -0,0 +1,27 @@ +import path from 'path'; +import { defineConfig } from 'vite'; +import devextremeInferno from './build/vite-plugin-devextreme'; + +export default defineConfig({ + root: './playground', + plugins: [devextremeInferno()], + esbuild: false, + server: { + port: 3000, + fs: { + allow: ['..', '.', '../..'], + }, + hmr: true, + }, + resolve: { + alias: { + 'core': path.resolve(__dirname, './js/core'), + 'common': path.resolve(__dirname, './js/common'), + 'data': path.resolve(__dirname, './js/data'), + 'ui': path.resolve(__dirname, './js/ui'), + '@js': path.resolve(__dirname, './js'), + '@ts': path.resolve(__dirname, './js/__internal'), + '__internal': path.resolve(__dirname, './js/__internal'), + }, + }, +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fde39e3ede5a..71a0217bc089 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -765,16 +765,16 @@ importers: devDependencies: '@storybook/addon-docs': specifier: 10.1.9 - version: 10.1.9(@types/react@18.0.0)(esbuild@0.25.1)(rollup@4.53.3)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(vite@6.2.7(@types/node@20.14.5)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.66.0)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0))(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1)) + version: 10.1.9(@types/react@18.0.0)(esbuild@0.27.4)(rollup@4.53.3)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(vite@7.3.1(@types/node@20.12.8)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0))(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4)) '@storybook/addon-links': specifier: 10.1.9 version: 10.1.9(react@18.0.0)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)) '@storybook/addon-webpack5-compiler-swc': specifier: ^4.0.2 - version: 4.0.2(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1)) + version: 4.0.2(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4)) '@storybook/react-webpack5': specifier: 10.1.9 - version: 10.1.9(@swc/core@1.15.3)(esbuild@0.25.1)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(typescript@5.9.3)(vite@6.2.7(@types/node@20.14.5)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.66.0)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0)) + version: 10.1.9(@swc/core@1.15.3)(esbuild@0.27.4)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(typescript@5.9.3)(vite@7.3.1(@types/node@20.12.8)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0)) '@types/react': specifier: 18.0.0 version: 18.0.0 @@ -1213,6 +1213,12 @@ importers: '@babel/parser': specifier: 7.23.9 version: 7.23.9 + '@babel/plugin-proposal-decorators': + specifier: 7.23.9 + version: 7.23.9(@babel/core@7.23.9) + '@babel/plugin-transform-class-properties': + specifier: 7.23.3 + version: 7.23.3(@babel/core@7.23.9) '@babel/plugin-transform-modules-commonjs': specifier: 7.23.3 version: 7.23.3(@babel/core@7.23.9) @@ -1222,27 +1228,30 @@ importers: '@babel/preset-env': specifier: 7.23.9 version: 7.23.9(@babel/core@7.23.9) + '@babel/preset-typescript': + specifier: 7.23.3 + version: 7.23.3(@babel/core@7.23.9) '@devextreme-generator/angular': specifier: 3.0.12 - version: 3.0.12(y3qlek3hjgomsdquxvldlbopya) + version: 3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu) '@devextreme-generator/build-helpers': specifier: 3.0.12 - version: 3.0.12(n2u3vruhcd6qhjmvh2nb6oryfu) + version: 3.0.12(nfbl32hasf34w5oeasbl4rdhey) '@devextreme-generator/core': specifier: 3.0.12 - version: 3.0.12(y3qlek3hjgomsdquxvldlbopya) + version: 3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu) '@devextreme-generator/declarations': specifier: 3.0.12 version: 3.0.12 '@devextreme-generator/inferno': specifier: 3.0.12 - version: 3.0.12(y3qlek3hjgomsdquxvldlbopya) + version: 3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu) '@devextreme-generator/react': specifier: 3.0.12 - version: 3.0.12(y3qlek3hjgomsdquxvldlbopya) + version: 3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu) '@devextreme-generator/vue': specifier: 3.0.12 - version: 3.0.12(y3qlek3hjgomsdquxvldlbopya) + version: 3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu) '@eslint-stylistic/metadata': specifier: 'catalog:' version: 2.13.0 @@ -1344,7 +1353,7 @@ importers: version: 18.0.0(@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6)))(eslint@9.18.0(jiti@1.21.6)) eslint-config-devextreme: specifier: 1.1.6 - version: 1.1.6(u6rbfymnlxw7vx53hal24iecoa) + version: 1.1.6(7nq66yvdigkdls44xnjv2fh7li) eslint-migration-utils: specifier: workspace:* version: link:../eslint-migration-utils @@ -1356,7 +1365,7 @@ importers: version: 2.31.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6)) eslint-plugin-jest: specifier: 27.6.0 - version: 27.6.0(@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(jest@29.7.0(@types/node@20.14.5)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)))(typescript@4.9.5) + version: 27.6.0(@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)))(typescript@4.9.5) eslint-plugin-jest-formatting: specifier: 3.1.0 version: 3.1.0(eslint@9.18.0(jiti@1.21.6)) @@ -1611,7 +1620,7 @@ importers: version: 2.0.5 ts-jest: specifier: 29.1.2 - version: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(jest@29.7.0(@types/node@20.14.5)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)))(typescript@4.9.5) + version: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)))(typescript@4.9.5) tsc-alias: specifier: 1.8.10 version: 1.8.10 @@ -1630,6 +1639,9 @@ importers: vinyl-named: specifier: 1.1.0 version: 1.1.0 + vite: + specifier: ^7.1.3 + version: 7.3.1(@types/node@20.12.8)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.59.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0) webpack: specifier: 5.103.0 version: 5.103.0(@swc/core@1.15.3) @@ -2713,10 +2725,6 @@ packages: resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.25.9': - resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.27.1': resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} engines: {node: '>=6.9.0'} @@ -2747,10 +2755,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.25.9': - resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-optimise-call-expression@7.27.1': resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} engines: {node: '>=6.9.0'} @@ -2904,6 +2908,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/plugin-proposal-decorators@7.23.9': + resolution: {integrity: sha512-hJhBCb0+NnTWybvWq2WpbCYDOcflSbx0t+BYP65e5R9GVnukiDTi+on5bFkk4p7QGuv190H6KfNiV9Knf/3cZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-proposal-decorators@7.25.9': resolution: {integrity: sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==} engines: {node: '>=6.9.0'} @@ -3101,6 +3111,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-class-properties@7.23.3': + resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-class-properties@7.25.9': resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==} engines: {node: '>=6.9.0'} @@ -3514,6 +3530,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/preset-typescript@7.23.3': + resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/preset-typescript@7.27.1': resolution: {integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==} engines: {node: '>=6.9.0'} @@ -3699,6 +3721,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.27.4': + resolution: {integrity: sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.19.3': resolution: {integrity: sha512-w+Akc0vv5leog550kjJV9Ru+MXMR2VuMrui3C61mnysim0gkFCPOUTAfzTP0qX+HpN9Syu3YA3p1hf3EPqObRw==} engines: {node: '>=12'} @@ -3735,6 +3763,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.27.4': + resolution: {integrity: sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.19.3': resolution: {integrity: sha512-Lemgw4io4VZl9GHJmjiBGzQ7ONXRfRPHcUEerndjwiSkbxzrpq0Uggku5MxxrXdwJ+pTj1qyw4jwTu7hkPsgIA==} engines: {node: '>=12'} @@ -3771,6 +3805,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.27.4': + resolution: {integrity: sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.19.3': resolution: {integrity: sha512-FKQJKkK5MXcBHoNZMDNUAg1+WcZlV/cuXrWCoGF/TvdRiYS4znA0m5Il5idUwfxrE20bG/vU1Cr5e1AD6IEIjQ==} engines: {node: '>=12'} @@ -3807,6 +3847,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.27.4': + resolution: {integrity: sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.19.3': resolution: {integrity: sha512-kw7e3FXU+VsJSSSl2nMKvACYlwtvZB8RUIeVShIEY6PVnuZ3c9+L9lWB2nWeeKWNNYDdtL19foCQ0ZyUL7nqGw==} engines: {node: '>=12'} @@ -3843,6 +3889,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.27.4': + resolution: {integrity: sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.19.3': resolution: {integrity: sha512-tPfZiwF9rO0jW6Jh9ipi58N5ZLoSjdxXeSrAYypy4psA2Yl1dAMhM71KxVfmjZhJmxRjSnb29YlRXXhh3GqzYw==} engines: {node: '>=12'} @@ -3879,6 +3931,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.27.4': + resolution: {integrity: sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.19.3': resolution: {integrity: sha512-ERDyjOgYeKe0Vrlr1iLrqTByB026YLPzTytDTz1DRCYM+JI92Dw2dbpRHYmdqn6VBnQ9Bor6J8ZlNwdZdxjlSg==} engines: {node: '>=12'} @@ -3915,6 +3973,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.27.4': + resolution: {integrity: sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.19.3': resolution: {integrity: sha512-nXesBZ2Ad1qL+Rm3crN7NmEVJ5uvfLFPLJev3x1j3feCQXfAhoYrojC681RhpdOph8NsvKBBwpYZHR7W0ifTTA==} engines: {node: '>=12'} @@ -3951,6 +4015,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.27.4': + resolution: {integrity: sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.19.3': resolution: {integrity: sha512-qXvYKmXj8GcJgWq3aGvxL/JG1ZM3UR272SdPU4QSTzD0eymrM7leiZH77pvY3UetCy0k1xuXZ+VPvoJNdtrsWQ==} engines: {node: '>=12'} @@ -3987,6 +4057,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.27.4': + resolution: {integrity: sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.19.3': resolution: {integrity: sha512-zr48Cg/8zkzZCzDHNxXO/89bf9e+r4HtzNUPoz4GmgAkF1gFAFmfgOdCbR8zMbzFDGb1FqBBhdXUpcTQRYS1cQ==} engines: {node: '>=12'} @@ -4023,6 +4099,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.27.4': + resolution: {integrity: sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.19.3': resolution: {integrity: sha512-7XlCKCA0nWcbvYpusARWkFjRQNWNGlt45S+Q18UeS///K6Aw8bB2FKYe9mhVWy/XLShvCweOLZPrnMswIaDXQA==} engines: {node: '>=12'} @@ -4059,6 +4141,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.27.4': + resolution: {integrity: sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.14.54': resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} engines: {node: '>=12'} @@ -4101,6 +4189,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.27.4': + resolution: {integrity: sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.19.3': resolution: {integrity: sha512-gy1bFskwEyxVMFRNYSvBauDIWNggD6pyxUksc0MV9UOBD138dKTzr8XnM2R4mBsHwVzeuIH8X5JhmNs2Pzrx+A==} engines: {node: '>=12'} @@ -4137,6 +4231,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.27.4': + resolution: {integrity: sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.19.3': resolution: {integrity: sha512-UrYLFu62x1MmmIe85rpR3qou92wB9lEXluwMB/STDzPF9k8mi/9UvNsG07Tt9AqwPQXluMQ6bZbTzYt01+Ue5g==} engines: {node: '>=12'} @@ -4173,6 +4273,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.27.4': + resolution: {integrity: sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.19.3': resolution: {integrity: sha512-9E73TfyMCbE+1AwFOg3glnzZ5fBAFK4aawssvuMgCRqCYzE0ylVxxzjEfut8xjmKkR320BEoMui4o/t9KA96gA==} engines: {node: '>=12'} @@ -4209,6 +4315,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.27.4': + resolution: {integrity: sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.19.3': resolution: {integrity: sha512-LlmsbuBdm1/D66TJ3HW6URY8wO6IlYHf+ChOUz8SUAjVTuaisfuwCOAgcxo3Zsu3BZGxmI7yt//yGOxV+lHcEA==} engines: {node: '>=12'} @@ -4245,6 +4357,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.27.4': + resolution: {integrity: sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.19.3': resolution: {integrity: sha512-ogV0+GwEmvwg/8ZbsyfkYGaLACBQWDvO0Kkh8LKBGKj9Ru8VM39zssrnu9Sxn1wbapA2qNS6BiLdwJZGouyCwQ==} engines: {node: '>=12'} @@ -4281,6 +4399,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.27.4': + resolution: {integrity: sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-arm64@0.25.0': resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==} engines: {node: '>=18'} @@ -4293,6 +4417,12 @@ packages: cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.27.4': + resolution: {integrity: sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.19.3': resolution: {integrity: sha512-o1jLNe4uzQv2DKXMlmEzf66Wd8MoIhLNO2nlQBHLtWyh2MitDG7sMpfCO3NTcoTMuqHjfufgUQDFRI5C+xsXQw==} engines: {node: '>=12'} @@ -4329,6 +4459,12 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.27.4': + resolution: {integrity: sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.25.0': resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==} engines: {node: '>=18'} @@ -4341,6 +4477,12 @@ packages: cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.27.4': + resolution: {integrity: sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.19.3': resolution: {integrity: sha512-AZJCnr5CZgZOdhouLcfRdnk9Zv6HbaBxjcyhq0StNcvAdVZJSKIdOiPB9az2zc06ywl0ePYJz60CjdKsQacp5Q==} engines: {node: '>=12'} @@ -4377,6 +4519,18 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.27.4': + resolution: {integrity: sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.27.4': + resolution: {integrity: sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + '@esbuild/sunos-x64@0.19.3': resolution: {integrity: sha512-Acsujgeqg9InR4glTRvLKGZ+1HMtDm94ehTIHKhJjFpgVzZG9/pIcWW/HA/DoMfEyXmANLDuDZ2sNrWcjq1lxw==} engines: {node: '>=12'} @@ -4413,6 +4567,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.27.4': + resolution: {integrity: sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.19.3': resolution: {integrity: sha512-FSrAfjVVy7TifFgYgliiJOyYynhQmqgPj15pzLyJk8BUsnlWNwP/IAy6GAiB1LqtoivowRgidZsfpoYLZH586A==} engines: {node: '>=12'} @@ -4449,6 +4609,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.27.4': + resolution: {integrity: sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.19.3': resolution: {integrity: sha512-xTScXYi12xLOWZ/sc5RBmMN99BcXp/eEf7scUC0oeiRoiT5Vvo9AycuqCp+xdpDyAU+LkrCqEpUS9fCSZF8J3Q==} engines: {node: '>=12'} @@ -4485,6 +4651,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.27.4': + resolution: {integrity: sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.19.3': resolution: {integrity: sha512-FbUN+0ZRXsypPyWE2IwIkVjDkDnJoMJARWOcFZn4KPPli+QnKqF0z1anvfaYe3ev5HFCpRDLLBDHyOALLppWHw==} engines: {node: '>=12'} @@ -4521,6 +4693,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.27.4': + resolution: {integrity: sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.5.0': resolution: {integrity: sha512-RoV8Xs9eNwiDvhv7M+xcL4PWyRyIXRY/FLp3buU4h1EYfdF7unWUy3dOjPqb3C7rMUewIcqwW850PgS8h1o1yg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -10125,6 +10303,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.27.4: + resolution: {integrity: sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -10756,6 +10939,15 @@ packages: picomatch: optional: true + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} @@ -16891,6 +17083,10 @@ packages: resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + tinyrainbow@2.0.0: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} @@ -17731,6 +17927,46 @@ packages: yaml: optional: true + vite@7.3.1: + resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vm-browserify@1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} @@ -19165,8 +19401,8 @@ snapshots: '@babel/generator@7.28.3': dependencies: - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 @@ -19193,11 +19429,11 @@ snapshots: '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 '@babel/helper-builder-binary-assignment-operator-visitor@7.25.9': dependencies: - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.28.5 '@babel/types': 7.27.1 transitivePeerDependencies: - supports-color @@ -19230,11 +19466,11 @@ snapshots: dependencies: '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.23.9) + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.23.9) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.28.5 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -19243,11 +19479,11 @@ snapshots: dependencies: '@babel/core': 7.24.0 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.24.0) + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.24.0) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.28.5 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -19256,11 +19492,11 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.10) + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.26.10) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.28.5 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -19273,7 +19509,20 @@ snapshots: '@babel/helper-optimise-call-expression': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.23.9) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.24.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.28.5 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -19401,17 +19650,10 @@ snapshots: '@babel/helper-globals@7.28.0': {} - '@babel/helper-member-expression-to-functions@7.25.9': - dependencies: - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 - transitivePeerDependencies: - - supports-color - '@babel/helper-member-expression-to-functions@7.27.1': dependencies: - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color @@ -19424,7 +19666,7 @@ snapshots: '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.28.5 '@babel/types': 7.27.1 transitivePeerDependencies: - supports-color @@ -19461,7 +19703,7 @@ snapshots: '@babel/core': 7.23.9 '@babel/helper-module-imports': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -19470,7 +19712,7 @@ snapshots: '@babel/core': 7.24.0 '@babel/helper-module-imports': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -19479,7 +19721,7 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-module-imports': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -19488,7 +19730,7 @@ snapshots: '@babel/core': 7.26.9 '@babel/helper-module-imports': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -19501,13 +19743,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-optimise-call-expression@7.25.9': - dependencies: - '@babel/types': 7.28.4 - '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 '@babel/helper-plugin-utils@7.25.9': {} @@ -19518,7 +19756,7 @@ snapshots: '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-wrap-function': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -19527,7 +19765,7 @@ snapshots: '@babel/core': 7.24.0 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-wrap-function': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -19536,34 +19774,34 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-wrap-function': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helper-replace-supers@7.25.9(@babel/core@7.23.9)': dependencies: '@babel/core': 7.23.9 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helper-replace-supers@7.25.9(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -19572,7 +19810,25 @@ snapshots: '@babel/core': 7.23.9 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.27.1(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.27.1(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -19585,15 +19841,15 @@ snapshots: '@babel/helper-skip-transparent-expression-wrappers@7.25.9': dependencies: - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.28.5 '@babel/types': 7.27.1 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color @@ -19621,9 +19877,9 @@ snapshots: '@babel/helper-wrap-function@7.25.9': dependencies: - '@babel/template': 7.27.1 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color @@ -19644,7 +19900,7 @@ snapshots: '@babel/highlight@7.25.9': dependencies: - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.1.1 @@ -19673,7 +19929,7 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -19748,6 +20004,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-proposal-decorators@7.23.9(@babel/core@7.23.9)': + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.23.9) + transitivePeerDependencies: + - supports-color + '@babel/plugin-proposal-decorators@7.25.9(@babel/core@7.23.9)': dependencies: '@babel/core': 7.23.9 @@ -20214,18 +20479,26 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.23.9)': + '@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.9)': dependencies: '@babel/core': 7.23.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.24.0) + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.23.9)': + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color @@ -21298,7 +21571,7 @@ snapshots: '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.24.0) '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.24.0) '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.24.0) '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.24.0) '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.24.0) '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.24.0) @@ -21465,6 +21738,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/preset-typescript@7.23.3(@babel/core@7.23.9)': + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.23.9) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.23.9) + transitivePeerDependencies: + - supports-color + '@babel/preset-typescript@7.27.1(@babel/core@7.23.9)': dependencies: '@babel/core': 7.23.9 @@ -21499,8 +21783,8 @@ snapshots: '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 '@babel/traverse@7.25.9': dependencies: @@ -21563,7 +21847,7 @@ snapshots: '@babel/types@7.28.4': dependencies: '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 '@babel/types@7.28.5': dependencies: @@ -21624,9 +21908,9 @@ snapshots: dependencies: tslib: 2.3.1 - '@devextreme-generator/angular@3.0.12(y3qlek3hjgomsdquxvldlbopya)': + '@devextreme-generator/angular@3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu)': dependencies: - '@devextreme-generator/core': 3.0.12(y3qlek3hjgomsdquxvldlbopya) + '@devextreme-generator/core': 3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - eslint @@ -21641,13 +21925,13 @@ snapshots: - eslint-plugin-spellcheck - supports-color - '@devextreme-generator/build-helpers@3.0.12(n2u3vruhcd6qhjmvh2nb6oryfu)': + '@devextreme-generator/build-helpers@3.0.12(nfbl32hasf34w5oeasbl4rdhey)': dependencies: - '@devextreme-generator/angular': 3.0.12(y3qlek3hjgomsdquxvldlbopya) - '@devextreme-generator/core': 3.0.12(y3qlek3hjgomsdquxvldlbopya) - '@devextreme-generator/inferno': 3.0.12(y3qlek3hjgomsdquxvldlbopya) - '@devextreme-generator/preact': 3.0.12(y3qlek3hjgomsdquxvldlbopya) - '@devextreme-generator/react': 3.0.12(y3qlek3hjgomsdquxvldlbopya) + '@devextreme-generator/angular': 3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu) + '@devextreme-generator/core': 3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu) + '@devextreme-generator/inferno': 3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu) + '@devextreme-generator/preact': 3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu) + '@devextreme-generator/react': 3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu) loader-utils: 2.0.4 typescript: 4.3.5 vinyl: 2.2.1 @@ -21670,10 +21954,10 @@ snapshots: - uglify-js - webpack-cli - '@devextreme-generator/core@3.0.12(y3qlek3hjgomsdquxvldlbopya)': + '@devextreme-generator/core@3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu)': dependencies: code-block-writer: 10.1.1 - eslint-config-devextreme: 0.2.0(y3qlek3hjgomsdquxvldlbopya) + eslint-config-devextreme: 0.2.0(6f5jwo5gpdqtqb7o3ybfffrabu) prettier: 2.8.8 prettier-eslint: 13.0.0 typescript: 4.3.5 @@ -21696,11 +21980,11 @@ snapshots: react: 17.0.2 react-dom: 17.0.2(react@17.0.2) - '@devextreme-generator/inferno@3.0.12(y3qlek3hjgomsdquxvldlbopya)': + '@devextreme-generator/inferno@3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu)': dependencies: - '@devextreme-generator/core': 3.0.12(y3qlek3hjgomsdquxvldlbopya) - '@devextreme-generator/preact': 3.0.12(y3qlek3hjgomsdquxvldlbopya) - '@devextreme-generator/react': 3.0.12(y3qlek3hjgomsdquxvldlbopya) + '@devextreme-generator/core': 3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu) + '@devextreme-generator/preact': 3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu) + '@devextreme-generator/react': 3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - eslint @@ -21715,10 +21999,10 @@ snapshots: - eslint-plugin-spellcheck - supports-color - '@devextreme-generator/preact@3.0.12(y3qlek3hjgomsdquxvldlbopya)': + '@devextreme-generator/preact@3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu)': dependencies: - '@devextreme-generator/core': 3.0.12(y3qlek3hjgomsdquxvldlbopya) - '@devextreme-generator/react': 3.0.12(y3qlek3hjgomsdquxvldlbopya) + '@devextreme-generator/core': 3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu) + '@devextreme-generator/react': 3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - eslint @@ -21733,9 +22017,9 @@ snapshots: - eslint-plugin-spellcheck - supports-color - '@devextreme-generator/react@3.0.12(y3qlek3hjgomsdquxvldlbopya)': + '@devextreme-generator/react@3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu)': dependencies: - '@devextreme-generator/core': 3.0.12(y3qlek3hjgomsdquxvldlbopya) + '@devextreme-generator/core': 3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - eslint @@ -21750,10 +22034,10 @@ snapshots: - eslint-plugin-spellcheck - supports-color - '@devextreme-generator/vue@3.0.12(y3qlek3hjgomsdquxvldlbopya)': + '@devextreme-generator/vue@3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu)': dependencies: - '@devextreme-generator/angular': 3.0.12(y3qlek3hjgomsdquxvldlbopya) - '@devextreme-generator/core': 3.0.12(y3qlek3hjgomsdquxvldlbopya) + '@devextreme-generator/angular': 3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu) + '@devextreme-generator/core': 3.0.12(6f5jwo5gpdqtqb7o3ybfffrabu) prettier: 2.8.8 transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' @@ -21796,6 +22080,9 @@ snapshots: '@esbuild/aix-ppc64@0.25.1': optional: true + '@esbuild/aix-ppc64@0.27.4': + optional: true + '@esbuild/android-arm64@0.19.3': optional: true @@ -21814,6 +22101,9 @@ snapshots: '@esbuild/android-arm64@0.25.1': optional: true + '@esbuild/android-arm64@0.27.4': + optional: true + '@esbuild/android-arm@0.19.3': optional: true @@ -21832,6 +22122,9 @@ snapshots: '@esbuild/android-arm@0.25.1': optional: true + '@esbuild/android-arm@0.27.4': + optional: true + '@esbuild/android-x64@0.19.3': optional: true @@ -21850,6 +22143,9 @@ snapshots: '@esbuild/android-x64@0.25.1': optional: true + '@esbuild/android-x64@0.27.4': + optional: true + '@esbuild/darwin-arm64@0.19.3': optional: true @@ -21868,6 +22164,9 @@ snapshots: '@esbuild/darwin-arm64@0.25.1': optional: true + '@esbuild/darwin-arm64@0.27.4': + optional: true + '@esbuild/darwin-x64@0.19.3': optional: true @@ -21886,6 +22185,9 @@ snapshots: '@esbuild/darwin-x64@0.25.1': optional: true + '@esbuild/darwin-x64@0.27.4': + optional: true + '@esbuild/freebsd-arm64@0.19.3': optional: true @@ -21904,6 +22206,9 @@ snapshots: '@esbuild/freebsd-arm64@0.25.1': optional: true + '@esbuild/freebsd-arm64@0.27.4': + optional: true + '@esbuild/freebsd-x64@0.19.3': optional: true @@ -21922,6 +22227,9 @@ snapshots: '@esbuild/freebsd-x64@0.25.1': optional: true + '@esbuild/freebsd-x64@0.27.4': + optional: true + '@esbuild/linux-arm64@0.19.3': optional: true @@ -21940,6 +22248,9 @@ snapshots: '@esbuild/linux-arm64@0.25.1': optional: true + '@esbuild/linux-arm64@0.27.4': + optional: true + '@esbuild/linux-arm@0.19.3': optional: true @@ -21958,6 +22269,9 @@ snapshots: '@esbuild/linux-arm@0.25.1': optional: true + '@esbuild/linux-arm@0.27.4': + optional: true + '@esbuild/linux-ia32@0.19.3': optional: true @@ -21976,6 +22290,9 @@ snapshots: '@esbuild/linux-ia32@0.25.1': optional: true + '@esbuild/linux-ia32@0.27.4': + optional: true + '@esbuild/linux-loong64@0.14.54': optional: true @@ -21997,6 +22314,9 @@ snapshots: '@esbuild/linux-loong64@0.25.1': optional: true + '@esbuild/linux-loong64@0.27.4': + optional: true + '@esbuild/linux-mips64el@0.19.3': optional: true @@ -22015,6 +22335,9 @@ snapshots: '@esbuild/linux-mips64el@0.25.1': optional: true + '@esbuild/linux-mips64el@0.27.4': + optional: true + '@esbuild/linux-ppc64@0.19.3': optional: true @@ -22033,6 +22356,9 @@ snapshots: '@esbuild/linux-ppc64@0.25.1': optional: true + '@esbuild/linux-ppc64@0.27.4': + optional: true + '@esbuild/linux-riscv64@0.19.3': optional: true @@ -22051,6 +22377,9 @@ snapshots: '@esbuild/linux-riscv64@0.25.1': optional: true + '@esbuild/linux-riscv64@0.27.4': + optional: true + '@esbuild/linux-s390x@0.19.3': optional: true @@ -22069,6 +22398,9 @@ snapshots: '@esbuild/linux-s390x@0.25.1': optional: true + '@esbuild/linux-s390x@0.27.4': + optional: true + '@esbuild/linux-x64@0.19.3': optional: true @@ -22087,12 +22419,18 @@ snapshots: '@esbuild/linux-x64@0.25.1': optional: true + '@esbuild/linux-x64@0.27.4': + optional: true + '@esbuild/netbsd-arm64@0.25.0': optional: true '@esbuild/netbsd-arm64@0.25.1': optional: true + '@esbuild/netbsd-arm64@0.27.4': + optional: true + '@esbuild/netbsd-x64@0.19.3': optional: true @@ -22111,12 +22449,18 @@ snapshots: '@esbuild/netbsd-x64@0.25.1': optional: true + '@esbuild/netbsd-x64@0.27.4': + optional: true + '@esbuild/openbsd-arm64@0.25.0': optional: true '@esbuild/openbsd-arm64@0.25.1': optional: true + '@esbuild/openbsd-arm64@0.27.4': + optional: true + '@esbuild/openbsd-x64@0.19.3': optional: true @@ -22135,6 +22479,12 @@ snapshots: '@esbuild/openbsd-x64@0.25.1': optional: true + '@esbuild/openbsd-x64@0.27.4': + optional: true + + '@esbuild/openharmony-arm64@0.27.4': + optional: true + '@esbuild/sunos-x64@0.19.3': optional: true @@ -22153,6 +22503,9 @@ snapshots: '@esbuild/sunos-x64@0.25.1': optional: true + '@esbuild/sunos-x64@0.27.4': + optional: true + '@esbuild/win32-arm64@0.19.3': optional: true @@ -22171,6 +22524,9 @@ snapshots: '@esbuild/win32-arm64@0.25.1': optional: true + '@esbuild/win32-arm64@0.27.4': + optional: true + '@esbuild/win32-ia32@0.19.3': optional: true @@ -22189,6 +22545,9 @@ snapshots: '@esbuild/win32-ia32@0.25.1': optional: true + '@esbuild/win32-ia32@0.27.4': + optional: true + '@esbuild/win32-x64@0.19.3': optional: true @@ -22207,6 +22566,9 @@ snapshots: '@esbuild/win32-x64@0.25.1': optional: true + '@esbuild/win32-x64@0.27.4': + optional: true + '@eslint-community/eslint-utils@4.5.0(eslint@8.56.0)': dependencies: eslint: 8.56.0 @@ -22817,7 +23179,7 @@ snapshots: '@jest/source-map@29.6.3': dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 callsites: 3.1.0 graceful-fs: 4.2.11 @@ -23367,8 +23729,8 @@ snapshots: '@nx/js@19.4.2(@babel/traverse@7.28.5)(@swc/core@1.15.3)(@types/node@20.12.8)(nx@19.4.2(@swc/core@1.15.3))(typescript@5.9.3)': dependencies: '@babel/core': 7.23.9 - '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.23.9) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.23.9) + '@babel/plugin-proposal-decorators': 7.23.9(@babel/core@7.23.9) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.9) '@babel/plugin-transform-runtime': 7.23.3(@babel/core@7.23.9) '@babel/preset-env': 7.23.9(@babel/core@7.23.9) '@babel/preset-typescript': 7.27.1(@babel/core@7.23.9) @@ -24506,10 +24868,10 @@ snapshots: '@socket.io/component-emitter@3.1.2': {} - '@storybook/addon-docs@10.1.9(@types/react@18.0.0)(esbuild@0.25.1)(rollup@4.53.3)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(vite@6.2.7(@types/node@20.14.5)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.66.0)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0))(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1))': + '@storybook/addon-docs@10.1.9(@types/react@18.0.0)(esbuild@0.27.4)(rollup@4.53.3)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(vite@7.3.1(@types/node@20.12.8)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0))(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4))': dependencies: '@mdx-js/react': 3.1.1(@types/react@18.0.0)(react@18.0.0) - '@storybook/csf-plugin': 10.1.9(esbuild@0.25.1)(rollup@4.53.3)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(vite@6.2.7(@types/node@20.14.5)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.66.0)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0))(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1)) + '@storybook/csf-plugin': 10.1.9(esbuild@0.27.4)(rollup@4.53.3)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(vite@7.3.1(@types/node@20.12.8)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0))(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4)) '@storybook/icons': 2.0.1(react-dom@18.0.0(react@18.0.0))(react@18.0.0) '@storybook/react-dom-shim': 10.1.9(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)) react: 18.0.0 @@ -24530,32 +24892,32 @@ snapshots: optionalDependencies: react: 18.0.0 - '@storybook/addon-webpack5-compiler-swc@4.0.2(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1))': + '@storybook/addon-webpack5-compiler-swc@4.0.2(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4))': dependencies: '@swc/core': 1.15.3 storybook: 10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0) - swc-loader: 0.2.6(@swc/core@1.15.3)(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1)) + swc-loader: 0.2.6(@swc/core@1.15.3)(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4)) transitivePeerDependencies: - '@swc/helpers' - webpack - '@storybook/builder-webpack5@10.1.9(@swc/core@1.15.3)(esbuild@0.25.1)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(typescript@5.9.3)(vite@6.2.7(@types/node@20.14.5)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.66.0)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0))': + '@storybook/builder-webpack5@10.1.9(@swc/core@1.15.3)(esbuild@0.27.4)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(typescript@5.9.3)(vite@7.3.1(@types/node@20.12.8)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0))': dependencies: '@storybook/core-webpack': 10.1.9(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)) - '@vitest/mocker': 3.2.4(vite@6.2.7(@types/node@20.14.5)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.66.0)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0)) + '@vitest/mocker': 3.2.4(vite@7.3.1(@types/node@20.12.8)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0)) case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.1 - css-loader: 7.1.2(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1)) + css-loader: 7.1.2(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4)) es-module-lexer: 1.5.4 - fork-ts-checker-webpack-plugin: 9.1.0(typescript@5.9.3)(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1)) - html-webpack-plugin: 5.6.3(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1)) + fork-ts-checker-webpack-plugin: 9.1.0(typescript@5.9.3)(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4)) + html-webpack-plugin: 5.6.3(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4)) magic-string: 0.30.17 storybook: 10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0) - style-loader: 4.0.0(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1)) - terser-webpack-plugin: 5.3.14(@swc/core@1.15.3)(esbuild@0.25.1)(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1)) + style-loader: 4.0.0(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4)) + terser-webpack-plugin: 5.3.14(@swc/core@1.15.3)(esbuild@0.27.4)(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4)) ts-dedent: 2.2.0 - webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.25.1) - webpack-dev-middleware: 6.1.3(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1)) + webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.27.4) + webpack-dev-middleware: 6.1.3(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4)) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 optionalDependencies: @@ -24574,15 +24936,15 @@ snapshots: storybook: 10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0) ts-dedent: 2.2.0 - '@storybook/csf-plugin@10.1.9(esbuild@0.25.1)(rollup@4.53.3)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(vite@6.2.7(@types/node@20.14.5)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.66.0)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0))(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1))': + '@storybook/csf-plugin@10.1.9(esbuild@0.27.4)(rollup@4.53.3)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(vite@7.3.1(@types/node@20.12.8)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0))(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4))': dependencies: storybook: 10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0) unplugin: 2.3.11 optionalDependencies: - esbuild: 0.25.1 + esbuild: 0.27.4 rollup: 4.53.3 - vite: 6.2.7(@types/node@20.14.5)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.66.0)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0) - webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.25.1) + vite: 7.3.1(@types/node@20.12.8)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.59.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0) + webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.27.4) '@storybook/global@5.0.0': {} @@ -24591,10 +24953,10 @@ snapshots: react: 18.0.0 react-dom: 18.0.0(react@18.0.0) - '@storybook/preset-react-webpack@10.1.9(@swc/core@1.15.3)(esbuild@0.25.1)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(typescript@5.9.3)': + '@storybook/preset-react-webpack@10.1.9(@swc/core@1.15.3)(esbuild@0.27.4)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(typescript@5.9.3)': dependencies: '@storybook/core-webpack': 10.1.9(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.9.3)(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1)) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.9.3)(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4)) '@types/semver': 7.5.8 magic-string: 0.30.17 react: 18.0.0 @@ -24604,7 +24966,7 @@ snapshots: semver: 7.7.2 storybook: 10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0) tsconfig-paths: 4.2.0 - webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.25.1) + webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.27.4) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -24614,7 +24976,7 @@ snapshots: - uglify-js - webpack-cli - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.9.3)(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1))': + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.9.3)(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4))': dependencies: debug: 4.4.0 endent: 2.1.0 @@ -24624,7 +24986,7 @@ snapshots: react-docgen-typescript: 2.2.2(typescript@5.9.3) tslib: 2.6.3 typescript: 5.9.3 - webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.25.1) + webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.27.4) transitivePeerDependencies: - supports-color @@ -24634,10 +24996,10 @@ snapshots: react-dom: 18.0.0(react@18.0.0) storybook: 10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0) - '@storybook/react-webpack5@10.1.9(@swc/core@1.15.3)(esbuild@0.25.1)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(typescript@5.9.3)(vite@6.2.7(@types/node@20.14.5)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.66.0)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0))': + '@storybook/react-webpack5@10.1.9(@swc/core@1.15.3)(esbuild@0.27.4)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(typescript@5.9.3)(vite@7.3.1(@types/node@20.12.8)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0))': dependencies: - '@storybook/builder-webpack5': 10.1.9(@swc/core@1.15.3)(esbuild@0.25.1)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(typescript@5.9.3)(vite@6.2.7(@types/node@20.14.5)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.66.0)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0)) - '@storybook/preset-react-webpack': 10.1.9(@swc/core@1.15.3)(esbuild@0.25.1)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(typescript@5.9.3) + '@storybook/builder-webpack5': 10.1.9(@swc/core@1.15.3)(esbuild@0.27.4)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(typescript@5.9.3)(vite@7.3.1(@types/node@20.12.8)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0)) + '@storybook/preset-react-webpack': 10.1.9(@swc/core@1.15.3)(esbuild@0.27.4)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(typescript@5.9.3) '@storybook/react': 10.1.9(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(storybook@10.1.9(@testing-library/dom@10.4.0)(prettier@3.6.2)(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(typescript@5.9.3) react: 18.0.0 react-dom: 18.0.0(react@18.0.0) @@ -25861,13 +26223,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@6.2.7(@types/node@20.14.5)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.66.0)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0))': + '@vitest/mocker@3.2.4(vite@7.3.1(@types/node@20.12.8)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.2.7(@types/node@20.14.5)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.66.0)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0) + vite: 7.3.1(@types/node@20.12.8)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.59.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0) '@vitest/pretty-format@3.2.4': dependencies: @@ -28598,7 +28960,7 @@ snapshots: optionalDependencies: webpack: 5.96.1(@swc/core@1.15.3) - css-loader@7.1.2(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1)): + css-loader@7.1.2(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4)): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 @@ -28609,7 +28971,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.2 optionalDependencies: - webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.25.1) + webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.27.4) css-loader@7.1.2(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.1)): dependencies: @@ -29840,6 +30202,35 @@ snapshots: '@esbuild/win32-ia32': 0.25.1 '@esbuild/win32-x64': 0.25.1 + esbuild@0.27.4: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.4 + '@esbuild/android-arm': 0.27.4 + '@esbuild/android-arm64': 0.27.4 + '@esbuild/android-x64': 0.27.4 + '@esbuild/darwin-arm64': 0.27.4 + '@esbuild/darwin-x64': 0.27.4 + '@esbuild/freebsd-arm64': 0.27.4 + '@esbuild/freebsd-x64': 0.27.4 + '@esbuild/linux-arm': 0.27.4 + '@esbuild/linux-arm64': 0.27.4 + '@esbuild/linux-ia32': 0.27.4 + '@esbuild/linux-loong64': 0.27.4 + '@esbuild/linux-mips64el': 0.27.4 + '@esbuild/linux-ppc64': 0.27.4 + '@esbuild/linux-riscv64': 0.27.4 + '@esbuild/linux-s390x': 0.27.4 + '@esbuild/linux-x64': 0.27.4 + '@esbuild/netbsd-arm64': 0.27.4 + '@esbuild/netbsd-x64': 0.27.4 + '@esbuild/openbsd-arm64': 0.27.4 + '@esbuild/openbsd-x64': 0.27.4 + '@esbuild/openharmony-arm64': 0.27.4 + '@esbuild/sunos-x64': 0.27.4 + '@esbuild/win32-arm64': 0.27.4 + '@esbuild/win32-ia32': 0.27.4 + '@esbuild/win32-x64': 0.27.4 + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -29945,14 +30336,14 @@ snapshots: transitivePeerDependencies: - eslint-plugin-import - eslint-config-devextreme@0.2.0(y3qlek3hjgomsdquxvldlbopya): + eslint-config-devextreme@0.2.0(6f5jwo5gpdqtqb7o3ybfffrabu): dependencies: '@typescript-eslint/eslint-plugin': 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5) eslint: 9.18.0(jiti@1.21.6) eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6)))(eslint@9.18.0(jiti@1.21.6)) eslint-config-airbnb-typescript: 18.0.0(@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6)))(eslint@9.18.0(jiti@1.21.6)) eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6)) - eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(jest@29.7.0(@types/node@20.14.5)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)))(typescript@4.9.5) + eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)))(typescript@4.9.5) eslint-plugin-jest-formatting: 3.1.0(eslint@9.18.0(jiti@1.21.6)) eslint-plugin-jsx-a11y: 6.8.0(eslint@9.18.0(jiti@1.21.6)) eslint-plugin-qunit: 8.1.2(eslint@9.18.0(jiti@1.21.6)) @@ -30023,14 +30414,14 @@ snapshots: stylelint: 16.5.0(typescript@5.4.5) stylelint-config-standard: 35.0.0(stylelint@16.5.0(typescript@5.4.5)) - eslint-config-devextreme@1.1.6(u6rbfymnlxw7vx53hal24iecoa): + eslint-config-devextreme@1.1.6(7nq66yvdigkdls44xnjv2fh7li): dependencies: '@typescript-eslint/eslint-plugin': 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5) eslint: 9.18.0(jiti@1.21.6) eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6)))(eslint@9.18.0(jiti@1.21.6)) eslint-config-airbnb-typescript: 18.0.0(@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6)))(eslint@9.18.0(jiti@1.21.6)) eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6)) - eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(jest@29.7.0(@types/node@20.14.5)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)))(typescript@4.9.5) + eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)))(typescript@4.9.5) eslint-plugin-jest-formatting: 3.1.0(eslint@9.18.0(jiti@1.21.6)) eslint-plugin-jsx-a11y: 6.8.0(eslint@9.18.0(jiti@1.21.6)) eslint-plugin-qunit: 8.1.2(eslint@9.18.0(jiti@1.21.6)) @@ -30286,6 +30677,17 @@ snapshots: - supports-color - typescript + eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)))(typescript@4.9.5): + dependencies: + '@typescript-eslint/utils': 5.62.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5) + eslint: 9.18.0(jiti@1.21.6) + optionalDependencies: + '@typescript-eslint/eslint-plugin': 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5) + jest: 29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)) + transitivePeerDependencies: + - supports-color + - typescript + eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5))(eslint@9.18.0(jiti@1.21.6))(jest@29.7.0(@types/node@20.14.5)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)))(typescript@4.9.5): dependencies: '@typescript-eslint/utils': 5.62.0(eslint@9.18.0(jiti@1.21.6))(typescript@4.9.5) @@ -31169,9 +31571,13 @@ snapshots: dependencies: pend: 1.2.0 - fdir@6.4.4(picomatch@4.0.2): + fdir@6.4.4(picomatch@4.0.3): optionalDependencies: - picomatch: 4.0.2 + picomatch: 4.0.3 + + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 fecha@4.2.3: {} @@ -31386,7 +31792,7 @@ snapshots: fork-stream@0.0.4: {} - fork-ts-checker-webpack-plugin@9.1.0(typescript@5.9.3)(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1)): + fork-ts-checker-webpack-plugin@9.1.0(typescript@5.9.3)(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4)): dependencies: '@babel/code-frame': 7.27.1 chalk: 4.1.2 @@ -31401,7 +31807,7 @@ snapshots: semver: 7.7.2 tapable: 2.3.0 typescript: 5.9.3 - webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.25.1) + webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.27.4) form-data-encoder@1.7.2: {} @@ -32472,7 +32878,7 @@ snapshots: webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.25.0) optional: true - html-webpack-plugin@5.6.3(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1)): + html-webpack-plugin@5.6.3(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -32480,7 +32886,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.3.0 optionalDependencies: - webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.25.1) + webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.27.4) html-webpack-plugin@5.6.3(webpack@5.94.0(@swc/core@1.15.3)(esbuild@0.20.1)): dependencies: @@ -38635,9 +39041,9 @@ snapshots: dependencies: webpack: 5.96.1(@swc/core@1.15.3) - style-loader@4.0.0(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1)): + style-loader@4.0.0(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4)): dependencies: - webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.25.1) + webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.27.4) style-search@0.1.0: {} @@ -38963,11 +39369,11 @@ snapshots: svg-tags@1.0.0: {} - swc-loader@0.2.6(@swc/core@1.15.3)(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1)): + swc-loader@0.2.6(@swc/core@1.15.3)(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4)): dependencies: '@swc/core': 1.15.3 '@swc/counter': 0.1.3 - webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.25.1) + webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.27.4) symbol-observable@4.0.0: {} @@ -39118,29 +39524,29 @@ snapshots: esbuild: 0.25.0 optional: true - terser-webpack-plugin@5.3.14(@swc/core@1.15.3)(esbuild@0.25.1)(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1)): + terser-webpack-plugin@5.3.14(@swc/core@1.15.3)(esbuild@0.25.1)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.1)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 terser: 5.39.0 - webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.25.1) + webpack: 5.98.0(@swc/core@1.15.3)(esbuild@0.25.1) optionalDependencies: '@swc/core': 1.15.3 esbuild: 0.25.1 - terser-webpack-plugin@5.3.14(@swc/core@1.15.3)(esbuild@0.25.1)(webpack@5.98.0(@swc/core@1.15.3)(esbuild@0.25.1)): + terser-webpack-plugin@5.3.14(@swc/core@1.15.3)(esbuild@0.27.4)(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 terser: 5.39.0 - webpack: 5.98.0(@swc/core@1.15.3)(esbuild@0.25.1) + webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.27.4) optionalDependencies: '@swc/core': 1.15.3 - esbuild: 0.25.1 + esbuild: 0.27.4 terser-webpack-plugin@5.3.14(@swc/core@1.15.3)(webpack@5.103.0(@swc/core@1.15.3)): dependencies: @@ -39488,8 +39894,13 @@ snapshots: tinyglobby@0.2.13: dependencies: - fdir: 6.4.4(picomatch@4.0.2) - picomatch: 4.0.2 + fdir: 6.4.4(picomatch@4.0.3) + picomatch: 4.0.3 + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 tinyrainbow@2.0.0: {} @@ -39614,11 +40025,11 @@ snapshots: ts-dedent@2.2.0: {} - ts-jest@29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(jest@29.7.0(@types/node@20.14.5)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)))(typescript@4.9.5): + ts-jest@29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@20.12.8)(typescript@5.9.3)))(typescript@4.9.5): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.14.5)(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@20.12.8)(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-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -40332,7 +40743,7 @@ snapshots: v8-to-istanbul@9.3.0: dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 @@ -40557,6 +40968,25 @@ snapshots: terser: 5.39.0 yaml: 2.5.0 + vite@7.3.1(@types/node@20.12.8)(jiti@1.21.6)(less@4.2.2)(lightningcss@1.30.2)(sass-embedded@1.59.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.5.0): + dependencies: + esbuild: 0.27.4 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.53.3 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 20.12.8 + fsevents: 2.3.3 + jiti: 1.21.6 + less: 4.2.2 + lightningcss: 1.30.2 + sass: 1.85.0 + sass-embedded: 1.59.2 + terser: 5.39.0 + yaml: 2.5.0 + vm-browserify@1.1.2: {} void-elements@2.0.1: {} @@ -40751,7 +41181,7 @@ snapshots: optionalDependencies: webpack: 5.94.0(@swc/core@1.15.3)(esbuild@0.20.1) - webpack-dev-middleware@6.1.3(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1)): + webpack-dev-middleware@6.1.3(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4)): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -40759,7 +41189,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.25.1) + webpack: 5.103.0(@swc/core@1.15.3)(esbuild@0.27.4) webpack-dev-middleware@7.4.2(webpack@5.94.0): dependencies: @@ -41025,7 +41455,7 @@ snapshots: - uglify-js optional: true - webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1): + webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -41049,7 +41479,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.3.14(@swc/core@1.15.3)(esbuild@0.25.1)(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.25.1)) + terser-webpack-plugin: 5.3.14(@swc/core@1.15.3)(esbuild@0.27.4)(webpack@5.103.0(@swc/core@1.15.3)(esbuild@0.27.4)) watchpack: 2.4.4 webpack-sources: 3.3.3 transitivePeerDependencies: From 0cb6f3562348bc2586db8a9302b5c74e4df4b4cc Mon Sep 17 00:00:00 2001 From: Aleksey Semikozov Date: Sun, 15 Mar 2026 09:52:01 -0300 Subject: [PATCH 2/3] Fix Vite plugin: remove type-only class fields, add jQuery integration import - Added removeUninitializedClassFields babel visitor to strip type-only class property declarations that would otherwise initialize as undefined and overwrite values set during _init() in the legacy OOP system - Added @babel/plugin-transform-class-properties (loose) to convert field initializers to constructor assignments - Added @babel/plugin-transform-typescript as explicit dependency - Added jQuery integration side-effect import in scheduler-example.ts - Removed vite-plugin-inferno dependency, replaced with custom plugin Co-Authored-By: Claude Opus 4.6 (1M context) --- .../build/vite-plugin-devextreme.ts | 47 ++++++-- packages/devextreme/package.json | 1 + .../playground/scheduler-example.ts | 1 + pnpm-lock.yaml | 106 +++++++++--------- 4 files changed, 89 insertions(+), 66 deletions(-) diff --git a/packages/devextreme/build/vite-plugin-devextreme.ts b/packages/devextreme/build/vite-plugin-devextreme.ts index 46e006eac508..c87e5e58a9fa 100644 --- a/packages/devextreme/build/vite-plugin-devextreme.ts +++ b/packages/devextreme/build/vite-plugin-devextreme.ts @@ -1,7 +1,24 @@ import { transformAsync } from '@babel/core'; -import type { Plugin } from 'vite'; +import type { PluginOption } from 'vite'; -export default function devextremeInfernoPlugin(): Plugin { +function removeUninitializedClassFields(): unknown { + return { + visitor: { + ClassProperty(path: { node: { value: unknown }; remove: () => void }) { + if (path.node.value === null || path.node.value === undefined) { + path.remove(); + } + }, + ClassDeclaration(path: { node: { body: { body: Array<{ type: string; value: unknown }> } } }) { + path.node.body.body = path.node.body.body.filter( + (member) => !(member.type === 'ClassProperty' && (member.value === null || member.value === undefined)), + ); + }, + }, + }; +} + +export default function devextremeInfernoPlugin(): PluginOption { return { name: 'devextreme-inferno', enforce: 'pre', @@ -14,24 +31,30 @@ export default function devextremeInfernoPlugin(): Plugin { const isTSX = id.endsWith('.tsx'); const isTS = id.endsWith('.ts') || isTSX; - const plugins: unknown[] = [ - ['@babel/plugin-proposal-decorators', { legacy: true }], - ['@babel/plugin-transform-class-properties', { loose: true }], - 'babel-plugin-inferno', - ]; + const plugins: unknown[] = []; - const presets: unknown[] = []; if (isTS) { - presets.push([ - '@babel/preset-typescript', - { isTSX, allExtensions: true }, + plugins.push([ + '@babel/plugin-transform-typescript', + { + isTSX, + allExtensions: true, + allowDeclareFields: true, + optimizeConstEnums: true, + }, ]); } + plugins.push( + removeUninitializedClassFields, + ['@babel/plugin-proposal-decorators', { legacy: true }], + ['@babel/plugin-transform-class-properties', { loose: true }], + 'babel-plugin-inferno', + ); + const result = await transformAsync(code, { filename: id, plugins, - presets, sourceMaps: true, }); diff --git a/packages/devextreme/package.json b/packages/devextreme/package.json index 55dafa3abd8f..125905ab9c39 100644 --- a/packages/devextreme/package.json +++ b/packages/devextreme/package.json @@ -72,6 +72,7 @@ "@babel/plugin-proposal-decorators": "7.23.9", "@babel/plugin-transform-class-properties": "7.23.3", "@babel/plugin-transform-modules-commonjs": "7.23.3", + "@babel/plugin-transform-typescript": "7.23.6", "@babel/plugin-transform-runtime": "7.23.3", "@babel/preset-env": "7.23.9", "@babel/preset-typescript": "7.23.3", diff --git a/packages/devextreme/playground/scheduler-example.ts b/packages/devextreme/playground/scheduler-example.ts index 35d76747c243..8f71f4bbad3c 100644 --- a/packages/devextreme/playground/scheduler-example.ts +++ b/packages/devextreme/playground/scheduler-example.ts @@ -1,3 +1,4 @@ +import '../js/__internal/integration/jquery'; import $ from 'jquery'; import { setupThemeSelector } from './newthemeSelector'; import Scheduler from '../js/__internal/scheduler/m_scheduler'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 71a0217bc089..7a4c6c6ed432 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1225,6 +1225,9 @@ importers: '@babel/plugin-transform-runtime': specifier: 7.23.3 version: 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-typescript': + specifier: 7.23.6 + version: 7.23.6(@babel/core@7.23.9) '@babel/preset-env': specifier: 7.23.9 version: 7.23.9(@babel/core@7.23.9) @@ -2628,10 +2631,6 @@ packages: resolution: {integrity: sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==} engines: {node: '>=6.9.0'} - '@babel/generator@7.28.3': - resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} - engines: {node: '>=6.9.0'} - '@babel/generator@7.28.5': resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} engines: {node: '>=6.9.0'} @@ -3465,6 +3464,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typescript@7.23.6': + resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typescript@7.28.0': resolution: {integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==} engines: {node: '>=6.9.0'} @@ -3586,10 +3591,6 @@ packages: resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.4': - resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} - engines: {node: '>=6.9.0'} - '@babel/types@7.28.5': resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} engines: {node: '>=6.9.0'} @@ -19226,7 +19227,7 @@ snapshots: '@babel/code-frame@7.27.1': dependencies: - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 @@ -19287,7 +19288,7 @@ snapshots: '@babel/parser': 7.27.1 '@babel/template': 7.27.1 '@babel/traverse': 7.27.1 - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 convert-source-map: 2.0.0 debug: 4.4.0 gensync: 1.0.0-beta.2 @@ -19307,7 +19308,7 @@ snapshots: '@babel/parser': 7.27.1 '@babel/template': 7.27.1 '@babel/traverse': 7.27.1 - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 convert-source-map: 2.0.0 debug: 4.4.0 gensync: 1.0.0-beta.2 @@ -19378,7 +19379,7 @@ snapshots: '@babel/generator@7.26.10': dependencies: '@babel/parser': 7.27.1 - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 @@ -19394,19 +19395,11 @@ snapshots: '@babel/generator@7.27.1': dependencies: '@babel/parser': 7.27.1 - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 - '@babel/generator@7.28.3': - dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - jsesc: 3.1.0 - '@babel/generator@7.28.5': dependencies: '@babel/parser': 7.28.5 @@ -19421,11 +19414,11 @@ snapshots: '@babel/helper-annotate-as-pure@7.25.9': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 '@babel/helper-annotate-as-pure@7.27.1': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 '@babel/helper-annotate-as-pure@7.27.3': dependencies: @@ -19434,7 +19427,7 @@ snapshots: '@babel/helper-builder-binary-assignment-operator-visitor@7.25.9': dependencies: '@babel/traverse': 7.28.5 - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color @@ -19646,7 +19639,7 @@ snapshots: '@babel/helper-environment-visitor@7.24.7': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 '@babel/helper-globals@7.28.0': {} @@ -19667,7 +19660,7 @@ snapshots: '@babel/helper-module-imports@7.27.1': dependencies: '@babel/traverse': 7.28.5 - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color @@ -19702,7 +19695,7 @@ snapshots: dependencies: '@babel/core': 7.23.9 '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -19711,7 +19704,7 @@ snapshots: dependencies: '@babel/core': 7.24.0 '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -19720,7 +19713,7 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -19729,7 +19722,7 @@ snapshots: dependencies: '@babel/core': 7.26.9 '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -19835,14 +19828,14 @@ snapshots: '@babel/helper-simple-access@7.25.9': dependencies: '@babel/traverse': 7.25.9 - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.25.9': dependencies: '@babel/traverse': 7.28.5 - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color @@ -19859,7 +19852,7 @@ snapshots: '@babel/helper-split-export-declaration@7.24.7': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 '@babel/helper-string-parser@7.25.9': {} @@ -19891,7 +19884,7 @@ snapshots: '@babel/helpers@7.27.0': dependencies: '@babel/template': 7.27.1 - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 '@babel/helpers@7.28.4': dependencies: @@ -19915,11 +19908,11 @@ snapshots: '@babel/parser@7.27.1': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 '@babel/parser@7.28.4': dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 '@babel/parser@7.28.5': dependencies: @@ -21371,6 +21364,16 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.9)': + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.23.9) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.23.9)': dependencies: '@babel/core': 7.23.9 @@ -21745,7 +21748,7 @@ snapshots: '@babel/helper-validator-option': 7.27.1 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.23.9) '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.23.9) + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.9) transitivePeerDependencies: - supports-color @@ -21778,7 +21781,7 @@ snapshots: dependencies: '@babel/code-frame': 7.27.1 '@babel/parser': 7.27.1 - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 '@babel/template@7.27.2': dependencies: @@ -21804,7 +21807,7 @@ snapshots: '@babel/generator': 7.27.1 '@babel/parser': 7.27.1 '@babel/template': 7.27.1 - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: @@ -21813,11 +21816,11 @@ snapshots: '@babel/traverse@7.28.4': dependencies: '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 + '@babel/generator': 7.28.5 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.4 + '@babel/parser': 7.28.5 '@babel/template': 7.27.2 - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -21840,11 +21843,6 @@ snapshots: '@babel/helper-validator-identifier': 7.25.9 '@babel/types@7.27.1': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - - '@babel/types@7.28.4': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 @@ -25206,16 +25204,16 @@ snapshots: '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 '@types/babel__template@7.4.4': dependencies: '@babel/parser': 7.23.9 - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 '@types/babel__traverse@7.28.0': dependencies: @@ -27339,7 +27337,7 @@ snapshots: '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.23.9) - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -27363,7 +27361,7 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: '@babel/template': 7.27.1 - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 @@ -34271,10 +34269,10 @@ snapshots: jest-snapshot@29.7.0: dependencies: '@babel/core': 7.23.9 - '@babel/generator': 7.27.1 + '@babel/generator': 7.28.5 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.23.9) '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.23.9) - '@babel/types': 7.27.1 + '@babel/types': 7.28.5 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 From af45a3066b6df9fba47cf01d7041d4d7ab553971 Mon Sep 17 00:00:00 2001 From: Aleksey Semikozov Date: Sun, 15 Mar 2026 10:21:49 -0300 Subject: [PATCH 3/3] Fix class field initialization order in Vite plugin Move initialized class field assignments to end of constructor body to match TypeScript's legacy useDefineForClassFields:false behavior. This fixes cases where field initializers depend on constructor parameter properties (e.g. this._workSpace._dateTableScrollable). Co-Authored-By: Claude Opus 4.6 (1M context) --- .../build/vite-plugin-devextreme.ts | 64 +++++++++++++++++-- 1 file changed, 60 insertions(+), 4 deletions(-) diff --git a/packages/devextreme/build/vite-plugin-devextreme.ts b/packages/devextreme/build/vite-plugin-devextreme.ts index c87e5e58a9fa..f2e924936772 100644 --- a/packages/devextreme/build/vite-plugin-devextreme.ts +++ b/packages/devextreme/build/vite-plugin-devextreme.ts @@ -9,10 +9,66 @@ function removeUninitializedClassFields(): unknown { path.remove(); } }, - ClassDeclaration(path: { node: { body: { body: Array<{ type: string; value: unknown }> } } }) { - path.node.body.body = path.node.body.body.filter( - (member) => !(member.type === 'ClassProperty' && (member.value === null || member.value === undefined)), + }, + }; +} + +function moveFieldInitializersToConstructor(): unknown { + return { + visitor: { + Class(path: { node: { body: { body: unknown[] } } }) { + const body = path.node.body.body; + + type ClassMember = { + type: string; + kind?: string; + key?: { name: string }; + value?: unknown; + static?: boolean; + body?: { body: unknown[] }; + }; + + const fieldsToMove: ClassMember[] = []; + const remaining: unknown[] = []; + + for (const member of body as ClassMember[]) { + if ( + member.type === 'ClassProperty' + && member.value != null + && !member.static + ) { + fieldsToMove.push(member); + } else { + remaining.push(member); + } + } + + if (fieldsToMove.length === 0) return; + + const ctor = (remaining as ClassMember[]).find( + (m) => m.type === 'ClassMethod' && m.kind === 'constructor', ); + + if (!ctor) return; + + const assignments = fieldsToMove.map((field) => ({ + type: 'ExpressionStatement', + expression: { + type: 'AssignmentExpression', + operator: '=', + left: { + type: 'MemberExpression', + object: { type: 'ThisExpression' }, + property: { type: 'Identifier', name: field.key!.name }, + computed: false, + }, + right: field.value, + }, + })); + + ctor.body!.body.push(...assignments); + + path.node.body.body = remaining; }, }, }; @@ -47,8 +103,8 @@ export default function devextremeInfernoPlugin(): PluginOption { plugins.push( removeUninitializedClassFields, + moveFieldInitializersToConstructor, ['@babel/plugin-proposal-decorators', { legacy: true }], - ['@babel/plugin-transform-class-properties', { loose: true }], 'babel-plugin-inferno', );