diff --git a/.c8rc.json b/.c8rc.json index f4dcf05951..3b17cad41e 100644 --- a/.c8rc.json +++ b/.c8rc.json @@ -1,4 +1,4 @@ { "reporter": ["lcov"], - "report-dir": "./.coverage" + "report-dir": ".coverage" } diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index be17ad1a21..4d7d3d26da 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -15,18 +15,18 @@ runs: using: composite steps: - name: Setup Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ inputs.node-version }} cache: npm - name: Setup Java - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ inputs.java-version }} distribution: 'temurin' cache: maven - name: Cache node_modules - uses: actions/cache@v3 + uses: actions/cache@v4 id: cache-node_modules with: path: | diff --git a/.github/workflows/validation.yml b/.github/workflows/validation.yml index 7d78ae76c7..d81b1710ab 100644 --- a/.github/workflows/validation.yml +++ b/.github/workflows/validation.yml @@ -6,7 +6,7 @@ defaults: on: push: - branches: [ main, '24.4', '2.5', '1.5', '1.4', '1.3' ] + branches: [ main, '24.6', '24.5', '24.4', '2.5', '1.5', '1.4' ] paths-ignore: - 'hilla-logo.svg' - 'README.md' @@ -207,9 +207,9 @@ jobs: include: - os: ubuntu-latest it-modules: group-1 - - os: windows-latest + - os: ubuntu-latest it-modules: group-2 - - os: windows-latest + - os: ubuntu-latest it-modules: some runs-on: ${{ matrix.os }} @@ -291,6 +291,8 @@ jobs: TB_LICENSE=${{secrets.TB_LICENSE}} mkdir -p ~/.vaadin/ echo '{"username":"'`echo $TB_LICENSE | cut -d / -f1`'","proKey":"'`echo $TB_LICENSE | cut -d / -f2`'"}' > ~/.vaadin/proKey + - name: publish plugin to Maven Local + run: ./packages/java/gradle-plugin/gradlew --info -p packages/java/gradle-plugin build publishToMavenLocal -x functionalTest - name: Test gradle-plugin's functional tests run: ./packages/java/gradle-plugin/gradlew --info -p packages/java/gradle-plugin functionalTest - name: Gradle ITs diff --git a/.mocharc.cjs b/.mocharc.cjs index 87c3eab5f7..e194612b80 100644 --- a/.mocharc.cjs +++ b/.mocharc.cjs @@ -1,13 +1,15 @@ -const { join } = require('node:path'); +const {pathToFileURL} = require("node:url"); const isCI = !!process.env.CI; const karmaMochaConfig = { forbidOnly: isCI, }; +const root = pathToFileURL(`${__dirname}/`); + module.exports = { extensions: ['ts', 'mts', 'cts', 'js', 'mjs', 'cjs', 'tsx'], - import: join(__dirname, 'scripts/hooks.js'), + import: new URL('scripts/hooks.js', root), exit: true, karmaMochaConfig, ...karmaMochaConfig, diff --git a/karma-context.html b/karma-context.html new file mode 100644 index 0000000000..f0513f5ba0 --- /dev/null +++ b/karma-context.html @@ -0,0 +1,43 @@ + + + + + Foo + + + + + + + + + + %SCRIPTS% + + + + + \ No newline at end of file diff --git a/karma-debug.html b/karma-debug.html new file mode 100644 index 0000000000..d7373bd716 --- /dev/null +++ b/karma-debug.html @@ -0,0 +1,45 @@ + + + + + %X_UA_COMPATIBLE% + Karma DEBUG RUNNER + + + + + + + + + + + + %SCRIPTS% + + + + + \ No newline at end of file diff --git a/karma.config.cjs b/karma.config.cjs index 987c0256b1..e17b8b0edd 100644 --- a/karma.config.cjs +++ b/karma.config.cjs @@ -1,5 +1,6 @@ +/* eslint-disable import/unambiguous */ const { parseArgs } = require('node:util'); -const { basename, join, resolve } = require('node:path'); +const { basename } = require('node:path'); const { readFileSync } = require('node:fs'); const { readFile } = require('node:fs/promises'); const karmaChromeLauncher = require('karma-chrome-launcher'); @@ -12,16 +13,19 @@ const MagicString = require('magic-string'); const postcss = require('postcss'); const cssnanoPlugin = require('cssnano'); const { karmaMochaConfig } = require('./.mocharc.cjs'); +const reactPlugin = require('@vitejs/plugin-react'); +const { pathToFileURL, fileURLToPath } = require('node:url'); // The current package, one of the packages in the `packages` dir -const cwd = process.cwd(); +const cwd = pathToFileURL(`${process.cwd()}/`); +const root = pathToFileURL(`${__dirname}/`); function loadMockConfig() { try { - const content = readFileSync(join(cwd, 'test/mocks/config.json'), 'utf8'); + const content = readFileSync(new URL('test/mocks/config.json', cwd), 'utf8'); return JSON.parse(content); } catch { - console.log(`No mock files found for ${basename(cwd)}. Skipping...`); + console.log(`No mock files found for ${basename(fileURLToPath(cwd))}. Skipping...`); return {}; } } @@ -34,7 +38,7 @@ function loadRegisterJs() { name: 'vite-hilla-register', async transform(code) { if (code.includes('__REGISTER__()') && !code.includes('function __REGISTER__')) { - const registerCode = await readFile(resolve(cwd, '../../../scripts/register.js'), 'utf8').then((c) => + const registerCode = await readFile(new URL('scripts/register.js', root), 'utf8').then((c) => c.replace('export', ''), ); @@ -101,11 +105,11 @@ const watch = !!_watch && !isCI; module.exports = (config) => { const mocks = loadMockConfig(); - const tsconfig = JSON.parse(readFileSync(join(cwd, 'tsconfig.json'), 'utf8')); - const packageJson = JSON.parse(readFileSync(join(cwd, 'package.json'), 'utf8')); + const tsconfig = JSON.parse(readFileSync(new URL('tsconfig.json', cwd), 'utf8')); + const packageJson = JSON.parse(readFileSync(new URL('package.json', cwd), 'utf8')); config.set({ - basePath: cwd, + basePath: fileURLToPath(cwd), plugins: [karmaVite, karmaMocha, karmaChromeLauncher, karmaCoverage, karmaSpecReporter, karmaViewport], middleware: ['vite'], @@ -119,6 +123,10 @@ module.exports = (config) => { base: 'ChromeHeadless', flags: ['--no-sandbox', '--disable-setuid-sandbox'], }, + ChromeNoSS: { + base: 'Chrome', + flags: ['-disable-search-engine-choice-screen'], + }, }, frameworks: ['mocha', 'vite', 'viewport'], @@ -161,11 +169,31 @@ module.exports = (config) => { useDefineForClassFields: false, }, }, + supported: { + decorators: false, + 'top-level-await': true, + }, }, - plugins: [loadRegisterJs(), constructCss()], + plugins: [ + loadRegisterJs(), + constructCss(), + reactPlugin({ + include: '**/*.tsx', + babel: { + plugins: [ + [ + 'module:@preact/signals-react-transform', + { + mode: 'all', + }, + ], + ], + }, + }), + ], resolve: { alias: Object.entries(mocks).map(([find, file]) => { - const replacement = join(cwd, `test/mocks/${file}`); + const replacement = fileURLToPath(new URL(`test/mocks/${file}`, cwd)); return { customResolver(_, importer) { @@ -186,7 +214,8 @@ module.exports = (config) => { client: { mocha: karmaMochaConfig, }, - + customContextFile: fileURLToPath(new URL('karma-context.html', root)), + customDebugFile: fileURLToPath(new URL('karma-debug.html', root)), // Viewport configuration viewport: { breakpoints: [ diff --git a/package-lock.json b/package-lock.json index 942dd1ad1b..1183a4eb4a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,64 +10,61 @@ "packages/ts/*" ], "devDependencies": { - "@nx/js": "^18.0.4", - "@types/karma": "^6.3.8", - "@types/node": "^20.11.19", - "@vaadin/react-components": "24.5.0-alpha3", + "@nx/js": "^20.2.2", + "@preact/signals-react-transform": "^0.5.1", + "@remcovaes/web-test-runner-vite-plugin": "^1.2.2", + "@types/karma": "^6.3.9", + "@types/node": "^22.10.2", + "@vaadin/react-components": "24.7.0-alpha4", + "@vitejs/plugin-react": "^4.3.4", + "@web/test-runner": "^0.19.0", "chai-dom": "^1.12.0", - "compare-versions": "^6.1.0", - "concurrently": "^8.2.2", - "cssnano": "^6.0.3", - "esbuild": "^0.20.1", + "compare-versions": "^6.1.1", + "concurrently": "^9.1.0", + "cssnano": "^7.0.6", + "esbuild": "^0.24.0", "eslint": "^8.56.0", - "eslint-config-vaadin": "^1.0.0-alpha.18", + "eslint-config-vaadin": "1.0.0-alpha.18", "eslint-plugin-mocha": "^10.3.0", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-tsdoc": "^0.2.17", - "glob": "^10.3.10", - "karma": "^6.4.2", + "glob": "^11.0.0", + "karma": "^6.4.4", "karma-chrome-launcher": "^3.2.0", "karma-coverage": "^2.2.1", "karma-mocha": "^2.0.1", "karma-spec-reporter": "^0.0.36", "karma-viewport": "^1.0.9", "karma-vite": "^1.0.5", - "lint-staged": "^15.2.2", - "magic-string": "^0.30.7", + "lint-staged": "^15.2.11", + "magic-string": "^0.30.17", "meow": "^13.2.0", - "micromatch": "^4.0.5", - "mocha": "^10.3.0", - "nx": "^18.0.4", - "postcss": "^8.4.35", - "prettier": "^3.2.5", - "simple-git-hooks": "^2.9.0", + "micromatch": "^4.0.8", + "mocha": "^11.0.1", + "nx": "^20.2.2", + "postcss": "^8.4.49", + "prettier": "^3.4.2", + "react-dom": "^18.3.1", + "simple-git-hooks": "^2.11.1", "sync-request": "^6.1.0", - "tsx": "4.7.1", - "typescript": "5.3.2", - "vite": "^5.1.4" + "tsx": "^4.19.2", + "type-fest": "^4.30.2", + "typescript": "5.7.2", + "vite": "^5.4.11" }, "engines": { - "node": ">=16.19.0", - "npm": ">=9" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">=20.0.0", + "npm": ">=9.6" } }, "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -114,114 +111,47 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", + "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", - "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.9", - "@babel/parser": "^7.23.9", - "@babel/template": "^7.23.9", - "@babel/traverse": "^7.23.9", - "@babel/types": "^7.23.9", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -236,19 +166,10 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/eslint-parser": { - "version": "7.23.10", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.23.10.tgz", - "integrity": "sha512-3wSYDPZVnhseRnxRJH6ZVTNknBz76AEnyC+AYYhasjP3Yy23qz0ERR7Fcd2SHmYuSFJ2kY9gaaDd3vyqU09eSw==", + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.1.tgz", + "integrity": "sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==", "dev": true, "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", @@ -260,7 +181,7 @@ }, "peerDependencies": { "@babel/core": "^7.11.0", - "eslint": "^7.5.0 || ^8.0.0" + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" } }, "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { @@ -272,63 +193,58 @@ "node": ">=10" } }, - "node_modules/@babel/eslint-parser/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", + "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@babel/parser": "^7.26.3", + "@babel/types": "^7.26.3", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -336,29 +252,18 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.23.10", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz", - "integrity": "sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz", + "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/traverse": "^7.25.0", "semver": "^6.3.1" }, "engines": { @@ -368,22 +273,13 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", + "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-annotate-as-pure": "^7.24.7", "regexpu-core": "^5.3.1", "semver": "^6.3.1" }, @@ -394,19 +290,10 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", - "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", @@ -419,75 +306,43 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", "dev": true, "dependencies": { - "@babel/types": "^7.23.0" + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -497,35 +352,36 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", + "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-wrap-function": "^7.25.0", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -535,14 +391,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -552,200 +408,143 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", + "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz", - "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.23.9", - "@babel/traverse": "^7.23.9", - "@babel/types": "^7.23.9" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "node_modules/@babel/parser": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", + "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "@babel/types": "^7.26.3" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=4" + "node": ">=6.0.0" } }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", + "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.3" }, "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", + "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", - "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" + "node": ">=6.9.0" }, - "engines": { - "node": ">=6.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", + "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -755,14 +554,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -772,13 +571,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", - "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", + "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -788,14 +587,14 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.9.tgz", - "integrity": "sha512-hJhBCb0+NnTWybvWq2WpbCYDOcflSbx0t+BYP65e5R9GVnukiDTi+on5bFkk4p7QGuv190H6KfNiV9Knf/3cZA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.7.tgz", + "integrity": "sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.23.9", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-decorators": "^7.23.3" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-decorators": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -856,12 +655,12 @@ } }, "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz", - "integrity": "sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz", + "integrity": "sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -895,12 +694,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -910,12 +709,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -949,12 +748,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1066,12 +865,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1097,12 +896,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1112,15 +911,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", - "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", + "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1130,14 +929,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1147,12 +946,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1162,12 +961,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", - "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", + "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1177,13 +976,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", + "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1193,13 +992,13 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", - "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -1210,18 +1009,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", - "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz", + "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/traverse": "^7.25.0", "globals": "^11.1.0" }, "engines": { @@ -1232,13 +1029,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1248,12 +1045,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1263,13 +1060,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1279,12 +1076,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1293,13 +1090,29 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", + "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", - "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -1310,13 +1123,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1326,12 +1139,12 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", - "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -1342,13 +1155,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", - "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1358,14 +1171,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", + "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.1" }, "engines": { "node": ">=6.9.0" @@ -1375,12 +1188,12 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", - "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -1391,12 +1204,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", + "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1406,12 +1219,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", - "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -1422,12 +1235,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1437,13 +1250,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1453,14 +1266,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-simple-access": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1470,15 +1283,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", - "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", + "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-transforms": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1488,13 +1301,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1504,13 +1317,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1520,12 +1333,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1535,12 +1348,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", - "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -1551,12 +1364,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", - "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -1567,16 +1380,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", - "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" + "@babel/plugin-transform-parameters": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1586,13 +1398,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1602,12 +1414,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", - "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -1618,13 +1430,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", - "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -1635,12 +1447,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1650,13 +1462,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", + "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1666,14 +1478,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", - "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -1684,12 +1496,44 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1699,12 +1543,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "regenerator-transform": "^0.15.2" }, "engines": { @@ -1715,12 +1559,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1730,16 +1574,16 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.9.tgz", - "integrity": "sha512-A7clW3a0aSjm3ONU9o2HAILSegJCYlEZmOhmBRReVtIpY/Z/p7yIZ+wR41Z+UipwdGuqwtID/V/dOdZXjwi9gQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", + "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.8", - "babel-plugin-polyfill-corejs3": "^0.9.0", - "babel-plugin-polyfill-regenerator": "^0.5.5", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, "engines": { @@ -1749,22 +1593,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1774,13 +1609,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1790,12 +1625,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1805,12 +1640,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1820,12 +1655,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1835,15 +1670,16 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz", - "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz", + "integrity": "sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.23.6", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.23.3" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-typescript": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1853,12 +1689,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1868,13 +1704,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1884,13 +1720,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1900,13 +1736,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", + "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1916,26 +1752,28 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz", - "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", + "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -1947,59 +1785,60 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.9", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.4", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.4", - "@babel/plugin-transform-classes": "^7.23.8", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.4", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.4", - "@babel/plugin-transform-for-of": "^7.23.6", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.4", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.9", - "@babel/plugin-transform-modules-umd": "^7.23.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", - "@babel/plugin-transform-numeric-separator": "^7.23.4", - "@babel/plugin-transform-object-rest-spread": "^7.23.4", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.4", - "@babel/plugin-transform-optional-chaining": "^7.23.4", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.4", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.0", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.25.0", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.25.2", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.8", - "babel-plugin-polyfill-corejs3": "^0.9.0", - "babel-plugin-polyfill-regenerator": "^0.5.5", - "core-js-compat": "^3.31.0", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.37.1", "semver": "^6.3.1" }, "engines": { @@ -2009,15 +1848,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/preset-modules": { "version": "0.1.6-no-external-plugins", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", @@ -2033,16 +1863,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", - "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", + "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-typescript": "^7.23.3" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2058,9 +1888,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", - "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", "dev": true, "dependencies": { "regenerator-runtime": "^0.14.0" @@ -2070,33 +1900,32 @@ } }, "node_modules/@babel/template": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", - "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.23.9", - "@babel/types": "^7.23.9" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", - "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.9", - "@babel/types": "^7.23.9", + "version": "7.26.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", + "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.3", + "@babel/parser": "^7.26.3", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.3", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2105,14 +1934,14 @@ } }, "node_modules/@babel/types": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", - "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2155,372 +1984,440 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz", - "integrity": "sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==", - "cpu": [ - "ppc64" - ], + "node_modules/@emnapi/core": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.1.tgz", + "integrity": "sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==", "dev": true, - "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.0.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", + "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", + "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, "os": [ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.1.tgz", - "integrity": "sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.1.tgz", - "integrity": "sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.1.tgz", - "integrity": "sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.1.tgz", - "integrity": "sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.1.tgz", - "integrity": "sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.1.tgz", - "integrity": "sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.1.tgz", - "integrity": "sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.1.tgz", - "integrity": "sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.1.tgz", - "integrity": "sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.1.tgz", - "integrity": "sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.1.tgz", - "integrity": "sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.1.tgz", - "integrity": "sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", "cpu": [ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.1.tgz", - "integrity": "sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.1.tgz", - "integrity": "sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.1.tgz", - "integrity": "sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.1.tgz", - "integrity": "sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.1.tgz", - "integrity": "sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", + "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.1.tgz", - "integrity": "sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.1.tgz", - "integrity": "sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.1.tgz", - "integrity": "sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.1.tgz", - "integrity": "sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.1.tgz", - "integrity": "sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@eslint-community/eslint-utils": { @@ -2539,9 +2436,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -2660,9 +2557,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2677,54 +2574,17 @@ "@types/chai": "^4.2.12" } }, - "node_modules/@formatjs/ecma402-abstract": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.18.2.tgz", - "integrity": "sha512-+QoPW4csYALsQIl8GbN14igZzDbuwzcpWrku9nyMXlaqAlwRBgl5V+p0vWMGFqHOw37czNXaP/lEk4wbLgcmtA==", - "dependencies": { - "@formatjs/intl-localematcher": "0.5.4", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/fast-memoize": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz", - "integrity": "sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/icu-messageformat-parser": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.6.tgz", - "integrity": "sha512-etVau26po9+eewJKYoiBKP6743I1br0/Ie00Pb/S/PtmYfmjTcOn2YCh2yNkSZI12h6Rg+BOgQYborXk46BvkA==", - "dependencies": { - "@formatjs/ecma402-abstract": "1.18.2", - "@formatjs/icu-skeleton-parser": "1.8.0", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/icu-skeleton-parser": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.0.tgz", - "integrity": "sha512-QWLAYvM0n8hv7Nq5BEs4LKIjevpVpbGLAJgOaYzg9wABEoX1j0JO1q2/jVkO6CVlq0dbsxZCngS5aXbysYueqA==", - "dependencies": { - "@formatjs/ecma402-abstract": "1.18.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/intl-localematcher": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz", - "integrity": "sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==", - "dependencies": { - "tslib": "^2.4.0" - } + "node_modules/@hapi/bourne": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-3.0.0.tgz", + "integrity": "sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==", + "dev": true }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^2.0.2", @@ -2771,16 +2631,16 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", "dev": true }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2794,10 +2654,9 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "engines": { "node": ">=12" }, @@ -2809,7 +2668,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -2901,7 +2759,6 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, "engines": { "node": ">=8" } @@ -2919,14 +2776,14 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -2936,31 +2793,28 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", - "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", - "dev": true, + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -2972,14 +2826,14 @@ "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", - "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", + "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==" }, "node_modules/@lit/react": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@lit/react/-/react-1.0.3.tgz", - "integrity": "sha512-RGoPMrAPbFjQFXFbfmYdotw000DyChehTim+d562HRXvFGw//KxouI8jNOcc3Kw/1uqUA1SJqXFtKKxK0NUrww==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@lit/react/-/react-1.0.6.tgz", + "integrity": "sha512-QIss8MPh6qUoFJmuaF4dSHts3qCsA36S3HcOLiNPShxhgYPr4XJRnCBKPipk85sR9xr6TQrOcDMfexwbNdJHYA==", "peerDependencies": { "@types/react": "17 || 18" } @@ -3045,6 +2899,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz", + "integrity": "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==", + "dev": true, + "dependencies": { + "@emnapi/core": "^1.1.0", + "@emnapi/runtime": "^1.1.0", + "@tybys/wasm-util": "^0.9.0" + } + }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", @@ -3111,69 +2976,41 @@ "node": ">= 8" } }, - "node_modules/@nrwl/devkit": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-18.0.4.tgz", - "integrity": "sha512-fKHnjg4/9MdFd2U4e8p6ja9fRa864DCyF70kB4YUB9NuUIgWLQ15Uj6wXC3xjdXmxQRyHDa7ORodVoFzdo4UCg==", - "dev": true, - "dependencies": { - "@nx/devkit": "18.0.4" - } - }, - "node_modules/@nrwl/js": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@nrwl/js/-/js-18.0.4.tgz", - "integrity": "sha512-7aY6vjHHD99MMF+WtHSdmA7sxLmMNhbd12CQ6lXmSK41Yj82mBgQMwV/Ed+UT10XEh5uMes/iODL460SzwPMZA==", - "dev": true, - "dependencies": { - "@nx/js": "18.0.4" - } - }, - "node_modules/@nrwl/tao": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-18.0.4.tgz", - "integrity": "sha512-/PzGOJevlDQnp5RPXF3WDe+w1cdohGkY+mbJUgDVA4Q5JEPT1DtE10h9GgdHdzkPjVPNYsaI4Vs/53NUdlVHHA==", - "dev": true, - "dependencies": { - "nx": "18.0.4", - "tslib": "^2.3.0" - }, - "bin": { - "tao": "index.js" - } - }, - "node_modules/@nrwl/workspace": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@nrwl/workspace/-/workspace-18.0.4.tgz", - "integrity": "sha512-UFD96NeEeHLKADLBDfF2U5rFOhyMjCwYzpA+D3Yp3X25aB7D89Kan4spq9ZC/Zxethz3911nNaYy+I+L5WlDoA==", - "dev": true, - "dependencies": { - "@nx/workspace": "18.0.4" - } - }, "node_modules/@nx/devkit": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-18.0.4.tgz", - "integrity": "sha512-Vs1AXgOjMJyaWpKopD04dy0FwQ22n5ZR1bFf98Ab4Ht0WJwJE90IpUVAkwI03n5BYxAKOlQnFltsB4gu6Y8mZQ==", + "version": "20.2.2", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-20.2.2.tgz", + "integrity": "sha512-uqs0LVvuRRVAfFdn0ewvmr1vsNV9Ztugw36emcLJxskqhBZb10K+vzdTDAZpg5aVE2ISg1BmPidoOyk1tP+Omg==", "dev": true, "dependencies": { - "@nrwl/devkit": "18.0.4", "ejs": "^3.1.7", "enquirer": "~2.3.6", "ignore": "^5.0.4", + "minimatch": "9.0.3", "semver": "^7.5.3", "tmp": "~0.2.1", "tslib": "^2.3.0", "yargs-parser": "21.1.1" }, "peerDependencies": { - "nx": ">= 16 <= 18" + "nx": ">= 19 <= 21" + } + }, + "node_modules/@nx/devkit/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/@nx/js": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@nx/js/-/js-18.0.4.tgz", - "integrity": "sha512-ma8QMTHZm0LzGYZ1xdVfSUONKb1S5qbiI1DHxhztrsSo3jARZfSAMKM3Bm7ag9MBitpDsoUlgy7JCPmGCAcxAw==", + "version": "20.2.2", + "resolved": "https://registry.npmjs.org/@nx/js/-/js-20.2.2.tgz", + "integrity": "sha512-y/L+GMS8pIE1rQTQ28Lb1YeWpEnDj2v3T/7QpWvICc78NZXuMrO6N1ZRTPRSQNXKL6Bs9S9bRuivsvSIiNlULw==", "dev": true, "dependencies": { "@babel/core": "^7.23.2", @@ -3183,26 +3020,26 @@ "@babel/preset-env": "^7.23.2", "@babel/preset-typescript": "^7.22.5", "@babel/runtime": "^7.22.6", - "@nrwl/js": "18.0.4", - "@nx/devkit": "18.0.4", - "@nx/workspace": "18.0.4", - "@phenomnomnominal/tsquery": "~5.0.1", + "@nx/devkit": "20.2.2", + "@nx/workspace": "20.2.2", + "@zkochan/js-yaml": "0.0.7", "babel-plugin-const-enum": "^1.0.1", "babel-plugin-macros": "^2.8.0", "babel-plugin-transform-typescript-metadata": "^0.3.1", "chalk": "^4.1.0", "columnify": "^1.6.0", "detect-port": "^1.5.1", - "fast-glob": "3.2.7", - "fs-extra": "^11.1.0", + "enquirer": "~2.3.6", "ignore": "^5.0.4", "js-tokens": "^4.0.0", + "jsonc-parser": "3.2.0", "minimatch": "9.0.3", "npm-package-arg": "11.0.1", "npm-run-path": "^4.0.1", "ora": "5.3.0", "semver": "^7.5.3", "source-map-support": "0.5.19", + "tinyglobby": "^0.2.10", "ts-node": "10.9.1", "tsconfig-paths": "^4.1.2", "tslib": "^2.3.0" @@ -3216,10 +3053,22 @@ } } }, + "node_modules/@nx/js/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@nx/nx-darwin-arm64": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-18.0.4.tgz", - "integrity": "sha512-9KJVONxUwdnFHHRNocsg7q5pliOTTfbjlr3rvhLuroV5HeTJFhUipKCQrVEhLy8e4auRdLuSz/HsgpJat3Z2cg==", + "version": "20.2.2", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-20.2.2.tgz", + "integrity": "sha512-gnS5mtbaBAO5TJkl4T68rQaN/79MMWePavw2SOcFyFnIdAriGEZ+ZFDUE0B/xYJSs9CPWLaGHf+n7oqyxaGd9A==", "cpu": [ "arm64" ], @@ -3233,9 +3082,9 @@ } }, "node_modules/@nx/nx-darwin-x64": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-18.0.4.tgz", - "integrity": "sha512-rFKHjeU0Ngz1R7UJAsbncpqwuFDjUdpcvI783r6s2eP7JoiiwtDBXvDcHiy8Odk0lPYmwDELaFZBhvdENqaDNA==", + "version": "20.2.2", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-20.2.2.tgz", + "integrity": "sha512-IctvdQon+K8mlhl06zIq1xTPwf5L4OuS7crzCmK26p5F/lV6iz/UXSPCcgn+bYKOL/q3QCLNR7UasQMjzgCNkQ==", "cpu": [ "x64" ], @@ -3249,9 +3098,9 @@ } }, "node_modules/@nx/nx-freebsd-x64": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-18.0.4.tgz", - "integrity": "sha512-jJx47wgRoUxVpQ+WG5+yLdxtJVuVgjphiTMRc0LOfUwKQaEHWyCA0hMK5fNmo0FAHIhGVCb/j2j9FxnCWTWpkg==", + "version": "20.2.2", + "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-20.2.2.tgz", + "integrity": "sha512-4/Blg9Y6LVU8tS8yoa2BEXPHWsorpvCuZRH0gXPh96i6b71o4ORPafyLOHp08o3WjtUZb4jl5TfDryE+8y62ZA==", "cpu": [ "x64" ], @@ -3265,9 +3114,9 @@ } }, "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-18.0.4.tgz", - "integrity": "sha512-C3qWbFhEMIdTzvAHlIUHecZN3YBu7bx3S0p3gPNGmEMUMbYHP2zMlimBrZIbAxzntyGqWCqhXiFB21QhJ0t1Dw==", + "version": "20.2.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-20.2.2.tgz", + "integrity": "sha512-AVAxbUXi6q+inmp8re3OV7HzH6fbkKnnMKvjDLnkzK8dA2Mv4JFl/gz++rgkYfEsBk20lcB1i3unqNrtOvzS7Q==", "cpu": [ "arm" ], @@ -3281,9 +3130,9 @@ } }, "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-18.0.4.tgz", - "integrity": "sha512-PxVMh9ikp8Q3hKagb66FAsek8O/08GcMF5dXBH7xc5AiQMaZ6Az/gAXOeHp274nmu3StQEpl9Il/YH6Z9f4V0w==", + "version": "20.2.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-20.2.2.tgz", + "integrity": "sha512-h04SLH464Oh/k/1mpAfsMhTVlnc1NJItx4N5DLZb2VuOOY+Tquhrp7HBJLyAhU0Q74JG0LevGFO6wdxliHupmA==", "cpu": [ "arm64" ], @@ -3297,9 +3146,9 @@ } }, "node_modules/@nx/nx-linux-arm64-musl": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-18.0.4.tgz", - "integrity": "sha512-Iz7Z4h2/dXJJvBcyeRHa+d3Ncc4Qz+OiGm6iRDXv4zjFm5EyC1tkSZIFNlNiRjmTToNHFr4savrCjCh8wRYejw==", + "version": "20.2.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-20.2.2.tgz", + "integrity": "sha512-rnRXDLvHHj66rCslD4ShDq6KBOVsQ+X63GWTGKM0pnTIIDje9+ltZCoAByieCUm4BvFfCWMUf9y0mGfZvLVKSw==", "cpu": [ "arm64" ], @@ -3313,9 +3162,9 @@ } }, "node_modules/@nx/nx-linux-x64-gnu": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-18.0.4.tgz", - "integrity": "sha512-BVLkegIwxHnEB64VBraBxyC01D3C3dVNxq2b4iNaqr4mpWNmos+G/mvcTU3NS7W8ZjpBjlXgdEkpgkl2hMKTEA==", + "version": "20.2.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.2.2.tgz", + "integrity": "sha512-K1Z2DVTnyCGl4nolhZ8fvHEixoe1pZOY256LD6D0lGca4Fsi3mHQ7lDU237Pzyc91+cfLva/OAvrivRPeU+DMA==", "cpu": [ "x64" ], @@ -3329,9 +3178,9 @@ } }, "node_modules/@nx/nx-linux-x64-musl": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-18.0.4.tgz", - "integrity": "sha512-WgVy41psjCE9uxjFi4P62UrWyKQ1e2IN2FZaIuwXEB9h8OU/+g9PFpL1Cs1llNoEKnapKXX4+9b5FHF9i7EKQw==", + "version": "20.2.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-20.2.2.tgz", + "integrity": "sha512-pyWe+d2Y2pJVgPZf27KkDBufhFPq+Xhs3/zAQdJbicMvym7uhw0qMTV+lmoMXgfx52WZzhqTfG8JQcDqHjExJw==", "cpu": [ "x64" ], @@ -3345,9 +3194,9 @@ } }, "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-18.0.4.tgz", - "integrity": "sha512-YoxhOrVKnS+kcNTnCg9M61cbigzGErYgnlI8kdZzH2ArD7mhv8bfZnSZUInf5Y8oDBVpKusel7AkCSofzSwigA==", + "version": "20.2.2", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-20.2.2.tgz", + "integrity": "sha512-zqSoVrV34tx6qhQo/PwD9IMGhzoNSaFQxjTjNCY61sE7iwi5Qt4dDs3Rlh1ZFCBFnrjziymRPY2RryArgeK8Bw==", "cpu": [ "arm64" ], @@ -3361,9 +3210,9 @@ } }, "node_modules/@nx/nx-win32-x64-msvc": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-18.0.4.tgz", - "integrity": "sha512-FdAdl5buvtUXp8hZVRkK0AZeiCu35l0u+yHsulNViYdh3OXRT1hYJ0CeqpxlLfvbHqB9JzDPtJtG0dpKHH/O0Q==", + "version": "20.2.2", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-20.2.2.tgz", + "integrity": "sha512-IfQf2axmCuSArhFGaocIDt8ajWDHXoVut5NOQH4eV2q9whP1j/LVB8EehEaolF5UenM7rhL4V25PXPuuBaUq4A==", "cpu": [ "x64" ], @@ -3377,16 +3226,15 @@ } }, "node_modules/@nx/workspace": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@nx/workspace/-/workspace-18.0.4.tgz", - "integrity": "sha512-0w7czYCU6+QczvdRN8HnKRU24xnam5Gf12mfw+uuU6ybslOQuRoKW+oUROwyck5P4I27XzgxcqnMTCxNDcQGWQ==", + "version": "20.2.2", + "resolved": "https://registry.npmjs.org/@nx/workspace/-/workspace-20.2.2.tgz", + "integrity": "sha512-VC22d5EG9f8sLD+gvq9Nbau0u8cV0gy5aYyRcleecqs9bBvOiVxAvv7HaDCRcHezHQhKwxcIOZvmuCjYF/oKxg==", "dev": true, "dependencies": { - "@nrwl/workspace": "18.0.4", - "@nx/devkit": "18.0.4", + "@nx/devkit": "20.2.2", "chalk": "^4.1.0", "enquirer": "~2.3.6", - "nx": "18.0.4", + "nx": "20.2.2", "tslib": "^2.3.0", "yargs-parser": "21.1.1" } @@ -3441,23 +3289,10 @@ "lit-html": "^2.0.0 || ^3.0.0" } }, - "node_modules/@phenomnomnominal/tsquery": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-5.0.1.tgz", - "integrity": "sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA==", - "dev": true, - "dependencies": { - "esquery": "^1.4.0" - }, - "peerDependencies": { - "typescript": "^3 || ^4 || ^5" - } - }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, "optional": true, "engines": { "node": ">=14" @@ -3476,28 +3311,48 @@ } }, "node_modules/@polymer/polymer": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.1.tgz", - "integrity": "sha512-JlAHuy+1qIC6hL1ojEUfIVD58fzTpJAoCxFwV5yr0mYTXV1H8bz5zy0+rC963Cgr9iNXQ4T9ncSjC2fkF9BQfw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.2.tgz", + "integrity": "sha512-fWwImY/UH4bb2534DVSaX+Azs2yKg8slkMBHOyGeU2kKx7Xmxp6Lee0jP8p6B3d7c1gFUPB2Z976dTUtX81pQA==", "dependencies": { "@webcomponents/shadycss": "^1.9.1" } }, "node_modules/@preact/signals-core": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.5.1.tgz", - "integrity": "sha512-dE6f+WCX5ZUDwXzUIWNMhhglmuLpqJhuy3X3xHrhZYI0Hm2LyQwOu0l9mdPiWrVNsE+Q7txOnJPgtIqHCYoBVA==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.8.0.tgz", + "integrity": "sha512-OBvUsRZqNmjzCZXWLxkZfhcgT+Fk8DDcT/8vD6a1xhDemodyy87UJRJfASMuSD8FaAIeGgGm85ydXhm7lr4fyA==", "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" } }, "node_modules/@preact/signals-react": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@preact/signals-react/-/signals-react-2.0.0.tgz", - "integrity": "sha512-tMVi2SXFXlojaiPNWa8dlYaidR/XvEgMSp+iymKJgMssBM/QVtUQrodKZek1BJju+dkVHiyeuQHmkuLOI9oyNw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@preact/signals-react/-/signals-react-3.0.0.tgz", + "integrity": "sha512-lCG3HIH5NlpQscVKQ5b+hgmRKorra/BcjMdEloMoa+/eLYmve06j3tFetN+nedDSpIHtSb3FFX0y3wUg/Nuxyw==", + "dependencies": { + "@preact/signals-core": "^1.7.0", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + }, + "peerDependencies": { + "react": "^16.14.0 || 17.x || 18.x || 19.x" + } + }, + "node_modules/@preact/signals-react-transform": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@preact/signals-react-transform/-/signals-react-transform-0.5.1.tgz", + "integrity": "sha512-/w1rgu7i/qDk8dhDj+6AVVVJ+b1W11YkP3vfPPPyrn1tDCPb8orYwETa3JCvYxMtJBHbvIYEjhXvZ8Ab2cWC8g==", + "dev": true, "dependencies": { - "@preact/signals-core": "^1.5.1", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@preact/signals-react": "^3.0.0", + "debug": "^4.3.4", "use-sync-external-store": "^1.2.0" }, "funding": { @@ -3505,57 +3360,160 @@ "url": "https://opencollective.com/preact" }, "peerDependencies": { - "react": "^16.14.0 || 17.x || 18.x" + "@babel/core": "^7.0.0", + "react": "^16.14.0 || 17.x || 18.x || 19.x" } }, - "node_modules/@remix-run/router": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.1.tgz", - "integrity": "sha512-zcU0gM3z+3iqj8UX45AmWY810l3oUmXM7uH4dt5xtzvMhRtYVhKGOmgOd1877dOPPepfCjUv57w+syamWIYe7w==", + "node_modules/@puppeteer/browsers": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.4.1.tgz", + "integrity": "sha512-0kdAbmic3J09I6dT8e9vE2JOCSt13wHCW5x/ly8TSt2bDtuIWe2TgLZZDHdcziw9AVCzflMAXCrVyRIhIs44Ng==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.3.7", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.4.0", + "semver": "^7.6.3", + "tar-fs": "^3.0.6", + "unbzip2-stream": "^1.4.3", + "yargs": "^17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, "engines": { - "node": ">=14.0.0" + "node": ">=18" } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.1.tgz", - "integrity": "sha512-fH8/o8nSUek8ceQnT7K4EQbSiV7jgkHq81m9lWZFIXjJ7lJzpWXbQFpT/Zh6OZYnpFykvzC3fbEvEAFZu03dPA==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ] + "node_modules/@puppeteer/browsers/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.1.tgz", - "integrity": "sha512-Y/9OHLjzkunF+KGEoJr3heiD5X9OLa8sbT1lm0NYeKyaM3oMhhQFvPB0bNZYJwlq93j8Z6wSxh9+cyKQaxS7PQ==", - "cpu": [ - "arm64" + "node_modules/@remcovaes/web-test-runner-vite-plugin": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@remcovaes/web-test-runner-vite-plugin/-/web-test-runner-vite-plugin-1.2.2.tgz", + "integrity": "sha512-QMqk9HMnaK/GNTBt3UXqKoxlmnptFjaMBvrgXRj0RhZ59ckHkaPcUeN8lT8fo5WhpOqvNQ4l0jEx7zG4SioyLA==", + "dev": true, + "license": "MIT", + "workspaces": [ + "example/**/*" ], - "optional": true, - "os": [ - "android" - ] + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + } }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.1.tgz", - "integrity": "sha512-+kecg3FY84WadgcuSVm6llrABOdQAEbNdnpi5X3UwWiFVhZIZvKgGrF7kmLguvxHNQy+UuRV66cLVl3S+Rkt+Q==", - "cpu": [ - "arm64" - ], - "optional": true, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.0.tgz", + "integrity": "sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.3.tgz", + "integrity": "sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.0.tgz", + "integrity": "sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.0.tgz", + "integrity": "sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.0.tgz", + "integrity": "sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==", + "cpu": [ + "arm64" + ], + "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.1.tgz", - "integrity": "sha512-2pYRzEjVqq2TB/UNv47BV/8vQiXkFGVmPFwJb+1E0IFFZbIX8/jo1olxqqMbo6xCXf8kabANhp5bzCij2tFLUA==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.0.tgz", + "integrity": "sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==", "cpu": [ "x64" ], @@ -3565,9 +3523,21 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.1.tgz", - "integrity": "sha512-mS6wQ6Do6/wmrF9aTFVpIJ3/IDXhg1EZcQFYHZLHqw6AzMBjTHWnCG35HxSqUNphh0EHqSM6wRTT8HsL1C0x5g==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.0.tgz", + "integrity": "sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.0.tgz", + "integrity": "sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==", "cpu": [ "arm" ], @@ -3577,9 +3547,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.1.tgz", - "integrity": "sha512-p9rGKYkHdFMzhckOTFubfxgyIO1vw//7IIjBBRVzyZebWlzRLeNhqxuSaZ7kCEKVkm/kuC9fVRW9HkC/zNRG2w==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.0.tgz", + "integrity": "sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==", "cpu": [ "arm64" ], @@ -3589,9 +3559,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.1.tgz", - "integrity": "sha512-nDY6Yz5xS/Y4M2i9JLQd3Rofh5OR8Bn8qe3Mv/qCVpHFlwtZSBYSPaU4mrGazWkXrdQ98GB//H0BirGR/SKFSw==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.0.tgz", + "integrity": "sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==", "cpu": [ "arm64" ], @@ -3601,11 +3571,11 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.1.tgz", - "integrity": "sha512-im7HE4VBL+aDswvcmfx88Mp1soqL9OBsdDBU8NqDEYtkri0qV0THhQsvZtZeNNlLeCUQ16PZyv7cqutjDF35qw==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.0.tgz", + "integrity": "sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==", "cpu": [ - "ppc64le" + "ppc64" ], "optional": true, "os": [ @@ -3613,9 +3583,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.1.tgz", - "integrity": "sha512-RWdiHuAxWmzPJgaHJdpvUUlDz8sdQz4P2uv367T2JocdDa98iRw2UjIJ4QxSyt077mXZT2X6pKfT2iYtVEvOFw==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.0.tgz", + "integrity": "sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==", "cpu": [ "riscv64" ], @@ -3625,9 +3595,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.1.tgz", - "integrity": "sha512-VMgaGQ5zRX6ZqV/fas65/sUGc9cPmsntq2FiGmayW9KMNfWVG/j0BAqImvU4KTeOOgYSf1F+k6at1UfNONuNjA==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.0.tgz", + "integrity": "sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==", "cpu": [ "s390x" ], @@ -3637,9 +3607,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.1.tgz", - "integrity": "sha512-9Q7DGjZN+hTdJomaQ3Iub4m6VPu1r94bmK2z3UeWP3dGUecRC54tmVu9vKHTm1bOt3ASoYtEz6JSRLFzrysKlA==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.0.tgz", + "integrity": "sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==", "cpu": [ "x64" ], @@ -3649,9 +3619,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.1.tgz", - "integrity": "sha512-JNEG/Ti55413SsreTguSx0LOVKX902OfXIKVg+TCXO6Gjans/k9O6ww9q3oLGjNDaTLxM+IHFMeXy/0RXL5R/g==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.0.tgz", + "integrity": "sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==", "cpu": [ "x64" ], @@ -3661,9 +3631,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.1.tgz", - "integrity": "sha512-ryS22I9y0mumlLNwDFYZRDFLwWh3aKaC72CWjFcFvxK0U6v/mOkM5Up1bTbCRAhv3kEIwW2ajROegCIQViUCeA==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.0.tgz", + "integrity": "sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==", "cpu": [ "arm64" ], @@ -3673,9 +3643,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.1.tgz", - "integrity": "sha512-TdloItiGk+T0mTxKx7Hp279xy30LspMso+GzQvV2maYePMAWdmrzqSNZhUpPj3CGw12aGj57I026PgLCTu8CGg==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.0.tgz", + "integrity": "sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==", "cpu": [ "ia32" ], @@ -3685,9 +3655,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.1.tgz", - "integrity": "sha512-wQGI+LY/Py20zdUPq+XCem7JcPOyzIJBm3dli+56DJsQOHbnXZFEwgmnC6el1TPAfC8lBT3m+z69RmLykNUbew==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.0.tgz", + "integrity": "sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==", "cpu": [ "x64" ], @@ -3711,6 +3681,15 @@ "type-detect": "4.0.8" } }, + "node_modules/@sinonjs/commons/node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/@sinonjs/fake-timers": { "version": "10.3.0", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", @@ -3740,47 +3719,44 @@ "type-detect": "4.0.8" } }, + "node_modules/@sinonjs/samsam/node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/@sinonjs/text-encoding": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", - "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz", + "integrity": "sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==", "dev": true }, "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "dev": true }, "node_modules/@testing-library/dom": { - "version": "9.3.4", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", - "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", + "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", "@types/aria-query": "^5.0.1", - "aria-query": "5.1.3", + "aria-query": "5.3.0", "chalk": "^4.1.0", "dom-accessibility-api": "^0.5.9", "lz-string": "^1.5.0", "pretty-format": "^27.0.2" }, "engines": { - "node": ">=14" - } - }, - "node_modules/@testing-library/dom/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=18" } }, "node_modules/@testing-library/dom/node_modules/pretty-format": { @@ -3797,30 +3773,24 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/@testing-library/dom/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/@testing-library/dom/node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true }, - "node_modules/@testing-library/react": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-14.2.1.tgz", - "integrity": "sha512-sGdjws32ai5TLerhvzThYFbpnF9XtL65Cjf+gB0Dhr29BGqK+mAeN7SURSdu+eqgET4ANcWoC7FQpkaiGvBr+A==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^9.0.0", - "@types/react-dom": "^18.0.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, "node_modules/@testing-library/user-event": { "version": "14.5.2", "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.2.tgz", @@ -3834,6 +3804,13 @@ "@testing-library/dom": ">=7.21.4" } }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "dev": true, + "license": "MIT" + }, "node_modules/@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -3844,9 +3821,9 @@ } }, "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", "dev": true }, "node_modules/@tsconfig/node12": { @@ -3867,6 +3844,15 @@ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true }, + "node_modules/@tybys/wasm-util": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@types/accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz", @@ -3894,6 +3880,47 @@ "integrity": "sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA==", "dev": true }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, "node_modules/@types/body-parser": { "version": "1.19.5", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", @@ -3905,9 +3932,9 @@ } }, "node_modules/@types/chai": { - "version": "4.3.12", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.12.tgz", - "integrity": "sha512-zNKDHG/1yxm8Il6uCCVsm+dRdEsJlFoDu73X17y09bId6UwoYww+vFBsAcRzl8knM1sab3Dp1VRikFQwDOtDDw==", + "version": "4.3.17", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.17.tgz", + "integrity": "sha512-zmZ21EWzR71B4Sscphjief5djsLre50M6lI622OSySTmn9DB3j+C3kWroHfBQWXbOBwbgg/M8CG/hUxDLIloow==", "dev": true }, "node_modules/@types/chai-as-promised": { @@ -3929,13 +3956,12 @@ } }, "node_modules/@types/chai-fs": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/chai-fs/-/chai-fs-2.0.4.tgz", - "integrity": "sha512-UOjmRp/RUpTwKUtvlfw5C9PyXprpxUzkEPVzv1O5Hy0/f9VGkoMtb16ksjJz6S8sv0Yhfo7IwFrneP0S71B5ag==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/chai-fs/-/chai-fs-2.0.5.tgz", + "integrity": "sha512-Fusfcwil87QBYVN9vqDf46/+mb19bbDyQ7+dRNBZuLetgI5aipjHI0kI9sl2o02w9jTw70y7R58Ns6e40cfa1w==", "dev": true, "dependencies": { - "@types/chai": "*", - "@types/node": "*" + "@types/chai": "*" } }, "node_modules/@types/chai-like": { @@ -3957,6 +3983,13 @@ "@types/qs": "*" } }, + "node_modules/@types/command-line-args": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.3.tgz", + "integrity": "sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/concat-stream": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", @@ -4020,11 +4053,11 @@ "integrity": "sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw==", "dev": true }, - "node_modules/@types/deep-equal-in-any-order": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/deep-equal-in-any-order/-/deep-equal-in-any-order-1.0.3.tgz", - "integrity": "sha512-jT0O3hAILDKeKbdWJ9FZLD0Xdfhz7hMvfyFlRWpirjiEVr8G+GZ4kVIzPIqM6x6Rpp93TNPgOAed4XmvcuV6Qg==", - "dev": true + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "license": "MIT" }, "node_modules/@types/estree": { "version": "1.0.5", @@ -4044,9 +4077,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.43", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", - "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", + "version": "4.19.5", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz", + "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==", "dev": true, "dependencies": { "@types/node": "*", @@ -4079,8 +4112,7 @@ "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", @@ -4119,10 +4151,11 @@ "dev": true }, "node_modules/@types/karma": { - "version": "6.3.8", - "resolved": "https://registry.npmjs.org/@types/karma/-/karma-6.3.8.tgz", - "integrity": "sha512-+QGoOPhb1f6Oli8pG+hxdnGDzVhIrpsHaFSJ4UJg15Xj+QBtluKELkJY+L4Li532HmT3l5K5o1FoUZHRQeOOaQ==", + "version": "6.3.9", + "resolved": "https://registry.npmjs.org/@types/karma/-/karma-6.3.9.tgz", + "integrity": "sha512-sjE/MHnoAZAQYAKRXAbjTOiBKyGGErEM725bruRcmDdMa2vp1bjWPhApI7/i564PTyHlzc3vIGXLL6TFIpAxFg==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "log4js": "^6.4.1" @@ -4165,19 +4198,14 @@ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "dev": true }, - "node_modules/@types/mocha": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz", - "integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==", - "dev": true - }, "node_modules/@types/node": { - "version": "20.11.20", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz", - "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==", + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", "dev": true, + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.20.0" } }, "node_modules/@types/parse-json": { @@ -4193,14 +4221,14 @@ "dev": true }, "node_modules/@types/prop-types": { - "version": "15.7.11", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", - "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" }, "node_modules/@types/qs": { - "version": "6.9.11", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", - "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==", + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", "dev": true }, "node_modules/@types/range-parser": { @@ -4210,33 +4238,35 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.2.58", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.58.tgz", - "integrity": "sha512-TaGvMNhxvG2Q0K0aYxiKfNDS5m5ZsoIBBbtfUorxdH4NGSXIlYvZxLJI+9Dd3KjeB3780bciLyAb7ylO8pLhPw==", + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", "dependencies": { "@types/prop-types": "*", - "@types/scheduler": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.2.19", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.19.tgz", - "integrity": "sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==", + "version": "18.3.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", + "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", "devOptional": true, - "dependencies": { - "@types/react": "*" + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" } }, - "node_modules/@types/scheduler": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true, + "license": "MIT" }, "node_modules/@types/semver": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz", - "integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==", + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", "dev": true }, "node_modules/@types/send": { @@ -4250,14 +4280,14 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "dev": true, "dependencies": { "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" + "@types/node": "*", + "@types/send": "*" } }, "node_modules/@types/sinon": { @@ -4290,12 +4320,6 @@ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" }, - "node_modules/@types/validator": { - "version": "13.11.9", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.9.tgz", - "integrity": "sha512-FCTsikRozryfayPuiI46QzH3fnrOoctTjvOYZkho9BTFLCOZ2rgZJHMOVgCOfttjPJcgOx52EpkY0CMfy87MIw==", - "dev": true - }, "node_modules/@types/ws": { "version": "7.4.7", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", @@ -4305,6 +4329,17 @@ "@types/node": "*" } }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", @@ -4340,6 +4375,18 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@typescript-eslint/parser": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", @@ -4453,6 +4500,18 @@ } } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@typescript-eslint/utils": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", @@ -4478,6 +4537,18 @@ "eslint": "^7.0.0 || ^8.0.0" } }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@typescript-eslint/visitor-keys": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", @@ -4502,145 +4573,161 @@ "dev": true }, "node_modules/@vaadin/a11y-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.5.0-alpha3.tgz", - "integrity": "sha512-hJN/e1FbzwkT6b3QEma04UHX0B8q8KlwGmIfnJG19FPb/UynuzSoaZguMljT/YvpiBgBFZT+Fem6WliprwU3wg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.7.0-alpha4.tgz", + "integrity": "sha512-s1sdmb5rX8i6bxCPl6AyzV+6n32ym0u1bMcJwrhYoXm9qK0wnNz0hsTt9r9wNuZRjxpbGmuRd2rpLh6twAbuDA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/accordion": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/accordion/-/accordion-24.5.0-alpha3.tgz", - "integrity": "sha512-DvHt1w1D4fUl0eqWiN7ZS7QHbEkUdcELS2nDnwncfwQicdaJfJjJ3jCXFPa1EW8JQ1pmdn7m4yy2gD0inrXj5g==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/accordion/-/accordion-24.7.0-alpha4.tgz", + "integrity": "sha512-edxsM7v4NLocZvblZEWiQmUrRW4yfTYgZrqRNV0QKUQTEMX+e1XfeLD+kZBWjxD6ASipDPLW98GlRWfrGFZj7Q==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/details": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/details": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/app-layout": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/app-layout/-/app-layout-24.5.0-alpha3.tgz", - "integrity": "sha512-nwriF6k6DTT7A/OeQ6C92N0d2D+QNwOWal+N3hUf1lMsoNrNvyEKsRAi6VinBwQh+Sfndjdi0yUGu2zog0KJ1w==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/app-layout/-/app-layout-24.7.0-alpha4.tgz", + "integrity": "sha512-TrDZSFWImNp0U2LF9JBBzaQZ08lCp9spTZ/2maDPWxXlaDXb8H/UVOii6PloAy4EE5ImijHArW7TLCdRr8U2Gg==", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/avatar": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-24.5.0-alpha3.tgz", - "integrity": "sha512-DbOx+QHqcx8kixN4HnVB8f1SNSXGU93u6MKKMKHrj4ErLypyJ0TrsvtzOhyJWehEnFl/LrhmKdQ5PVvgAwMGqA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-24.7.0-alpha4.tgz", + "integrity": "sha512-z+DhMZCdMgNJJP0c6eKpFXW6nK0u+kG0purw75YIwyb85BAV2TOrMFY8FmoARL5WKMXw2OpAi5+jvX4UUYHgVA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/avatar-group": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/avatar-group/-/avatar-group-24.5.0-alpha3.tgz", - "integrity": "sha512-+dVJn509EfIimYf9r1vb+tZ64/sJcgD2pFf7ssB0pMOAI/La1IGJbM8K8SeQGPviH/rFoFafJ17ZkR6xeAJA+Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/avatar-group/-/avatar-group-24.7.0-alpha4.tgz", + "integrity": "sha512-DlOElt7nsS9I2CuxGn9WtEg6ZWkcWdRo7sW8LKz4jmUNVUCwDXW5A73dDGTxI/gnY5Dbq8QnYRQauV2r1PrOCw==", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/avatar": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/list-box": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/avatar": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/list-box": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/button": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-24.5.0-alpha3.tgz", - "integrity": "sha512-ayjnZF1Uerjh6wTUhGApoDlRma97xJqG31BwwJjJO/lPKmKXTuqzbe77Mtfwzj6dt6s53eebf8qreee7okRE9Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-24.7.0-alpha4.tgz", + "integrity": "sha512-I2OuiFmY1VHAvrnP6dIUhuDW/8u45b83t7i0YSMOPK0pGdi+M4THoUD/0kYAugNdWvdx+6GJ1H1Os6w8maigWw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" + } + }, + "node_modules/@vaadin/card": { + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/card/-/card-24.7.0-alpha4.tgz", + "integrity": "sha512-DoAklsqRll0l/2ILdJOU4PGigirj/ffwR1iuQ72eIrsz6/lYnWMDPdOVONRLYvKbOhAhX2W4Lqg64DYlKlE6qQ==", + "dependencies": { + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/checkbox": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.5.0-alpha3.tgz", - "integrity": "sha512-mtizPscNAu4NrjdzzNquCefxvmYDtiY7WoFVlOCMXwJELr0lziza4PPAGgKkzat0gQAEnbjQ1ITRjfWYp/XO1A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.7.0-alpha4.tgz", + "integrity": "sha512-mD4GKGhyL6eRxDV0FPFiBHDLhq0WRLlCoW00NpFqjCtrviAOyorom2ySrvh4eXNqRhPPIepGM/RkWNLSkcYiVQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/checkbox-group": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/checkbox-group/-/checkbox-group-24.5.0-alpha3.tgz", - "integrity": "sha512-j6AF1FTHU9Jl91NmOtzgMdondr/g7hM/WHEUK23DFOfupnOYWcXRl90tLdzZFfRiR/4H4LsD+HJOkVbp8ls/0A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox-group/-/checkbox-group-24.7.0-alpha4.tgz", + "integrity": "sha512-/VtIxC3jnzeBeoq3lRh5B3dwJdhQWXqibB5jUv/y3MrD6VdfKWFAAH7IAc7Qi2BW/PKLAQHpNrSaGfqrXeYwxA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/checkbox": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/checkbox": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/combo-box": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/combo-box/-/combo-box-24.5.0-alpha3.tgz", - "integrity": "sha512-4aWbFV/WvExZjrv0qgZ4hpCq/omzMt/izwti/RYRO9iXGAqL+6IEY8oVERuytTt6cA3aPOjsFh3tEKHyWDKi9Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/combo-box/-/combo-box-24.7.0-alpha4.tgz", + "integrity": "sha512-AWFGO0j0xDQsRApqnZ47q3JF8l01zJBbzF5Q9EfDKuVUh+ctvM+DShJ9zRGz1IfSSP4l3X4Hibk42AoXmUEsvA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/common-frontend": { @@ -4655,9 +4742,9 @@ } }, "node_modules/@vaadin/component-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.5.0-alpha3.tgz", - "integrity": "sha512-3OAScmXraCAihHCJ62ZNEy9LsMpeWh2/KnPN4tsot1piHtMSnH7r4SFKC/4iNjQsuecou5TmDXuMACFcrlbouA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.7.0-alpha4.tgz", + "integrity": "sha512-oAnXewVRiCa43n7NTeQhof6sd1ib9AQ/wZEVeKESx+/To0cSZEWzdq7uClLYnpw6ah5kVXdGQDozEHkc+o+tEQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", @@ -4667,192 +4754,197 @@ } }, "node_modules/@vaadin/confirm-dialog": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/confirm-dialog/-/confirm-dialog-24.5.0-alpha3.tgz", - "integrity": "sha512-6wVyLDsoGNCBRvxgDgrbfHIJI8F8SqLnx2tmOvpVFrbG/9WdjQO4n40NZSZOtWuTndqOVe6ZcYR3pGrzX7dGsw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/confirm-dialog/-/confirm-dialog-24.7.0-alpha4.tgz", + "integrity": "sha512-jyoXZeCsZ83R1a1hlHcqvYMgcdK6zWSyVmu5mVMXLjj/BqLLmshs+ddBIs+5SoMMp8i4WW7cO4mOtObrhvaOBw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/dialog": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/dialog": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/context-menu": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/context-menu/-/context-menu-24.5.0-alpha3.tgz", - "integrity": "sha512-DMyG0bTOp22PKAa70FvkL6wAUMFfKx9RC+1eff4t8JHgmyMcS20mfdHvzv6ChmD64RCRnEglHWr0Ueu/3WLoxQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/context-menu/-/context-menu-24.7.0-alpha4.tgz", + "integrity": "sha512-y7V5fCHv4OKm14SwjngBSSCCLdNUoD33OEm/3pQ0aNqj9gPcXb5CKmJA+MLt2ovI06LMtulYO80S+Dv8RyrCQg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/list-box": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/list-box": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/custom-field": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/custom-field/-/custom-field-24.5.0-alpha3.tgz", - "integrity": "sha512-cZMnD6Z4B1LTxS+JhI5LoX8rYZYVoekx3+VWoRu/TvNm9Kw64fTlCg7SmBpplfEIoe9SbpeqxzVeTecFeBJgsQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/custom-field/-/custom-field-24.7.0-alpha4.tgz", + "integrity": "sha512-Y4ScJUtpKUYhyyFRUAH9IF1GWavvogrC8tOjboS/0zgbznDs5YGobFnbWdsWZrshVUR8K1pmC06osa+Wme5mNA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/date-picker": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/date-picker/-/date-picker-24.5.0-alpha3.tgz", - "integrity": "sha512-Ppk2W1onwn07DW/A0RBsJJC+pCs22R6Dbu8X4Ax2vXz+YdrHHsn629CbewOERceiNYhOX/4N7ITCONC5mBMbkw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/date-picker/-/date-picker-24.7.0-alpha4.tgz", + "integrity": "sha512-FGbs2UaJpMLqnAdvlbv/hVQzYAaIrIA7cosUKTY2AwFDxSxZSzgA5mcLfHaCfKNo1I1v/1WjVzmVtPZcSj6PVQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.2.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/date-time-picker": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/date-time-picker/-/date-time-picker-24.5.0-alpha3.tgz", - "integrity": "sha512-54xOSfn5f3sxSwyizPC2ANtD0kamX4YGyyiFiIRQz07zp1BhHLK/kWeEzygb6PJchu7EjYxgp5dYEm3Ms3P2fA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/date-time-picker/-/date-time-picker-24.7.0-alpha4.tgz", + "integrity": "sha512-JOKVQot8/7OrJAffbLhDMW88rzIHggraNfBd8ynSGTE1Tw0Xhtb8+83Nq3t/gOcAo5Ioq5X3b3diNHuAvrxs3A==", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/custom-field": "24.5.0-alpha3", - "@vaadin/date-picker": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/time-picker": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/custom-field": "24.7.0-alpha4", + "@vaadin/date-picker": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/time-picker": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/details": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/details/-/details-24.5.0-alpha3.tgz", - "integrity": "sha512-bpwbJirSLJtz7p3VHVhVifkRycr1hth0yC0dBirpDtUf0JOvmkHlKrAiDIlgdmCtIbe0mGOwyBMfZPa/O2I28w==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/details/-/details-24.7.0-alpha4.tgz", + "integrity": "sha512-w6+sDe9ZsjdNCA0gm7XlGHkTYhUmdL2Mr7fnun4G1r3+XzidOqfiR/dkPFXtDm2sJBFvwrFpaCZk1rNTkh1U/w==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/dialog": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/dialog/-/dialog-24.5.0-alpha3.tgz", - "integrity": "sha512-FjPxpNpQ9m5JhT2G5g+ayipwLJZo/M2nAnpyXvHBh5zo74qNeVoQpnltCPgZ2aQeIND9bPQ7KmFL1ZAEPKaSEA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/dialog/-/dialog-24.7.0-alpha4.tgz", + "integrity": "sha512-KwnG+tkDbDXZ0MQuh0zeGGe0Y8x1yjph8e+N0/8W4rTdw2V+7MuLFfYEsW/XQskCuPreO/qeXcKLOzn12kcBeg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/email-field": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/email-field/-/email-field-24.5.0-alpha3.tgz", - "integrity": "sha512-tkgyn3wP21vbdcfDjI1zejTkFr8SjUCtjThld8JAM/EsnZMvRPX+X9MDUOFvzVI58qYq0RRXyQR12IwKZ6j5ww==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/email-field/-/email-field-24.7.0-alpha4.tgz", + "integrity": "sha512-zb0AQab/giaAMMtBXflPNz60L+7X5kN+Sv8YeVbRhSkrB/aRCxkSxRf064e70swmwn8RLtQw2gem36bLn1BAKQ==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/field-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.5.0-alpha3.tgz", - "integrity": "sha512-ahTZ0trRiTO8200Iwub/cToBUVfOMMu+zhHCTu4S8O/zVnc/KMUNINc5tIby6BP9BYB05OjvXahyAyUa7uqdcQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.7.0-alpha4.tgz", + "integrity": "sha512-QCeor3PgWemIb7oRCmkhwqBM1LmXk8gsGl+T3c/fT8TgIMkZB/IOG6QaGjHcsMgBHHZmfmYIciXipsvxQ3FY+Q==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/field-highlighter": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/field-highlighter/-/field-highlighter-24.5.0-alpha3.tgz", - "integrity": "sha512-tUvuuMAXEUSuifAU4h4EGszHBPKh5jsAiwoRSRN7I5b83lUsoDd8V+bZSO6FUwNh9lubNsiAZc27sakwJsBJgA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/field-highlighter/-/field-highlighter-24.7.0-alpha4.tgz", + "integrity": "sha512-7Vdb91NS335xLVBeKp1czzPULJNQ6DeISqDzzpjC+UQnp90FGG/+PrP5peq+MBXS5N8/970JoWGo9OmzzdEl1g==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/form-layout": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/form-layout/-/form-layout-24.5.0-alpha3.tgz", - "integrity": "sha512-9NCTFd6fTWbXAzh3yzJDZctV/75zmTXowSfUx0ZYHtN7eBfNuHP4jw7F4TA5QdWzqEGac+AuMLfwsnHKSemGvg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/form-layout/-/form-layout-24.7.0-alpha4.tgz", + "integrity": "sha512-yhGHUS2rMKvKURazParKPnii+3dyd3l5emEcim8nKYts37T1Zy3bXV31AedWdGvvageKwF6lT9+shTVhiBe90A==", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "node_modules/@vaadin/grid": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.5.0-alpha3.tgz", - "integrity": "sha512-Kr66LMmzHBG/46nNucxt0hOpkAHhqPX9bKmcy0nI1U9T4XyjukD+c8j5w7aBQBqkwOObgMGXlB59DIH/GDiKtQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.7.0-alpha4.tgz", + "integrity": "sha512-plXEcgTCTE8pttu6Rhx3XdroNECg9LgMI+3F2ww4uGOA5z0safM3HVsqQiBnLpfLmC2hUQ5FZQHCAcFuVbGhBw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/checkbox": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/checkbox": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, @@ -4892,6 +4984,10 @@ "resolved": "packages/ts/generator-plugin-push", "link": true }, + "node_modules/@vaadin/hilla-generator-plugin-signals": { + "resolved": "packages/ts/generator-plugin-signals", + "link": true + }, "node_modules/@vaadin/hilla-generator-plugin-subtypes": { "resolved": "packages/ts/generator-plugin-subtypes", "link": true @@ -4904,6 +5000,10 @@ "resolved": "packages/ts/lit-form", "link": true }, + "node_modules/@vaadin/hilla-models": { + "resolved": "packages/ts/models", + "link": true + }, "node_modules/@vaadin/hilla-react-auth": { "resolved": "packages/ts/react-auth", "link": true @@ -4925,366 +5025,378 @@ "link": true }, "node_modules/@vaadin/horizontal-layout": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/horizontal-layout/-/horizontal-layout-24.5.0-alpha3.tgz", - "integrity": "sha512-T7faH120WTHZe3xIcUY/ulFIlJt34MjuhkLfTg6bWtJszpSS5obDac3cH/Jgc1J+pj+7ezhg93RfZpYNIhGvPQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/horizontal-layout/-/horizontal-layout-24.7.0-alpha4.tgz", + "integrity": "sha512-YNW2OYY+AjTDFsj3p5DxlBzwsMQccNNpcAFu5O5cavXlRhOCcXFCQY8GxohhrfbIM6qTu22NLY3529/sgfHCHA==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/icon": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.5.0-alpha3.tgz", - "integrity": "sha512-CUVOeGF+kJ/lE3r/pJuShGTvfQyApFGoephomig4HQ3NJupazAANLnRXAconLAod/RPUWVKhLGqD33SnPKyp7A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.7.0-alpha4.tgz", + "integrity": "sha512-ELyn24AgdCRk9sOWnHbJqb4G8Gj2xr2YuC87dSKCg0E2mpAzxgA0xIObPO2DjWTzhprRy2XWsbkklzJFLKv1ag==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/icons": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.5.0-alpha3.tgz", - "integrity": "sha512-LZjQrwgw34HILPhSXpvabVQiEZzEDeeePFIdkIaxcjqC6bc2JjAecA0rPh2sci6mqCTed7ap9mZPxlitDi/uBQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.7.0-alpha4.tgz", + "integrity": "sha512-b2C00K2zkxg8dOsKSvWjBO/gVfSx96uQilksTZBOI3GXi1+UTqc5DzzYrOOH+Y0XqcqU7ynqqmkRTeyWJSiSSw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/icon": "24.5.0-alpha3" + "@vaadin/icon": "24.7.0-alpha4" } }, "node_modules/@vaadin/input-container": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.5.0-alpha3.tgz", - "integrity": "sha512-iMr4LeRWM+eXmRIDXP1WAxhbgTmGVxWqp75ix4cEOQi36zrO6+/W83tf192CeJ2gC5f4lAPXTFgGdtPKQBE1Mg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.7.0-alpha4.tgz", + "integrity": "sha512-V36O33xvrf37ZwFyQJ9yMLjs6VnXJGR3D3uMbht8eElXEtZu4cyS6FK7LXbwDIRoPjgnvBsvDemdCzBZ7HmHLQ==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/integer-field": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/integer-field/-/integer-field-24.5.0-alpha3.tgz", - "integrity": "sha512-UbUQb5JZRVYP0Tvq6s1tmPy9PKT0Zk6J7vAPwsNfjoQ1VuUCs76uUSOQXQMbsecJswtoXXJgH/4tIke0zPoi8g==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/integer-field/-/integer-field-24.7.0-alpha4.tgz", + "integrity": "sha512-qkGXdFGLzJn8VbYvjIya+ZQgyUfOriBLodrkmEVonPUL2hrZX3qFzg7VkJjo8f5G/hEd0XqrMCOABawEwlT0+Q==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/number-field": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/number-field": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4" } }, "node_modules/@vaadin/item": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-24.5.0-alpha3.tgz", - "integrity": "sha512-dRhcrZZZ1XcUIOsjDOmJXr8MjnyA1eaao7rLzVPv0vYdHi3SGlUbhxDZzqn3ra4K4nKxyFJy1xtCWbi/5gQA+Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-24.7.0-alpha4.tgz", + "integrity": "sha512-LzsnG/l7tQDyRcMUi8SLsnMbsD0OVB8L4jKA1qhqTuzbQnNTY3NEWZ1jwenpX+b0SI7nDhC7/4LOgnI9C3h8cA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/list-box": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-24.5.0-alpha3.tgz", - "integrity": "sha512-GSsEOvTb+tx8bGWILAAySxSebe0Lq5bHrvUwnhScd6pneJKbYCMhGT/e3A+/NQqhrsL2iHxwdaAQPngp0DlJPA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-24.7.0-alpha4.tgz", + "integrity": "sha512-FH1LUqV7kxkqzlKopIkl+okQD+ZHIcPQOKVRfmo9q/xqCZGwFvGf958ISqvY9JSAyzIaWe1S4SR9YMSTNsUIcA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/lit-renderer": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.5.0-alpha3.tgz", - "integrity": "sha512-LeCZxZ2jiiN9A4YCYi10GR7MjP3PIMdcwOKouRUFdHPtIWqJNQHX9EkqgCyZiWSuIq1fsTWdQQEU4SnhJt2J7A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.7.0-alpha4.tgz", + "integrity": "sha512-jsgSnG3RoG0XX9k02cA0lqYw4KctzkW+hzq8+rAE1zLIJs4CQpe0jUzu1cGVy1bgJlPguvYVbQAitPc3+hFn/w==", "dependencies": { "lit": "^3.0.0" } }, "node_modules/@vaadin/login": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/login/-/login-24.5.0-alpha3.tgz", - "integrity": "sha512-zXyBVpZ6RbpalNYZB8GrROkIUtWSdJatmELBOPFkv/HbJah8XyfmF+WD9j6gFkR2GSNjaXdEVKFN7rTfT2pqQA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/login/-/login-24.7.0-alpha4.tgz", + "integrity": "sha512-zT+qoPXglsYrtFl2YGRwYtE5SQdVracm8ybbrp2Eya7HQLxX/iDfIkS9Npztfi14vlB6ygHfkSmrDXU6CN2JzA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/password-field": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/password-field": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/menu-bar": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/menu-bar/-/menu-bar-24.5.0-alpha3.tgz", - "integrity": "sha512-oFd64rmmhXS9Ht4EJ3UisAPN4DcwIPF8YeWuR395sN8AbPREiuhP5xoPjiDeNuZ2MSgwjHjwRMruLGHVf2AkuQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/menu-bar/-/menu-bar-24.7.0-alpha4.tgz", + "integrity": "sha512-tGd6LBNCJEovrCDKe5GFPPtGCE1Ygks0vZk25AT9evKZkD/gL58otBw6a2uhykxeFZuM3c8LDYH33K/e6WxJ3g==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/context-menu": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/list-box": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/context-menu": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/list-box": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/message-input": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/message-input/-/message-input-24.5.0-alpha3.tgz", - "integrity": "sha512-MUOwAkdL2ZsRQuj8Wcsua5X4jR6ehUFWfE0vdQbGlurkrsqLW2gcagHutiySbBcb2Y/jeuV4s9Nbd+qKAjoY2w==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/message-input/-/message-input-24.7.0-alpha4.tgz", + "integrity": "sha512-+qa97ABGimz7pp4SNfL6kG5tAHAShmzZIhODsW/rVy9oC+toetmi6PvZVAaV0Ganh35NIg60hBgHGX2ZA0BKJA==", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/text-area": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/text-area": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/message-list": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/message-list/-/message-list-24.5.0-alpha3.tgz", - "integrity": "sha512-xrsikxP4+zn1UwyMLvOu2jsgb6nvz6PIV+j1EoTnAW8KOkWN6TW1XX/zRmaMHkhbqS92ekUMYSHL70mXwnpvWw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/message-list/-/message-list-24.7.0-alpha4.tgz", + "integrity": "sha512-lVQlpeKpllZ6ZJuyavtrZBSIMTsP893LEJjpX9QElpvFumFJPto8+9xOJ16cK5+R8ETMYWUcDyrZhsrnJF8k8A==", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/avatar": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/avatar": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/multi-select-combo-box": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/multi-select-combo-box/-/multi-select-combo-box-24.5.0-alpha3.tgz", - "integrity": "sha512-2wMbL0dbidiKZu3xberJ8HeUw+2wBxpQi8LJpYRWJzJSZWBJSf3+R+FVZeFmPufde/katw4OEW1sUKFeOYoPyQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/multi-select-combo-box/-/multi-select-combo-box-24.7.0-alpha4.tgz", + "integrity": "sha512-a7BuEw2qqZl/POjzghNxkK4BIMhTotWHxAhK95ODC49S9iMiYabVzeNrS1EVxEjGTNWlJtI+nIC4RePzk4rCcw==", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/combo-box": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/combo-box": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/notification": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/notification/-/notification-24.5.0-alpha3.tgz", - "integrity": "sha512-pFtrKopNvHMLZ074yQoos3OvYBDLy3h0fTKSyxZfWo70+Calu/nqvSonxJG+ZZb8XOgsvBOmrufwcT8Chyvbpg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/notification/-/notification-24.7.0-alpha4.tgz", + "integrity": "sha512-r/iMpaBh6taE/oRifwMrEMPRGD/HFHe2x8+oYcisJXC/jKL9YA1N88t3IlnfoswEN92LYibMZ6JjfeRc8ND63A==", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/number-field": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/number-field/-/number-field-24.5.0-alpha3.tgz", - "integrity": "sha512-43MNQ6NuYjWZiGe/zLZkLv5ZmaDLRxbGqiguWgAab8/3q8UN+2/oBJoFsKADIhAal7F6dhcHIdU50BWKM24Row==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/number-field/-/number-field-24.7.0-alpha4.tgz", + "integrity": "sha512-eZMusLorEM0peyW4UXJQUDEMkG92jUcbI/71PXs5qbh8Jo2dEGIfmXXYNl4nELyji6bqPdFCRGbWmpyWJ1L4Sw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/overlay": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.5.0-alpha3.tgz", - "integrity": "sha512-zH72InlWhwkBqdUMoIbHPXUajHapTVTwebZgddqE9FjBxRyfSF2062jrHcX6dFR4tNlspbem6z/EeWk4BWxBQw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.7.0-alpha4.tgz", + "integrity": "sha512-z2eHVojBg7o0vQWRhLPy2jfhuhTWrjnvOdw3FmkUnw8jy11Qqf/Pz0hMvy7cWE2d6ThLMjAnTzjlnRX/8y7U0w==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/password-field": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-24.5.0-alpha3.tgz", - "integrity": "sha512-bUpjZJr2e72uHCPjUHBoUxfyvX/hU3Wp8qr8KmuXJPBMbsB+IlS4INWJRlZga+FVx3Z9iJZonNAOey/+VnytNA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-24.7.0-alpha4.tgz", + "integrity": "sha512-CIZzVIXfHpFcu/uMWSchrcGSJ5kgy3oMa57RwnaOLuXwhMgld2gHBRXw23lpcRkadmFeFMYxc+N2Wgry6N4kKg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/popover": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.5.0-alpha3.tgz", - "integrity": "sha512-niIKAipighHRoxcdteoptEu+JjyXT5TQhXagypI0hp0Sme7ZwQBnxlh+JdfKN/OV6hGrMt411wZntnc7bnVl7Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.7.0-alpha4.tgz", + "integrity": "sha512-KwhcnwrJoKjkVeScRF5RvBjBO8pS68Sgxd801qUj+X6bSBgtAAxMTS+yyQDUTVbAFmyr/pl2p8xE2mX5Hdi0ZQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/progress-bar": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/progress-bar/-/progress-bar-24.5.0-alpha3.tgz", - "integrity": "sha512-h3TA0h3hFL2X3JPG4PZyOVZ1NnQJCF+ot2c0A95FaxXnLoHFxQ/9Twwdx/fkVR+r8KvsfjHV4IcvyPScmVpjzg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/progress-bar/-/progress-bar-24.7.0-alpha4.tgz", + "integrity": "sha512-tQI0KGB2vXcAF9JPTX6KXeTl6J2WQ1fsOxdHsgAVRtZu353jizy38d9pEYx3dsdRg6mRdE0TqRtGbYCVpagXnA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/radio-group": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/radio-group/-/radio-group-24.5.0-alpha3.tgz", - "integrity": "sha512-tTxa8VpcnjwGI5Uo2WpEpQNsJLQ37rsJHBoAfFvrWgeTPqgx+i6FoRjGifOXy3A6Ukvi0SPHIbkYPuYpz/9twQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/radio-group/-/radio-group-24.7.0-alpha4.tgz", + "integrity": "sha512-wpFWPsjB4EzJ9GWXgTlFi2ht0ORM+3raqtakCxg3msXw00b/x5A+3ryXfKDMbj4dQ5ZkoALQ+/tIEeR5Mq8CTw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/react-components": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/react-components/-/react-components-24.5.0-alpha3.tgz", - "integrity": "sha512-bJJVYQhdvfK/97OjTSqO6Ig1cvPCE1LJGLVaRzG8d3OxU1BXjKE/RMLU/WDTSLiF/yUT0JrdOvCqFDqDJL72dw==", - "dependencies": { - "@lit/react": "^1.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/accordion": "24.5.0-alpha3", - "@vaadin/app-layout": "24.5.0-alpha3", - "@vaadin/avatar": "24.5.0-alpha3", - "@vaadin/avatar-group": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/checkbox": "24.5.0-alpha3", - "@vaadin/checkbox-group": "24.5.0-alpha3", - "@vaadin/combo-box": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/confirm-dialog": "24.5.0-alpha3", - "@vaadin/context-menu": "24.5.0-alpha3", - "@vaadin/custom-field": "24.5.0-alpha3", - "@vaadin/date-picker": "24.5.0-alpha3", - "@vaadin/date-time-picker": "24.5.0-alpha3", - "@vaadin/details": "24.5.0-alpha3", - "@vaadin/dialog": "24.5.0-alpha3", - "@vaadin/email-field": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/field-highlighter": "24.5.0-alpha3", - "@vaadin/form-layout": "24.5.0-alpha3", - "@vaadin/grid": "24.5.0-alpha3", - "@vaadin/horizontal-layout": "24.5.0-alpha3", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/icons": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/integer-field": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/list-box": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/login": "24.5.0-alpha3", - "@vaadin/menu-bar": "24.5.0-alpha3", - "@vaadin/message-input": "24.5.0-alpha3", - "@vaadin/message-list": "24.5.0-alpha3", - "@vaadin/multi-select-combo-box": "24.5.0-alpha3", - "@vaadin/notification": "24.5.0-alpha3", - "@vaadin/number-field": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/password-field": "24.5.0-alpha3", - "@vaadin/popover": "24.5.0-alpha3", - "@vaadin/progress-bar": "24.5.0-alpha3", - "@vaadin/radio-group": "24.5.0-alpha3", - "@vaadin/scroller": "24.5.0-alpha3", - "@vaadin/select": "24.5.0-alpha3", - "@vaadin/side-nav": "24.5.0-alpha3", - "@vaadin/split-layout": "24.5.0-alpha3", - "@vaadin/tabs": "24.5.0-alpha3", - "@vaadin/tabsheet": "24.5.0-alpha3", - "@vaadin/text-area": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/time-picker": "24.5.0-alpha3", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/upload": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "@vaadin/vertical-layout": "24.5.0-alpha3", - "@vaadin/virtual-list": "24.5.0-alpha3" + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/react-components/-/react-components-24.7.0-alpha4.tgz", + "integrity": "sha512-MjhmoNwjer9XDBcd1WUgWAD5axq67J5QvQrKLs32fHyJ2oBucHjs0l9C9/LeMcaJzmaR8AWm3zebQH8T4vIeHg==", + "dependencies": { + "@lit/react": "^1.0.6", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/accordion": "24.7.0-alpha4", + "@vaadin/app-layout": "24.7.0-alpha4", + "@vaadin/avatar": "24.7.0-alpha4", + "@vaadin/avatar-group": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/card": "24.7.0-alpha4", + "@vaadin/checkbox": "24.7.0-alpha4", + "@vaadin/checkbox-group": "24.7.0-alpha4", + "@vaadin/combo-box": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/confirm-dialog": "24.7.0-alpha4", + "@vaadin/context-menu": "24.7.0-alpha4", + "@vaadin/custom-field": "24.7.0-alpha4", + "@vaadin/date-picker": "24.7.0-alpha4", + "@vaadin/date-time-picker": "24.7.0-alpha4", + "@vaadin/details": "24.7.0-alpha4", + "@vaadin/dialog": "24.7.0-alpha4", + "@vaadin/email-field": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/field-highlighter": "24.7.0-alpha4", + "@vaadin/form-layout": "24.7.0-alpha4", + "@vaadin/grid": "24.7.0-alpha4", + "@vaadin/horizontal-layout": "24.7.0-alpha4", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/icons": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/integer-field": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/list-box": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/login": "24.7.0-alpha4", + "@vaadin/menu-bar": "24.7.0-alpha4", + "@vaadin/message-input": "24.7.0-alpha4", + "@vaadin/message-list": "24.7.0-alpha4", + "@vaadin/multi-select-combo-box": "24.7.0-alpha4", + "@vaadin/notification": "24.7.0-alpha4", + "@vaadin/number-field": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/password-field": "24.7.0-alpha4", + "@vaadin/popover": "24.7.0-alpha4", + "@vaadin/progress-bar": "24.7.0-alpha4", + "@vaadin/radio-group": "24.7.0-alpha4", + "@vaadin/scroller": "24.7.0-alpha4", + "@vaadin/select": "24.7.0-alpha4", + "@vaadin/side-nav": "24.7.0-alpha4", + "@vaadin/split-layout": "24.7.0-alpha4", + "@vaadin/tabs": "24.7.0-alpha4", + "@vaadin/tabsheet": "24.7.0-alpha4", + "@vaadin/text-area": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/time-picker": "24.7.0-alpha4", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/upload": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "@vaadin/vertical-layout": "24.7.0-alpha4", + "@vaadin/virtual-list": "24.7.0-alpha4" }, "peerDependencies": { - "@types/react": "^18.2.37", - "@types/react-dom": "^18.2.15", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "@types/react": "^18.2.37 || ^19", + "@types/react-dom": "^18.2.15 || ^19", + "react": "^18.2.0 || ^19", + "react-dom": "^18.2.0 || ^19" }, "peerDependenciesMeta": { "@types/react": { @@ -5296,179 +5408,186 @@ } }, "node_modules/@vaadin/scroller": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/scroller/-/scroller-24.5.0-alpha3.tgz", - "integrity": "sha512-Trq8onnUc/7vIqhyizYFQYT8Zl+2jNdlQJPa9ecwhagcKLmfEHGpj4Mj3SJvydgG5QFYACRVzKJK44fMakTcKg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/scroller/-/scroller-24.7.0-alpha4.tgz", + "integrity": "sha512-9SYK0Sbh6Pw0eVZCgdqS7LwsHn4R5MMn725LSwfsTTp534Tc0P8vkO04l0jSeB0r15UcXOu1oXVG9C1jrqiuDA==", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/select": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/select/-/select-24.5.0-alpha3.tgz", - "integrity": "sha512-BlpFZd0eRDohJ/jZ4vqRschfxworvCnMlhk8COmhFnzyoJ6eTNO+Nb3xVgljXyO7D24e4gXC1Pc3i7nOLg9JCQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/select/-/select-24.7.0-alpha4.tgz", + "integrity": "sha512-50Sg+Syi1SfoS92GriJaUU3xH1rVdXckqbtta56qs9FtiVhcLO+qgLzvUYqhlbiy/d1G7eI84S/0yTf6iT5pqQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.2.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/list-box": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/list-box": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/side-nav": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/side-nav/-/side-nav-24.5.0-alpha3.tgz", - "integrity": "sha512-7+3BTXlQm4DvzHAhZvFCiYVd6RbjYxXw8g1aiodh4dYh0C+VrDQBKCHEAlOuEwWNDMSDdNGLeHmDjdVncAee8w==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/side-nav/-/side-nav-24.7.0-alpha4.tgz", + "integrity": "sha512-LmT/CT+AAUKg3M42Tot5iVvP+2aqTSDX+aOIhoi288cABRW6W1hkgC7dxlJ5jzQ97w56oEYe8VXAyYtcRI/Gcg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/split-layout": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/split-layout/-/split-layout-24.5.0-alpha3.tgz", - "integrity": "sha512-oiCdrpEPsXiQsCKOJVegR6kZ2mPevin7Bx2NMwhHpWWsG9vC82TRn/Wa8disv1rTrkQcCik9TEojf2PgQhERCg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/split-layout/-/split-layout-24.7.0-alpha4.tgz", + "integrity": "sha512-BcoeOWHSZ3rSGLcaHDUEh8sYRY7ahQmXjbQ/c6PzdGJJIOGhcL3O+XyLq+3LYCKwQvnbnqZY8Oiy4X3fv1LtQg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/tabs": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/tabs/-/tabs-24.5.0-alpha3.tgz", - "integrity": "sha512-1T99hCAU8VIDEWG2Vpr3WenAhG5VnbhAIOIYfEknncy4FZaWf8rxwx32tqVilngc98LGf5tQDUGVZRAaVpZqHw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/tabs/-/tabs-24.7.0-alpha4.tgz", + "integrity": "sha512-tTVIhSANTvksDF/32XwSMypfYMK4GA/DDuJk8SE2ZdUBgEQpkBuQtsx6DGezlsaCo+0kdyZ78s8kA9AvjXnimg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/tabsheet": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/tabsheet/-/tabsheet-24.5.0-alpha3.tgz", - "integrity": "sha512-pyHH4KCbpLYbnkW84ZYjYJ+vbHYup+VYnHcOJ6HBheMeSso4xGJcl6ZPcYkgriKA0/8SVEyczZ6+E+17d5MSFA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/tabsheet/-/tabsheet-24.7.0-alpha4.tgz", + "integrity": "sha512-/g8mNJAZv6KN2T3XPG8DlEc0GHadkRkN+NqljtVKMlUdyL7UnvH9g8oR6jQY1c0KedPSu3f8F73D6WFZJmgH5g==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/scroller": "24.5.0-alpha3", - "@vaadin/tabs": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/scroller": "24.7.0-alpha4", + "@vaadin/tabs": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/text-area": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/text-area/-/text-area-24.5.0-alpha3.tgz", - "integrity": "sha512-xy0np0EMhRtfvVFEBEJ5KW82X1qm5aIiK+zGPfWkhlCJvKHP4rpQYQvgcXiPzcUaTrQuDGb9LKnTJOBS8Kun/w==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/text-area/-/text-area-24.7.0-alpha4.tgz", + "integrity": "sha512-SrYxQee6sLx7fxbsYKspWmrrC3sWmnjuuAzd0zTsiGu5A30b6KhPFJVPqUKxG3Lz3wnXyTNavc0XmGp2J6c1KA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/text-field": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.5.0-alpha3.tgz", - "integrity": "sha512-0RSG/a9EX6feS9qdGOMGG7XGbPopmOpMyEsF9MFEbB4FCo9FdNt/6t/8nnQvjm0prO1rvfhUc9CIYjAeNsb6wQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.7.0-alpha4.tgz", + "integrity": "sha512-FimpLa4DSU3AmcNZVHGmDdMrLHGCGGNCXPIc+xFqht22ahh20CkdeKio8ZgBNBiYujr0V+3z2G/K36iktD0Tog==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/time-picker": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/time-picker/-/time-picker-24.5.0-alpha3.tgz", - "integrity": "sha512-8eG8R8uQW2USWrXS0pLAECVGRUWlhFETj5RgCc32RuQHt0kG/S8VvYykn4vS26hIUOOutG511N0JeyhUB1YMUg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/time-picker/-/time-picker-24.7.0-alpha4.tgz", + "integrity": "sha512-fSEVzSfTrVJNeW7mdGF+VQlLVMd4GY2JhOimDu9f8LpDP2gOFixi32k74nowOo0HDwDMTf7O/ANnPhEMUGC6ow==", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/combo-box": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/combo-box": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/tooltip": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.5.0-alpha3.tgz", - "integrity": "sha512-q5K9g3dCp/P8ED1/twharFiSGk1Zf09mApNdxyFl/wYduLxVnDG2h0WfE4rEl9Ix6h8N5NVmJ6Vl48UAZ5vgYQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.7.0-alpha4.tgz", + "integrity": "sha512-6Eb8kaZTpPCF6fptSAXlpYHO5HBDQiTMCbDtLX4cA0ov0rpaJ9YljVaZYYHyVF5lDDPhEfTGUq+f9MhMmIpW0w==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/popover": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/popover": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/upload": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/upload/-/upload-24.5.0-alpha3.tgz", - "integrity": "sha512-f+GjVU/Jhn9KVpLJ4mkKB2iuvOBzn1biW1jZR5RNAY63qQfScK7P4dNoLmzJl/SY5qd6dqGYBOpyboE/NkAQmQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/upload/-/upload-24.7.0-alpha4.tgz", + "integrity": "sha512-n7Z711lwD8vvYOJfjzWCkiWslR7Y1mG+a+OMQDa+g0uC3uJRxrxxeA7RGXI4iqScTe/Xj80FhLTjFEaf58PO2A==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/progress-bar": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/progress-bar": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, @@ -5478,39 +5597,39 @@ "integrity": "sha512-9FhVhr0ynSR3X2ao+vaIEttcNU5XfzCbxtmYOV8uIRnUCtNgbvMOIcyGBvntsX9I5kvIP2dV3cFAOG9SILJzEA==" }, "node_modules/@vaadin/vaadin-lumo-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-9zswr9ZNP6L7+VLCpD8yKKrlRzEC5gKJtfSRVhXqZwJ7x5Na1LVpJDzhDoKlqEcyPCsL/mcRllYAkT20hj0+8Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-L+rF8XYF+7hisu48wZK8MDjbwVMTmEteZsoTk1uyY6oCXyJEvBup1WwN2I0fFRlvSHMKnHNWDOuHmIfevK0uKQ==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "node_modules/@vaadin/vaadin-material-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-6CYxTPmT0ZU64H3wwzeDOrVF87wyU8CtLWLXNhXNkB+DSO44pCLML5kg1LwRRqnixY95x26LY+iSSITUSD8Pmw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-8fcm8oLtaI3BHewsP2d07YcIHw3GgFfFp83IHIoTG7MlaeJvAqvs2aPMcszLJ4s3WCLZnvsSkdwbgjdE0oYbhw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "node_modules/@vaadin/vaadin-themable-mixin": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.5.0-alpha3.tgz", - "integrity": "sha512-gm/Adnsms4nUYONQPBDK91bPE7lfHFb27dBo31io7QAm5Cr+lBTd2U/Ce8eyK5+MialbabyZ2YQCgF3l2l8xWg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.7.0-alpha4.tgz", + "integrity": "sha512-x8Shc4t2WTV/2UtsXY8+n6KDYMvVaq0ZfNdldNkthfZjVfpCgioyZAtB6hZbEirvY6a5RRSQKcr12k2lrKDbTQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "lit": "^3.0.0" } }, "node_modules/@vaadin/vaadin-usage-statistics": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-usage-statistics/-/vaadin-usage-statistics-2.1.2.tgz", - "integrity": "sha512-xKs1PvRfTXsG0eWWcImLXWjv7D+f1vfoIvovppv6pZ5QX8xgcxWUdNgERlOOdGt3CTuxQXukTBW3+Qfva+OXSg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-usage-statistics/-/vaadin-usage-statistics-2.1.3.tgz", + "integrity": "sha512-8r4TNknD7OJQADe3VygeofFR7UNAXZ2/jjBFP5dgI8+2uMfnuGYgbuHivasKr9WSQ64sPej6m8rDoM1uSllXjQ==", "hasInstallScript": true, "dependencies": { "@vaadin/vaadin-development-mode-detector": "^2.0.0" @@ -5520,32 +5639,53 @@ } }, "node_modules/@vaadin/vertical-layout": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vertical-layout/-/vertical-layout-24.5.0-alpha3.tgz", - "integrity": "sha512-vRKkfDtCIaoud8m03t3DhFdPPkiCJxZpNIvm/6gmaSQaznfLornzdFkd/cGYyBwGOYkbGq3J84yfIJXNNycDbw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vertical-layout/-/vertical-layout-24.7.0-alpha4.tgz", + "integrity": "sha512-zyU203DhiaxZCBKx09U1Olq5RJivpBrXwr5kVT1heiF/aioKzOJVHratZcxx0jd0YuAJARt9ODgvYGBPi9HrYw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/virtual-list": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/virtual-list/-/virtual-list-24.5.0-alpha3.tgz", - "integrity": "sha512-MJBTySDtlWbqVryS8IpIyAcWDfda3AWnapI5QPS/eO/kYXPgXGCAsJ/SQJ5H+JOKiZ79Rjkkv4zMm5c7rs968A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/virtual-list/-/virtual-list-24.7.0-alpha4.tgz", + "integrity": "sha512-kNd/HF+yrefuzECTBRY7c+l2B0VKnLaCzjDdDcYYRuzMm2c9ee38JejIULvGlhO+/E7/Ow6JYxAj+RfFc3a6JQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" + } + }, "node_modules/@web/browser-logs": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.4.0.tgz", @@ -5558,17 +5698,57 @@ "node": ">=18.0.0" } }, - "node_modules/@web/dev-server-core": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.1.tgz", - "integrity": "sha512-alHd2j0f4e1ekqYDR8lWScrzR7D5gfsUZq3BP3De9bkFWM3AELINCmqqlVKmCtlkAdEc9VyQvNiEqrxraOdc2A==", + "node_modules/@web/config-loader": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.3.2.tgz", + "integrity": "sha512-Vrjv/FexBGmAdnCYpJKLHX1dfT1UaUdvHmX1JRaWos9OvDf/tFznYJ5SpJwww3Rl87/ewvLSYG7kfsMqEAsizQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@web/dev-server": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.4.6.tgz", + "integrity": "sha512-jj/1bcElAy5EZet8m2CcUdzxT+CRvUjIXGh8Lt7vxtthkN9PzY9wlhWx/9WOs5iwlnG1oj0VGo6f/zvbPO0s9w==", "dev": true, + "license": "MIT", "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.1.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", + "@babel/code-frame": "^7.12.11", + "@types/command-line-args": "^5.0.0", + "@web/config-loader": "^0.3.0", + "@web/dev-server-core": "^0.7.2", + "@web/dev-server-rollup": "^0.6.1", + "camelcase": "^6.2.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^7.0.1", + "debounce": "^1.2.0", + "deepmerge": "^4.2.2", + "internal-ip": "^6.2.0", + "nanocolors": "^0.2.1", + "open": "^8.0.2", + "portfinder": "^1.0.32" + }, + "bin": { + "wds": "dist/bin.js", + "web-dev-server": "dist/bin.js" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@web/dev-server-core": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.2.tgz", + "integrity": "sha512-Q/0jpF13Ipk+qGGQ+Yx/FW1TQBYazpkfgYHHo96HBE7qv4V4KKHqHglZcSUxti/zd4bToxX1cFTz8dmbTlb8JA==", + "dev": true, + "dependencies": { + "@types/koa": "^2.11.6", + "@types/ws": "^7.4.0", + "@web/parse5-utils": "^2.1.0", + "chokidar": "^3.4.3", + "clone": "^2.1.2", "es-module-lexer": "^1.0.0", "get-stream": "^6.0.0", "is-stream": "^2.0.0", @@ -5642,9 +5822,9 @@ } }, "node_modules/@web/dev-server-core/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "dev": true, "engines": { "node": ">=8.3.0" @@ -5662,6 +5842,84 @@ } } }, + "node_modules/@web/dev-server-rollup": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.6.4.tgz", + "integrity": "sha512-sJZfTGCCrdku5xYnQQG51odGI092hKY9YFM0X3Z0tRY3iXKXcYRaLZrErw5KfCxr6g0JRuhe4BBhqXTA5Q2I3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/plugin-node-resolve": "^15.0.1", + "@web/dev-server-core": "^0.7.2", + "nanocolors": "^0.2.1", + "parse5": "^6.0.1", + "rollup": "^4.4.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@web/dev-server-rollup/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@web/dev-server-rollup/node_modules/tr46": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", + "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@web/dev-server-rollup/node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-rollup/node_modules/whatwg-url": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz", + "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "^5.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@web/dev-server/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@web/parse5-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.1.0.tgz", @@ -5675,6 +5933,55 @@ "node": ">=18.0.0" } }, + "node_modules/@web/test-runner": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.19.0.tgz", + "integrity": "sha512-qLUupi88OK1Kl52cWPD/2JewUCRUxYsZ1V1DyLd05P7u09zCdrUYrtkB/cViWyxlBe/TOvqkSNpcTv6zLJ9GoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@web/browser-logs": "^0.4.0", + "@web/config-loader": "^0.3.0", + "@web/dev-server": "^0.4.0", + "@web/test-runner-chrome": "^0.17.0", + "@web/test-runner-commands": "^0.9.0", + "@web/test-runner-core": "^0.13.0", + "@web/test-runner-mocha": "^0.9.0", + "camelcase": "^6.2.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^7.0.1", + "convert-source-map": "^2.0.0", + "diff": "^5.0.0", + "globby": "^11.0.1", + "nanocolors": "^0.2.1", + "portfinder": "^1.0.32", + "source-map": "^0.7.3" + }, + "bin": { + "web-test-runner": "dist/bin.js", + "wtr": "dist/bin.js" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@web/test-runner-chrome": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.17.0.tgz", + "integrity": "sha512-Il5N9z41NKWCrQM1TVgRaDWWYoJtG5Ha4fG+cN1MWL2OlzBS4WoOb4lFV3EylZ7+W3twZOFr1zy2Rx61yDYd/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@web/test-runner-core": "^0.13.0", + "@web/test-runner-coverage-v8": "^0.8.0", + "async-mutex": "0.4.0", + "chrome-launcher": "^0.15.0", + "puppeteer-core": "^23.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@web/test-runner-commands": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.9.0.tgz", @@ -5689,9 +5996,9 @@ } }, "node_modules/@web/test-runner-core": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.13.1.tgz", - "integrity": "sha512-2hESALx/UFsAzK+ApWXAkFp2eCmwcs2yj1v4YjwV8F38sQumJ40P3px3BMjFwkOYDORtQOicW0RUeSw1g3BMLA==", + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.13.3.tgz", + "integrity": "sha512-ilDqF/v2sj0sD69FNSIDT7uw4M1yTVedLBt32/lXy3MMi6suCM7m/ZlhsBy8PXhf879WMvzBOl/vhJBpEMB9vA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.11", @@ -5702,7 +6009,7 @@ "@types/istanbul-lib-coverage": "^2.0.3", "@types/istanbul-reports": "^3.0.0", "@web/browser-logs": "^0.4.0", - "@web/dev-server-core": "^0.7.0", + "@web/dev-server-core": "^0.7.2", "chokidar": "^3.4.3", "cli-cursor": "^3.1.0", "co-body": "^6.1.0", @@ -5710,7 +6017,7 @@ "debounce": "^1.2.0", "dependency-graph": "^0.11.0", "globby": "^11.0.1", - "ip": "^2.0.1", + "internal-ip": "^6.2.0", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-report": "^3.0.1", "istanbul-reports": "^3.0.2", @@ -5740,6 +6047,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@web/test-runner-core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/@web/test-runner-core/node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -5822,6 +6144,12 @@ "node": ">=8" } }, + "node_modules/@web/test-runner-core/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/@web/test-runner-core/node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -5888,6 +6216,69 @@ "node": ">=8" } }, + "node_modules/@web/test-runner-coverage-v8": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.8.0.tgz", + "integrity": "sha512-PskiucYpjUtgNfR2zF2AWqWwjXL7H3WW/SnCAYmzUrtob7X9o/+BjdyZ4wKbOxWWSbJO4lEdGIDLu+8X2Xw+lA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@web/test-runner-core": "^0.13.0", + "istanbul-lib-coverage": "^3.0.0", + "lru-cache": "^8.0.4", + "picomatch": "^2.2.2", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@web/test-runner-coverage-v8/node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16.14" + } + }, + "node_modules/@web/test-runner-mocha": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.9.0.tgz", + "integrity": "sha512-ZL9F6FXd0DBQvo/h/+mSfzFTSRVxzV9st/AHhpgABtUtV/AIpVE9to6+xdkpu6827kwjezdpuadPfg+PlrBWqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@web/test-runner-core": "^0.13.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@web/test-runner/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@web/test-runner/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, "node_modules/@webcomponents/shadycss": { "version": "1.11.2", "resolved": "https://registry.npmjs.org/@webcomponents/shadycss/-/shadycss-1.11.2.tgz", @@ -5900,22 +6291,22 @@ "dev": true }, "node_modules/@yarnpkg/parsers": { - "version": "3.0.0-rc.46", - "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.46.tgz", - "integrity": "sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.2.tgz", + "integrity": "sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==", "dev": true, "dependencies": { "js-yaml": "^3.10.0", "tslib": "^2.4.0" }, "engines": { - "node": ">=14.15.0" + "node": ">=18.12.0" } }, "node_modules/@zkochan/js-yaml": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz", - "integrity": "sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz", + "integrity": "sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==", "dev": true, "dependencies": { "argparse": "^2.0.1" @@ -5955,10 +6346,11 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "devOptional": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -5975,11 +6367,27 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-loose": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/acorn-loose/-/acorn-loose-8.4.0.tgz", + "integrity": "sha512-M0EUka6rb+QC4l9Z3T0nJEzNOO7JcoJlYMrBlyBCiFSXRyxjLKayd4TbQs2FDRWQU1h9FR7QVNHt+PEaoNL5rQ==", + "devOptional": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "dev": true, + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } @@ -5993,15 +6401,28 @@ "node": ">= 10.0.0" } }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -6031,27 +6452,16 @@ } }, "node_modules/ansi-escapes": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", - "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", "dev": true, + "license": "MIT", "dependencies": { - "type-fest": "^3.0.0" + "environment": "^1.0.0" }, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", - "dev": true, - "engines": { - "node": ">=14.16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6061,21 +6471,17 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" @@ -6109,12 +6515,22 @@ } }, "node_modules/aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dev": true, "dependencies": { - "deep-equal": "^2.0.5" + "dequal": "^2.0.3" + } + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" } }, "node_modules/array-buffer-byte-length": { @@ -6147,15 +6563,16 @@ } }, "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" }, "engines": { @@ -6174,35 +6591,17 @@ "node": ">=8" } }, - "node_modules/array.prototype.filter": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz", - "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array.prototype.findlastindex": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz", - "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", + "es-abstract": "^1.23.2", "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", "es-shim-unscopables": "^1.0.2" }, "engines": { @@ -6285,6 +6684,19 @@ "node": "*" } }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -6295,9 +6707,9 @@ } }, "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "dev": true }, "node_modules/async-arrays": { @@ -6317,6 +6729,16 @@ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" }, + "node_modules/async-mutex": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz", + "integrity": "sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -6334,9 +6756,9 @@ } }, "node_modules/atmosphere.js/node_modules/ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", "dependencies": { "async-limiter": "~1.0.0" } @@ -6365,25 +6787,32 @@ } }, "node_modules/axe-core": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.8.4.tgz", - "integrity": "sha512-CZLSKisu/bhJ2awW4kJndluz2HLZYIHh5Uy1+ZwDRkJi69811xgIXXfdU9HSLX0Th+ILrHj8qfL/5wzamsFtQg==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.0.tgz", + "integrity": "sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", "dev": true, "dependencies": { - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } }, + "node_modules/b4a": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/babel-plugin-const-enum": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/babel-plugin-const-enum/-/babel-plugin-const-enum-1.2.0.tgz", @@ -6410,48 +6839,39 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", - "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", "dev": true, "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.5.0", + "@babel/helper-define-polyfill-provider": "^0.6.2", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", - "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0", - "core-js-compat": "^3.34.0" + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", - "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0" + "@babel/helper-define-polyfill-provider": "^0.6.2" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -6469,8 +6889,58 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/bare-events": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz", + "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==", + "dev": true, + "license": "Apache-2.0", + "optional": true + }, + "node_modules/bare-fs": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz", + "integrity": "sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-events": "^2.0.0", + "bare-path": "^2.0.0", + "bare-stream": "^2.0.0" + } + }, + "node_modules/bare-os": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz", + "integrity": "sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==", + "dev": true, + "license": "Apache-2.0", + "optional": true + }, + "node_modules/bare-path": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz", + "integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-os": "^2.1.0" + } + }, + "node_modules/bare-stream": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.4.2.tgz", + "integrity": "sha512-XZ4ln/KV4KT+PXdIWTKjsLY+quqCaEtqqtgGJVPw9AoM73By03ij64YjepK0aQvHSWDb6AfAZwqKaFu68qkrdA==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "streamx": "^2.20.0" + } }, "node_modules/base64-js": { "version": "1.5.1", @@ -6500,13 +6970,26 @@ "node": "^4.5.0 || >= 5.9" } }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bit-mask": { @@ -6604,18 +7087,17 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -6628,9 +7110,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "dev": true, "funding": [ { @@ -6646,11 +7128,12 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -6683,21 +7166,22 @@ "ieee754": "^1.1.13" } }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, - "dependencies": { - "semver": "^7.0.0" - } - }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -6708,20 +7192,19 @@ } }, "node_modules/c8": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.1.tgz", - "integrity": "sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w==", - "dev": true, + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/c8/-/c8-10.1.3.tgz", + "integrity": "sha512-LvcyrOAaOnrrlMpW22n690PUvxiq4Uf9WMhQwNJ9vgagkL/ph1+D4uvjvDA5XCbykrc0sx+ay6pVi9YZ1GnhyA==", + "license": "ISC", "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", + "@bcoe/v8-coverage": "^1.0.1", "@istanbuljs/schema": "^0.1.3", "find-up": "^5.0.0", - "foreground-child": "^2.0.0", + "foreground-child": "^3.1.1", "istanbul-lib-coverage": "^3.2.0", "istanbul-lib-report": "^3.0.1", "istanbul-reports": "^3.1.6", - "rimraf": "^3.0.2", - "test-exclude": "^6.0.0", + "test-exclude": "^7.0.1", "v8-to-istanbul": "^9.0.0", "yargs": "^17.7.2", "yargs-parser": "^21.1.1" @@ -6730,64 +7213,24 @@ "c8": "bin/c8.js" }, "engines": { - "node": ">=12" - } - }, - "node_modules/c8/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/c8/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "node": ">=18" }, - "engines": { - "node": "*" + "peerDependencies": { + "monocart-coverage-reports": "^2" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependenciesMeta": { + "monocart-coverage-reports": { + "optional": true + } } }, - "node_modules/c8/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "node_modules/c8/node_modules/@bcoe/v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.1.tgz", + "integrity": "sha512-W+a0/JpU28AqH4IKtwUPcEUnUyXMDLALcn5/JLczGGT9fHE2sIby/xP/oQnx3nxkForzgzPy201RAKcB4xPAFQ==", + "license": "MIT", "engines": { - "node": "*" - } - }, - "node_modules/c8/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=18" } }, "node_modules/cache-content-type": { @@ -6858,9 +7301,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001589", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz", - "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==", + "version": "1.0.30001687", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001687.tgz", + "integrity": "sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ==", "dev": true, "funding": [ { @@ -6875,7 +7318,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/caseless": { "version": "0.12.0", @@ -6884,9 +7328,9 @@ "dev": true }, "node_modules/chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, "dependencies": { "assertion-error": "^1.1.0", @@ -6895,7 +7339,7 @@ "get-func-name": "^2.0.2", "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "type-detect": "^4.1.0" }, "engines": { "node": ">=4" @@ -6911,15 +7355,25 @@ } }, "node_modules/chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.2.tgz", + "integrity": "sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw==", "dev": true, "dependencies": { "check-error": "^1.0.2" }, "peerDependencies": { - "chai": ">= 2.1.2 < 5" + "chai": ">= 2.1.2 < 6" + } + }, + "node_modules/chai-deep-equal-ignore-undefined": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/chai-deep-equal-ignore-undefined/-/chai-deep-equal-ignore-undefined-1.1.1.tgz", + "integrity": "sha512-BE4nUR2Jbqmmv8A0EuAydFRB/lXgXWAfa9TvO3YzHeGHAU7ZRwPZyu074oDl/CZtNXM7jXINpQxKBOe7N0P4bg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "chai": ">= 4.0.0 < 5" } }, "node_modules/chai-dom": { @@ -6951,12 +7405,13 @@ } }, "node_modules/chai-like": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chai-like/-/chai-like-1.1.1.tgz", - "integrity": "sha512-VKa9z/SnhXhkT1zIjtPACFWSoWsqVoaz1Vg+ecrKo5DCKVlgL30F/pEyEvXPBOVwCgLZcWUleCM/C1okaKdTTA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chai-like/-/chai-like-1.1.3.tgz", + "integrity": "sha512-JGsxE2PBhXeXxfzkAobp8KcyVdXHa96/I/4oJf6GKtQccTugVaVD68TvPDiCUo+hBC2meR68riSeABHkn+Hyug==", "dev": true, + "license": "MIT", "peerDependencies": { - "chai": "2 - 4" + "chai": "2 - 5" } }, "node_modules/chalk": { @@ -6975,6 +7430,37 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, + "node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/check-error": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", @@ -7023,16 +7509,64 @@ "node": ">= 6" } }, - "node_modules/cli-cursor": { + "node_modules/chrome-launcher": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", + "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0" + }, + "bin": { + "print-chrome-path": "bin/print-chrome-path.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/chrome-launcher/node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chromium-bidi": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.8.0.tgz", + "integrity": "sha512-uJydbGdTw0DEUjhoogGveneJVWX/9YuqkWePzMmkBYwtdAqo5d3J/ovNKFr+/2hWXYmYCr6it8mSSTIj6SS6Ug==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "mitt": "3.0.1", + "urlpattern-polyfill": "10.0.0", + "zod": "3.23.8" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, + "license": "MIT", "dependencies": { - "restore-cursor": "^4.0.0" + "restore-cursor": "^5.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7055,6 +7589,7 @@ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", "dev": true, + "license": "MIT", "dependencies": { "slice-ansi": "^5.0.0", "string-width": "^7.0.0" @@ -7067,10 +7602,11 @@ } }, "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7079,16 +7615,18 @@ } }, "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" }, "node_modules/cli-truncate/node_modules/string-width": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", - "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", @@ -7106,6 +7644,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -7120,7 +7659,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -7130,17 +7668,29 @@ "node": ">=12" } }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/cliui/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -7149,7 +7699,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7163,7 +7712,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7196,22 +7744,25 @@ } }, "node_modules/co-body": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz", - "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.2.0.tgz", + "integrity": "sha512-Kbpv2Yd1NdL1V/V4cwLVxraHDV6K8ayohr2rmH0J87Er8+zJjcTa6dAn9QMPC9CRgU8+aNajKbSf1TzDB1yKPA==", "dev": true, "dependencies": { + "@hapi/bourne": "^3.0.0", "inflation": "^2.0.0", "qs": "^6.5.2", "raw-body": "^2.3.3", "type-is": "^1.6.16" + }, + "engines": { + "node": ">=8.0.0" } }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -7222,8 +7773,7 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/colord": { "version": "2.9.3", @@ -7270,24 +7820,76 @@ "node": ">= 0.8" } }, - "node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, "engines": { - "node": ">=16" + "node": ">=4.0.0" } }, - "node_modules/compare-versions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.0.tgz", - "integrity": "sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg==", - "dev": true + "node_modules/command-line-usage": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.3.tgz", + "integrity": "sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^6.2.2", + "chalk-template": "^0.4.0", + "table-layout": "^4.1.0", + "typical": "^7.1.1" + }, + "engines": { + "node": ">=12.20.0" + } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "node_modules/command-line-usage/node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.3.0.tgz", + "integrity": "sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "devOptional": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/compare-versions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", + "integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, @@ -7343,17 +7945,15 @@ } }, "node_modules/concurrently": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz", - "integrity": "sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.1.0.tgz", + "integrity": "sha512-VxkzwMAn4LP7WyMnJNbHN5mKV9L2IbyDjpzemKr99sXNR3GqRNMMHdm7prV1ws9wg7ETj6WUkNOigZVsptwbgg==", "dev": true, "dependencies": { "chalk": "^4.1.2", - "date-fns": "^2.30.0", "lodash": "^4.17.21", "rxjs": "^7.8.1", "shell-quote": "^1.8.1", - "spawn-command": "0.0.2", "supports-color": "^8.1.1", "tree-kill": "^1.2.2", "yargs": "^17.7.2" @@ -7363,7 +7963,7 @@ "concurrently": "dist/bin/concurrently.js" }, "engines": { - "node": "^14.13.0 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" @@ -7414,6 +8014,12 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/console-grid": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/console-grid/-/console-grid-2.2.2.tgz", + "integrity": "sha512-ohlgXexdDTKLNsZz7DSJuCAwmRc8omSS61txOk39W3NOthgKGr1a1jJpZ5BCQe4PlrwMw01OvPQ1Bl3G7Y/uFg==", + "devOptional": true + }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -7438,8 +8044,7 @@ "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" }, "node_modules/cookie": { "version": "0.4.2", @@ -7482,6 +8087,21 @@ "copyup": "copyfiles" } }, + "node_modules/copyfiles/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/copyfiles/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -7513,6 +8133,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -7609,9 +8230,9 @@ } }, "node_modules/core-js": { - "version": "3.36.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.0.tgz", - "integrity": "sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==", + "version": "3.38.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.0.tgz", + "integrity": "sha512-XPpwqEodRljce9KswjZShh95qJ1URisBeKCjUdq27YdenkslVe7OO0ZJhlYXAChW7OhXaRLl8AAba7IBfoIHug==", "dev": true, "hasInstallScript": true, "funding": { @@ -7620,12 +8241,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.36.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz", - "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==", + "version": "3.38.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.0.tgz", + "integrity": "sha512-75LAicdLa4OJVwFxFbQR3NdnZjNgX6ILpVcVzcC4T2smerB5lELMrJQQQoWV6TiuC/vlaFqgU2tKQx9w5s0e0A==", "dev": true, "dependencies": { - "browserslist": "^4.22.3" + "browserslist": "^4.23.3" }, "funding": { "type": "opencollective", @@ -7677,7 +8298,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -7688,9 +8308,9 @@ } }, "node_modules/css-declaration-sorter": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.1.1.tgz", - "integrity": "sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", "dev": true, "engines": { "node": "^14 || ^16 || >=18" @@ -7753,16 +8373,16 @@ } }, "node_modules/cssnano": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.4.tgz", - "integrity": "sha512-Bp607LopXmwV9TPUxw76yvcvRk4AYrrtHtLsndAnSWUwT4xgaiC6Eaa44cZ6ciu9J7Sqv9zocMTDcyQnU4dihw==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.0.6.tgz", + "integrity": "sha512-54woqx8SCbp8HwvNZYn68ZFAepuouZW4lTwiMVnBErM3VkO7/Sd4oTOt3Zz3bPx3kxQ36aISppyXj2Md4lg8bw==", "dev": true, "dependencies": { - "cssnano-preset-default": "^6.0.4", - "lilconfig": "^3.1.1" + "cssnano-preset-default": "^7.0.6", + "lilconfig": "^3.1.2" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "funding": { "type": "opencollective", @@ -7773,55 +8393,56 @@ } }, "node_modules/cssnano-preset-default": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.4.tgz", - "integrity": "sha512-mvyBIFHaFA4lkBwePlB9Gycnf/rgFQRKcP/yHG/tbD0ZuIdCDSF1GoL4QC4gcp8qaJOkmVmb0mCXMR6Wi4Da0A==", - "dev": true, - "dependencies": { - "css-declaration-sorter": "^7.1.1", - "cssnano-utils": "^4.0.1", - "postcss-calc": "^9.0.1", - "postcss-colormin": "^6.0.2", - "postcss-convert-values": "^6.0.3", - "postcss-discard-comments": "^6.0.1", - "postcss-discard-duplicates": "^6.0.2", - "postcss-discard-empty": "^6.0.2", - "postcss-discard-overridden": "^6.0.1", - "postcss-merge-longhand": "^6.0.2", - "postcss-merge-rules": "^6.0.3", - "postcss-minify-font-values": "^6.0.1", - "postcss-minify-gradients": "^6.0.1", - "postcss-minify-params": "^6.0.2", - "postcss-minify-selectors": "^6.0.2", - "postcss-normalize-charset": "^6.0.1", - "postcss-normalize-display-values": "^6.0.1", - "postcss-normalize-positions": "^6.0.1", - "postcss-normalize-repeat-style": "^6.0.1", - "postcss-normalize-string": "^6.0.1", - "postcss-normalize-timing-functions": "^6.0.1", - "postcss-normalize-unicode": "^6.0.2", - "postcss-normalize-url": "^6.0.1", - "postcss-normalize-whitespace": "^6.0.1", - "postcss-ordered-values": "^6.0.1", - "postcss-reduce-initial": "^6.0.2", - "postcss-reduce-transforms": "^6.0.1", - "postcss-svgo": "^6.0.2", - "postcss-unique-selectors": "^6.0.2" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.6.tgz", + "integrity": "sha512-ZzrgYupYxEvdGGuqL+JKOY70s7+saoNlHSCK/OGn1vB2pQK8KSET8jvenzItcY+kA7NoWvfbb/YhlzuzNKjOhQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.23.3", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^5.0.0", + "postcss-calc": "^10.0.2", + "postcss-colormin": "^7.0.2", + "postcss-convert-values": "^7.0.4", + "postcss-discard-comments": "^7.0.3", + "postcss-discard-duplicates": "^7.0.1", + "postcss-discard-empty": "^7.0.0", + "postcss-discard-overridden": "^7.0.0", + "postcss-merge-longhand": "^7.0.4", + "postcss-merge-rules": "^7.0.4", + "postcss-minify-font-values": "^7.0.0", + "postcss-minify-gradients": "^7.0.0", + "postcss-minify-params": "^7.0.2", + "postcss-minify-selectors": "^7.0.4", + "postcss-normalize-charset": "^7.0.0", + "postcss-normalize-display-values": "^7.0.0", + "postcss-normalize-positions": "^7.0.0", + "postcss-normalize-repeat-style": "^7.0.0", + "postcss-normalize-string": "^7.0.0", + "postcss-normalize-timing-functions": "^7.0.0", + "postcss-normalize-unicode": "^7.0.2", + "postcss-normalize-url": "^7.0.0", + "postcss-normalize-whitespace": "^7.0.0", + "postcss-ordered-values": "^7.0.1", + "postcss-reduce-initial": "^7.0.2", + "postcss-reduce-transforms": "^7.0.0", + "postcss-svgo": "^7.0.1", + "postcss-unique-selectors": "^7.0.3" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/cssnano-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.1.tgz", - "integrity": "sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.0.tgz", + "integrity": "sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==", "dev": true, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" @@ -7871,20 +8492,65 @@ "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", "dev": true }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.21.0" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { - "node": ">=0.11" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/date-format": { @@ -7911,12 +8577,13 @@ "dev": true }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -7939,10 +8606,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "license": "MIT" + }, "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", "dev": true, "dependencies": { "type-detect": "^4.0.0" @@ -7951,38 +8624,6 @@ "node": ">=6" } }, - "node_modules/deep-equal": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", - "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/deep-equal-in-any-order": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/deep-equal-in-any-order/-/deep-equal-in-any-order-2.0.6.tgz", @@ -7993,18 +8634,129 @@ "sort-any": "^2.0.0" } }, - "node_modules/deep-equal/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/default-gateway/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-gateway/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/default-gateway/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/default-gateway/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/default-gateway/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -8060,6 +8812,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -8093,6 +8860,15 @@ "node": ">= 0.6.0" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -8104,9 +8880,9 @@ } }, "node_modules/detect-port": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", - "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", + "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", "dev": true, "dependencies": { "address": "^1.0.1", @@ -8115,8 +8891,18 @@ "bin": { "detect": "bin/detect-port.js", "detect-port": "bin/detect-port.js" + }, + "engines": { + "node": ">= 4.0.0" } }, + "node_modules/devtools-protocol": { + "version": "0.0.1367902", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz", + "integrity": "sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", @@ -8124,9 +8910,9 @@ "dev": true }, "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", "dev": true, "engines": { "node": ">=0.3.1" @@ -8239,37 +9025,36 @@ } }, "node_modules/dotenv": { - "version": "16.3.2", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.2.tgz", - "integrity": "sha512-HTlk5nmhkm8F6JcdXvHIzaorzCoziNQT9mGxLPVXW8wJF1TiGSL60ZGB4gHWabHOaMmWmhvk2/lPHfnBiT78AQ==", + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", "dev": true, "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" + "url": "https://dotenvx.com" } }, "node_modules/dotenv-expand": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", - "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", + "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", "dev": true, + "dependencies": { + "dotenv": "^16.4.5" + }, "engines": { "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" } }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, "node_modules/ee-first": { "version": "1.1.1", @@ -8277,10 +9062,17 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, + "node_modules/eight-colors": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/eight-colors/-/eight-colors-1.3.1.tgz", + "integrity": "sha512-7nXPYDeKh6DgJDR/mpt2G7N/hCNSGwwoPVmoI3+4TEwOb07VFN1WMPG0DFf6nMEjrkgdj8Og7l7IaEEk3VE6Zg==", + "devOptional": true, + "license": "MIT" + }, "node_modules/ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, "dependencies": { "jake": "^10.8.5" @@ -8293,16 +9085,16 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.680", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.680.tgz", - "integrity": "sha512-4nToZ5jlPO14W82NkF32wyjhYqQByVaDmLy4J2/tYcAbJfgO2TKJC780Az1V13gzq4l73CJ0yuyalpXvxXXD9A==", - "dev": true + "version": "1.5.72", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.72.tgz", + "integrity": "sha512-ZpSAUOZ2Izby7qnZluSrAlGgGQzucmFbN0n64dYzocYxnxV5ufurpj3VgEe4cUp7ir9LmeLxNYo8bVnlM8bQHw==", + "dev": true, + "license": "ISC" }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "node_modules/encodeurl": { "version": "1.0.2", @@ -8322,9 +9114,9 @@ } }, "node_modules/engine.io": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz", - "integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz", + "integrity": "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==", "dev": true, "dependencies": { "@types/cookie": "^0.4.1", @@ -8336,25 +9128,25 @@ "cors": "~2.8.5", "debug": "~4.3.1", "engine.io-parser": "~5.2.1", - "ws": "~8.11.0" + "ws": "~8.17.1" }, "engines": { "node": ">=10.2.0" } }, "node_modules/engine.io-parser": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", - "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", "dev": true, "engines": { "node": ">=10.0.0" } }, "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -8377,10 +9169,16 @@ } }, "node_modules/ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", - "dev": true + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.1.tgz", + "integrity": "sha512-QHuXVeZx9d+tIQAz/XztU0ZwZf2Agg9CcXcgE1rurqvdBeDBrpSwjl8/6XUqMg7tw2Y7uAdKb2sRv+bSEFqQ5A==", + "dev": true, + "dependencies": { + "punycode": "^1.4.1" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/entities": { "version": "4.5.0", @@ -8394,6 +9192,19 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -8410,18 +9221,22 @@ "dev": true }, "node_modules/es-abstract": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.4.tgz", - "integrity": "sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.1", "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.6", + "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", "es-define-property": "^1.0.0", "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.2", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", "get-intrinsic": "^1.2.4", @@ -8429,15 +9244,16 @@ "globalthis": "^1.0.3", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.1", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "hasown": "^2.0.1", + "hasown": "^2.0.2", "internal-slot": "^1.0.7", "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", @@ -8445,17 +9261,17 @@ "object-keys": "^1.1.1", "object.assign": "^4.1.5", "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.0", + "safe-array-concat": "^1.1.2", "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.1", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.14" + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -8464,12 +9280,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true - }, "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", @@ -8491,38 +9301,24 @@ "node": ">= 0.4" } }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "dev": true + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" + "es-errors": "^1.3.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 0.4" } }, - "node_modules/es-get-iterator/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", - "dev": true - }, "node_modules/es-set-tostringtag": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", @@ -8570,48 +9366,50 @@ "dev": true }, "node_modules/esbuild": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.1.tgz", - "integrity": "sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.1", - "@esbuild/android-arm": "0.20.1", - "@esbuild/android-arm64": "0.20.1", - "@esbuild/android-x64": "0.20.1", - "@esbuild/darwin-arm64": "0.20.1", - "@esbuild/darwin-x64": "0.20.1", - "@esbuild/freebsd-arm64": "0.20.1", - "@esbuild/freebsd-x64": "0.20.1", - "@esbuild/linux-arm": "0.20.1", - "@esbuild/linux-arm64": "0.20.1", - "@esbuild/linux-ia32": "0.20.1", - "@esbuild/linux-loong64": "0.20.1", - "@esbuild/linux-mips64el": "0.20.1", - "@esbuild/linux-ppc64": "0.20.1", - "@esbuild/linux-riscv64": "0.20.1", - "@esbuild/linux-s390x": "0.20.1", - "@esbuild/linux-x64": "0.20.1", - "@esbuild/netbsd-x64": "0.20.1", - "@esbuild/openbsd-x64": "0.20.1", - "@esbuild/sunos-x64": "0.20.1", - "@esbuild/win32-arm64": "0.20.1", - "@esbuild/win32-ia32": "0.20.1", - "@esbuild/win32-x64": "0.20.1" + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" } }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true, + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -8623,28 +9421,47 @@ "dev": true }, "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { - "node": ">=10" + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" } }, "node_modules/eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -8799,9 +9616,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -8922,15 +9739,6 @@ "node": "*" } }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/eslint-plugin-import/node_modules/tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", @@ -8944,9 +9752,9 @@ } }, "node_modules/eslint-plugin-lit": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-lit/-/eslint-plugin-lit-1.11.0.tgz", - "integrity": "sha512-jVqy2juQTAtOzj1ILf+ZW5GpDobXlSw0kvpP2zu2r8ZbW7KISt7ikj1Gw9DhNeirEU1UlSJR0VIWpdr4lzjayw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-lit/-/eslint-plugin-lit-1.14.0.tgz", + "integrity": "sha512-J4w+CgO31621GreLFCdTUbTr5yeV2/RJ/M0myw0dykD5p9FGGIRLityQiNa6SG+JpVbmeQTQPJy4pNFmiurJ/w==", "dev": true, "dependencies": { "parse5": "^6.0.1", @@ -8961,12 +9769,13 @@ } }, "node_modules/eslint-plugin-mocha": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.3.0.tgz", - "integrity": "sha512-IWzbg2K6B1Q7h37Ih4zMyW+nhmw1JvUlHlbCUUUu6PfOOAUGCB0gxmvv7/U+TQQ6e8yHUv+q7KMdIIum4bx+PA==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.5.0.tgz", + "integrity": "sha512-F2ALmQVPT1GoP27O1JTZGrV9Pqg8k79OeIuvw63UxMtQKREZtmkK1NFgkZQ2TW7L2JSSFKHFPTtHu5z8R9QNRw==", "dev": true, "dependencies": { "eslint-utils": "^3.0.0", + "globals": "^13.24.0", "rambda": "^7.4.0" }, "engines": { @@ -8976,21 +9785,48 @@ "eslint": ">=7.0.0" } }, + "node_modules/eslint-plugin-mocha/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-mocha/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint-plugin-perfectionist": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-2.5.0.tgz", - "integrity": "sha512-F6XXcq4mKKUe/SREoMGQqzgw6cgCgf3pFzkFfQVIGtqD1yXVpQjnhTepzhBeZfxZwgMzR9HO4yH4CUhIQ2WBcQ==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-2.11.0.tgz", + "integrity": "sha512-XrtBtiu5rbQv88gl+1e2RQud9te9luYNvKIgM9emttQ2zutHPzY/AQUucwxscDKV4qlTkvLTxjOFvxqeDpPorw==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "^6.13.0", + "@typescript-eslint/utils": "^6.13.0 || ^7.0.0", "minimatch": "^9.0.3", "natural-compare-lite": "^1.4.0" }, "peerDependencies": { - "astro-eslint-parser": "^0.16.0", + "astro-eslint-parser": "^1.0.2", "eslint": ">=8.0.0", "svelte": ">=3.0.0", - "svelte-eslint-parser": "^0.33.0", + "svelte-eslint-parser": "^0.37.0", "vue-eslint-parser": ">=9.0.0" }, "peerDependenciesMeta": { @@ -9009,13 +9845,13 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", - "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", + "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", "dev": true, "dependencies": { "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.8.6" + "synckit": "^0.9.1" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -9135,6 +9971,18 @@ "concat-map": "0.0.1" } }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -9222,9 +10070,9 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -9254,6 +10102,13 @@ "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -9352,18 +10207,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/execa/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -9382,10 +10225,47 @@ "node": "*" } }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/fast-copy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.1.tgz", - "integrity": "sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz", + "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==" }, "node_modules/fast-deep-equal": { "version": "3.1.3", @@ -9398,33 +10278,12 @@ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true }, - "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } + "license": "MIT" }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", @@ -9439,9 +10298,9 @@ "dev": true }, "node_modules/fast-redact": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.3.0.tgz", - "integrity": "sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", "engines": { "node": ">=6" } @@ -9451,6 +10310,11 @@ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==" + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -9460,6 +10324,16 @@ "reusify": "^1.0.4" } }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/fetch-mock": { "version": "9.11.0", "resolved": "https://registry.npmjs.org/fetch-mock/-/fetch-mock-9.11.0.tgz", @@ -9514,15 +10388,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -9557,9 +10422,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -9613,11 +10478,23 @@ "node": ">= 0.8" } }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -9652,63 +10529,6 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/flat-cache/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/flat-cache/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flat-cache/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/flatted": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", @@ -9745,22 +10565,24 @@ } }, "node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dependencies": { "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" + "signal-exit": "^4.0.1" }, "engines": { - "node": ">=8.0.0" - } - }, + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "dev": true, "dependencies": { "asynckit": "^0.4.0", @@ -9780,6 +10602,15 @@ "node": ">= 0.6" } }, + "node_modules/front-matter": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", + "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", + "dev": true, + "dependencies": { + "js-yaml": "^3.13.1" + } + }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -9868,16 +10699,16 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-east-asian-width": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", - "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -9972,9 +10803,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", - "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.6.tgz", + "integrity": "sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==", "dev": true, "dependencies": { "resolve-pkg-maps": "^1.0.0" @@ -9983,23 +10814,40 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, + "node_modules/get-uri": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", + "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", + "dev": true, + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4", + "fs-extra": "^11.2.0" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -10023,29 +10871,16 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, - "node_modules/glob/node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "node_modules/glob/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" + "brace-expansion": "^2.0.1" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, "engines": { - "node": ">=14" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -10061,12 +10896,13 @@ } }, "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, "dependencies": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -10160,7 +10996,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -10217,9 +11052,9 @@ } }, "node_modules/hasown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", - "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -10243,9 +11078,9 @@ "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==" }, "node_modules/hosted-git-info": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", - "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", "dev": true, "dependencies": { "lru-cache": "^10.0.1" @@ -10255,19 +11090,15 @@ } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" }, "node_modules/http-assert": { "version": "1.5.0", @@ -10367,6 +11198,20 @@ "node": ">=8.0.0" } }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/http-response-object": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", @@ -10382,6 +11227,20 @@ "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", "dev": true }, + "node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/human-signals": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", @@ -10423,9 +11282,9 @@ ] }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "engines": { "node": ">= 4" @@ -10469,6 +11328,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, "dependencies": { "once": "^1.3.0", @@ -10481,6 +11341,24 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "node_modules/internal-ip": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-6.2.0.tgz", + "integrity": "sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg==", + "dev": true, + "dependencies": { + "default-gateway": "^6.0.0", + "ipaddr.js": "^1.9.1", + "is-ip": "^3.1.0", + "p-event": "^4.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/internal-ip?sponsor=1" + } + }, "node_modules/internal-slot": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", @@ -10495,37 +11373,43 @@ "node": ">= 0.4" } }, - "node_modules/intl-messageformat": { - "version": "10.5.11", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.11.tgz", - "integrity": "sha512-eYq5fkFBVxc7GIFDzpFQkDOZgNayNTQn4Oufe8jw6YY6OHVw70/4pA3FyCsQ0Gb2DnvEJEMmN2tOaXUGByM+kg==", + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "license": "MIT", "dependencies": { - "@formatjs/ecma402-abstract": "1.18.2", - "@formatjs/fast-memoize": "2.2.0", - "@formatjs/icu-messageformat-parser": "2.7.6", - "tslib": "^2.4.0" + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" } }, - "node_modules/ip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", - "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==", - "dev": true + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause" }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "node_modules/ip-regex": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" } }, "node_modules/is-array-buffer": { @@ -10603,12 +11487,30 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", "dev": true, "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10658,6 +11560,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -10701,15 +11604,25 @@ "node": ">=8" } }, - "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "node_modules/is-ip": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", + "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "ip-regex": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true, + "license": "MIT" + }, "node_modules/is-negative-zero": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", @@ -10780,15 +11693,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-shared-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", @@ -10879,15 +11783,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -10900,19 +11795,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -10946,14 +11828,12 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, "engines": { "node": ">=8" } @@ -10974,20 +11854,10 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/istanbul-lib-report": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -11015,7 +11885,6 @@ "version": "3.1.7", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "dev": true, "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -11024,28 +11893,36 @@ "node": ">=8" } }, + "node_modules/iterator-helpers-polyfill": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/iterator-helpers-polyfill/-/iterator-helpers-polyfill-3.0.1.tgz", + "integrity": "sha512-9uSoKErC0+TG7uoXlv5k7rs196/l/VGr9hb9KbptpMhszsSksxJCwetp0p7FvgM3SwxlxgEkvokmeOi02PARlQ==", + "engines": { + "chrome": ">=63", + "firefox": ">=57", + "node": ">=10.0.0", + "safari": ">=11" + } + }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=14" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/jake": { - "version": "10.8.7", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", - "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", "dev": true, "dependencies": { "async": "^3.2.3", @@ -11145,16 +12022,24 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true, + "license": "MIT" + }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-buffer": { @@ -11226,9 +12111,9 @@ "dev": true }, "node_modules/karma": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", - "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.4.tgz", + "integrity": "sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==", "dev": true, "dependencies": { "@colors/colors": "1.5.0", @@ -11250,7 +12135,7 @@ "qjobs": "^1.2.0", "range-parser": "^1.2.1", "rimraf": "^3.0.2", - "socket.io": "^4.4.1", + "socket.io": "^4.7.2", "source-map": "^0.6.1", "tmp": "^0.2.1", "ua-parser-js": "^0.7.30", @@ -11372,6 +12257,21 @@ "vite": "2 || 3 || 4 || 5" } }, + "node_modules/karma/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/karma/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -11403,6 +12303,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -11452,21 +12353,6 @@ "mkdirp": "bin/cmd.js" } }, - "node_modules/karma/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/karma/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -11547,9 +12433,9 @@ } }, "node_modules/koa": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/koa/-/koa-2.15.0.tgz", - "integrity": "sha512-KEL/vU1knsoUvfP4MC4/GthpQrY/p6dzwaaGI6Rt4NQuFqkw3qrvsdYF5pz3wOfi7IGTvMPHC9aZIcUKYFNxsw==", + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.15.3.tgz", + "integrity": "sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==", "dev": true, "dependencies": { "accepts": "^1.3.5", @@ -11707,11 +12593,40 @@ "node": ">= 0.8.0" } }, + "node_modules/lighthouse-logger": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", + "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^2.6.9", + "marky": "^1.2.2" + } + }, + "node_modules/lighthouse-logger/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/lighthouse-logger/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, "node_modules/lilconfig": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", - "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" }, @@ -11720,30 +12635,31 @@ } }, "node_modules/lines-and-columns": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", - "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", "dev": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/lint-staged": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.2.tgz", - "integrity": "sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==", - "dev": true, - "dependencies": { - "chalk": "5.3.0", - "commander": "11.1.0", - "debug": "4.3.4", - "execa": "8.0.1", - "lilconfig": "3.0.0", - "listr2": "8.0.1", - "micromatch": "4.0.5", - "pidtree": "0.6.0", - "string-argv": "0.3.2", - "yaml": "2.3.4" + "version": "15.2.11", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.11.tgz", + "integrity": "sha512-Ev6ivCTYRTGs9ychvpVw35m/bcNDuBN+mnTeObCL5h+boS5WzBEC6LHI4I9F/++sZm1m+J2LEiy0gxL/R9TBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "~5.3.0", + "commander": "~12.1.0", + "debug": "~4.4.0", + "execa": "~8.0.1", + "lilconfig": "~3.1.3", + "listr2": "~8.2.5", + "micromatch": "~4.0.8", + "pidtree": "~0.6.0", + "string-argv": "~0.3.2", + "yaml": "~2.6.1" }, "bin": { "lint-staged": "bin/lint-staged.js" @@ -11767,35 +12683,49 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/lint-staged/node_modules/lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "node_modules/lint-staged/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, "engines": { - "node": ">=14" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/lint-staged/node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, "engines": { "node": ">= 14" } }, "node_modules/listr2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.0.1.tgz", - "integrity": "sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==", + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", + "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", "dev": true, + "license": "MIT", "dependencies": { "cli-truncate": "^4.0.0", "colorette": "^2.0.20", "eventemitter3": "^5.0.1", - "log-update": "^6.0.0", - "rfdc": "^1.3.0", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", "wrap-ansi": "^9.0.0" }, "engines": { @@ -11803,10 +12733,11 @@ } }, "node_modules/listr2/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -11814,35 +12745,26 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/listr2/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/listr2/node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" }, "node_modules/listr2/node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/listr2/node_modules/string-width": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", - "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", @@ -11860,6 +12782,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -11875,6 +12798,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", @@ -11888,29 +12812,29 @@ } }, "node_modules/lit": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.2.tgz", - "integrity": "sha512-VZx5iAyMtX7CV4K8iTLdCkMaYZ7ipjJZ0JcSdJ0zIdGxxyurjIn7yuuSxNBD7QmjvcNJwr0JS4cAdAtsy7gZ6w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.0.tgz", + "integrity": "sha512-s6tI33Lf6VpDu7u4YqsSX78D28bYQulM+VAzsGch4fx2H0eLZnJsUBsPWmGYSGoKDNbjtRv02rio1o+UdPVwvw==", "dependencies": { "@lit/reactive-element": "^2.0.4", - "lit-element": "^4.0.4", - "lit-html": "^3.1.2" + "lit-element": "^4.1.0", + "lit-html": "^3.2.0" } }, "node_modules/lit-element": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", - "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.0.tgz", + "integrity": "sha512-gSejRUQJuMQjV2Z59KAS/D4iElUhwKpIyJvZ9w+DIagIQjfJnhR20h2Q5ddpzXGS+fF0tMZ/xEYGMnKmaI/iww==", "dependencies": { "@lit-labs/ssr-dom-shim": "^1.2.0", "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.1.2" + "lit-html": "^3.2.0" } }, "node_modules/lit-html": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", - "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.0.tgz", + "integrity": "sha512-pwT/HwoxqI9FggTrYVarkBKFN9MlTUpLrDHubTmW4SrkL3kkqW5gxwbxMMUnbbRHBC0WTZnYHcjDSCM559VyfA==", "dependencies": { "@types/trusted-types": "^2.0.2" } @@ -11931,7 +12855,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, "dependencies": { "p-locate": "^5.0.0" }, @@ -11948,6 +12871,13 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -12013,14 +12943,15 @@ } }, "node_modules/log-update": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz", - "integrity": "sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-escapes": "^6.2.0", - "cli-cursor": "^4.0.0", - "slice-ansi": "^7.0.0", + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", "strip-ansi": "^7.1.0", "wrap-ansi": "^9.0.0" }, @@ -12032,10 +12963,11 @@ } }, "node_modules/log-update/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -12043,29 +12975,19 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/log-update/node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" }, "node_modules/log-update/node_modules/is-fullwidth-code-point": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", "dev": true, + "license": "MIT", "dependencies": { "get-east-asian-width": "^1.0.0" }, @@ -12081,6 +13003,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.2.1", "is-fullwidth-code-point": "^5.0.0" @@ -12093,10 +13016,11 @@ } }, "node_modules/log-update/node_modules/string-width": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", - "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", @@ -12114,6 +13038,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -12129,6 +13054,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", @@ -12195,23 +13121,26 @@ "lz-string": "bin/bin.js" } }, + "node_modules/lz-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lz-utils/-/lz-utils-2.1.0.tgz", + "integrity": "sha512-CMkfimAypidTtWjNDxY8a1bc1mJdyEh04V2FfEQ5Zh8Nx4v7k850EYa+dOWGn9hKG5xOyHP5MkuduAZCTHRvJw==", + "devOptional": true + }, "node_modules/magic-string": { - "version": "0.30.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz", - "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==", + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, "node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, "dependencies": { "semver": "^7.5.3" }, @@ -12222,12 +13151,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, + "node_modules/marky": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", + "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/mdn-data": { "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", @@ -12271,12 +13218,13 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -12328,6 +13276,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/minimatch": { "version": "9.0.3", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", @@ -12352,14 +13313,20 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "engines": { "node": ">=16 || 14 >=14.17" } }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true, + "license": "MIT" + }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -12373,47 +13340,53 @@ } }, "node_modules/mocha": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.3.0.tgz", - "integrity": "sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==", - "dev": true, - "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "8.1.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-11.0.1.tgz", + "integrity": "sha512-+3GkODfsDG71KSCQhc4IekSW+ItCK/kiez1Z28ksWvYhKXV/syxMlerR/sC7whDp7IyreZ4YxceMLdTs5hQE8A==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^10.4.5", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9", + "yargs-unparser": "^2.0.0" }, "bin": { "_mocha": "bin/_mocha", "mocha": "bin/mocha.js" }, "engines": { - "node": ">= 14.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/mocha/node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "node_modules/mocha/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/mocha/node_modules/argparse": { @@ -12422,33 +13395,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/mocha/node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/mocha/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -12466,35 +13412,51 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mocha/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": ">=12" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mocha/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">= 6" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/mocha/node_modules/is-fullwidth-code-point": { @@ -12506,6 +13468,21 @@ "node": ">=8" } }, + "node_modules/mocha/node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/mocha/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -12518,10 +13495,16 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/mocha/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -12530,11 +13513,21 @@ "node": ">=10" } }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "node_modules/mocha/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/mocha/node_modules/string-width": { "version": "4.2.3", @@ -12601,19 +13594,53 @@ } }, "node_modules/mocha/node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, "engines": { "node": ">=10" } }, + "node_modules/monocart-coverage-reports": { + "version": "2.11.5", + "resolved": "https://registry.npmjs.org/monocart-coverage-reports/-/monocart-coverage-reports-2.11.5.tgz", + "integrity": "sha512-65BQWtvJk4ysoqcP8QxjFwrafCDgAMkEl2KtlnhuFt4llCwqsXCqz/PoU+5yeJhUnnHd+pAZiOcDl4Wy6qPAzw==", + "devOptional": true, + "license": "MIT", + "workspaces": [ + "test" + ], + "dependencies": { + "acorn": "^8.14.0", + "acorn-loose": "^8.4.0", + "acorn-walk": "^8.3.4", + "commander": "^12.1.0", + "console-grid": "^2.2.2", + "eight-colors": "^1.3.1", + "foreground-child": "^3.3.0", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-reports": "^3.1.7", + "lz-utils": "^2.1.0", + "monocart-locator": "^1.0.2" + }, + "bin": { + "mcr": "lib/cli.js" + } + }, + "node_modules/monocart-locator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/monocart-locator/-/monocart-locator-1.0.2.tgz", + "integrity": "sha512-v8W5hJLcWMIxLCcSi/MHh+VeefI+ycFmGz23Froer9QzWjrbg4J3gFJBuI/T1VLNoYxF47bVPPxq8ZlNX4gVCw==", + "devOptional": true + }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, "node_modules/nanocolors": { "version": "0.2.13", @@ -12660,6 +13687,16 @@ "node": ">= 0.6" } }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/nise": { "version": "5.1.9", "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz", @@ -12689,9 +13726,9 @@ "dev": true }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, "node_modules/noms": { @@ -12728,6 +13765,18 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/npm-package-arg/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -12753,32 +13802,31 @@ } }, "node_modules/nx": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/nx/-/nx-18.0.4.tgz", - "integrity": "sha512-Njb1fGppOw/wM7nOA1hYlLduV2aL4PdXSv5QS5cVYicHT5tw5RnG/0z4j9e6QfFj2EydxVeDUtlGR98diZ3/Yw==", + "version": "20.2.2", + "resolved": "https://registry.npmjs.org/nx/-/nx-20.2.2.tgz", + "integrity": "sha512-wHgC/NQ82Q3LOeUZXPI2j/JhpZwb7JjRc0uDn3kQU+lN/ulySCJHTHCf4CIglW4NjZeN1WZZ7YMeddtFWETGGA==", "dev": true, "hasInstallScript": true, "dependencies": { - "@nrwl/tao": "18.0.4", + "@napi-rs/wasm-runtime": "0.2.4", "@yarnpkg/lockfile": "^1.1.0", - "@yarnpkg/parsers": "3.0.0-rc.46", - "@zkochan/js-yaml": "0.0.6", - "axios": "^1.6.0", + "@yarnpkg/parsers": "3.0.2", + "@zkochan/js-yaml": "0.0.7", + "axios": "^1.7.4", "chalk": "^4.1.0", "cli-cursor": "3.1.0", "cli-spinners": "2.6.1", "cliui": "^8.0.1", - "dotenv": "~16.3.1", - "dotenv-expand": "~10.0.0", + "dotenv": "~16.4.5", + "dotenv-expand": "~11.0.6", "enquirer": "~2.3.6", "figures": "3.2.0", "flat": "^5.0.2", - "fs-extra": "^11.1.0", + "front-matter": "^4.0.2", "ignore": "^5.0.4", "jest-diff": "^29.4.1", - "js-yaml": "4.1.0", "jsonc-parser": "3.2.0", - "lines-and-columns": "~2.0.3", + "lines-and-columns": "2.0.3", "minimatch": "9.0.3", "node-machine-id": "1.1.12", "npm-run-path": "^4.0.1", @@ -12786,11 +13834,11 @@ "ora": "5.3.0", "semver": "^7.5.3", "string-width": "^4.2.3", - "strong-log-transformer": "^2.1.0", "tar-stream": "~2.2.0", "tmp": "~0.2.1", "tsconfig-paths": "^4.1.2", "tslib": "^2.3.0", + "yaml": "^2.6.0", "yargs": "^17.6.2", "yargs-parser": "21.1.1" }, @@ -12799,16 +13847,16 @@ "nx-cloud": "bin/nx-cloud.js" }, "optionalDependencies": { - "@nx/nx-darwin-arm64": "18.0.4", - "@nx/nx-darwin-x64": "18.0.4", - "@nx/nx-freebsd-x64": "18.0.4", - "@nx/nx-linux-arm-gnueabihf": "18.0.4", - "@nx/nx-linux-arm64-gnu": "18.0.4", - "@nx/nx-linux-arm64-musl": "18.0.4", - "@nx/nx-linux-x64-gnu": "18.0.4", - "@nx/nx-linux-x64-musl": "18.0.4", - "@nx/nx-win32-arm64-msvc": "18.0.4", - "@nx/nx-win32-x64-msvc": "18.0.4" + "@nx/nx-darwin-arm64": "20.2.2", + "@nx/nx-darwin-x64": "20.2.2", + "@nx/nx-freebsd-x64": "20.2.2", + "@nx/nx-linux-arm-gnueabihf": "20.2.2", + "@nx/nx-linux-arm64-gnu": "20.2.2", + "@nx/nx-linux-arm64-musl": "20.2.2", + "@nx/nx-linux-x64-gnu": "20.2.2", + "@nx/nx-linux-x64-musl": "20.2.2", + "@nx/nx-win32-arm64-msvc": "20.2.2", + "@nx/nx-win32-x64-msvc": "20.2.2" }, "peerDependencies": { "@swc-node/register": "^1.8.0", @@ -12823,12 +13871,6 @@ } } }, - "node_modules/nx/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "node_modules/nx/node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -12856,18 +13898,6 @@ "node": ">=8" } }, - "node_modules/nx/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/nx/node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -12905,6 +13935,24 @@ "node": ">=8" } }, + "node_modules/nx/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nx/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/nx/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -12919,6 +13967,18 @@ "node": ">=8" } }, + "node_modules/nx/node_modules/yaml": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -12929,23 +13989,10 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, "engines": { "node": ">= 0.4" }, @@ -12981,14 +14028,15 @@ } }, "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -12998,27 +14046,28 @@ } }, "node_modules/object.groupby": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz", - "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, "dependencies": { - "array.prototype.filter": "^1.0.3", - "call-bind": "^1.0.5", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.0.0" + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -13099,17 +14148,17 @@ "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==" }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -13186,11 +14235,40 @@ "node": ">=8" } }, + "node_modules/ora/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/p-event": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "dev": true, + "dependencies": { + "p-timeout": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -13205,7 +14283,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, "dependencies": { "p-limit": "^3.0.2" }, @@ -13216,6 +14293,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -13225,6 +14314,45 @@ "node": ">=6" } }, + "node_modules/pac-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.2.tgz", + "integrity": "sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.5", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "dev": true, + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -13295,7 +14423,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, "engines": { "node": ">=8" } @@ -13313,7 +14440,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -13325,34 +14451,34 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", "dev": true, "engines": { - "node": "14 || >=16.14" + "node": "20 || >=22" } }, "node_modules/path-to-regexp": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", - "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", + "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==", "dev": true }, "node_modules/path-type": { @@ -13373,11 +14499,19 @@ "node": "*" } }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -13403,31 +14537,10 @@ "node": ">=0.10" } }, - "node_modules/pino": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.19.0.tgz", - "integrity": "sha512-oswmokxkav9bADfJ2ifrvfHUwad6MLp73Uat0IkQWY3iAw5xTRoznXbXksZs8oaOUMpmhVWD+PZogNzllWpJaA==", - "dependencies": { - "atomic-sleep": "^1.0.0", - "fast-redact": "^3.1.1", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "v1.1.0", - "pino-std-serializers": "^6.0.0", - "process-warning": "^3.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.2.0", - "safe-stable-stringify": "^2.3.1", - "sonic-boom": "^3.7.0", - "thread-stream": "^2.0.0" - }, - "bin": { - "pino": "bin.js" - } - }, "node_modules/pino-abstract-transport": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz", - "integrity": "sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", + "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", "dependencies": { "readable-stream": "^4.0.0", "split2": "^4.0.0" @@ -13549,10 +14662,53 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/pino-std-serializers": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", - "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==" + "node_modules/portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } }, "node_modules/possible-typed-array-names": { "version": "1.0.0", @@ -13564,9 +14720,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, "funding": [ { @@ -13582,395 +14738,400 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" } }, "node_modules/postcss-calc": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", - "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.0.2.tgz", + "integrity": "sha512-DT/Wwm6fCKgpYVI7ZEWuPJ4az8hiEHtCUeYjZXqU7Ou4QqYh1Df2yCQ7Ca6N7xqKPFkxN3fhf+u9KSoOCJNAjg==", "dev": true, "dependencies": { - "postcss-selector-parser": "^6.0.11", + "postcss-selector-parser": "^6.1.2", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12 || ^20.9 || >=22.0" }, "peerDependencies": { - "postcss": "^8.2.2" + "postcss": "^8.4.38" } }, "node_modules/postcss-colormin": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.2.tgz", - "integrity": "sha512-TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.2.tgz", + "integrity": "sha512-YntRXNngcvEvDbEjTdRWGU606eZvB5prmHG4BF0yLmVpamXbpsRJzevyy6MZVyuecgzI2AWAlvFi8DAeCqwpvA==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.3", "caniuse-api": "^3.0.0", - "colord": "^2.9.1", + "colord": "^2.9.3", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-convert-values": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.3.tgz", - "integrity": "sha512-Tj+VH3GtQxvBVX6hhggIUaAMLDbqoHgsAFeZ8iCOD03hnho+wrOF2IsahY9o4MANtaJEjqABrhD1SqwIILGH9A==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.4.tgz", + "integrity": "sha512-e2LSXPqEHVW6aoGbjV9RsSSNDO3A0rZLCBxN24zvxF25WknMPpX8Dm9UxxThyEbaytzggRuZxaGXqaOhxQ514Q==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.3", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-discard-comments": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.1.tgz", - "integrity": "sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.3.tgz", + "integrity": "sha512-q6fjd4WU4afNhWOA2WltHgCbkRhZPgQe7cXF74fuVB/ge4QbM9HEaOIzGSiMvM+g/cOsNAUGdf2JDzqA2F8iLA==", "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.1.2" + }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-discard-duplicates": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.2.tgz", - "integrity": "sha512-U2rsj4w6pAGROCCcD13LP2eBIi1whUsXs4kgE6xkIuGfkbxCBSKhkCTWyowFd66WdVlLv0uM1euJKIgmdmZObg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.1.tgz", + "integrity": "sha512-oZA+v8Jkpu1ct/xbbrntHRsfLGuzoP+cpt0nJe5ED2FQF8n8bJtn7Bo28jSmBYwqgqnqkuSXJfSUEE7if4nClQ==", "dev": true, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-discard-empty": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.2.tgz", - "integrity": "sha512-rj6pVC2dVCJrP0Y2RkYTQEbYaCf4HEm+R/2StQgJqGHxAa3+KcYslNQhcRqjLHtl/4wpzipJluaJLqBj6d5eDQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.0.tgz", + "integrity": "sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==", "dev": true, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-discard-overridden": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.1.tgz", - "integrity": "sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.0.tgz", + "integrity": "sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==", "dev": true, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-merge-longhand": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.2.tgz", - "integrity": "sha512-+yfVB7gEM8SrCo9w2lCApKIEzrTKl5yS1F4yGhV3kSim6JzbfLGJyhR1B6X+6vOT0U33Mgx7iv4X9MVWuaSAfw==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.4.tgz", + "integrity": "sha512-zer1KoZA54Q8RVHKOY5vMke0cCdNxMP3KBfDerjH/BYHh4nCIh+1Yy0t1pAEQF18ac/4z3OFclO+ZVH8azjR4A==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.0.2" + "stylehacks": "^7.0.4" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-merge-rules": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.3.tgz", - "integrity": "sha512-yfkDqSHGohy8sGYIJwBmIGDv4K4/WrJPX355XrxQb/CSsT4Kc/RxDi6akqn5s9bap85AWgv21ArcUWwWdGNSHA==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.4.tgz", + "integrity": "sha512-ZsaamiMVu7uBYsIdGtKJ64PkcQt6Pcpep/uO90EpLS3dxJi6OXamIobTYcImyXGoW0Wpugh7DSD3XzxZS9JCPg==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.3", "caniuse-api": "^3.0.0", - "cssnano-utils": "^4.0.1", - "postcss-selector-parser": "^6.0.15" + "cssnano-utils": "^5.0.0", + "postcss-selector-parser": "^6.1.2" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-minify-font-values": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.1.tgz", - "integrity": "sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.0.tgz", + "integrity": "sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-minify-gradients": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.1.tgz", - "integrity": "sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.0.tgz", + "integrity": "sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==", "dev": true, "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^4.0.1", + "colord": "^2.9.3", + "cssnano-utils": "^5.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-minify-params": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.2.tgz", - "integrity": "sha512-zwQtbrPEBDj+ApELZ6QylLf2/c5zmASoOuA4DzolyVGdV38iR2I5QRMsZcHkcdkZzxpN8RS4cN7LPskOkTwTZw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.2.tgz", + "integrity": "sha512-nyqVLu4MFl9df32zTsdcLqCFfE/z2+f8GE1KHPxWOAmegSo6lpV2GNy5XQvrzwbLmiU7d+fYay4cwto1oNdAaQ==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", - "cssnano-utils": "^4.0.1", + "browserslist": "^4.23.3", + "cssnano-utils": "^5.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-minify-selectors": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.2.tgz", - "integrity": "sha512-0b+m+w7OAvZejPQdN2GjsXLv5o0jqYHX3aoV0e7RBKPCsB7TYG5KKWBFhGnB/iP3213Ts8c5H4wLPLMm7z28Sg==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.4.tgz", + "integrity": "sha512-JG55VADcNb4xFCf75hXkzc1rNeURhlo7ugf6JjiiKRfMsKlDzN9CXHZDyiG6x/zGchpjQS+UAgb1d4nqXqOpmA==", "dev": true, "dependencies": { - "postcss-selector-parser": "^6.0.15" + "cssesc": "^3.0.0", + "postcss-selector-parser": "^6.1.2" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-charset": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.1.tgz", - "integrity": "sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.0.tgz", + "integrity": "sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==", "dev": true, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-display-values": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.1.tgz", - "integrity": "sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.0.tgz", + "integrity": "sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-positions": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.1.tgz", - "integrity": "sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.0.tgz", + "integrity": "sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-repeat-style": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.1.tgz", - "integrity": "sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.0.tgz", + "integrity": "sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-string": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.1.tgz", - "integrity": "sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.0.tgz", + "integrity": "sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-timing-functions": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.1.tgz", - "integrity": "sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.0.tgz", + "integrity": "sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-unicode": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.2.tgz", - "integrity": "sha512-Ff2VdAYCTGyMUwpevTZPZ4w0+mPjbZzLLyoLh/RMpqUqeQKZ+xMm31hkxBavDcGKcxm6ACzGk0nBfZ8LZkStKA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.2.tgz", + "integrity": "sha512-ztisabK5C/+ZWBdYC+Y9JCkp3M9qBv/XFvDtSw0d/XwfT3UaKeW/YTm/MD/QrPNxuecia46vkfEhewjwcYFjkg==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.3", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.1.tgz", - "integrity": "sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.0.tgz", + "integrity": "sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-whitespace": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.1.tgz", - "integrity": "sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.0.tgz", + "integrity": "sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-ordered-values": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.1.tgz", - "integrity": "sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.1.tgz", + "integrity": "sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==", "dev": true, "dependencies": { - "cssnano-utils": "^4.0.1", + "cssnano-utils": "^5.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-reduce-initial": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.2.tgz", - "integrity": "sha512-YGKalhNlCLcjcLvjU5nF8FyeCTkCO5UtvJEt0hrPZVCTtRLSOH4z00T1UntQPj4dUmIYZgMj8qK77JbSX95hSw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.2.tgz", + "integrity": "sha512-pOnu9zqQww7dEKf62Nuju6JgsW2V0KRNBHxeKohU+JkHd/GAH5uvoObqFLqkeB2n20mr6yrlWDvo5UBU5GnkfA==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.3", "caniuse-api": "^3.0.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-reduce-transforms": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.1.tgz", - "integrity": "sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.0.tgz", + "integrity": "sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -13981,31 +15142,31 @@ } }, "node_modules/postcss-svgo": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.2.tgz", - "integrity": "sha512-IH5R9SjkTkh0kfFOQDImyy1+mTCb+E830+9SV1O+AaDcoHTvfsvt6WwJeo7KwcHbFnevZVCsXhDmjFiGVuwqFQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.0.1.tgz", + "integrity": "sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", - "svgo": "^3.2.0" + "svgo": "^3.3.2" }, "engines": { - "node": "^14 || ^16 || >= 18" + "node": "^18.12.0 || ^20.9.0 || >= 18" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-unique-selectors": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.2.tgz", - "integrity": "sha512-8IZGQ94nechdG7Y9Sh9FlIY2b4uS8/k8kdKRX040XHsS3B6d1HrJAkXrBSsSu4SuARruSsUjW3nlSw8BHkaAYQ==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.3.tgz", + "integrity": "sha512-J+58u5Ic5T1QjP/LDV9g3Cx4CNOgB5vz+kM6+OxHHhFACdcDeKhBXjQmB7fnIZM12YSTvsL0Opwco83DmacW2g==", "dev": true, "dependencies": { - "postcss-selector-parser": "^6.0.15" + "postcss-selector-parser": "^6.1.2" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" @@ -14027,10 +15188,11 @@ } }, "node_modules/prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -14102,10 +15264,15 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "node_modules/process-warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", - "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==" + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } }, "node_modules/promise": { "version": "8.3.0", @@ -14116,6 +15283,36 @@ "asap": "~2.0.6" } }, + "node_modules/proxy-agent": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", + "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.3", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.0.1", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -14132,11 +15329,49 @@ } }, "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/puppeteer-core": { + "version": "23.9.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.9.0.tgz", + "integrity": "sha512-hLVrav2HYMVdK0YILtfJwtnkBAwNOztUdR4aJ5YKDvgsbtagNr6urUJk9HyjRA9e+PaLI3jzJ0wM7A4jSZ7Qxw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "2.4.1", + "chromium-bidi": "0.8.0", + "debug": "^4.3.7", + "devtools-protocol": "0.0.1367902", + "typed-query-selector": "^2.12.0", + "ws": "^8.18.0" + }, "engines": { - "node": ">=6" + "node": ">=18" + } + }, + "node_modules/puppeteer-core/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, "node_modules/qjobs": { @@ -14193,6 +15428,13 @@ } ] }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true, + "license": "MIT" + }, "node_modules/quick-format-unescaped": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", @@ -14252,7 +15494,6 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -14262,45 +15503,63 @@ } }, "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, - "node_modules/react-router": { - "version": "6.22.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.22.1.tgz", - "integrity": "sha512-0pdoRGwLtemnJqn1K0XHUbnKiX0S4X8CgvVVmHGOWmofESj31msHo/1YiqcJWK7Wxfq2a4uvvtS01KAQyWK/CQ==", - "dependencies": { - "@remix-run/router": "1.15.1" - }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8" + "node": ">=0.10.0" } }, - "node_modules/react-router-dom": { - "version": "6.22.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.22.1.tgz", - "integrity": "sha512-iwMyyyrbL7zkKY7MRjOVRy+TMnS/OPusaFVxM2P11x9dzSzGmLsebkCvYirGq0DWB9K9hOspHYYtDz33gE5Duw==", + "node_modules/react-router": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.0.2.tgz", + "integrity": "sha512-m5AcPfTRUcjwmhBzOJGEl6Y7+Crqyju0+TgTQxoS4SO+BkWbhOrcfZNq6wSWdl2BBbJbsAoBUb8ZacOFT+/JlA==", + "license": "MIT", "dependencies": { - "@remix-run/router": "1.15.1", - "react-router": "6.22.1" + "@types/cookie": "^0.6.0", + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=20.0.0" }, "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } } }, - "node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "node_modules/react-router/node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "license": "MIT" + }, + "node_modules/react-router/node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -14439,7 +15698,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -14552,40 +15810,33 @@ } }, "node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, + "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/restore-cursor/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/restore-cursor/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, + "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "mimic-function": "^5.0.0" }, "engines": { - "node": ">=6" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -14602,15 +15853,74 @@ } }, "node_modules/rfdc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", - "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", "dev": true }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/rollup": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.1.tgz", - "integrity": "sha512-4LnHSdd3QK2pa1J6dFbfm1HN0D7vSK/ZuZTsdyUAlA6Rr1yTouUTL13HaDOGJVgby461AhrNGBS7sCGXXtT+SA==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.0.tgz", + "integrity": "sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==", "dependencies": { "@types/estree": "1.0.5" }, @@ -14622,21 +15932,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.14.1", - "@rollup/rollup-android-arm64": "4.14.1", - "@rollup/rollup-darwin-arm64": "4.14.1", - "@rollup/rollup-darwin-x64": "4.14.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.14.1", - "@rollup/rollup-linux-arm64-gnu": "4.14.1", - "@rollup/rollup-linux-arm64-musl": "4.14.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.14.1", - "@rollup/rollup-linux-riscv64-gnu": "4.14.1", - "@rollup/rollup-linux-s390x-gnu": "4.14.1", - "@rollup/rollup-linux-x64-gnu": "4.14.1", - "@rollup/rollup-linux-x64-musl": "4.14.1", - "@rollup/rollup-win32-arm64-msvc": "4.14.1", - "@rollup/rollup-win32-ia32-msvc": "4.14.1", - "@rollup/rollup-win32-x64-msvc": "4.14.1", + "@rollup/rollup-android-arm-eabi": "4.21.0", + "@rollup/rollup-android-arm64": "4.21.0", + "@rollup/rollup-darwin-arm64": "4.21.0", + "@rollup/rollup-darwin-x64": "4.21.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.21.0", + "@rollup/rollup-linux-arm-musleabihf": "4.21.0", + "@rollup/rollup-linux-arm64-gnu": "4.21.0", + "@rollup/rollup-linux-arm64-musl": "4.21.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.21.0", + "@rollup/rollup-linux-riscv64-gnu": "4.21.0", + "@rollup/rollup-linux-s390x-gnu": "4.21.0", + "@rollup/rollup-linux-x64-gnu": "4.21.0", + "@rollup/rollup-linux-x64-musl": "4.21.0", + "@rollup/rollup-win32-arm64-msvc": "4.21.0", + "@rollup/rollup-win32-ia32-msvc": "4.21.0", + "@rollup/rollup-win32-x64-msvc": "4.21.0", "fsevents": "~2.3.2" } }, @@ -14673,13 +15984,13 @@ } }, "node_modules/safe-array-concat": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", - "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", - "get-intrinsic": "^1.2.2", + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -14750,7 +16061,6 @@ "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "peer": true, "dependencies": { "loose-envify": "^1.1.0" } @@ -14761,59 +16071,41 @@ "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==" }, "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" } }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, "dependencies": { "randombytes": "^2.1.0" } }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, "node_modules/set-function-length": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", - "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, "dependencies": { - "define-data-property": "^1.1.2", + "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.3", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -14844,7 +16136,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -14856,7 +16147,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -14871,12 +16161,12 @@ } }, "node_modules/side-channel": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", - "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", + "call-bind": "^1.0.7", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4", "object-inspect": "^1.13.1" @@ -14889,21 +16179,26 @@ } }, "node_modules/sift": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/sift/-/sift-17.0.1.tgz", - "integrity": "sha512-10rmPF5nuz5UdKuhhxgfS7Vz1aIRGmb+kn5Zy6bntCgNwkbZc0a7Z2dUw2Y9wSoRrBzf7Oim81SUsYdOkVnI8Q==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/sift/-/sift-17.1.3.tgz", + "integrity": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==", "dev": true }, "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/simple-git-hooks": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/simple-git-hooks/-/simple-git-hooks-2.9.0.tgz", - "integrity": "sha512-waSQ5paUQtyGC0ZxlHmcMmD9I1rRXauikBwX31bX58l5vTOhCEcBC5Bi+ZDkPXTjDnZAF8TbCqKBY+9+sVPScw==", + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/simple-git-hooks/-/simple-git-hooks-2.11.1.tgz", + "integrity": "sha512-tgqwPUMDcNDhuf1Xf6KTUsyeqGdgKMhzaH4PAZZuzguOgTl5uuyeYe/8mWgAr6IBxB5V06uqEf6Dy37gIWDtDg==", "dev": true, "hasInstallScript": true, "bin": { @@ -14938,15 +16233,6 @@ "sinon": ">=4.0.0" } }, - "node_modules/sinon/node_modules/diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -14961,6 +16247,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.0.0", "is-fullwidth-code-point": "^4.0.0" @@ -14972,22 +16259,21 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">= 6.0.0", + "npm": ">= 3.0.0" } }, "node_modules/socket.io": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.4.tgz", - "integrity": "sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==", + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", + "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", "dev": true, "dependencies": { "accepts": "~1.3.4", @@ -15003,13 +16289,13 @@ } }, "node_modules/socket.io-adapter": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz", - "integrity": "sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==", + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", + "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", "dev": true, "dependencies": { "debug": "~4.3.4", - "ws": "~8.11.0" + "ws": "~8.17.1" } }, "node_modules/socket.io-parser": { @@ -15025,10 +16311,40 @@ "node": ">=10.0.0" } }, + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/sonic-boom": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.0.tgz", - "integrity": "sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz", + "integrity": "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==", "dependencies": { "atomic-sleep": "^1.0.0" } @@ -15052,9 +16368,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -15070,12 +16386,6 @@ "source-map": "^0.6.0" } }, - "node_modules/spawn-command": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", - "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", - "dev": true - }, "node_modules/split2": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", @@ -15098,18 +16408,6 @@ "node": ">= 0.6" } }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dev": true, - "dependencies": { - "internal-slot": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/streamroller": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", @@ -15156,6 +16454,21 @@ "node": ">= 4.0.0" } }, + "node_modules/streamx": { + "version": "2.20.2", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.2.tgz", + "integrity": "sha512-aDGDLU+j9tJcUdPGOaHmVF1u/hhI+CsGkT02V3OKlHDV7IukOI+nTWAGkiZEKCO35rWN1wIr4tS7YFr1f4qSvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-fifo": "^1.3.2", + "queue-tick": "^1.0.1", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, "node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", @@ -15175,7 +16488,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -15193,7 +16505,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -15206,23 +16517,20 @@ "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } }, "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "engines": { "node": ">=12" }, @@ -15234,7 +16542,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -15246,14 +16553,15 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -15263,28 +16571,31 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -15294,7 +16605,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -15307,7 +16617,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -15347,34 +16656,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strong-log-transformer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", - "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", - "dev": true, - "dependencies": { - "duplexer": "^0.1.1", - "minimist": "^1.2.0", - "through": "^2.3.4" - }, - "bin": { - "sl-log-transformer": "bin/sl-log-transformer.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/stylehacks": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.2.tgz", - "integrity": "sha512-00zvJGnCu64EpMjX8b5iCZ3us2Ptyw8+toEkb92VdmkEaRaSGBNKAoK6aWZckhXxmQP8zWiTaFaiMGIU8Ve8sg==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.4.tgz", + "integrity": "sha512-i4zfNrGMt9SB4xRK9L83rlsFCgdGANfeDAYacO1pkqcE7cRHPdWHwnKZVz7WY17Veq/FvyYsRAU++Ga+qDFIww==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", - "postcss-selector-parser": "^6.0.15" + "browserslist": "^4.23.3", + "postcss-selector-parser": "^6.1.2" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" @@ -15384,7 +16676,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -15405,9 +16696,9 @@ } }, "node_modules/svgo": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz", - "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", "dev": true, "dependencies": { "@trysound/sax": "0.2.0", @@ -15462,9 +16753,9 @@ } }, "node_modules/synckit": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", - "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", + "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", "dev": true, "dependencies": { "@pkgr/core": "^0.1.0", @@ -15477,6 +16768,30 @@ "url": "https://opencollective.com/unts" } }, + "node_modules/table-layout": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-4.1.1.tgz", + "integrity": "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^6.2.2", + "wordwrapjs": "^5.1.0" + }, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/table-layout/node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -15486,15 +16801,42 @@ "node": ">=6" } }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "node_modules/tar-fs": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz", + "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==", "dev": true, + "license": "MIT", "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^2.1.1", + "bare-path": "^2.1.0" + } + }, + "node_modules/tar-fs/node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" }, @@ -15526,61 +16868,92 @@ } }, "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz", + "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", "dependencies": { "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "glob": "^10.4.1", + "minimatch": "^9.0.4" }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, + "node_modules/test-exclude/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/test-exclude/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, + "node_modules/test-exclude/node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/test-exclude/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, + "node_modules/test-exclude/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dependencies": { - "brace-expansion": "^1.1.7" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/text-decoder": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.1.tgz", + "integrity": "sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -15629,14 +17002,6 @@ "node": ">= 0.12" } }, - "node_modules/thread-stream": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.4.1.tgz", - "integrity": "sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==", - "dependencies": { - "real-require": "^0.2.0" - } - }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -15689,82 +17054,52 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "node_modules/tinyglobby": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz", + "integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==", "dev": true, "dependencies": { - "rimraf": "^3.0.0" + "fdir": "^6.4.2", + "picomatch": "^4.0.2" }, "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/tmp/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "node": ">=12.0.0" } }, - "node_modules/tmp/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", + "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" + "peerDependencies": { + "picomatch": "^3 || ^4" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/tmp/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, "engines": { - "node": "*" - } - }, - "node_modules/tmp/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", "dev": true, "engines": { - "node": ">=4" + "node": ">=14.14" } }, "node_modules/to-regex-range": { @@ -15797,6 +17132,15 @@ "punycode": "^2.1.0" } }, + "node_modules/tr46/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -15807,9 +17151,9 @@ } }, "node_modules/ts-api-utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz", - "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, "engines": { "node": ">=16" @@ -15885,9 +17229,9 @@ } }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" }, "node_modules/tsscmp": { "version": "1.0.6", @@ -15899,13 +17243,14 @@ } }, "node_modules/tsx": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.7.1.tgz", - "integrity": "sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.2.tgz", + "integrity": "sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==", "dev": true, + "license": "MIT", "dependencies": { - "esbuild": "~0.19.10", - "get-tsconfig": "^4.7.2" + "esbuild": "~0.23.0", + "get-tsconfig": "^4.7.5" }, "bin": { "tsx": "dist/cli.mjs" @@ -15917,6 +17262,12 @@ "fsevents": "~2.3.3" } }, + "node_modules/turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", + "license": "ISC" + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -15930,19 +17281,20 @@ } }, "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/type-fest": { - "version": "4.10.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.10.3.tgz", - "integrity": "sha512-JLXyjizi072smKGGcZiAJDCNweT8J+AuRxmPZ1aG7TERg4ijx9REl8CNhbr36RV4qXqL1gO1FF9HL8OkVmmrsA==", + "version": "4.30.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.2.tgz", + "integrity": "sha512-UJShLPYi1aWqCdq9HycOL/gwsuqda1OISdBO3t8RlXQC4QvtuIz4b5FCfe2dQIWEpmlRExKmcTBfP1r9bhY7ig==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=16" }, @@ -16017,9 +17369,9 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", - "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, "dependencies": { "call-bind": "^1.0.7", @@ -16036,6 +17388,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typed-query-selector": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", + "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", + "dev": true, + "license": "MIT" + }, "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -16043,9 +17402,11 @@ "dev": true }, "node_modules/typescript": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz", - "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -16054,10 +17415,20 @@ "node": ">=14.17" } }, + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/ua-parser-js": { - "version": "0.7.37", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz", - "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", + "version": "0.7.38", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.38.tgz", + "integrity": "sha512-fYmIy7fKTSFAhG3fuPlubeGaMoAd6r0rSnfEsO5nEY55i26KSLt9EH7PLQiiqPUhNqYIJvSkTy1oArIcXAbPbA==", "dev": true, "funding": [ { @@ -16092,11 +17463,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true, + "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", @@ -16166,9 +17549,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "funding": [ { @@ -16184,9 +17567,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -16199,16 +17583,33 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "dependencies": { "punycode": "^2.1.0" } }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/urlpattern-polyfill": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", + "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==", + "dev": true, + "license": "MIT" + }, "node_modules/use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/util-deprecate": { @@ -16233,10 +17634,9 @@ "dev": true }, "node_modules/v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", - "dev": true, + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -16247,21 +17647,18 @@ } }, "node_modules/validate-npm-package-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/validator": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", - "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", "engines": { "node": ">= 0.10" } @@ -16276,14 +17673,15 @@ } }, "node_modules/vite": { - "version": "5.2.8", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.8.tgz", - "integrity": "sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==", + "version": "5.4.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", + "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", "dev": true, + "license": "MIT", "dependencies": { - "esbuild": "^0.20.1", - "postcss": "^8.4.38", - "rollup": "^4.13.0" + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" @@ -16302,6 +17700,7 @@ "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -16319,6 +17718,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -16342,46 +17744,102 @@ "test-exclude": "^6.0.0" } }, - "node_modules/void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "node_modules/vite-plugin-istanbul/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "node_modules/vite-plugin-istanbul/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { - "defaults": "^1.0.3" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", - "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", + "node_modules/vite-plugin-istanbul/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/which": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/vite-plugin-istanbul/node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", + "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", + "dev": true, + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -16408,32 +17866,17 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dev": true, - "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/which-typed-array": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", - "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.6", - "call-bind": "^1.0.5", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.1" + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -16442,17 +17885,35 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrapjs": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", + "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", "dev": true }, "node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -16470,7 +17931,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -16483,17 +17943,29 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -16502,7 +17974,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -16513,10 +17984,9 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "engines": { "node": ">=12" }, @@ -16524,23 +17994,10 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -16557,16 +18014,16 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -16598,7 +18055,6 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, "engines": { "node": ">=10" } @@ -16622,7 +18078,6 @@ "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -16640,7 +18095,6 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, "engines": { "node": ">=12" } @@ -16675,14 +18129,12 @@ "node_modules/yargs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/yargs/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -16691,7 +18143,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -16701,10 +18152,21 @@ "node": ">=8" } }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "node_modules/ylru": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz", - "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.4.0.tgz", + "integrity": "sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==", "dev": true, "engines": { "node": ">= 4.0.0" @@ -16723,7 +18185,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, "engines": { "node": ">=10" }, @@ -16731,43 +18192,158 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "packages/ts/file-router": { "name": "@vaadin/hilla-file-router", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "@vaadin/hilla-react-auth": "24.5.0-alpha2", + "@types/chai": "^5.0.1", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vaadin/hilla-react-auth": "24.7.0-alpha5", + "@vaadin/hilla-react-signals": "24.7.0-alpha5", + "c8": "^10.1.3", "react": "^18.2.0", - "rollup": "^4.12.0", - "typescript": "5.3.2" + "rollup": "^4.21.0", + "typescript": "5.7.2" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", "@types/chai-as-promised": "^7.1.8", - "@types/chai-fs": "^2.0.4", + "@types/chai-fs": "^2.0.5", "@types/chai-like": "^1.1.3", - "@types/deep-equal-in-any-order": "^1.0.3", - "@types/mocha": "^10.0.6", - "@types/sinon": "^10.0.17", + "@types/deep-equal-in-any-order": "^1.0.4", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", "@types/sinon-chai": "^3.2.12", - "chai-as-promised": "^7.1.1", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-deep-equal-ignore-undefined": "^1.1.1", "chai-fs": "^2.0.0", - "chai-like": "^1.1.1", + "chai-like": "^1.1.3", "deep-equal-in-any-order": "^2.0.6", - "mocha": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.9.0" + "type-fest": "^4.30.2" }, "peerDependencies": { - "react": "^18.2.0", - "react-router-dom": "^6.21.1" + "react": "18 || 19", + "react-dom": "18 || 19", + "react-router": "^7" + } + }, + "packages/ts/file-router/node_modules/@types/chai": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.0.1.tgz", + "integrity": "sha512-5T8ajsg3M/FOncpLYW7sdOcD6yf4+722sze/tc4KQV0P8Z2rAr3SAuHCIkYmYpt8VbcQlnz8SxlOlPQYefe4cA==", + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*" + } + }, + "packages/ts/file-router/node_modules/@types/deep-equal-in-any-order": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/deep-equal-in-any-order/-/deep-equal-in-any-order-1.0.4.tgz", + "integrity": "sha512-nkgl+KTkRWeybgMSBCrWrc1YHFrLADVxZ6Kllj40p9U499NGsCrFUjzgHgQY+Upsa/VWOc3YlsFEvhg+drUmkA==", + "dev": true, + "license": "MIT" + }, + "packages/ts/file-router/node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "packages/ts/file-router/node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "packages/ts/file-router/node_modules/chai": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "packages/ts/file-router/node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "packages/ts/file-router/node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "packages/ts/file-router/node_modules/loupe": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", + "dev": true, + "license": "MIT" + }, + "packages/ts/file-router/node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "packages/ts/file-router/node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" } }, "packages/ts/frontend": { "name": "@vaadin/hilla-frontend", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { "@vaadin/common-frontend": "^0.0.19", @@ -16775,63 +18351,185 @@ "js-cookie": "^3.0.5" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@open-wc/testing": "^3.2.0", - "@types/atmosphere.js": "^2.1.4", - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/js-cookie": "^3.0.4", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", + "@open-wc/testing": "^3.2.2", + "@types/atmosphere.js": "^2.1.6", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/js-cookie": "^3.0.6", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", "fetch-mock": "^9.11.0", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { "lit": "^3.0.0" } }, + "packages/ts/frontend/node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" + }, + "packages/ts/frontend/node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "packages/ts/frontend/node_modules/@types/validator": { + "version": "13.12.2", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.2.tgz", + "integrity": "sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==", + "dev": true, + "license": "MIT" + }, + "packages/ts/frontend/node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "packages/ts/frontend/node_modules/chai": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "packages/ts/frontend/node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "packages/ts/frontend/node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "packages/ts/frontend/node_modules/loupe": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", + "dev": true, + "license": "MIT" + }, + "packages/ts/frontend/node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "packages/ts/frontend/node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "packages/ts/generator-cli": { "name": "@vaadin/hilla-generator-cli", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "get-stdin": "^9.0.0", - "meow": "^12.1.1" + "meow": "^13.2.0" }, "bin": { "tsgen": "bin/index.js" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "chai-as-promised": "^7.1.1", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-as-promised": "^7.1.2", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2" + } + }, + "packages/ts/generator-cli/node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-cli/node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-cli/node_modules/@types/node": { + "version": "20.17.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.10.tgz", + "integrity": "sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" } }, "packages/ts/generator-cli/node_modules/meow": { @@ -16845,36 +18543,129 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/ts/generator-core": { - "name": "@vaadin/hilla-generator-core", - "version": "24.5.0-alpha2", - "license": "Apache 2.0", + "packages/ts/generator-cli/node_modules/pino": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.5.0.tgz", + "integrity": "sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==", + "dev": true, "dependencies": { - "@apidevtools/swagger-parser": "^10.1.0", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "meow": "^12.1.1", - "openapi-types": "^12.1.3", - "typescript": "5.3.2" - }, + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^4.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "packages/ts/generator-cli/node_modules/pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "dev": true, + "dependencies": { + "split2": "^4.0.0" + } + }, + "packages/ts/generator-cli/node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", + "dev": true + }, + "packages/ts/generator-cli/node_modules/process-warning": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz", + "integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==", + "dev": true + }, + "packages/ts/generator-cli/node_modules/sonic-boom": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "packages/ts/generator-cli/node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "dev": true, + "dependencies": { + "real-require": "^0.2.0" + } + }, + "packages/ts/generator-cli/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-core": { + "name": "@vaadin/hilla-generator-core", + "version": "24.7.0-alpha5", + "license": "Apache 2.0", + "dependencies": { + "@apidevtools/swagger-parser": "^10.1.0", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "meow": "^13.2.0", + "openapi-types": "^12.1.3", + "typescript": "5.7.2" + }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" } }, + "packages/ts/generator-core/node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-core/node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-core/node_modules/@types/node": { + "version": "20.17.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.10.tgz", + "integrity": "sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, "packages/ts/generator-core/node_modules/meow": { "version": "12.1.1", "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", @@ -16886,449 +18677,2429 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "packages/ts/generator-core/node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "packages/ts/generator-core/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, "packages/ts/generator-plugin-backbone": { "name": "@vaadin/hilla-generator-plugin-backbone", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" + } + }, + "packages/ts/generator-plugin-backbone/node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-plugin-backbone/node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-plugin-backbone/node_modules/@types/node": { + "version": "20.17.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.10.tgz", + "integrity": "sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "packages/ts/generator-plugin-backbone/node_modules/pino": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.5.0.tgz", + "integrity": "sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^4.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2" + "bin": { + "pino": "bin.js" + } + }, + "packages/ts/generator-plugin-backbone/node_modules/pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "dev": true, + "dependencies": { + "split2": "^4.0.0" + } + }, + "packages/ts/generator-plugin-backbone/node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", + "dev": true + }, + "packages/ts/generator-plugin-backbone/node_modules/process-warning": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz", + "integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==", + "dev": true + }, + "packages/ts/generator-plugin-backbone/node_modules/sonic-boom": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "packages/ts/generator-plugin-backbone/node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "dev": true, + "dependencies": { + "real-require": "^0.2.0" + } + }, + "packages/ts/generator-plugin-backbone/node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" } }, + "packages/ts/generator-plugin-backbone/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, "packages/ts/generator-plugin-barrel": { "name": "@vaadin/hilla-generator-plugin-barrel", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "typescript": "5.3.2" + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" + } + }, + "packages/ts/generator-plugin-barrel/node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-plugin-barrel/node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-plugin-barrel/node_modules/@types/node": { + "version": "20.17.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.10.tgz", + "integrity": "sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "packages/ts/generator-plugin-barrel/node_modules/pino": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.5.0.tgz", + "integrity": "sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^4.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2" + "bin": { + "pino": "bin.js" + } + }, + "packages/ts/generator-plugin-barrel/node_modules/pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "dev": true, + "dependencies": { + "split2": "^4.0.0" + } + }, + "packages/ts/generator-plugin-barrel/node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", + "dev": true + }, + "packages/ts/generator-plugin-barrel/node_modules/process-warning": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz", + "integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==", + "dev": true + }, + "packages/ts/generator-plugin-barrel/node_modules/sonic-boom": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "packages/ts/generator-plugin-barrel/node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "dev": true, + "dependencies": { + "real-require": "^0.2.0" + } + }, + "packages/ts/generator-plugin-barrel/node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" } }, + "packages/ts/generator-plugin-barrel/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, "packages/ts/generator-plugin-client": { "name": "@vaadin/hilla-generator-plugin-client", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "typescript": "5.3.2" + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2" } }, - "packages/ts/generator-plugin-model": { - "name": "@vaadin/hilla-generator-plugin-model", - "version": "24.5.0-alpha2", - "license": "Apache 2.0", + "packages/ts/generator-plugin-client/node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-plugin-client/node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-plugin-client/node_modules/@types/node": { + "version": "20.17.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.10.tgz", + "integrity": "sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==", + "dev": true, + "license": "MIT", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "fast-deep-equal": "^3.1.3", - "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "undici-types": "~6.19.2" + } + }, + "packages/ts/generator-plugin-client/node_modules/pino": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.5.0.tgz", + "integrity": "sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^4.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" }, - "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", - "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", - "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "bin": { + "pino": "bin.js" + } + }, + "packages/ts/generator-plugin-client/node_modules/pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "dev": true, + "dependencies": { + "split2": "^4.0.0" + } + }, + "packages/ts/generator-plugin-client/node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", + "dev": true + }, + "packages/ts/generator-plugin-client/node_modules/process-warning": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz", + "integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==", + "dev": true + }, + "packages/ts/generator-plugin-client/node_modules/sonic-boom": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "packages/ts/generator-plugin-client/node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "dev": true, + "dependencies": { + "real-require": "^0.2.0" + } + }, + "packages/ts/generator-plugin-client/node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "@vaadin/hilla-lit-form": "24.5.0-alpha2" + "node": ">=14.17" } }, - "packages/ts/generator-plugin-push": { - "name": "@vaadin/hilla-generator-plugin-push", - "version": "24.5.0-alpha2", + "packages/ts/generator-plugin-client/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-plugin-model": { + "name": "@vaadin/hilla-generator-plugin-model", + "version": "24.7.0-alpha5", "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2" } }, - "packages/ts/generator-plugin-subtypes": { - "name": "@vaadin/hilla-generator-plugin-subtypes", - "version": "24.5.0-alpha2", - "license": "Apache 2.0", - "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "fast-deep-equal": "^3.1.3", - "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "packages/ts/generator-plugin-model/node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-plugin-model/node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-plugin-model/node_modules/@types/node": { + "version": "20.17.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.10.tgz", + "integrity": "sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "packages/ts/generator-plugin-model/node_modules/pino": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.5.0.tgz", + "integrity": "sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^4.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "packages/ts/generator-plugin-model/node_modules/pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "dev": true, + "dependencies": { + "split2": "^4.0.0" + } + }, + "packages/ts/generator-plugin-model/node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", + "dev": true + }, + "packages/ts/generator-plugin-model/node_modules/process-warning": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz", + "integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==", + "dev": true + }, + "packages/ts/generator-plugin-model/node_modules/sonic-boom": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "packages/ts/generator-plugin-model/node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "dev": true, + "dependencies": { + "real-require": "^0.2.0" + } + }, + "packages/ts/generator-plugin-model/node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "packages/ts/generator-plugin-model/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-plugin-push": { + "name": "@vaadin/hilla-generator-plugin-push", + "version": "24.7.0-alpha5", + "license": "Apache 2.0", + "dependencies": { + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "fast-deep-equal": "^3.1.3", + "openapi-types": "^12.1.3", + "typescript": "5.7.2" + }, + "devDependencies": { + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", + "copyfiles": "^2.4.1", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "type-fest": "^4.30.2" + }, + "engines": { + "node": ">= 16.13" + } + }, + "packages/ts/generator-plugin-push/node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-plugin-push/node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-plugin-push/node_modules/@types/node": { + "version": "20.17.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.10.tgz", + "integrity": "sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "packages/ts/generator-plugin-push/node_modules/pino": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.5.0.tgz", + "integrity": "sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^4.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "packages/ts/generator-plugin-push/node_modules/pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "dev": true, + "dependencies": { + "split2": "^4.0.0" + } + }, + "packages/ts/generator-plugin-push/node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", + "dev": true + }, + "packages/ts/generator-plugin-push/node_modules/process-warning": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz", + "integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==", + "dev": true + }, + "packages/ts/generator-plugin-push/node_modules/sonic-boom": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "packages/ts/generator-plugin-push/node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "dev": true, + "dependencies": { + "real-require": "^0.2.0" + } + }, + "packages/ts/generator-plugin-push/node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "packages/ts/generator-plugin-push/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-plugin-signals": { + "name": "@vaadin/hilla-generator-plugin-signals", + "version": "24.7.0-alpha5", + "license": "Apache 2.0", + "dependencies": { + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "fast-deep-equal": "^3.1.3", + "iterator-helpers-polyfill": "^3.0.1", + "openapi-types": "^12.1.3", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" + }, + "engines": { + "node": ">= 16.13" + } + }, + "packages/ts/generator-plugin-signals/node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-plugin-signals/node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-plugin-signals/node_modules/@types/node": { + "version": "20.17.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.10.tgz", + "integrity": "sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "packages/ts/generator-plugin-signals/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "packages/ts/generator-plugin-signals/node_modules/c8": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.1.tgz", + "integrity": "sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.1", + "istanbul-reports": "^3.1.6", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^17.7.2", + "yargs-parser": "^21.1.1" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=12" + } + }, + "packages/ts/generator-plugin-signals/node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "packages/ts/generator-plugin-signals/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "packages/ts/generator-plugin-signals/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "packages/ts/generator-plugin-signals/node_modules/pino": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.5.0.tgz", + "integrity": "sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^4.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "packages/ts/generator-plugin-signals/node_modules/pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "dev": true, + "dependencies": { + "split2": "^4.0.0" + } + }, + "packages/ts/generator-plugin-signals/node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", + "dev": true + }, + "packages/ts/generator-plugin-signals/node_modules/process-warning": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz", + "integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==", + "dev": true + }, + "packages/ts/generator-plugin-signals/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "packages/ts/generator-plugin-signals/node_modules/sonic-boom": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "packages/ts/generator-plugin-signals/node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "packages/ts/generator-plugin-signals/node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "dev": true, + "dependencies": { + "real-require": "^0.2.0" + } + }, + "packages/ts/generator-plugin-signals/node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "packages/ts/generator-plugin-signals/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-plugin-subtypes": { + "name": "@vaadin/hilla-generator-plugin-subtypes", + "version": "24.7.0-alpha5", + "license": "Apache 2.0", + "dependencies": { + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "fast-deep-equal": "^3.1.3", + "openapi-types": "^12.1.3", + "typescript": "5.7.2" + }, + "devDependencies": { + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", + "copyfiles": "^2.4.1", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "type-fest": "^4.30.2" + }, + "engines": { + "node": ">= 16.13" + } + }, + "packages/ts/generator-plugin-subtypes/node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-plugin-subtypes/node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-plugin-subtypes/node_modules/@types/node": { + "version": "20.17.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.10.tgz", + "integrity": "sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "packages/ts/generator-plugin-subtypes/node_modules/pino": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.5.0.tgz", + "integrity": "sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^4.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "packages/ts/generator-plugin-subtypes/node_modules/pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "dev": true, + "dependencies": { + "split2": "^4.0.0" + } + }, + "packages/ts/generator-plugin-subtypes/node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", + "dev": true + }, + "packages/ts/generator-plugin-subtypes/node_modules/process-warning": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz", + "integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==", + "dev": true + }, + "packages/ts/generator-plugin-subtypes/node_modules/sonic-boom": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "packages/ts/generator-plugin-subtypes/node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "dev": true, + "dependencies": { + "real-require": "^0.2.0" + } + }, + "packages/ts/generator-plugin-subtypes/node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "packages/ts/generator-plugin-subtypes/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-utils": { + "name": "@vaadin/hilla-generator-utils", + "version": "24.7.0-alpha5", + "license": "Apache 2.0", + "dependencies": { + "pino": "^9.5.0", + "pino-pretty": "^10.3.1", + "typescript": "5.7.2" + }, + "devDependencies": { + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-like": "^1.1.3", + "concurrently": "^9.1.0", + "copyfiles": "^2.4.1", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "type-fest": "^4.30.2" + }, + "engines": { + "node": ">= 16.13" + } + }, + "packages/ts/generator-utils/node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-utils/node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "packages/ts/generator-utils/node_modules/@types/node": { + "version": "20.17.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.10.tgz", + "integrity": "sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "packages/ts/generator-utils/node_modules/pino": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.5.0.tgz", + "integrity": "sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^4.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "packages/ts/generator-utils/node_modules/pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "dependencies": { + "split2": "^4.0.0" + } + }, + "packages/ts/generator-utils/node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==" + }, + "packages/ts/generator-utils/node_modules/process-warning": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz", + "integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==" + }, + "packages/ts/generator-utils/node_modules/sonic-boom": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "packages/ts/generator-utils/node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "dependencies": { + "real-require": "^0.2.0" + } + }, + "packages/ts/generator-utils/node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "packages/ts/generator-utils/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "packages/ts/lit-form": { + "name": "@vaadin/hilla-lit-form", + "version": "24.7.0-alpha5", + "license": "Apache-2.0", + "dependencies": { + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "validator": "^13.12.0" + }, + "devDependencies": { + "@types/chai": "^4.3.20", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-dom": "^1.12.0", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "typescript": "5.7.2" + }, + "peerDependencies": { + "lit": "^3.0.0" + } + }, + "packages/ts/lit-form/node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" + }, + "packages/ts/lit-form/node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "packages/ts/lit-form/node_modules/@types/validator": { + "version": "13.12.2", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.2.tgz", + "integrity": "sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==", + "dev": true, + "license": "MIT" + }, + "packages/ts/lit-form/node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "packages/ts/lit-form/node_modules/chai": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "packages/ts/lit-form/node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "packages/ts/lit-form/node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "packages/ts/lit-form/node_modules/loupe": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", + "dev": true, + "license": "MIT" + }, + "packages/ts/lit-form/node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "packages/ts/lit-form/node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "packages/ts/models": { + "name": "@vaadin/hilla-models", + "version": "24.7.0-alpha5", + "license": "Apache-2.0", + "dependencies": { + "@vaadin/hilla-lit-form": "24.7.0-alpha5" + }, + "devDependencies": { + "@testing-library/react": "^16.1.0", + "@testing-library/user-event": "^14.5.2", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/chai-dom": "^1.11.3", + "@types/chai-like": "^1.1.3", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/react": "^18.3.18", + "@types/react-dom": "^18", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "c8": "^10.1.3", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", + "chai-like": "^1.1.3", + "glob": "^11.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.4", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "typescript": "5.7.2" + }, + "peerDependencies": { + "react": "18 || 19", + "react-dom": "18 || 19" + } + }, + "packages/ts/models/node_modules/@testing-library/react": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.1.0.tgz", + "integrity": "sha512-Q2ToPvg0KsVL0ohND9A3zLJWcOXXcO8IDu3fj11KhNt0UlCWyFyvnCIBkd12tidB2lkiVRG8VFqdhcqhqnAQtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "packages/ts/models/node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" + }, + "packages/ts/models/node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "packages/ts/models/node_modules/@types/node": { + "version": "20.17.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.10.tgz", + "integrity": "sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "packages/ts/models/node_modules/@types/validator": { + "version": "13.12.2", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.2.tgz", + "integrity": "sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==", + "dev": true, + "license": "MIT" + }, + "packages/ts/models/node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "packages/ts/models/node_modules/chai": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "packages/ts/models/node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "packages/ts/models/node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "packages/ts/models/node_modules/loupe": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", + "dev": true, + "license": "MIT" + }, + "packages/ts/models/node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "packages/ts/models/node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "packages/ts/models/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-auth": { + "name": "@vaadin/hilla-react-auth", + "version": "24.7.0-alpha5", + "license": "Apache-2.0", + "dependencies": { + "@vaadin/hilla-frontend": "24.7.0-alpha5" + }, + "devDependencies": { + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.1.0", + "@testing-library/user-event": "^14.5.2", + "@types/chai": "^4.3.20", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/react": "^18.3.18", + "@types/react-dom": "^18", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "@web/test-runner": "^0.19.0", + "chai": "^5.1.2", + "chai-dom": "^1.12.0", + "react-router": "^7.0.2", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "typescript": "5.7.2" + }, + "peerDependencies": { + "react": "18 || 19", + "react-dom": "18 || 19", + "react-router": "^7" + } + }, + "packages/ts/react-auth/node_modules/@testing-library/react": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.1.0.tgz", + "integrity": "sha512-Q2ToPvg0KsVL0ohND9A3zLJWcOXXcO8IDu3fj11KhNt0UlCWyFyvnCIBkd12tidB2lkiVRG8VFqdhcqhqnAQtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "packages/ts/react-auth/node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-auth/node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-auth/node_modules/@types/validator": { + "version": "13.12.2", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.2.tgz", + "integrity": "sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-auth/node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "packages/ts/react-auth/node_modules/chai": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "packages/ts/react-auth/node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "packages/ts/react-auth/node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "packages/ts/react-auth/node_modules/loupe": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-auth/node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "packages/ts/react-auth/node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "packages/ts/react-crud": { + "name": "@vaadin/hilla-react-crud", + "version": "24.7.0-alpha5", + "license": "Apache-2.0", + "dependencies": { + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", + "@vaadin/hilla-react-form": "24.7.0-alpha5", + "@vaadin/react-components": "24.7.0-alpha4" + }, + "devDependencies": { + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.1.0", + "@testing-library/user-event": "^14.5.2", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/react": "^18.3.18", + "@types/react-dom": "^18", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", + "karma-viewport": "^1.0.9", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "typescript": "5.7.2" + }, + "peerDependencies": { + "react": "18 || 19", + "react-dom": "18 || 19" + } + }, + "packages/ts/react-crud/node_modules/@testing-library/react": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.1.0.tgz", + "integrity": "sha512-Q2ToPvg0KsVL0ohND9A3zLJWcOXXcO8IDu3fj11KhNt0UlCWyFyvnCIBkd12tidB2lkiVRG8VFqdhcqhqnAQtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "packages/ts/react-crud/node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-crud/node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-crud/node_modules/@types/validator": { + "version": "13.12.2", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.2.tgz", + "integrity": "sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-crud/node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "packages/ts/react-crud/node_modules/chai": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "packages/ts/react-crud/node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "packages/ts/react-crud/node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "packages/ts/react-crud/node_modules/loupe": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-crud/node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "packages/ts/react-crud/node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "packages/ts/react-form": { + "name": "@vaadin/hilla-react-form", + "version": "24.7.0-alpha5", + "license": "Apache-2.0", + "dependencies": { + "@vaadin/hilla-lit-form": "24.7.0-alpha5" + }, + "devDependencies": { + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.1.0", + "@testing-library/user-event": "^14.5.2", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/react": "^18.3.18", + "@types/react-dom": "^18", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "typescript": "5.7.2" + }, + "peerDependencies": { + "react": "18 || 19", + "react-dom": "18 || 19" + } + }, + "packages/ts/react-form/node_modules/@testing-library/react": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.1.0.tgz", + "integrity": "sha512-Q2ToPvg0KsVL0ohND9A3zLJWcOXXcO8IDu3fj11KhNt0UlCWyFyvnCIBkd12tidB2lkiVRG8VFqdhcqhqnAQtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" }, "engines": { - "node": ">= 16.13" + "node": ">=18" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2" + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "packages/ts/generator-utils": { - "name": "@vaadin/hilla-generator-utils", - "version": "24.5.0-alpha2", - "license": "Apache 2.0", + "packages/ts/react-form/node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-form/node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-form/node_modules/@types/validator": { + "version": "13.12.2", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.2.tgz", + "integrity": "sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-form/node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "packages/ts/react-form/node_modules/chai": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", + "dev": true, + "license": "MIT", "dependencies": { - "pino": "^8.15.1", - "pino-pretty": "^10.2.0", - "typescript": "5.3.2" + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" }, - "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", - "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "sinon": "^16.0.0", - "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "engines": { + "node": ">=12" + } + }, + "packages/ts/react-form/node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "packages/ts/react-form/node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "packages/ts/react-form/node_modules/loupe": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-form/node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "packages/ts/react-form/node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">= 16.13" + "node": ">=14.17" } }, - "packages/ts/hilla-file-router": { - "version": "24.4.0-alpha17", - "extraneous": true, + "packages/ts/react-i18n": { + "name": "@vaadin/hilla-react-i18n", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha17", - "@vaadin/hilla-react-auth": "^24.4.0-alpha17", - "react": "^18.2.0", - "rollup": "^4.12.0", - "typescript": "5.3.2" + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "@vaadin/hilla-react-signals": "24.7.0-alpha5", + "intl-messageformat": "^10.7.10" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.1.0", + "@testing-library/user-event": "^14.5.2", + "@types/chai": "^4.3.20", "@types/chai-as-promised": "^7.1.8", - "@types/chai-fs": "^2.0.4", - "@types/chai-like": "^1.1.3", - "@types/deep-equal-in-any-order": "^1.0.3", - "@types/mocha": "^10.0.6", - "@types/sinon": "^10.0.17", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/react": "^18.3.18", + "@types/react-dom": "^18", + "@types/sinon": "^10.0.20", "@types/sinon-chai": "^3.2.12", - "chai-as-promised": "^7.1.1", - "chai-fs": "^2.0.0", - "chai-like": "^1.1.1", - "deep-equal-in-any-order": "^2.0.6", - "mocha": "^10.2.0", - "rimraf": "^5.0.5", - "sinon": "^16.0.0", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", + "fetch-mock": "^9.11.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.9.0" + "typescript": "5.7.2" }, "peerDependencies": { - "react": "^18.2.0", - "react-router-dom": "^6.21.1" + "react": "18 || 19", + "react-dom": "18 || 19" } }, - "packages/ts/lit-form": { - "name": "@vaadin/hilla-lit-form", - "version": "24.5.0-alpha2", - "license": "Apache-2.0", + "packages/ts/react-i18n/node_modules/@formatjs/ecma402-abstract": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.1.tgz", + "integrity": "sha512-Ip9uV+/MpLXWRk03U/GzeJMuPeOXpJBSB5V1tjA6kJhvqssye5J5LoYLc7Z5IAHb7nR62sRoguzrFiVCP/hnzw==", + "license": "MIT", + "dependencies": { + "@formatjs/fast-memoize": "2.2.5", + "@formatjs/intl-localematcher": "0.5.9", + "decimal.js": "10", + "tslib": "2" + } + }, + "packages/ts/react-i18n/node_modules/@formatjs/fast-memoize": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.5.tgz", + "integrity": "sha512-6PoewUMrrcqxSoBXAOJDiW1m+AmkrAj0RiXnOMD59GRaswjXhm3MDhgepXPBgonc09oSirAJTsAggzAGQf6A6g==", + "license": "MIT", + "dependencies": { + "tslib": "2" + } + }, + "packages/ts/react-i18n/node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.9.7", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.9.7.tgz", + "integrity": "sha512-cuEHyRM5VqLQobANOjtjlgU7+qmk9Q3fDQuBiRRJ3+Wp3ZoZhpUPtUfuimZXsir6SaI2TaAJ+SLo9vLnV5QcbA==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.1", + "@formatjs/icu-skeleton-parser": "1.8.11", + "tslib": "2" + } + }, + "packages/ts/react-i18n/node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.8.11", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.11.tgz", + "integrity": "sha512-8LlHHE/yL/zVJZHAX3pbKaCjZKmBIO6aJY1mkVh4RMSEu/2WRZ4Ysvv3kKXJ9M8RJLBHdnk1/dUQFdod1Dt7Dw==", + "license": "MIT", "dependencies": { - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "validator": "^13.11.0" + "@formatjs/ecma402-abstract": "2.3.1", + "tslib": "2" + } + }, + "packages/ts/react-i18n/node_modules/@formatjs/intl-localematcher": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.9.tgz", + "integrity": "sha512-8zkGu/sv5euxbjfZ/xmklqLyDGQSxsLqg8XOq88JW3cmJtzhCP8EtSJXlaKZnVO4beEaoiT9wj4eIoCQ9smwxA==", + "license": "MIT", + "dependencies": { + "tslib": "2" + } + }, + "packages/ts/react-i18n/node_modules/@testing-library/react": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.1.0.tgz", + "integrity": "sha512-Q2ToPvg0KsVL0ohND9A3zLJWcOXXcO8IDu3fj11KhNt0UlCWyFyvnCIBkd12tidB2lkiVRG8VFqdhcqhqnAQtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" }, - "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@types/chai": "^4.3.6", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-dom": "^1.11.0", - "sinon": "^16.0.0", - "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "engines": { + "node": ">=18" }, "peerDependencies": { - "lit": "^3.0.0" + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "packages/ts/react-auth": { - "name": "@vaadin/hilla-react-auth", - "version": "24.5.0-alpha2", - "license": "Apache-2.0", + "packages/ts/react-i18n/node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-i18n/node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-i18n/node_modules/@types/validator": { + "version": "13.12.2", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.2.tgz", + "integrity": "sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-i18n/node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "packages/ts/react-i18n/node_modules/chai": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", + "dev": true, + "license": "MIT", "dependencies": { - "@vaadin/hilla-frontend": "24.5.0-alpha2" + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" }, - "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@testing-library/react": "^14.0.0", - "@testing-library/user-event": "^14.5.1", - "@types/chai": "^4.3.6", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/react": "^18.2.23", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-dom": "^1.11.0", - "react-router-dom": "^6.16.0", - "sinon": "^16.0.0", - "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "engines": { + "node": ">=12" + } + }, + "packages/ts/react-i18n/node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "packages/ts/react-i18n/node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "packages/ts/react-i18n/node_modules/intl-messageformat": { + "version": "10.7.10", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.10.tgz", + "integrity": "sha512-hp7iejCBiJdW3zmOe18FdlJu8U/JsADSDiBPQhfdSeI8B9POtvPRvPh3nMlvhYayGMKLv6maldhR7y3Pf1vkpw==", + "license": "BSD-3-Clause", + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.1", + "@formatjs/fast-memoize": "2.2.5", + "@formatjs/icu-messageformat-parser": "2.9.7", + "tslib": "2" + } + }, + "packages/ts/react-i18n/node_modules/loupe": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-i18n/node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "packages/ts/react-i18n/node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, - "peerDependencies": { - "react": "^18", - "react-router-dom": "^6" + "engines": { + "node": ">=14.17" } }, - "packages/ts/react-crud": { - "name": "@vaadin/hilla-react-crud", - "version": "24.5.0-alpha2", + "packages/ts/react-signals": { + "name": "@vaadin/hilla-react-signals", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "@vaadin/hilla-lit-form": "24.5.0-alpha2", - "@vaadin/hilla-react-form": "24.5.0-alpha2", - "@vaadin/react-components": "24.5.0-alpha3" + "@preact/signals-react": "^3.0.0", + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "nanoid": "^5.0.9" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@testing-library/react": "^14.0.0", - "@testing-library/user-event": "^14.5.1", - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/react": "^18.2.23", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.1.0", + "@testing-library/user-event": "^14.5.2", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/react": "^18.3.18", + "@types/react-dom": "^18", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", + "chai-like": "^1.1.3", + "karma": "^6.4.4", "karma-viewport": "^1.0.9", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { - "react": "^18", - "react-dom": "^18" + "react": "18 || 19", + "react-dom": "18 || 19" } }, - "packages/ts/react-form": { - "name": "@vaadin/hilla-react-form", - "version": "24.5.0-alpha2", - "license": "Apache-2.0", + "packages/ts/react-signals/node_modules/@testing-library/react": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.1.0.tgz", + "integrity": "sha512-Q2ToPvg0KsVL0ohND9A3zLJWcOXXcO8IDu3fj11KhNt0UlCWyFyvnCIBkd12tidB2lkiVRG8VFqdhcqhqnAQtg==", + "dev": true, + "license": "MIT", "dependencies": { - "@vaadin/hilla-lit-form": "24.5.0-alpha2" + "@babel/runtime": "^7.12.5" }, - "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@testing-library/react": "^14.0.0", - "@testing-library/user-event": "^14.5.1", - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.8", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/react": "^18.2.23", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", - "sinon": "^16.0.0", - "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "engines": { + "node": ">=18" }, "peerDependencies": { - "react": "^18" + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "packages/ts/react-i18n": { - "name": "@vaadin/hilla-react-i18n", - "version": "24.5.0-alpha2", - "license": "Apache-2.0", + "packages/ts/react-signals/node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-signals/node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-signals/node_modules/@types/validator": { + "version": "13.12.2", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.2.tgz", + "integrity": "sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-signals/node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "packages/ts/react-signals/node_modules/chai": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", + "dev": true, + "license": "MIT", "dependencies": { - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "@vaadin/hilla-react-signals": "24.5.0-alpha2", - "intl-messageformat": "^10.5.11" + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" }, - "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@testing-library/react": "^14.0.0", - "@testing-library/user-event": "^14.5.1", - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.8", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/react": "^18.2.23", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", - "fetch-mock": "^9.11.0", - "sinon": "^16.0.0", - "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "engines": { + "node": ">=12" + } + }, + "packages/ts/react-signals/node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "packages/ts/react-signals/node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "packages/ts/react-signals/node_modules/loupe": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", + "dev": true, + "license": "MIT" + }, + "packages/ts/react-signals/node_modules/nanoid": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.9.tgz", + "integrity": "sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.js" }, - "peerDependencies": { - "react": "^18" + "engines": { + "node": "^18 || >=20" } }, - "packages/ts/react-signals": { - "name": "@vaadin/hilla-react-signals", - "version": "24.5.0-alpha2", + "packages/ts/react-signals/node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "packages/ts/react-signals/node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "dev": true, "license": "Apache-2.0", - "dependencies": { - "@preact/signals-react": "^2.0.0" - }, - "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@types/react": "^18.2.23", - "@types/sinon": "^10.0.17", - "@types/validator": "^13.11.2", - "react-router-dom": "^6.16.0", - "typescript": "5.3.2" + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, - "peerDependencies": { - "react": "^18", - "react-router-dom": "^6" + "engines": { + "node": ">=14.17" } } } diff --git a/package.json b/package.json index fa8cb4ddc6..fd549b92f8 100644 --- a/package.json +++ b/package.json @@ -5,8 +5,8 @@ "main": "index.js", "type": "module", "engines": { - "node": ">=16.19.0", - "npm": ">=9" + "node": ">=20.0.0", + "npm": ">=9.6" }, "workspaces": [ "packages/ts/*" @@ -33,40 +33,46 @@ "prettier": "$prettier" }, "devDependencies": { - "@nx/js": "^18.0.4", - "@types/karma": "^6.3.8", - "@types/node": "^20.11.19", - "@vaadin/react-components": "24.5.0-alpha3", + "@nx/js": "^20.2.2", + "@preact/signals-react-transform": "^0.5.1", + "@remcovaes/web-test-runner-vite-plugin": "^1.2.2", + "@types/karma": "^6.3.9", + "@types/node": "^22.10.2", + "@vaadin/react-components": "24.7.0-alpha4", + "@vitejs/plugin-react": "^4.3.4", + "@web/test-runner": "^0.19.0", "chai-dom": "^1.12.0", - "compare-versions": "^6.1.0", - "concurrently": "^8.2.2", - "cssnano": "^6.0.3", - "esbuild": "^0.20.1", + "compare-versions": "^6.1.1", + "concurrently": "^9.1.0", + "cssnano": "^7.0.6", + "esbuild": "^0.24.0", "eslint": "^8.56.0", - "eslint-config-vaadin": "^1.0.0-alpha.18", + "eslint-config-vaadin": "1.0.0-alpha.18", "eslint-plugin-mocha": "^10.3.0", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-tsdoc": "^0.2.17", - "glob": "^10.3.10", - "karma": "^6.4.2", + "glob": "^11.0.0", + "karma": "^6.4.4", "karma-chrome-launcher": "^3.2.0", "karma-coverage": "^2.2.1", "karma-mocha": "^2.0.1", "karma-spec-reporter": "^0.0.36", "karma-viewport": "^1.0.9", "karma-vite": "^1.0.5", - "lint-staged": "^15.2.2", - "magic-string": "^0.30.7", + "lint-staged": "^15.2.11", + "magic-string": "^0.30.17", "meow": "^13.2.0", - "micromatch": "^4.0.5", - "mocha": "^10.3.0", - "nx": "^18.0.4", - "postcss": "^8.4.35", - "prettier": "^3.2.5", - "simple-git-hooks": "^2.9.0", + "micromatch": "^4.0.8", + "mocha": "^11.0.1", + "nx": "^20.2.2", + "postcss": "^8.4.49", + "prettier": "^3.4.2", + "react-dom": "^18.3.1", + "simple-git-hooks": "^2.11.1", "sync-request": "^6.1.0", - "tsx": "4.7.1", - "typescript": "5.3.2", - "vite": "^5.1.4" + "tsx": "^4.19.2", + "type-fest": "^4.30.2", + "typescript": "5.7.2", + "vite": "^5.4.11" } } diff --git a/packages/java/endpoint/pom.xml b/packages/java/endpoint/pom.xml index 065e0af8bc..13f9548458 100644 --- a/packages/java/endpoint/pom.xml +++ b/packages/java/endpoint/pom.xml @@ -6,12 +6,12 @@ com.vaadin hilla-project - 24.5-SNAPSHOT + 24.7-SNAPSHOT ../../../pom.xml hilla-endpoint - 24.5-SNAPSHOT + 24.7-SNAPSHOT Hilla Endpoint jar @@ -44,6 +44,10 @@ hilla-engine-core ${project.version} + + org.jspecify + jspecify + @@ -66,14 +70,6 @@ test - - com.google.code.findbugs - annotations - 3.0.1 - test - - - jakarta.validation @@ -243,6 +239,11 @@ hamcrest-all test + + io.projectreactor + reactor-test + test + com.vaadin @@ -250,6 +251,11 @@ ${flow.version} test + + com.vaadin + license-checker + test + org.apache.tomcat.embed diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/ApplicationContextProvider.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/ApplicationContextProvider.java index 3e139d2b6b..28aac7e45d 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/ApplicationContextProvider.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/ApplicationContextProvider.java @@ -1,21 +1,50 @@ package com.vaadin.hilla; +import javax.annotation.Nonnull; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; +import org.springframework.context.ConfigurableApplicationContext; import org.springframework.stereotype.Component; +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; + @Component public class ApplicationContextProvider implements ApplicationContextAware { private static ApplicationContext applicationContext; + private static final List> pendingActions = new ArrayList<>(); @Override - public void setApplicationContext(ApplicationContext applicationContext) + public void setApplicationContext( + @Nonnull ApplicationContext applicationContext) throws BeansException { ApplicationContextProvider.applicationContext = applicationContext; + pendingActions.forEach(action -> action.accept(applicationContext)); + pendingActions.clear(); } public static ApplicationContext getApplicationContext() { return applicationContext; } + + /** + * Allows scheduling actions that should be run when the application context + * is available, or to run them immediately if the context is already + * available and still active. + * + * @param action + * the action to be scheduled or run immediately + */ + public static void runOnContext(Consumer action) { + if (applicationContext == null + || (applicationContext instanceof ConfigurableApplicationContext + && !((ConfigurableApplicationContext) applicationContext) + .isActive())) { + pendingActions.add(action); + } else { + action.accept(applicationContext); + } + } } diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/BrowserCallable.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/BrowserCallable.java index d9d94a51b4..16926735c6 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/BrowserCallable.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/BrowserCallable.java @@ -26,8 +26,8 @@ * Makes the methods of the annotated class available to the browser. *

* For each class, a corresponding TypeScript class is generated in - * {@code frontend/generated} with TypeScript methods for invoking the methods - * in this class. + * {@code src/main/frontend/generated} with TypeScript methods for invoking the + * methods in this class. *

* This is an alias for {@link Endpoint}. */ diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointCodeGenerator.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointCodeGenerator.java index 24a58e54e9..90573d0f84 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointCodeGenerator.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointCodeGenerator.java @@ -17,21 +17,27 @@ import java.io.IOException; import java.nio.file.Files; -import java.nio.file.Path; +import java.util.Collection; +import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.Set; +import java.util.stream.Collectors; +import com.vaadin.flow.server.VaadinContext; +import com.vaadin.flow.server.frontend.FrontendTools; +import com.vaadin.flow.server.frontend.FrontendUtils; +import com.vaadin.flow.server.startup.ApplicationConfiguration; import com.vaadin.hilla.engine.EngineConfiguration; import com.vaadin.hilla.engine.GeneratorProcessor; import com.vaadin.hilla.engine.ParserProcessor; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.aop.framework.AopProxyUtils; +import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Component; -import com.vaadin.flow.server.VaadinContext; -import com.vaadin.flow.server.frontend.FrontendTools; -import com.vaadin.flow.server.startup.ApplicationConfiguration; - /** * Handles (re)generation of the TypeScript code. */ @@ -43,11 +49,10 @@ public class EndpointCodeGenerator { private final EndpointController endpointController; private final VaadinContext context; - private Path buildDirectory; private ApplicationConfiguration configuration; - private String nodeExecutable; private Set classesUsedInOpenApi = null; + private EngineConfiguration engineConfiguration; /** * Creates the singleton. @@ -74,71 +79,84 @@ public static EndpointCodeGenerator getInstance() { /** * Re-generates the endpoint TypeScript and re-registers the endpoints in * Java. - * - * @throws IOException - * if something went wrong */ - public void update() throws IOException { + public void update() { initIfNeeded(); if (configuration.isProductionMode()) { throw new IllegalStateException( "This method is not available in production mode"); } - EngineConfiguration engineConfiguration = EngineConfiguration - .loadDirectory(buildDirectory); - ParserProcessor parser = new ParserProcessor(engineConfiguration, - getClass().getClassLoader(), false); - parser.process(); - GeneratorProcessor generator = new GeneratorProcessor( - engineConfiguration, nodeExecutable, false); - generator.process(); - - OpenAPIUtil.getCurrentOpenAPIPath(buildDirectory, false) - .ifPresent(openApiPath -> { - try { - this.endpointController - .registerEndpoints(openApiPath.toUri().toURL()); - } catch (IOException e) { - LOGGER.error( - "Endpoints could not be registered due to an exception: ", - e); - } - }); + ApplicationContextProvider.runOnContext(applicationContext -> { + List> browserCallables = findBrowserCallables( + engineConfiguration, applicationContext); + ParserProcessor parser = new ParserProcessor(engineConfiguration); + parser.process(browserCallables); + + GeneratorProcessor generator = new GeneratorProcessor( + engineConfiguration); + generator.process(); + this.endpointController.registerEndpoints(); + }); + } + + /** + * Finds all beans in the application context that have a browser callable + * annotation. + * + * @param engineConfiguration + * the engine configuration that provides the annotations to + * search for + * @param applicationContext + * the application context to search for beans in + * @return a list of classes that qualify as browser callables + */ + public static List> findBrowserCallables( + EngineConfiguration engineConfiguration, + ApplicationContext applicationContext) { + return engineConfiguration.getEndpointAnnotations().stream() + .map(applicationContext::getBeansWithAnnotation) + .map(Map::values).flatMap(Collection::stream) + // maps to original class when proxies are found + // (also converts to class in all cases) + .map(AopProxyUtils::ultimateTargetClass).distinct() + .collect(Collectors.toList()); } private void initIfNeeded() { if (configuration == null) { configuration = ApplicationConfiguration.get(context); - Path projectFolder = configuration.getProjectFolder().toPath(); - buildDirectory = projectFolder - .resolve(configuration.getBuildFolder()); - - FrontendTools tools = new FrontendTools(configuration, + var frontendTools = new FrontendTools(configuration, configuration.getProjectFolder()); - nodeExecutable = tools.getNodeBinary(); + engineConfiguration = new EngineConfiguration.Builder() + .baseDir(configuration.getProjectFolder().toPath()) + .buildDir(configuration.getBuildFolder()) + .outputDir( + FrontendUtils + .getFrontendGeneratedFolder( + configuration.getFrontendFolder()) + .toPath()) + .productionMode(false).withDefaultAnnotations() + .nodeCommand(frontendTools.getNodeBinary()).build(); } } public Optional> getClassesUsedInOpenApi() throws IOException { if (classesUsedInOpenApi == null) { initIfNeeded(); - OpenAPIUtil.getCurrentOpenAPIPath(buildDirectory, false) - .ifPresent(openApiPath -> { - if (openApiPath.toFile().exists()) { - try { - classesUsedInOpenApi = OpenAPIUtil - .findOpenApiClasses( - Files.readString(openApiPath)); - } catch (IOException e) { - throw new RuntimeException(e); - } - } else { - LOGGER.debug( - "No OpenAPI file is available yet ..."); - } - }); + var conf = EngineConfiguration.getDefault(); + var openApiPath = conf.getOpenAPIFile(); + if (openApiPath != null && openApiPath.toFile().exists()) { + try { + classesUsedInOpenApi = OpenAPIUtil + .findOpenApiClasses(Files.readString(openApiPath)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } else { + LOGGER.debug("No OpenAPI file is available yet ..."); + } } return Optional.ofNullable(classesUsedInOpenApi); } diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointController.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointController.java index 5a797cca0e..517b833a3a 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointController.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointController.java @@ -15,12 +15,13 @@ */ package com.vaadin.hilla; -import java.io.IOException; -import java.net.URL; -import java.util.Map; -import java.util.Optional; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.util.TreeMap; +import java.util.stream.Collectors; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.node.ObjectNode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.ApplicationContext; @@ -33,18 +34,11 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.ObjectNode; - import com.vaadin.flow.internal.CurrentInstance; import com.vaadin.flow.server.VaadinRequest; import com.vaadin.flow.server.VaadinService; -import com.vaadin.flow.server.VaadinServletRequest; -import com.vaadin.flow.server.VaadinServletService; - +import com.vaadin.flow.server.dau.DAUUtils; +import com.vaadin.flow.server.dau.EnforcementNotificationMessages; import com.vaadin.hilla.EndpointInvocationException.EndpointAccessDeniedException; import com.vaadin.hilla.EndpointInvocationException.EndpointBadRequestException; import com.vaadin.hilla.EndpointInvocationException.EndpointInternalException; @@ -53,8 +47,6 @@ import com.vaadin.hilla.auth.EndpointAccessChecker; import com.vaadin.hilla.exception.EndpointException; -import jakarta.servlet.http.HttpServletRequest; - /** * The controller that is responsible for processing Vaadin endpoint requests. * Each class that is annotated with {@link Endpoint} or {@link BrowserCallable} @@ -85,6 +77,8 @@ public class EndpointController { */ public static final String ENDPOINT_MAPPER_FACTORY_BEAN_QUALIFIER = "endpointMapperFactory"; + private static final String SIGNALS_HANDLER_BEAN_NAME = "signalsHandler"; + private final ApplicationContext context; EndpointRegistry endpointRegistry; @@ -93,6 +87,8 @@ public class EndpointController { private final EndpointInvoker endpointInvoker; + VaadinService vaadinService; + /** * A constructor used to initialize the controller. * @@ -118,7 +114,7 @@ public EndpointController(ApplicationContext context, * Initializes the controller by registering all endpoints found in the * OpenApi definition or, as a fallback, in the Spring context. */ - public void registerEndpoints(URL openApiResource) { + public void registerEndpoints() { // Spring returns bean names in lower camel case, while Hilla names // endpoints in upper camel case, so a case-insensitive map is used to // ease searching @@ -128,21 +124,23 @@ public void registerEndpoints(URL openApiResource) { endpointBeans .putAll(context.getBeansWithAnnotation(BrowserCallable.class)); - // By default, only register those endpoints included in the Hilla - // OpenAPI definition file - registerEndpointsFromApiDefinition(endpointBeans, openApiResource); + var currentEndpointNames = endpointBeans.values().stream() + .map(endpointRegistry::registerEndpoint) + .collect(Collectors.toSet()); + // remove obsolete endpoints + endpointRegistry.getEndpoints().keySet() + .retainAll(currentEndpointNames); - if (endpointRegistry.isEmpty() && !endpointBeans.isEmpty()) { - LOGGER.debug("No endpoints found in openapi.json:" - + " registering all endpoints found using the Spring context"); + endpointBeans.keySet().stream() + .filter(name -> !name.equals(SIGNALS_HANDLER_BEAN_NAME)) + .findAny().ifPresent(name -> HillaStats.reportHasEndpoint()); - endpointBeans.forEach((name, endpointBean) -> endpointRegistry - .registerEndpoint(endpointBean)); + // Temporary Hack + VaadinService vaadinService = VaadinService.getCurrent(); + if (vaadinService != null) { + this.vaadinService = vaadinService; } - if (!endpointRegistry.isEmpty()) { - HillaStats.reportHasEndpoint(); - } } /** @@ -167,6 +165,8 @@ public void registerEndpoints(URL openApiResource) { * called has parameters * @param request * the current request which triggers the endpoint call + * @param response + * the current response * @return execution result as a JSON string or an error message string */ @PostMapping(path = ENDPOINT_METHODS, produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @@ -174,7 +174,43 @@ public ResponseEntity serveEndpoint( @PathVariable("endpoint") String endpointName, @PathVariable("method") String methodName, @RequestBody(required = false) ObjectNode body, - HttpServletRequest request) { + HttpServletRequest request, HttpServletResponse response) { + return doServeEndpoint(endpointName, methodName, body, request, + response); + } + + /** + * Captures and processes the Vaadin endpoint requests. + *

+ * Matches the endpoint name and a method name with the corresponding Java + * class and a public method in the class. Extracts parameters from a + * request body if the Java method requires any and applies in the same + * order. After the method call, serializes the Java method execution result + * and sends it back. + *

+ * If an issue occurs during the request processing, an error response is + * returned instead of the serialized Java method return value. + * + * @param endpointName + * the name of an endpoint to address the calls to, not case + * sensitive + * @param methodName + * the method name to execute on an endpoint, not case sensitive + * @param body + * optional request body, that should be specified if the method + * called has parameters + * @param request + * the current request which triggers the endpoint call + * @return execution result as a JSON string or an error message string + */ + public ResponseEntity serveEndpoint(String endpointName, + String methodName, ObjectNode body, HttpServletRequest request) { + return doServeEndpoint(endpointName, methodName, body, request, null); + } + + private ResponseEntity doServeEndpoint(String endpointName, + String methodName, ObjectNode body, HttpServletRequest request, + HttpServletResponse response) { LOGGER.debug("Endpoint: {}, method: {}, request body: {}", endpointName, methodName, body); @@ -184,13 +220,13 @@ public ResponseEntity serveEndpoint( EndpointAccessChecker.ACCESS_DENIED_MSG)); } + DAUUtils.EnforcementResult enforcementResult = null; try { - // Put a VaadinRequest in the instances object so as the request is - // available in the endpoint method - VaadinServletService service = (VaadinServletService) VaadinService - .getCurrent(); - CurrentInstance.set(VaadinRequest.class, - new VaadinServletRequest(request, service)); + enforcementResult = DAUUtils.trackDAU(this.vaadinService, request, + response); + if (enforcementResult.isEnforcementNeeded()) { + return buildEnforcementResponseEntity(enforcementResult); + } Object returnValue = endpointInvoker.invoke(endpointName, methodName, body, request.getUserPrincipal(), request::isUserInRole); @@ -227,48 +263,29 @@ public ResponseEntity serveEndpoint( return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body( endpointInvoker.createResponseErrorObject(e.getMessage())); } finally { - CurrentInstance.set(VaadinRequest.class, null); - } + if (enforcementResult != null + && enforcementResult.endRequestAction() != null) { + enforcementResult.endRequestAction().run(); + } else { + CurrentInstance.set(VaadinRequest.class, null); + } + } } - /** - * Parses the openapi.json file to discover defined endpoints. - * - * @param knownEndpointBeans - * the endpoint beans found in the Spring context - */ - private void registerEndpointsFromApiDefinition( - Map knownEndpointBeans, URL openApiResource) { - - if (openApiResource == null) { - LOGGER.debug( - "Resource 'hilla-openapi.json' is not available: endpoints cannot be registered yet"); - } else { - try (var stream = openApiResource.openStream()) { - // Read the openapi.json file and extract the tags, which in - // turn define the endpoints and their implementation classes - var rootNode = new ObjectMapper().readTree(stream); - var tagsNode = (ArrayNode) rootNode.get("tags"); - - if (tagsNode != null) { - // Declared endpoints are first searched as Spring Beans. If - // not found, they are, if possible, instantiated as regular - // classes using their default constructor - tagsNode.forEach(tag -> { - Optional.ofNullable(tag.get("name")) - .map(JsonNode::asText) - .map(knownEndpointBeans::get) - .or(() -> Optional - .ofNullable(tag.get("x-class-name")) - .map(JsonNode::asText) - .map(this::instantiateEndpointByClassName)) - .ifPresent(endpointRegistry::registerEndpoint); - }); - } - } catch (IOException e) { - LOGGER.warn("Failed to read openapi.json", e); - } + private ResponseEntity buildEnforcementResponseEntity( + DAUUtils.EnforcementResult enforcementResult) { + EnforcementNotificationMessages messages = enforcementResult.messages(); + EndpointException endpointException = new EndpointException( + messages.caption(), enforcementResult.origin(), messages); + try { + return ResponseEntity.status(HttpStatus.SERVICE_UNAVAILABLE) + .body(endpointInvoker.createResponseErrorObject( + endpointException.getSerializationData())); + } catch (JsonProcessingException ee) { + return ResponseEntity.status(HttpStatus.SERVICE_UNAVAILABLE) + .body(endpointInvoker.createResponseErrorObject( + messages.caption() + ". " + messages.message())); } } diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointControllerConfiguration.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointControllerConfiguration.java index 287f93afd5..a17111de91 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointControllerConfiguration.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointControllerConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2023 Vaadin Ltd. + * Copyright 2000-2024 Vaadin Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -18,6 +18,8 @@ import java.lang.reflect.Method; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.vaadin.hilla.endpointransfermapper.EndpointTransferMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -25,6 +27,7 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; import org.springframework.web.servlet.mvc.method.RequestMappingInfo; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; import org.springframework.web.util.pattern.PathPatternParser; @@ -43,7 +46,9 @@ */ @Configuration public class EndpointControllerConfiguration { + private static final EndpointTransferMapper ENDPOINT_TRANSFER_MAPPER = new EndpointTransferMapper(); private final EndpointProperties endpointProperties; + private ObjectMapper endpointMapper; /** * Initializes the endpoint configuration. @@ -71,7 +76,7 @@ AccessAnnotationChecker accessAnnotationChecker() { * Registers a default {@link EndpointAccessChecker} bean instance. * * @param accessAnnotationChecker - * the access controlks checker to use + * the access controls checker to use * @return the default Vaadin endpoint access checker bean */ @Bean @@ -94,16 +99,50 @@ CsrfChecker csrfChecker(ServletContext servletContext) { } /** - * Registers the endpoint invoker. + * Creates ObjectMapper instance that is used for Hilla endpoints' + * serializing and deserializing request and response bodies. * * @param applicationContext * The Spring application context * @param endpointMapperFactory - * optional bean to override the default + * optional factory bean to override the default * {@link JacksonObjectMapperFactory} that is used for * serializing and deserializing request and response bodies Use * {@link EndpointController#ENDPOINT_MAPPER_FACTORY_BEAN_QUALIFIER} * qualifier to override the mapper. + */ + @Bean + ObjectMapper hillaEndpointObjectMapper( + ApplicationContext applicationContext, + @Autowired(required = false) @Qualifier(EndpointController.ENDPOINT_MAPPER_FACTORY_BEAN_QUALIFIER) JacksonObjectMapperFactory endpointMapperFactory) { + if (this.endpointMapper == null) { + this.endpointMapper = endpointMapperFactory != null + ? endpointMapperFactory.build() + : createDefaultEndpointMapper(applicationContext); + if (this.endpointMapper != null) { + this.endpointMapper.registerModule( + ENDPOINT_TRANSFER_MAPPER.getJacksonModule()); + } + } + return this.endpointMapper; + } + + private static ObjectMapper createDefaultEndpointMapper( + ApplicationContext applicationContext) { + var endpointMapper = new JacksonObjectMapperFactory.Json().build(); + applicationContext.getBean(Jackson2ObjectMapperBuilder.class) + .configure(endpointMapper); + return endpointMapper; + } + + /** + * Registers the endpoint invoker. + * + * @param applicationContext + * The Spring application context + * @param hillaEndpointObjectMapper + * ObjectMapper instance that is used for Hilla endpoints' + * serializing and deserializing request and response bodies. * @param explicitNullableTypeChecker * the method parameter and return value type checker to verify * that null values are explicit @@ -116,11 +155,12 @@ CsrfChecker csrfChecker(ServletContext servletContext) { */ @Bean EndpointInvoker endpointInvoker(ApplicationContext applicationContext, - @Autowired(required = false) @Qualifier(EndpointController.ENDPOINT_MAPPER_FACTORY_BEAN_QUALIFIER) JacksonObjectMapperFactory endpointMapperFactory, + @Qualifier("hillaEndpointObjectMapper") ObjectMapper hillaEndpointObjectMapper, ExplicitNullableTypeChecker explicitNullableTypeChecker, ServletContext servletContext, EndpointRegistry endpointRegistry) { - return new EndpointInvoker(applicationContext, endpointMapperFactory, - explicitNullableTypeChecker, servletContext, endpointRegistry); + return new EndpointInvoker(applicationContext, + hillaEndpointObjectMapper, explicitNullableTypeChecker, + servletContext, endpointRegistry); } /** @@ -237,9 +277,9 @@ private RequestMappingInfo prependEndpointPrefixUrl( } /** - * Can re-generate the TypeScipt code. + * Can re-generate the TypeScript code. * - * @param context + * @param servletContext * the servlet context * @param endpointController * the endpoint controller diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointInvoker.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointInvoker.java index 24c388b3b0..ca0f91599d 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointInvoker.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointInvoker.java @@ -27,7 +27,6 @@ import com.vaadin.hilla.EndpointInvocationException.EndpointNotFoundException; import com.vaadin.hilla.EndpointRegistry.VaadinEndpointData; import com.vaadin.hilla.auth.EndpointAccessChecker; -import com.vaadin.hilla.endpointransfermapper.EndpointTransferMapper; import com.vaadin.hilla.exception.EndpointException; import com.vaadin.hilla.exception.EndpointValidationException; import com.vaadin.hilla.exception.EndpointValidationException.ValidationErrorData; @@ -40,7 +39,6 @@ import org.slf4j.LoggerFactory; import org.springframework.context.ApplicationContext; import org.springframework.http.ResponseEntity; -import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; import org.springframework.lang.NonNullApi; import org.springframework.util.ClassUtils; @@ -72,10 +70,8 @@ * For internal use only. May be renamed or removed in a future release. */ public class EndpointInvoker { - - private static final EndpointTransferMapper endpointTransferMapper = new EndpointTransferMapper(); private final ApplicationContext applicationContext; - private final ObjectMapper endpointMapper; + private final ObjectMapper endpointObjectMapper; private final EndpointRegistry endpointRegistry; private final ExplicitNullableTypeChecker explicitNullableTypeChecker; private final ServletContext servletContext; @@ -86,12 +82,12 @@ public class EndpointInvoker { * * @param applicationContext * The Spring application context - * @param endpointMapperFactory - * optional factory bean to override the default - * {@link JacksonObjectMapperFactory} that is used for - * serializing and deserializing request and response bodies Use + * @param endpointObjectMapper + * The object mapper to be used for serialization and + * deserialization of request and response bodies. To override + * the mapper, use the * {@link EndpointController#ENDPOINT_MAPPER_FACTORY_BEAN_QUALIFIER} - * qualifier to override the mapper. + * qualifier on a JacksonObjectMapperFactory bean definition. * @param explicitNullableTypeChecker * the method parameter and return value type checker to verify * that null values are explicit @@ -101,18 +97,12 @@ public class EndpointInvoker { * the registry used to store endpoint information */ public EndpointInvoker(ApplicationContext applicationContext, - JacksonObjectMapperFactory endpointMapperFactory, + ObjectMapper endpointObjectMapper, ExplicitNullableTypeChecker explicitNullableTypeChecker, ServletContext servletContext, EndpointRegistry endpointRegistry) { this.applicationContext = applicationContext; this.servletContext = servletContext; - this.endpointMapper = endpointMapperFactory != null - ? endpointMapperFactory.build() - : createDefaultEndpointMapper(applicationContext); - if (this.endpointMapper != null) { - this.endpointMapper - .registerModule(endpointTransferMapper.getJacksonModule()); - } + this.endpointObjectMapper = endpointObjectMapper; this.explicitNullableTypeChecker = explicitNullableTypeChecker; this.endpointRegistry = endpointRegistry; @@ -128,15 +118,6 @@ public EndpointInvoker(ApplicationContext applicationContext, : validator; } - private static ObjectMapper createDefaultEndpointMapper( - ApplicationContext applicationContext) { - var endpointMapper = new JacksonObjectMapperFactory.Json().build(); - applicationContext.getBean(Jackson2ObjectMapperBuilder.class) - .configure(endpointMapper); - - return endpointMapper; - } - private static Logger getLogger() { return LoggerFactory.getLogger(EndpointInvoker.class); } @@ -190,12 +171,8 @@ public Object invoke(String endpointName, String methodName, Function rolesChecker) throws EndpointNotFoundException, EndpointAccessDeniedException, EndpointBadRequestException, EndpointInternalException { - VaadinEndpointData vaadinEndpointData = endpointRegistry - .get(endpointName); - if (vaadinEndpointData == null) { - getLogger().debug("Endpoint '{}' not found", endpointName); - throw new EndpointNotFoundException(); - } + VaadinEndpointData vaadinEndpointData = getVaadinEndpointData( + endpointName); Method methodToInvoke = getMethod(endpointName, methodName); if (methodToInvoke == null) { @@ -210,15 +187,26 @@ public Object invoke(String endpointName, String methodName, } + public VaadinEndpointData getVaadinEndpointData(String endpointName) + throws EndpointNotFoundException { + VaadinEndpointData vaadinEndpointData = endpointRegistry + .get(endpointName); + if (vaadinEndpointData == null) { + getLogger().debug("Endpoint '{}' not found", endpointName); + throw new EndpointNotFoundException(); + } + return vaadinEndpointData; + } + String createResponseErrorObject(String errorMessage) { - ObjectNode objectNode = endpointMapper.createObjectNode(); + ObjectNode objectNode = endpointObjectMapper.createObjectNode(); objectNode.put(EndpointException.ERROR_MESSAGE_FIELD, errorMessage); return objectNode.toString(); } String createResponseErrorObject(Map serializationData) throws JsonProcessingException { - return endpointMapper.writeValueAsString(serializationData); + return endpointObjectMapper.writeValueAsString(serializationData); } EndpointAccessChecker getAccessChecker() { @@ -235,7 +223,7 @@ EndpointAccessChecker getAccessChecker() { String writeValueAsString(Object returnValue) throws JsonProcessingException { - return endpointMapper.writeValueAsString(returnValue); + return endpointObjectMapper.writeValueAsString(returnValue); } private List createBeanValidationErrors( @@ -336,8 +324,8 @@ private Object[] getVaadinEndpointParameters( Type parameterType = javaParameters[i]; Type incomingType = parameterType; try { - Object parameter = endpointMapper - .readerFor(endpointMapper.getTypeFactory() + Object parameter = endpointObjectMapper + .readerFor(endpointObjectMapper.getTypeFactory() .constructType(incomingType)) .readValue(requestParameters.get(parameterNames[i])); endpointParameters[i] = parameter; @@ -381,19 +369,13 @@ private ResponseEntity handleMethodExecutionError( } } - private Object invokeVaadinEndpointMethod(String endpointName, - String methodName, Method methodToInvoke, ObjectNode body, - VaadinEndpointData vaadinEndpointData, Principal principal, - Function rolesChecker) - throws EndpointAccessDeniedException, EndpointBadRequestException, - EndpointInternalException { - HillaStats.reportEndpointActive(); - EndpointAccessChecker accessChecker = getAccessChecker(); - + public String checkAccess(EndpointRegistry.VaadinEndpointData endpointData, + Method methodToInvoke, Principal principal, + Function rolesChecker) { var methodDeclaringClass = methodToInvoke.getDeclaringClass(); var invokedEndpointClass = ClassUtils - .getUserClass(vaadinEndpointData.getEndpointObject()); - + .getUserClass(endpointData.getEndpointObject()); + EndpointAccessChecker accessChecker = getAccessChecker(); String checkError; if (methodDeclaringClass.equals(invokedEndpointClass)) { checkError = accessChecker.check(methodToInvoke, principal, @@ -402,6 +384,19 @@ private Object invokeVaadinEndpointMethod(String endpointName, checkError = accessChecker.check(invokedEndpointClass, principal, rolesChecker); } + return checkError; + } + + private Object invokeVaadinEndpointMethod(String endpointName, + String methodName, Method methodToInvoke, ObjectNode body, + VaadinEndpointData vaadinEndpointData, Principal principal, + Function rolesChecker) + throws EndpointAccessDeniedException, EndpointBadRequestException, + EndpointInternalException { + HillaStats.reportEndpointActive(); + + var checkError = checkAccess(vaadinEndpointData, methodToInvoke, + principal, rolesChecker); if (checkError != null) { throw new EndpointAccessDeniedException(String.format( "Endpoint '%s' method '%s' request cannot be accessed, reason: '%s'", diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointRegistry.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointRegistry.java index ccbc60e20d..2b4e02774d 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointRegistry.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/EndpointRegistry.java @@ -54,6 +54,15 @@ private VaadinEndpointData(Object vaadinEndpointObject, method)); } + /** + * Gets all the endpoint methods. + * + * @return the endpoint methods + */ + public Map getMethods() { + return methods; + } + /** * Finds a method with the given name. * @@ -90,10 +99,10 @@ private static String getEndpointNameForClass(Class beanType) { // BrowserCallable has no value so this works return Optional.ofNullable(beanType.getAnnotation(Endpoint.class)) .map(Endpoint::value).filter(value -> !value.isEmpty()) - .orElse(beanType.getSimpleName()); + .orElse(beanType.getSimpleName()).toLowerCase(Locale.ENGLISH); } - void registerEndpoint(Object endpointBean) { + String registerEndpoint(Object endpointBean) { // Check the bean type instead of the implementation type in // case of e.g. proxies Class beanType = ClassUtils.getUserClass(endpointBean.getClass()); @@ -120,10 +129,20 @@ void registerEndpoint(Object endpointBean) { Method[] endpointPublicMethods = beanType.getMethods(); AccessibleObject.setAccessible(endpointPublicMethods, true); - vaadinEndpoints.put(endpointName.toLowerCase(Locale.ENGLISH), + vaadinEndpoints.put(endpointName, new VaadinEndpointData(endpointBean, endpointPublicMethods)); LOGGER.debug("Registered endpoint '{}' with class '{}'", endpointName, beanType); + return endpointName; + } + + /** + * Gets all registered endpoints. + * + * @return a map of endpoint names to endpoint data + */ + public Map getEndpoints() { + return vaadinEndpoints; } VaadinEndpointData get(String endpointName) { diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/Hotswapper.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/Hotswapper.java index c14a0db663..65c7dd4f22 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/Hotswapper.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/Hotswapper.java @@ -4,6 +4,8 @@ import java.util.List; import java.util.Set; +import com.vaadin.flow.hotswap.VaadinHotswapper; +import com.vaadin.flow.server.VaadinService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -11,7 +13,7 @@ * Takes care of updating internals of Hilla that need updates when application * classes are updated. */ -public class Hotswapper { +public class Hotswapper implements VaadinHotswapper { private static boolean inUse; @@ -19,6 +21,14 @@ private static Logger getLogger() { return LoggerFactory.getLogger(Hotswapper.class); } + @Override + public boolean onClassLoadEvent(VaadinService vaadinService, + Set> classes, boolean redefined) { + onHotswap(redefined, + classes.stream().map(Class::getName).toArray(String[]::new)); + return false; + } + /** * Called by hot swap solutions when one or more classes have been updated. *

@@ -106,7 +116,7 @@ private static boolean affectsEndpoints(String[] changedClasses) .getClassesUsedInOpenApi().orElse(Set.of()); for (String classUsedInEndpoints : classesUsedInEndpoints) { if (changedClassesSet.contains(classUsedInEndpoints)) { - getLogger().debug("The changed class " + classesUsedInEndpoints + getLogger().debug("The changed class " + classUsedInEndpoints + " is used in an endpoint"); return true; } diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/Nonnull.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/Nonnull.java index 24d9c099b4..b4c275a2c8 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/Nonnull.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/Nonnull.java @@ -28,9 +28,13 @@ * * This annotation exists only for convenience because the traditional * `jakarta.annotation.Nonnull` annotation is not applicable to type parameters. + * + * @deprecated use the standardized {@link org.jspecify.annotations.NonNull} + * instead */ @Documented @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.TYPE_USE }) +@Deprecated(forRemoval = true) public @interface Nonnull { } diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/Nullable.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/Nullable.java index 8e8f1a51c9..1478fde2f0 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/Nullable.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/Nullable.java @@ -29,9 +29,13 @@ * This annotation exists only for convenience because the traditional * `jakarta.annotation.Nullable` annotation is not applicable to type * parameters. + * + * @deprecated use the standardized {@link org.jspecify.annotations.Nullable} + * instead */ @Documented @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.TYPE_USE }) +@Deprecated(forRemoval = true) public @interface Nullable { } diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/OpenAPIUtil.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/OpenAPIUtil.java index 3089d4decc..728c337232 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/OpenAPIUtil.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/OpenAPIUtil.java @@ -3,7 +3,6 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; import java.util.HashSet; import java.util.Optional; import java.util.Set; @@ -13,7 +12,6 @@ import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.ObjectNode; import com.vaadin.hilla.engine.EngineConfiguration; -import com.vaadin.hilla.engine.ParserProcessor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -61,35 +59,10 @@ public static String getCurrentOpenAPI(Path buildDirectory, */ public static Optional getCurrentOpenAPIPath(Path buildDirectory, boolean isProductionMode) throws IOException { - EngineConfiguration engineConfiguration = EngineConfiguration - .loadDirectory(buildDirectory); - if (engineConfiguration == null) { - return Optional.empty(); - } - return Optional - .of(engineConfiguration.getOpenAPIFile(isProductionMode)); - } - - /** - * Generate a new openapi.json and return it, based on the classes in the - * build directory. - * - * @param buildDirectory - * the build directory, {@code target} if running with Maven - * @param isProductionMode - * whether to generate the openapi for production mode - * @return the contents of the generated openapi.json - * @throws IOException - * if something went wrong - */ - public static String generateOpenAPI(Path buildDirectory, - boolean isProductionMode) throws IOException { - EngineConfiguration engineConfiguration = EngineConfiguration - .loadDirectory(buildDirectory); - ParserProcessor parserProcessor = new ParserProcessor( - engineConfiguration, OpenAPIUtil.class.getClassLoader(), - isProductionMode); - return parserProcessor.createOpenAPI(); + var engineConfiguration = new EngineConfiguration.Builder() + .buildDir(buildDirectory).productionMode(isProductionMode) + .withDefaultAnnotations().build(); + return Optional.of(engineConfiguration.getOpenAPIFile()); } /** diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/auth/EndpointAccessChecker.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/auth/EndpointAccessChecker.java index 92fdabefc7..00f7dfa9f5 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/auth/EndpointAccessChecker.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/auth/EndpointAccessChecker.java @@ -74,7 +74,7 @@ public class EndpointAccessChecker { public static final String ACCESS_DENIED_MSG = "Access denied"; - public static final String ACCESS_DENIED_MSG_DEV_MODE = "Unauthorized access to Vaadin endpoint; " + public static final String ACCESS_DENIED_MSG_DEV_MODE = "Access denied to Vaadin endpoint; " + "to enable endpoint access use one of the following annotations: @AnonymousAllowed, @PermitAll, @RolesAllowed"; private final AccessAnnotationChecker accessAnnotationChecker; diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/CountService.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/CountService.java index 953861ee6a..cf7b0dd7bf 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/CountService.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/CountService.java @@ -1,8 +1,9 @@ package com.vaadin.hilla.crud; -import com.vaadin.hilla.Nullable; import com.vaadin.hilla.crud.filter.Filter; +import org.jspecify.annotations.Nullable; + /** * A browser-callable service that can count the given type of objects with a * given filter. diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/CrudConfiguration.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/CrudConfiguration.java deleted file mode 100644 index b67a3adff0..0000000000 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/CrudConfiguration.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.vaadin.hilla.crud; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.jpa.domain.Specification; - -@Configuration -public class CrudConfiguration { - - @Bean - @ConditionalOnClass(Specification.class) - JpaFilterConverter jpaFilterConverter() { - return new JpaFilterConverter(); - } - -} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/CrudRepositoryService.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/CrudRepositoryService.java index cc9dcd8c1e..f28f9a16c0 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/CrudRepositoryService.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/CrudRepositoryService.java @@ -3,11 +3,11 @@ import java.util.ArrayList; import java.util.List; -import com.vaadin.hilla.EndpointExposed; -import com.vaadin.hilla.Nullable; -import com.vaadin.hilla.crud.filter.Filter; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.repository.CrudRepository; +import org.jspecify.annotations.Nullable; + +import com.vaadin.hilla.EndpointExposed; /** * A browser-callable service that delegates crud operations to a JPA diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/FormService.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/FormService.java index 1b1947c5ee..75ebb350f7 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/FormService.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/FormService.java @@ -1,6 +1,6 @@ package com.vaadin.hilla.crud; -import com.vaadin.hilla.Nullable; +import org.jspecify.annotations.Nullable; /** * A browser-callable service that can create, update, and delete a given type diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/JpaFilterConverter.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/JpaFilterConverter.java index 2a343fc856..d3840b2404 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/JpaFilterConverter.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/JpaFilterConverter.java @@ -1,36 +1,27 @@ package com.vaadin.hilla.crud; -import jakarta.persistence.EntityManager; +import org.springframework.data.jpa.domain.Specification; import com.vaadin.hilla.crud.filter.AndFilter; import com.vaadin.hilla.crud.filter.Filter; import com.vaadin.hilla.crud.filter.OrFilter; import com.vaadin.hilla.crud.filter.PropertyStringFilter; -import jakarta.persistence.criteria.Path; -import jakarta.persistence.criteria.Root; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.stereotype.Component; /** * Utility class for converting Hilla {@link Filter} specifications into JPA * filter specifications. This class can be used to implement filtering for * custom {@link ListService} or {@link CrudService} implementations that use * JPA as the data source. - *

- * This class requires an EntityManager to be available as a Spring bean and - * thus should be injected into the bean that wants to use the converter. - * Manually creating new instances of this class will not work. */ -@Component -public class JpaFilterConverter { +public final class JpaFilterConverter { - @Autowired - private EntityManager em; + private JpaFilterConverter() { + // Utils only + } /** - * Converts the given Hilla filter specification into a JPA filter - * specification for the specified entity class. + * Converts the given filter specification into a JPA filter specification + * for the specified entity class. *

* If the filter contains {@link PropertyStringFilter} instances, their * properties, or nested property paths, need to match the structure of the @@ -45,7 +36,8 @@ public class JpaFilterConverter { * the entity class * @return a JPA filter specification for the given filter */ - public Specification toSpec(Filter rawFilter, Class entity) { + public static Specification toSpec(Filter rawFilter, + Class entity) { if (rawFilter == null) { return Specification.anyOf(); } @@ -56,35 +48,10 @@ public Specification toSpec(Filter rawFilter, Class entity) { return Specification.anyOf(filter.getChildren().stream() .map(f -> toSpec(f, entity)).toList()); } else if (rawFilter instanceof PropertyStringFilter filter) { - Class javaType = extractPropertyJavaType(entity, - filter.getPropertyId()); - return new PropertyStringFilterSpecification<>(filter, javaType); + return new PropertyStringFilterSpecification<>(filter); } else { - if (rawFilter != null) { - throw new IllegalArgumentException("Unknown filter type " - + rawFilter.getClass().getName()); - } - return Specification.anyOf(); + throw new IllegalArgumentException( + "Unknown filter type " + rawFilter.getClass().getName()); } } - - private Class extractPropertyJavaType(Class entity, - String propertyId) { - if (propertyId.contains(".")) { - String[] parts = propertyId.split("\\."); - Root root = em.getCriteriaBuilder().createQuery(entity) - .from(entity); - Path path = root.get(parts[0]); - int i = 1; - while (i < parts.length) { - path = path.get(parts[i]); - i++; - } - return path.getJavaType(); - } else { - return em.getMetamodel().entity(entity).getAttribute(propertyId) - .getJavaType(); - } - } - } diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/ListRepositoryService.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/ListRepositoryService.java index 1e2ae42e34..8ebfb63f31 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/ListRepositoryService.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/ListRepositoryService.java @@ -8,8 +8,9 @@ import com.googlecode.gentyref.GenericTypeReflector; import com.vaadin.hilla.EndpointExposed; -import com.vaadin.hilla.Nullable; import com.vaadin.hilla.crud.filter.Filter; + +import org.jspecify.annotations.Nullable; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.data.domain.Pageable; @@ -25,9 +26,6 @@ public class ListRepositoryService & JpaSpecificationExecutor> implements ListService, GetService, CountService { - @Autowired - private JpaFilterConverter jpaFilterConverter; - @Autowired private ApplicationContext applicationContext; @@ -105,7 +103,7 @@ public long count(@Nullable Filter filter) { * @return a JPA specification */ protected Specification toSpec(@Nullable Filter filter) { - return jpaFilterConverter.toSpec(filter, entityClass); + return JpaFilterConverter.toSpec(filter, entityClass); } @SuppressWarnings("unchecked") diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/ListService.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/ListService.java index 84e2bbdf73..af8baf3140 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/ListService.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/ListService.java @@ -2,11 +2,12 @@ import java.util.List; -import com.vaadin.hilla.Nonnull; -import com.vaadin.hilla.Nullable; -import com.vaadin.hilla.crud.filter.Filter; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import org.springframework.data.domain.Pageable; +import com.vaadin.hilla.crud.filter.Filter; + /** * A browser-callable service that can list the given type of object. */ @@ -21,7 +22,7 @@ public interface ListService { * the filter to apply or {@code null} to not filter * @return a list of objects or an empty list if no objects were found */ - @Nonnull - List<@Nonnull T> list(Pageable pageable, @Nullable Filter filter); + @NonNull + List<@NonNull T> list(Pageable pageable, @Nullable Filter filter); } diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/PropertyStringFilterSpecification.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/PropertyStringFilterSpecification.java index 103a3b4fcf..e06c843f5e 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/PropertyStringFilterSpecification.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/crud/PropertyStringFilterSpecification.java @@ -17,18 +17,16 @@ public class PropertyStringFilterSpecification implements Specification { private final PropertyStringFilter filter; - private final Class javaType; - public PropertyStringFilterSpecification(PropertyStringFilter filter, - Class javaType) { + public PropertyStringFilterSpecification(PropertyStringFilter filter) { this.filter = filter; - this.javaType = javaType; } @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder criteriaBuilder) { String value = filter.getFilterValue(); + Class javaType = getJavaType(filter.getPropertyId(), root); Path propertyPath = getPath(filter.getPropertyId(), root); if (javaType == String.class) { Expression expr = criteriaBuilder.lower(propertyPath); @@ -171,6 +169,21 @@ private Path getPath(String propertyId, Root root) { return path; } + private Class getJavaType(String propertyId, Root root) { + if (propertyId.contains(".")) { + String[] parts = propertyId.split("\\."); + Path path = root.get(parts[0]); + int i = 1; + while (i < parts.length) { + path = path.get(parts[i]); + i++; + } + return path.getJavaType(); + } else { + return root.get(propertyId).getJavaType(); + } + } + private boolean isBoolean(Class javaType) { return javaType == boolean.class || javaType == Boolean.class; } diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/push/PushConfigurer.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/push/PushConfigurer.java index fb9bacb4f8..305840df49 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/push/PushConfigurer.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/push/PushConfigurer.java @@ -4,6 +4,8 @@ import java.util.Collections; import java.util.List; +import com.fasterxml.jackson.databind.ObjectMapper; + import com.vaadin.hilla.EndpointProperties; import org.atmosphere.client.TrackMessageSizeInterceptor; import org.atmosphere.cpr.ApplicationConfig; @@ -14,6 +16,7 @@ import org.atmosphere.interceptor.AtmosphereResourceLifecycleInterceptor; import org.atmosphere.interceptor.SuspendTrackerInterceptor; import org.atmosphere.util.SimpleBroadcaster; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.web.servlet.ServletContextInitializer; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; @@ -46,8 +49,10 @@ public PushConfigurer(EndpointProperties endpointProperties) { } @Bean - PushEndpoint pushEndpoint() { - return new PushEndpoint(); + PushEndpoint pushEndpoint( + @Qualifier("hillaEndpointObjectMapper") ObjectMapper objectMapper, + PushMessageHandler pushMessageHandler) { + return new PushEndpoint(objectMapper, pushMessageHandler); } @Bean diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/push/PushEndpoint.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/push/PushEndpoint.java index 60de0a4d96..57411abf03 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/push/PushEndpoint.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/push/PushEndpoint.java @@ -4,6 +4,8 @@ import java.security.Principal; import java.util.function.Consumer; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import org.atmosphere.cpr.AtmosphereRequest; import org.atmosphere.cpr.AtmosphereResource; import org.atmosphere.cpr.AtmosphereResourceEvent; @@ -12,14 +14,11 @@ import org.atmosphere.util.IOUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextImpl; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - import com.vaadin.hilla.push.messages.fromclient.AbstractServerMessage; import com.vaadin.hilla.push.messages.toclient.AbstractClientMessage; @@ -28,11 +27,15 @@ */ public class PushEndpoint extends AtmosphereHandlerAdapter { - @Autowired private ObjectMapper objectMapper; - @Autowired private PushMessageHandler pushMessageHandler; + PushEndpoint(ObjectMapper objectMapper, + PushMessageHandler pushMessageHandler) { + this.objectMapper = objectMapper; + this.pushMessageHandler = pushMessageHandler; + } + @Override public void onRequest(AtmosphereResource resource) throws IOException { String method = resource.getRequest().getMethod(); @@ -82,6 +85,8 @@ public void onStateChange(AtmosphereResourceEvent event) super.onStateChange(event); if (event.isCancelled() || event.isResumedOnTimeout()) { onDisconnect(event); + } else if (event.isResuming()) { + onReconnect(event); } } @@ -168,6 +173,16 @@ private void onDisconnect(AtmosphereResourceEvent event) { pushMessageHandler.handleBrowserDisconnect(event.getResource().uuid()); } + /** + * Called when the push channel is disconnected. + * + * @param event + * the Atmosphere event + */ + private void onReconnect(AtmosphereResourceEvent event) { + pushMessageHandler.handleBrowserReconnect(event.getResource().uuid()); + } + private void onThrowable(AtmosphereResourceEvent event) { getLogger().error("Exception in push connection", event.throwable()); onDisconnect(event); diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/push/PushMessageHandler.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/push/PushMessageHandler.java index d3e5c6a1e5..e63c3a57dd 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/push/PushMessageHandler.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/push/PushMessageHandler.java @@ -219,6 +219,19 @@ public void handleBrowserConnect(String connectionId) { fluxSubscriptionInfos.put(connectionId, new ConcurrentHashMap<>()); } + /** + * Called when the browser establishes a new connection. + * + * Only ever called once for the same connectionId parameter. + * + * @param connectionId + * the id of the connection + */ + public void handleBrowserReconnect(String connectionId) { + fluxSubscriptionInfos.putIfAbsent(connectionId, + new ConcurrentHashMap<>()); + } + /** * Called when the browser connection has been lost. * diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/route/RouteUnifyingIndexHtmlRequestListener.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/route/RouteUnifyingIndexHtmlRequestListener.java index 858b1dfbe9..e01945b147 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/route/RouteUnifyingIndexHtmlRequestListener.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/route/RouteUnifyingIndexHtmlRequestListener.java @@ -32,9 +32,11 @@ import com.vaadin.flow.server.auth.NavigationAccessControl; import com.vaadin.flow.server.auth.ViewAccessChecker; import com.vaadin.flow.server.menu.AvailableViewInfo; -import com.vaadin.flow.server.menu.MenuRegistry; +import com.vaadin.flow.internal.menu.MenuRegistry; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.core.JsonProcessingException; + import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -63,53 +65,20 @@ public class RouteUnifyingIndexHtmlRequestListener private static final Logger LOGGER = LoggerFactory .getLogger(RouteUnifyingIndexHtmlRequestListener.class); - private final NavigationAccessControl accessControl; - private final DeploymentConfiguration deploymentConfiguration; - private final boolean exposeServerRoutesToClient; - private final ObjectMapper mapper = new ObjectMapper(); - private final ViewAccessChecker viewAccessChecker; - /** - * Creates a new listener instance with the given route registry. - * - * @param deploymentConfiguration - * the runtime deployment configuration - * @param exposeServerRoutesToClient - * whether to expose server routes to the client - */ - public RouteUnifyingIndexHtmlRequestListener( - DeploymentConfiguration deploymentConfiguration, - @Nullable NavigationAccessControl accessControl, - @Nullable ViewAccessChecker viewAccessChecker, - boolean exposeServerRoutesToClient) { - this.deploymentConfiguration = deploymentConfiguration; - this.accessControl = accessControl; - this.viewAccessChecker = viewAccessChecker; - this.exposeServerRoutesToClient = exposeServerRoutesToClient; + private ServerAndClientViewsProvider serverAndClientViewsProvider; - mapper.addMixIn(AvailableViewInfo.class, IgnoreMixin.class); + public RouteUnifyingIndexHtmlRequestListener( + ServerAndClientViewsProvider serverAndClientViewsProvider) { + this.serverAndClientViewsProvider = serverAndClientViewsProvider; } @Override public void modifyIndexHtmlResponse(IndexHtmlResponse response) { - final Map availableViews = new HashMap<>( - collectClientViews(response.getVaadinRequest())); - if (exposeServerRoutesToClient) { - LOGGER.debug( - "Exposing server-side views to the client based on user configuration"); - availableViews - .putAll(collectServerViews(hasMainMenu(availableViews))); - } - - if (availableViews.isEmpty()) { - LOGGER.debug( - "No server-side nor client-side views found, skipping response modification."); - return; - } try { - final String fileRoutesJson = mapper - .writeValueAsString(availableViews); - final String script = SCRIPT_STRING.formatted(fileRoutesJson); + final String script = SCRIPT_STRING + .formatted(serverAndClientViewsProvider + .createFileRoutesJson(response.getVaadinRequest())); response.getDocument().head().appendElement("script") .appendChild(new DataNode(script)); } catch (IOException e) { @@ -119,92 +88,4 @@ public void modifyIndexHtmlResponse(IndexHtmlResponse response) { } } - protected Map collectClientViews( - VaadinRequest request) { - - return MenuRegistry - .collectClientMenuItems(true, deploymentConfiguration, request) - .entrySet().stream() - .filter(view -> !hasRequiredParameter( - view.getValue().routeParameters())) - .collect(Collectors.toMap(Map.Entry::getKey, - Map.Entry::getValue)); - } - - private boolean hasRequiredParameter( - Map routeParameters) { - return routeParameters != null && !routeParameters.isEmpty() - && routeParameters.values().stream().anyMatch( - paramType -> paramType == RouteParamType.REQUIRED); - } - - protected Map collectServerViews( - boolean hasMainMenu) { - final var vaadinService = VaadinService.getCurrent(); - if (vaadinService == null) { - LOGGER.debug( - "No VaadinService found, skipping server view collection"); - return Collections.emptyMap(); - } - final var serverRouteRegistry = vaadinService.getRouter().getRegistry(); - - var accessControls = Stream.of(accessControl, viewAccessChecker) - .filter(Objects::nonNull).toList(); - - var serverRoutes = new HashMap(); - - if (vaadinService.getInstantiator().getMenuAccessControl() - .getPopulateClientSideMenu() == MenuAccessControl.PopulateClientMenu.ALWAYS - || hasMainMenu) { - MenuRegistry.collectAndAddServerMenuItems( - RouteConfiguration.forRegistry(serverRouteRegistry), - accessControls, serverRoutes); - } - - return serverRoutes.values().stream() - .filter(view -> view.routeParameters().values().stream() - .noneMatch(param -> param == RouteParamType.REQUIRED)) - .collect(Collectors.toMap(this::getMenuLink, - Function.identity())); - } - - private boolean hasMainMenu(Map availableViews) { - Map clientItems = new HashMap<>( - availableViews); - - Set clientEntries = new HashSet<>(clientItems.keySet()); - for (String key : clientEntries) { - if (!clientItems.containsKey(key)) { - continue; - } - AvailableViewInfo viewInfo = clientItems.get(key); - if (viewInfo.children() != null) { - RouteUtil.removeChildren(clientItems, viewInfo, key); - } - } - return !clientItems.isEmpty() && clientItems.size() == 1 - && clientItems.values().iterator().next().route().equals(""); - } - - /** - * Gets menu link with omitted route parameters. - * - * @param info - * the menu item's target view - * @return target path for menu link - */ - private String getMenuLink(AvailableViewInfo info) { - final var parameterNames = info.routeParameters().keySet(); - return Stream.of(info.route().split("/")) - .filter(Predicate.not(parameterNames::contains)) - .collect(Collectors.joining("/")); - } - - /** - * Mixin to ignore unwanted fields in the json results. - */ - abstract static class IgnoreMixin { - @JsonIgnore - abstract List children(); // we don't need it! - } } diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/route/RouteUtil.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/route/RouteUtil.java index 64e68739d1..1db3302c3f 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/route/RouteUtil.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/route/RouteUtil.java @@ -5,7 +5,7 @@ import com.vaadin.flow.server.VaadinRequest; import com.vaadin.flow.server.VaadinServletContext; import com.vaadin.flow.server.menu.AvailableViewInfo; -import com.vaadin.flow.server.menu.MenuRegistry; +import com.vaadin.flow.internal.menu.MenuRegistry; import com.vaadin.flow.server.startup.ApplicationConfiguration; import jakarta.servlet.http.HttpServletRequest; diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/route/ServerAndClientViewsProvider.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/route/ServerAndClientViewsProvider.java new file mode 100644 index 0000000000..b755ad7230 --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/route/ServerAndClientViewsProvider.java @@ -0,0 +1,181 @@ +package com.vaadin.hilla.route; + +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.lang.Nullable; + +import com.vaadin.flow.function.DeploymentConfiguration; +import com.vaadin.flow.router.RouteConfiguration; +import com.vaadin.flow.server.VaadinRequest; +import com.vaadin.flow.server.VaadinService; +import com.vaadin.flow.server.auth.MenuAccessControl; +import com.vaadin.flow.server.auth.NavigationAccessControl; +import com.vaadin.flow.server.auth.ViewAccessChecker; +import com.vaadin.flow.server.menu.AvailableViewInfo; +import com.vaadin.flow.internal.menu.MenuRegistry; +import com.vaadin.flow.server.menu.RouteParamType; + +public class ServerAndClientViewsProvider { + + private final NavigationAccessControl accessControl; + private final DeploymentConfiguration deploymentConfiguration; + private final boolean exposeServerRoutesToClient; + private final ObjectMapper mapper = new ObjectMapper(); + private final ViewAccessChecker viewAccessChecker; + + private static final Logger LOGGER = LoggerFactory + .getLogger(ServerAndClientViewsProvider.class); + + /** + * Creates a new listener instance with the given route registry. + * + * @param deploymentConfiguration + * the runtime deployment configuration + * @param exposeServerRoutesToClient + * whether to expose server routes to the client + */ + public ServerAndClientViewsProvider( + DeploymentConfiguration deploymentConfiguration, + @Nullable NavigationAccessControl accessControl, + @Nullable ViewAccessChecker viewAccessChecker, + boolean exposeServerRoutesToClient) { + this.deploymentConfiguration = deploymentConfiguration; + this.accessControl = accessControl; + this.viewAccessChecker = viewAccessChecker; + this.exposeServerRoutesToClient = exposeServerRoutesToClient; + + mapper.addMixIn(AvailableViewInfo.class, IgnoreMixin.class); + } + + public String createFileRoutesJson(VaadinRequest request) + throws JsonProcessingException { + final Map availableViews = new HashMap<>( + collectClientViews(request)); + final boolean hasAutoLayout = MenuRegistry.hasHillaMainLayout( + request.getService().getDeploymentConfiguration()); + if (exposeServerRoutesToClient) { + LOGGER.debug( + "Exposing server-side views to the client based on user configuration"); + availableViews.putAll(collectServerViews(hasAutoLayout)); + } + + return mapper.writeValueAsString(availableViews); + } + + protected Map collectClientViews( + VaadinRequest request) { + + final Map viewInfoMap = MenuRegistry + .collectClientMenuItems(true, deploymentConfiguration, request); + + final Set clientViewEntries = new HashSet<>( + viewInfoMap.keySet()); + for (var path : clientViewEntries) { + if (!viewInfoMap.containsKey(path)) { + continue; + } + + var viewInfo = viewInfoMap.get(path); + // Remove routes with required parameters, including nested ones + if (hasRequiredParameter(viewInfo)) { + viewInfoMap.remove(path); + if (viewInfo.children() != null) { + RouteUtil.removeChildren(viewInfoMap, viewInfo, path); + } + continue; + } + + // Remove layouts + if (viewInfo.children() != null) { + viewInfoMap.remove(path); + } + } + + return viewInfoMap; + } + + private static boolean hasRequiredParameter(AvailableViewInfo viewInfo) { + final Map routeParameters = viewInfo + .routeParameters(); + if (routeParameters != null && !routeParameters.isEmpty() + && routeParameters.values().stream().anyMatch( + paramType -> paramType == RouteParamType.REQUIRED)) { + return true; + } + + // Nested routes could have parameters on the parent, check them also + final AvailableViewInfo parentViewInfo = null; + if (parentViewInfo != null) { + return hasRequiredParameter(parentViewInfo); + } + + return false; + } + + protected Map collectServerViews( + boolean hasMainMenu) { + final var vaadinService = VaadinService.getCurrent(); + if (vaadinService == null) { + LOGGER.debug( + "No VaadinService found, skipping server view collection"); + return Collections.emptyMap(); + } + final var serverRouteRegistry = vaadinService.getRouter().getRegistry(); + + var accessControls = Stream.of(accessControl, viewAccessChecker) + .filter(Objects::nonNull).toList(); + + var serverRoutes = new HashMap(); + + if (vaadinService.getInstantiator().getMenuAccessControl() + .getPopulateClientSideMenu() == MenuAccessControl.PopulateClientMenu.ALWAYS + || hasMainMenu) { + MenuRegistry.collectAndAddServerMenuItems( + RouteConfiguration.forRegistry(serverRouteRegistry), + accessControls, serverRoutes); + } + + return serverRoutes.values().stream() + .filter(view -> view.routeParameters().values().stream() + .noneMatch(param -> param == RouteParamType.REQUIRED)) + .collect(Collectors.toMap(this::getMenuLink, + Function.identity())); + } + + /** + * Gets menu link with omitted route parameters. + * + * @param info + * the menu item's target view + * @return target path for menu link + */ + private String getMenuLink(AvailableViewInfo info) { + final var parameterNames = info.routeParameters().keySet(); + return Stream.of(info.route().split("/")) + .filter(Predicate.not(parameterNames::contains)) + .collect(Collectors.joining("/")); + } + + /** + * Mixin to ignore unwanted fields in the json results. + */ + abstract static class IgnoreMixin { + @JsonIgnore + abstract List children(); // we don't need it! + } +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/ListSignal.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/ListSignal.java new file mode 100644 index 0000000000..9589b46cb1 --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/ListSignal.java @@ -0,0 +1,447 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.vaadin.hilla.signals.core.event.ListStateEvent; +import com.vaadin.hilla.signals.core.event.StateEvent; +import com.vaadin.hilla.signals.core.event.InvalidEventTypeException; +import com.vaadin.hilla.signals.core.event.MissingFieldException; +import com.vaadin.hilla.signals.operation.ListInsertOperation; +import com.vaadin.hilla.signals.operation.ListRemoveOperation; +import com.vaadin.hilla.signals.operation.OperationValidator; +import com.vaadin.hilla.signals.operation.ReplaceValueOperation; +import com.vaadin.hilla.signals.operation.SetValueOperation; +import com.vaadin.hilla.signals.operation.ValidationResult; +import com.vaadin.hilla.signals.operation.ValueOperation; +import jakarta.annotation.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import reactor.core.publisher.Flux; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.UUID; +import java.util.function.Consumer; +import java.util.function.Function; + +import static com.vaadin.hilla.signals.core.event.ListStateEvent.ListEntry; + +public class ListSignal extends Signal { + + private static final class Entry implements ListEntry { + private final UUID id; + private UUID prev; + private UUID next; + private final ValueSignal value; + + public Entry(UUID id, @Nullable UUID prev, @Nullable UUID next, + ValueSignal valueSignal) { + this.id = id; + this.prev = prev; + this.next = next; + this.value = valueSignal; + } + + public Entry(UUID id, ValueSignal valueSignal) { + this(id, null, null, valueSignal); + } + + @Override + public UUID id() { + return id; + } + + @Override + public UUID previous() { + return prev; + } + + @Override + public UUID next() { + return next; + } + + @Override + public V value() { + return value.getValue(); + } + + @Override + public ValueSignal getValueSignal() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof ListEntry entry)) + return false; + return Objects.equals(id, entry.id()); + } + + @Override + public int hashCode() { + return Objects.hashCode(id); + } + } + + private static final Logger LOGGER = LoggerFactory + .getLogger(ListSignal.class); + private final Map> entries = new HashMap<>(); + + private UUID head; + private UUID tail; + + public ListSignal(Class valueType) { + super(valueType); + } + + protected ListSignal(ListSignal delegate) { + super(delegate); + } + + @Override + protected ListSignal getDelegate() { + return (ListSignal) super.getDelegate(); + } + + @Override + public Flux subscribe(String signalId) { + if (getDelegate() != null) { + return getDelegate().subscribe(signalId); + } + var signalEntry = entries.get(UUID.fromString(signalId)); + return signalEntry.value.subscribe(); + } + + @Override + public void submit(ObjectNode event) { + var rawEventType = StateEvent.extractRawEventType(event); + // check if the event is targeting a child signal: + if (StateEvent.EventType.find(rawEventType).isPresent()) { + submitToChild(event); + } else { + super.submit(event); + } + } + + protected void submitToChild(ObjectNode event) { + if (getDelegate() != null) { + getDelegate().submitToChild(event); + return; + } + // For internal signals, the signal id is the event id: + var entryId = StateEvent.extractId(event); + var signalEntry = entries.get(UUID.fromString(entryId)); + if (signalEntry == null) { + LOGGER.debug( + "Signal entry not found for id: {}. Ignoring the event: {}", + entryId, event); + return; + } + signalEntry.value.submit(event); + } + + @Override + protected ObjectNode createSnapshotEvent() { + if (getDelegate() != null) { + return getDelegate().createSnapshotEvent(); + } + var entries = this.entries.values().stream() + .map(entry -> (ListEntry) entry).toList(); + var event = new ListStateEvent<>(getId().toString(), + ListStateEvent.EventType.SNAPSHOT, entries); + event.setAccepted(true); + return event.toJson(); + } + + @Override + protected ObjectNode processEvent(ObjectNode event) { + try { + var stateEvent = new ListStateEvent<>(event, getValueType()); + return switch (stateEvent.getEventType()) { + case INSERT -> handleInsert(stateEvent).toJson(); + case REMOVE -> handleRemoval(stateEvent).toJson(); + default -> throw new UnsupportedOperationException( + "Unsupported event: " + stateEvent.getEventType()); + }; + } catch (InvalidEventTypeException e) { + throw new UnsupportedOperationException( + "Unsupported JSON: " + event, e); + } + } + + protected ListStateEvent handleInsert(ListStateEvent event) { + if (getDelegate() != null) { + return getDelegate().handleInsert(event); + } + if (event.getValue() == null) { + throw new MissingFieldException(StateEvent.Field.VALUE); + } + var toBeInserted = createEntry(event.getValue()); + if (entries.containsKey(toBeInserted.id())) { + // already exists (the chances of this happening are extremely low) + LOGGER.warn( + "Duplicate UUID generation detected when adding a new entry: {}, rejecting the insert event.", + toBeInserted.id()); + event.setAccepted(false); + return event; + } + switch (event.getPosition()) { + case FIRST -> throw new UnsupportedOperationException( + "Insert first is not supported"); + case BEFORE -> throw new UnsupportedOperationException( + "Insert before is not supported"); + case AFTER -> throw new UnsupportedOperationException( + "Insert after is not supported"); + case LAST -> { + if (tail == null) { + // first entry being added: + head = tail = toBeInserted.id(); + } else { + var currentTail = entries.get(tail); + currentTail.next = toBeInserted.id(); + toBeInserted.prev = currentTail.id(); + tail = toBeInserted.id(); + } + entries.put(toBeInserted.id(), toBeInserted); + event.setEntryId(toBeInserted.id()); + event.setAccepted(true); + return event; + } + } + return event; + } + + private Entry createEntry(T value) { + return new Entry<>(UUID.randomUUID(), createValueSignal(value)); + } + + private ValueSignal createValueSignal(T value) { + return new ValueSignal<>(value, getValueType()); + } + + protected ListStateEvent handleRemoval(ListStateEvent event) { + if (getDelegate() != null) { + return getDelegate().handleRemoval(event); + } + if (event.getEntryId() == null) { + throw new MissingFieldException(ListStateEvent.Field.ENTRY_ID); + } + if (head == null || entries.isEmpty()) { + event.setAccepted(false); + return event; + } + var toBeRemovedEntry = entries.get(event.getEntryId()); + if (toBeRemovedEntry == null) { + // no longer exists anyway + event.setAccepted(true); + return event; + } + + if (head.equals(toBeRemovedEntry.id())) { + // removing head + if (toBeRemovedEntry.next() == null) { + // removing the only entry + head = tail = null; + } else { + var newHead = entries.get(toBeRemovedEntry.next()); + head = newHead.id(); + newHead.prev = null; + } + } else { + var prev = entries.get(toBeRemovedEntry.previous()); + var next = entries.get(toBeRemovedEntry.next()); + if (next == null) { + // removing tail + tail = prev.id(); + prev.next = null; + } else { + prev.next = next.id(); + next.prev = prev.id(); + } + } + entries.remove(toBeRemovedEntry.id()); + + event.setAccepted(true); + return event; + } + + protected ListEntry getEntry(UUID entryId) { + return entries.get(entryId); + } + + private static class ValidatedListSignal extends ListSignal { + + private final OperationValidator operationValidator; + + private ValidatedListSignal(ListSignal delegate, + OperationValidator operationValidator) { + super(delegate); + this.operationValidator = operationValidator; + } + + @Override + protected ListStateEvent handleInsert(ListStateEvent event) { + var listInsertOperation = new ListInsertOperation<>(event.getId(), + event.getPosition(), event.getValue()); + var validationResult = operationValidator + .validate(listInsertOperation); + return handleValidationResult(event, validationResult, + super::handleInsert); + } + + @Override + protected ListStateEvent handleRemoval(ListStateEvent event) { + if (event.getEntryId() == null) { + throw new MissingFieldException(ListStateEvent.Field.ENTRY_ID); + } + var entryToRemove = getEntry(event.getEntryId()); + var listRemoveOperation = new ListRemoveOperation<>(event.getId(), + entryToRemove); + var validationResult = operationValidator + .validate(listRemoveOperation); + return handleValidationResult(event, validationResult, + super::handleRemoval); + } + + @Override + protected void submitToChild(ObjectNode event) { + // are we interested in this event: + if (!StateEvent.isSetEvent(event) + && !StateEvent.isReplaceEvent(event)) { + super.submitToChild(event); + return; + } + + var valueOperation = extractValueOperation(event); + var validationResult = operationValidator.validate(valueOperation); + handleValidationResult(event, validationResult, + super::submitToChild); + } + + private ValueOperation extractValueOperation(ObjectNode event) { + if (StateEvent.isSetEvent(event)) { + return SetValueOperation.of(event, getValueType()); + } else if (StateEvent.isReplaceEvent(event)) { + return ReplaceValueOperation.of(event, getValueType()); + } else { + throw new UnsupportedOperationException( + "Unsupported event: " + event); + } + } + + private ListStateEvent handleValidationResult( + ListStateEvent event, ValidationResult validationResult, + Function, ListStateEvent> handler) { + if (validationResult.isOk()) { + return handler.apply(event); + } else { + return rejectEvent(event, validationResult); + } + } + + private ListStateEvent rejectEvent(ListStateEvent event, + ValidationResult result) { + event.setAccepted(false); + event.setValidationError(result.getErrorMessage()); + return event; + } + + private void handleValidationResult(ObjectNode event, + ValidationResult validationResult, + Consumer handler) { + if (validationResult.isOk()) { + handler.accept(event); + } else { + handler.accept(rejectEvent(event, validationResult)); + } + } + + private ObjectNode rejectEvent(ObjectNode event, + ValidationResult result) { + var stateEvent = new StateEvent<>(event, getValueType()); + stateEvent.setAccepted(false); + stateEvent.setValidationError(result.getErrorMessage()); + return stateEvent.toJson(); + } + } + + /** + * Returns a new signal that validates the operations with the provided + * validator. As the same validator is for all operations, the validator + * should be able to handle all operations that the signal supports. + *

+ * For example, the following code creates a signal that disallows adding + * values containing the word "bad": + * + *


+     * ListSignal<String> signal = new ListSignal<>(String.class);
+     * ListSignal<String> noBadWordSignal = signal.withOperationValidator(op -> {
+     *    if (op instanceof ListInsertOperation<String> insertOp && insertOp.value().contains("bad")) {
+     *        return ValidationResult.reject("Bad words are not allowed");
+     *    }
+     *    return ValidationResult.allow();
+     * });
+     * 
+ * + * In the example above, the validator does not cover the set and replace + * operations that can affect the entry values after insertion. + * A similar type checking can be done for the set and replace operation + * if needed. However, the ValueOperation type allows unifying + * the validation logic for all the operations that are manipulating the + * value. + * The following example shows how to define a validator that covers all the + * operations that can affect the entry values: + * + *

+     * ListSignal<String> signal = new ListSignal<>(String.class);
+     * ListSignal<String> noBadWordSignal = signal.withOperationValidator(op -> {
+     *    if (op instanceof ValueOperation<String> valueOp && valueOp.value().contains("bad")) {
+     *        return ValidationResult.reject("Bad words are not allowed");
+     *    }
+     *    return ValidationResult.allow();
+     * });
+     * 
+ * + * As ListInsertOperation, SetValueOperation, and + * ReplaceValueOperation implement the + * ValueOperation, the validator covers all of these + * operations. + * + * @param validator + * the operation validator, not null + * @return a new signal that validates the operations with the provided + * validator + * @throws NullPointerException + * if the validator is null + */ + public ListSignal withOperationValidator( + OperationValidator validator) { + Objects.requireNonNull(validator, "Validator cannot be null"); + return new ValidatedListSignal<>(this, validator); + } + + @Override + public ListSignal asReadonly() { + return this.withOperationValidator(op -> ValidationResult + .reject("Read-only signal does not allow any modifications")); + } +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/NumberSignal.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/NumberSignal.java new file mode 100644 index 0000000000..f74cd41068 --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/NumberSignal.java @@ -0,0 +1,203 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.vaadin.hilla.signals.core.event.InvalidEventTypeException; +import com.vaadin.hilla.signals.core.event.MissingFieldException; +import com.vaadin.hilla.signals.core.event.StateEvent; +import com.vaadin.hilla.signals.operation.IncrementOperation; +import com.vaadin.hilla.signals.operation.OperationValidator; +import com.vaadin.hilla.signals.operation.ReplaceValueOperation; +import com.vaadin.hilla.signals.operation.SetValueOperation; +import com.vaadin.hilla.signals.operation.ValidationResult; + +import java.util.Objects; + +/** + * A signal that holds a number value. + */ +public class NumberSignal extends ValueSignal { + + /** + * Creates a new NumberSignal with the provided default value. + * + * @param defaultValue + * the default value + * + * @throws NullPointerException + * if the default value is null + */ + public NumberSignal(Double defaultValue) { + super(defaultValue, Double.class); + } + + /** + * Creates a new NumberSignal with the default value of 0. + */ + public NumberSignal() { + this(0.0); + } + + protected NumberSignal(NumberSignal delegate) { + super(delegate); + } + + @Override + protected NumberSignal getDelegate() { + return (NumberSignal) super.getDelegate(); + } + + /** + * Processes the event and updates the signal value if needed. Note that + * this method is not thread-safe and should be called from a synchronized + * context. + * + * @param event + * the event to process + * @return true if the event was successfully processed and the + * signal value was updated, false otherwise. + */ + @Override + protected ObjectNode processEvent(ObjectNode event) { + try { + var stateEvent = new StateEvent<>(event, Double.class); + if (!StateEvent.EventType.INCREMENT + .equals(stateEvent.getEventType())) { + return super.processEvent(event); + } + return handleIncrement(stateEvent); + } catch (InvalidEventTypeException | MissingFieldException e) { + throw new UnsupportedOperationException( + "Unsupported JSON: " + event, e); + } + } + + protected ObjectNode handleIncrement(StateEvent stateEvent) { + if (getDelegate() != null) { + return getDelegate().handleIncrement(stateEvent); + } else { + Double expectedValue = getValue(); + Double newValue = expectedValue + stateEvent.getValue(); + boolean accepted = super.compareAndSet(newValue, expectedValue); + stateEvent.setAccepted(accepted); + return stateEvent.toJson(); + } + } + + private static class ValidatedNumberSignal extends NumberSignal { + + private final OperationValidator validator; + + private ValidatedNumberSignal(NumberSignal delegate, + OperationValidator validator) { + super(delegate); + this.validator = validator; + } + + @Override + protected ObjectNode handleIncrement(StateEvent stateEvent) { + var operation = IncrementOperation.of(stateEvent.getId(), + stateEvent.getValue()); + var validationResult = validator.validate(operation); + return handleValidationResult(stateEvent, validationResult, + super::handleIncrement); + } + + @Override + protected ObjectNode handleSetEvent(StateEvent stateEvent) { + var operation = SetValueOperation.of(stateEvent.getId(), + stateEvent.getValue()); + var validation = validator.validate(operation); + return handleValidationResult(stateEvent, validation, + super::handleSetEvent); + } + + @Override + protected ObjectNode handleReplaceEvent(StateEvent stateEvent) { + var operation = ReplaceValueOperation.of(stateEvent.getId(), + stateEvent.getExpected(), stateEvent.getValue()); + var validation = validator.validate(operation); + return handleValidationResult(stateEvent, validation, + super::handleReplaceEvent); + } + } + + /** + * Returns a new signal that validates the operations with the provided + * validator. As the same validator is for all operations, the validator + * should be able to handle all operations that the signal supports. + *

+ * For example, the following code creates a signal that only allows + * increment by 1: + * + *


+     * NumberSignal number = new NumberSignal(42.0);
+     * NumberSignal limitedNumber = number.withOperationValidator(operation -> {
+     *     if (op instanceof IncrementOperation increment
+     *             && increment.value() != 1) {
+     *         return ValidationResult
+     *                 .reject("Only increment by 1 is allowed");
+     *     }
+     *     return ValidationResult.allow();
+     * });
+     * 
+ * + * Note that the above allows other operations without any validations. + * If more concise restrictions are needed, specialized operation type + * should be used: + * + *

+     * NumberSignal number = new NumberSignal(42.0);
+     * NumberSignal limitedNumber = number.withOperationValidator(operation -> {
+     *     return switch (operation) {
+     *         case IncrementOperation increment -> {
+     *             if (increment.value() != 1) {
+     *                 yield ValidationResult
+     *                     .reject("Only increment by 1 is allowed");
+     *             }
+     *             yield ValidationResult.allow();
+     *         }
+     *         case ReplaceValueOperation<Double> ignored ->
+     *                     ValidationResult.reject("No setting is allowed");
+     *         case SetValueOperation<Double> ignored ->
+     *                     ValidationResult.reject("No replacing is allowed");
+     *         default -> ValidationResult.reject("Unknown operation is not allowed");
+     *     };
+     * });
+     * 
+ * + * @param validator + * the operation validator, not null + * @return a new signal that validates the operations with the provided + * validator. + * @throws NullPointerException + * if the validator is null + */ + @Override + public NumberSignal withOperationValidator( + OperationValidator validator) { + Objects.requireNonNull(validator, "Validator cannot be null"); + return new ValidatedNumberSignal(this, validator); + } + + @Override + public NumberSignal asReadonly() { + return this.withOperationValidator(op -> ValidationResult + .reject("Read-only signal does not allow any modifications")); + } +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/Signal.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/Signal.java new file mode 100644 index 0000000000..868f80084c --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/Signal.java @@ -0,0 +1,231 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.vaadin.hilla.signals.core.event.StateEvent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Sinks; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.locks.ReentrantLock; + +public abstract class Signal { + + private final ReentrantLock lock = new ReentrantLock(); + + private final UUID id = UUID.randomUUID(); + + private final Class valueType; + + private final Set> subscribers = new HashSet<>(); + + private final Signal delegate; + + private Signal(Class valueType, Signal delegate) { + this.valueType = Objects.requireNonNull(valueType); + this.delegate = delegate; + } + + public Signal(Class valueType) { + this(valueType, null); + } + + protected Signal(Signal delegate) { + this(Objects.requireNonNull(delegate).getValueType(), delegate); + } + + protected Signal getDelegate() { + return delegate; + } + + /** + * Returns the signal UUID. + * + * @return the id + */ + public UUID getId() { + return this.id; + } + + /** + * Returns the signal value type. + * + * @return the value type + */ + public Class getValueType() { + return valueType; + } + + /** + * Subscribes to the signal. + * + * @return a Flux of JSON events + */ + public Flux subscribe() { + if (delegate != null) { + return delegate.subscribe(); + } + Sinks.Many sink = Sinks.many().unicast() + .onBackpressureBuffer(); + + return sink.asFlux().doOnSubscribe(ignore -> { + getLogger().debug("New Flux subscription..."); + lock.lock(); + try { + var snapshot = createSnapshotEvent(); + sink.tryEmitNext(snapshot); + subscribers.add(sink); + } finally { + lock.unlock(); + } + }).doFinally(ignore -> { + lock.lock(); + try { + getLogger().debug("Unsubscribing from Signal..."); + subscribers.remove(sink); + } finally { + lock.unlock(); + } + }); + } + + /** + * Subscribes to an internal child signal with a specific signal id. + * + * @param signalId + * the internal signal id + * @return a Flux of JSON events + */ + public Flux subscribe(String signalId) { + if (delegate != null) { + return delegate.subscribe(signalId); + } + return subscribe(); + } + + /** + * Submits an event to the signal and notifies subscribers about the change + * of the signal value. + * + * @param event + * the event to submit + */ + public void submit(ObjectNode event) { + lock.lock(); + try { + var processedEvent = StateEvent.isRejected(event) ? event + : processEvent(event); + notifySubscribers(processedEvent); + } finally { + lock.unlock(); + } + } + + private void notifySubscribers(ObjectNode processedEvent) { + if (delegate != null) { + delegate.notifySubscribers(processedEvent); + return; + } + if (StateEvent.isRejected(processedEvent)) { + getLogger().warn( + "Operation with id '{}' is rejected with validator message: '{}'", + StateEvent.extractId(processedEvent), + StateEvent.extractValidationError(processedEvent)); + StateEvent.clearValidationError(processedEvent); + } + subscribers.removeIf(sink -> { + boolean failure = sink.tryEmitNext(processedEvent).isFailure(); + if (failure) { + getLogger().debug("Failed push"); + } + return failure; + }); + } + + /** + * Creates a snapshot event reflecting the current state of the signal. + * + * @return the snapshot event + */ + protected abstract ObjectNode createSnapshotEvent(); + + /** + * Processes the event and updates the signal value if needed. Note that + * this method is not thread-safe and should be called from a synchronized + * context. + * + * @param event + * the event to process + * @return true if the event was successfully processed and the + * signal value was updated, false otherwise. + */ + protected abstract ObjectNode processEvent(ObjectNode event); + + /** + * Returns a read-only instance of the signal that rejects any attempt to + * modify the signal value. The read-only signal, however, receives the same + * updates as the original signal does. + * + * @return the read-only signal + */ + public abstract Signal asReadonly(); + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof Signal signal)) { + return false; + } + return Objects.equals(getId(), signal.getId()); + } + + @Override + public int hashCode() { + return Objects.hashCode(getId()); + } + + /** + * Sets the object mapper to be used for JSON serialization in Signals. This + * is helpful for testing purposes. If not set, the default Hilla endpoint + * object mapper is used. + *

+ * Note: If a custom endpointMapperFactory bean defined + * using the + * {@code EndpointController.ENDPOINT_MAPPER_FACTORY_BEAN_QUALIFIER} + * qualifier, the mapper from that factory is used also in Signals, and + * there is no need to set it manually here. + * + * @param mapper + * the object mapper to be used in Signals + */ + public static void setMapper(ObjectMapper mapper) { + StateEvent.setMapper(mapper); + } + + private Logger getLogger() { + return LoggerFactory.getLogger(Signal.class); + } +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/ValueSignal.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/ValueSignal.java new file mode 100644 index 0000000000..d3e9121aea --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/ValueSignal.java @@ -0,0 +1,279 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.vaadin.hilla.signals.core.event.InvalidEventTypeException; +import com.vaadin.hilla.signals.core.event.MissingFieldException; +import com.vaadin.hilla.signals.core.event.StateEvent; +import jakarta.annotation.Nullable; + +import java.util.Objects; +import java.util.function.Function; + +import com.vaadin.hilla.signals.operation.OperationValidator; +import com.vaadin.hilla.signals.operation.ReplaceValueOperation; +import com.vaadin.hilla.signals.operation.SetValueOperation; +import com.vaadin.hilla.signals.operation.ValidationResult; +import reactor.core.publisher.Flux; + +public class ValueSignal extends Signal { + + private T value; + + /** + * Creates a new ValueSignal with the provided default value. + * + * @param defaultValue + * the default value, not null + * @param valueType + * the value type class, not null + * @throws NullPointerException + * if the default defaultValue or the valueType is + * null + */ + public ValueSignal(T defaultValue, Class valueType) { + this(valueType); + value = Objects.requireNonNull(defaultValue); + } + + /** + * Creates a new ValueSignal with provided valueType and null + * as the default value. + * + * @param valueType + * the value type class, not null + * @throws NullPointerException + * if the default defaultValue or the valueType is + * null + */ + public ValueSignal(Class valueType) { + super(valueType); + } + + protected ValueSignal(ValueSignal delegate) { + super(delegate); + } + + @Override + protected ValueSignal getDelegate() { + return (ValueSignal) super.getDelegate(); + } + + @Override + public Flux subscribe() { + if (getDelegate() != null) { + return getDelegate().subscribe(); + } + return super.subscribe(); + } + + @Override + public Flux subscribe(String signalId) { + if (getDelegate() != null) { + return getDelegate().subscribe(signalId); + } + return subscribe(); + } + + /** + * Returns the signal's current value. + * + * @return the value + */ + @Nullable + public T getValue() { + return getDelegate() != null ? getDelegate().getValue() : this.value; + } + + @Override + protected ObjectNode createSnapshotEvent() { + if (getDelegate() != null) { + return getDelegate().createSnapshotEvent(); + } + var snapshot = new StateEvent<>(getId().toString(), + StateEvent.EventType.SNAPSHOT, this.value); + snapshot.setAccepted(true); + return snapshot.toJson(); + } + + /** + * Processes the event and updates the signal value if needed. Note that + * this method is not thread-safe and should be called from a synchronized + * context. + * + * @param event + * the event to process + * @return the processed event, with the accepted flag set to either + * true or false, and the validation error + * set with the validator message (if case of a failure). + */ + @Override + protected ObjectNode processEvent(ObjectNode event) { + try { + var stateEvent = new StateEvent<>(event, getValueType()); + return switch (stateEvent.getEventType()) { + case SET -> handleSetEvent(stateEvent); + case REPLACE -> handleReplaceEvent(stateEvent); + default -> throw new UnsupportedOperationException( + "Unsupported event: " + stateEvent.getEventType()); + }; + } catch (InvalidEventTypeException | MissingFieldException e) { + throw new UnsupportedOperationException( + "Unsupported JSON: " + event, e); + } + } + + protected ObjectNode handleSetEvent(StateEvent stateEvent) { + if (getDelegate() != null) { + return getDelegate().handleSetEvent(stateEvent); + } else { + this.value = stateEvent.getValue(); + stateEvent.setAccepted(true); + return stateEvent.toJson(); + } + } + + protected ObjectNode handleReplaceEvent(StateEvent stateEvent) { + if (getDelegate() != null) { + return getDelegate().handleReplaceEvent(stateEvent); + } else { + boolean accepted = compareAndSet(stateEvent.getValue(), + stateEvent.getExpected()); + stateEvent.setAccepted(accepted); + return stateEvent.toJson(); + } + } + + /** + * Compares the current value with the expected value and updates the signal + * value if they match. Note that this method is not thread-safe and should + * be called from a synchronized context. + * + * @param newValue + * the new value to set + * @param expectedValue + * the expected value + * @return true if the value was successfully updated, + * false otherwise + */ + protected boolean compareAndSet(T newValue, T expectedValue) { + if (Objects.equals(this.value, expectedValue)) { + this.value = newValue; + return true; + } + return false; + } + + protected ObjectNode handleValidationResult(StateEvent event, + ValidationResult validationResult, + Function, ObjectNode> handler) { + if (validationResult.isOk()) { + return handler.apply(event); + } else { + event.setAccepted(false); + event.setValidationError(validationResult.getErrorMessage()); + return event.toJson(); + } + } + + /** + * Returns a new signal that validates the operations with the provided + * validator. As the same validator is for all operations, the validator + * should be able to handle all operations that the signal supports. + *

+ * For example, the following code creates a signal that disallows setting + * values containing the word "bad": + * + *


+     * ValueSignal<String> signal = new ValueSignal<>("Foo", String.class);
+     * ValueSignal<String> noBadWordSignal = signal.withOperationValidator(op -> {
+     *    if (op instanceof SetValueOperation set && set.value().contains("bad")) {
+     *        return ValidationResult.reject("Bad words are not allowed");
+     *    }
+     *    return ValidationResult.allow();
+     * });
+     * 
+ * + * In the example above, the validator does not cover the replace operation. + * A similar type checking can be done for the replace operation if needed. + * However, the ValueOperation type allows unifying the + * validation logic for all the operations that are manipulating the value. + * The following example shows how to define a validator that covers both + * the set and replace operations: + * + *

+     * ValueSignal<String> signal = new ValueSignal<>("Foo", String.class);
+     * ValueSignal<String> noBadWordSignal = signal.withOperationValidator(op -> {
+     *    if (op instanceof ValueOperation<String> valueOp && valueOp.value().contains("bad")) {
+     *        return ValidationResult.reject("Bad words are not allowed");
+     *    }
+     *    return ValidationResult.allow();
+     * });
+     * 
+ * + * As both SetValueOperation and + * ReplaceValueOperation implement the + * ValueOperation, the validator covers both operations. + * + * @param validator + * the operation validator, not null + * @return a new signal that validates the operations with the provided + * validator + * @throws NullPointerException + * if the validator is null + */ + public ValueSignal withOperationValidator( + OperationValidator validator) { + Objects.requireNonNull(validator, "Validator cannot be null"); + return new ValidatedValueSignal<>(this, validator); + } + + private static class ValidatedValueSignal extends ValueSignal { + private final OperationValidator validator; + + private ValidatedValueSignal(ValueSignal delegate, + OperationValidator validator) { + super(delegate); + this.validator = validator; + } + + @Override + protected ObjectNode handleSetEvent(StateEvent stateEvent) { + var operation = new SetValueOperation<>(stateEvent.getId(), + stateEvent.getValue()); + var validation = validator.validate(operation); + return handleValidationResult(stateEvent, validation, + super::handleSetEvent); + } + + @Override + protected ObjectNode handleReplaceEvent(StateEvent stateEvent) { + var operation = new ReplaceValueOperation<>(stateEvent.getId(), + stateEvent.getExpected(), stateEvent.getValue()); + var validation = validator.validate(operation); + return handleValidationResult(stateEvent, validation, + super::handleReplaceEvent); + } + } + + @Override + public ValueSignal asReadonly() { + return this.withOperationValidator(op -> ValidationResult + .reject("Read-only signal does not allow any modifications")); + } +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/config/SignalsConfiguration.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/config/SignalsConfiguration.java new file mode 100644 index 0000000000..680ff1c500 --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/config/SignalsConfiguration.java @@ -0,0 +1,75 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals.config; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.vaadin.hilla.ConditionalOnFeatureFlag; +import com.vaadin.hilla.EndpointInvoker; +import com.vaadin.hilla.signals.Signal; +import com.vaadin.hilla.signals.core.registry.SecureSignalsRegistry; +import com.vaadin.hilla.signals.handler.SignalsHandler; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * Spring beans configuration for signals. + */ +@Configuration +public class SignalsConfiguration { + + private SecureSignalsRegistry signalsRegistry; + private SignalsHandler signalsHandler; + private final EndpointInvoker endpointInvoker; + + public SignalsConfiguration(EndpointInvoker endpointInvoker, + @Qualifier("hillaEndpointObjectMapper") ObjectMapper hillaEndpointObjectMapper) { + this.endpointInvoker = endpointInvoker; + Signal.setMapper(hillaEndpointObjectMapper); + } + + /** + * Initializes the SignalsRegistry bean when the fullstackSignals feature + * flag is enabled. + * + * @return SignalsRegistry bean instance + */ + @ConditionalOnFeatureFlag("fullstackSignals") + @Bean + public SecureSignalsRegistry signalsRegistry() { + if (signalsRegistry == null) { + signalsRegistry = new SecureSignalsRegistry(endpointInvoker); + } + return signalsRegistry; + } + + /** + * Initializes the SignalsHandler endpoint when the fullstackSignals feature + * flag is enabled. + * + * @return SignalsHandler endpoint instance + */ + @Bean + public SignalsHandler signalsHandler( + @Autowired(required = false) SecureSignalsRegistry signalsRegistry) { + if (signalsHandler == null) { + signalsHandler = new SignalsHandler(signalsRegistry); + } + return signalsHandler; + } +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/core/event/InvalidEventTypeException.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/core/event/InvalidEventTypeException.java new file mode 100644 index 0000000000..71a1d03480 --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/core/event/InvalidEventTypeException.java @@ -0,0 +1,30 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals.core.event; + +/** + * An exception thrown when the event type is null or invalid. + */ +public class InvalidEventTypeException extends RuntimeException { + public InvalidEventTypeException(String message) { + super(message); + } + + public InvalidEventTypeException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/core/event/ListStateEvent.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/core/event/ListStateEvent.java new file mode 100644 index 0000000000..d0a29f1a71 --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/core/event/ListStateEvent.java @@ -0,0 +1,270 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals.core.event; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.vaadin.hilla.signals.ValueSignal; + +import jakarta.annotation.Nullable; + +import java.util.Arrays; +import java.util.Collection; +import java.util.UUID; + +public class ListStateEvent { + + public interface ListEntry { + UUID id(); + + @Nullable + UUID previous(); + + @Nullable + UUID next(); + + T value(); + + ValueSignal getValueSignal(); + } + + @FunctionalInterface + public interface ListEntryFactory { + ListEntry create(UUID id, UUID prev, UUID next, T value, + Class valueType); + } + + /** + * The field names used in the JSON representation of the state event. + */ + public static final class Field { + public static final String NEXT = "next"; + public static final String PREV = "prev"; + public static final String POSITION = "position"; + public static final String ENTRIES = "entries"; + public static final String ENTRY_ID = "entryId"; + public static final String PARENT_SIGNAL_ID = "parentSignalId"; + } + + /** + * Possible types of state events. + */ + public enum InsertPosition { + FIRST, LAST, BEFORE, AFTER; + + public static InsertPosition of(String direction) { + return valueOf(direction.toUpperCase()); + } + } + + /** + * Possible types of state events. + */ + public enum EventType { + SNAPSHOT, INSERT, REMOVE; + + public static EventType of(String type) { + return valueOf(type.toUpperCase()); + } + } + + private final String id; + private final EventType eventType; + private Boolean accepted; + private final T value; + // Only used for snapshot event: + private final Collection> entries; + private UUID entryId; + // Only used for insert event: + private final InsertPosition insertPosition; + private String validationError; + + public ListStateEvent(String id, EventType eventType, + Collection> entries) { + this.id = id; + this.eventType = eventType; + this.insertPosition = null; + this.value = null; + this.entries = entries; + } + + public ListStateEvent(String id, EventType eventType, T value, + InsertPosition insertPosition) { + this.id = id; + this.eventType = eventType; + this.value = value; + this.insertPosition = insertPosition; + this.entries = null; + } + + /** + * Creates a new state event using the given JSON representation. + * + * @param json + * The JSON representation of the event. + */ + public ListStateEvent(ObjectNode json, Class valueType) { + this.id = StateEvent.extractId(json); + this.eventType = extractEventType(json); + this.value = this.eventType == EventType.INSERT + ? StateEvent.convertValue(StateEvent.extractValue(json, true), + valueType) + : null; + this.insertPosition = this.eventType == EventType.INSERT + ? extractPosition(json) + : null; + this.entryId = this.eventType == EventType.REMOVE + ? UUID.fromString(extractEntryId(json)) + : null; + this.entries = null; + } + + private static EventType extractEventType(JsonNode json) { + var rawType = StateEvent.extractRawEventType(json); + try { + return EventType.of(rawType); + } catch (IllegalArgumentException e) { + var message = String.format( + "Invalid event type %s. Type should be one of: %s", rawType, + Arrays.toString(EventType.values())); + throw new InvalidEventTypeException(message, e); + } + } + + private static InsertPosition extractPosition(JsonNode json) { + var rawPosition = json.get(Field.POSITION); + if (rawPosition == null) { + var message = String.format( + "Missing event position. Position is required, and should be one of: %s", + Arrays.toString(InsertPosition.values())); + throw new MissingFieldException(message); + } + try { + return InsertPosition.of(rawPosition.asText()); + } catch (IllegalArgumentException e) { + var message = String.format( + "Invalid event position: %s. Position should be one of: %s", + rawPosition.asText(), + Arrays.toString(InsertPosition.values())); + throw new InvalidEventTypeException(message, e); + } + } + + public static String extractParentSignalId(JsonNode json) { + var rawParentSignalId = json.get(Field.PARENT_SIGNAL_ID); + if (rawParentSignalId == null) { + return null; + } + return rawParentSignalId.asText(); + } + + private static String extractEntryId(JsonNode json) { + var entryId = json.get(Field.ENTRY_ID); + if (entryId == null) { + throw new MissingFieldException(Field.ENTRY_ID); + } + return entryId.asText(); + } + + public ObjectNode toJson() { + ObjectNode snapshotData = StateEvent.MAPPER.createObjectNode(); + snapshotData.put(StateEvent.Field.ID, id); + snapshotData.put(StateEvent.Field.TYPE, eventType.name().toLowerCase()); + if (value != null) { + snapshotData.set(StateEvent.Field.VALUE, + StateEvent.MAPPER.valueToTree(value)); + } + if (entries != null) { + ArrayNode snapshotEntries = StateEvent.MAPPER.createArrayNode(); + entries.forEach(entry -> { + ObjectNode entryNode = snapshotEntries.addObject(); + entryNode.put(StateEvent.Field.ID, entry.id().toString()); + if (entry.next() != null) { + entryNode.put(Field.NEXT, entry.next().toString()); + } + if (entry.previous() != null) { + entryNode.put(Field.PREV, entry.previous().toString()); + } + if (entry.value() != null) { + entryNode.set(StateEvent.Field.VALUE, + StateEvent.MAPPER.valueToTree(entry.value())); + } + }); + snapshotData.set(Field.ENTRIES, snapshotEntries); + } + if (insertPosition != null) { + snapshotData.put(Field.POSITION, + insertPosition.name().toLowerCase()); + } + if (entryId != null) { + snapshotData.put(Field.ENTRY_ID, entryId.toString()); + } + if (accepted != null) { + snapshotData.put(StateEvent.Field.ACCEPTED, accepted); + } + if (validationError != null) { + snapshotData.put(StateEvent.Field.VALIDATION_ERROR, + validationError); + } + return snapshotData; + } + + public String getId() { + return id; + } + + public EventType getEventType() { + return eventType; + } + + public Collection> getEntries() { + return entries; + } + + public T getValue() { + return value; + } + + public InsertPosition getPosition() { + return insertPosition; + } + + public UUID getEntryId() { + return entryId; + } + + public void setEntryId(UUID entryId) { + this.entryId = entryId; + } + + public Boolean getAccepted() { + return accepted; + } + + public void setAccepted(Boolean accepted) { + this.accepted = accepted; + } + + public String getValidationError() { + return validationError; + } + + public void setValidationError(String validationError) { + this.validationError = validationError; + } +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/core/event/MissingFieldException.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/core/event/MissingFieldException.java new file mode 100644 index 0000000000..d893b593dd --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/core/event/MissingFieldException.java @@ -0,0 +1,27 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals.core.event; + +/** + * An exception thrown when a required field is missing in the JSON + * representation of a state event. + */ +public class MissingFieldException extends RuntimeException { + public MissingFieldException(String fieldName) { + super("Missing field: " + fieldName); + } +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/core/event/StateEvent.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/core/event/StateEvent.java new file mode 100644 index 0000000000..c7822a7cef --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/core/event/StateEvent.java @@ -0,0 +1,375 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals.core.event; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; + +import java.util.Arrays; +import java.util.Objects; +import java.util.Optional; + +/** + * A utility class for representing state events out of an ObjectNode. This + * helps to serialize and deserialize state events without getting involved with + * the string literals for field names and event types. + * + * @param + * The type of the value of the event. + */ +public class StateEvent { + + /** + * The field names used in the JSON representation of the state event. + */ + public static final class Field { + public static final String ID = "id"; + public static final String TYPE = "type"; + public static final String VALUE = "value"; + public static final String EXPECTED = "expected"; + public static final String ACCEPTED = "accepted"; + public static final String VALIDATION_ERROR = "validationError"; + } + + /** + * Possible types of state events. + */ + public enum EventType { + SNAPSHOT, SET, REPLACE, INCREMENT; + + public static EventType of(String type) { + return valueOf(type.toUpperCase()); + } + + public static Optional find(String type) { + return Arrays.stream(values()) + .filter(e -> e.name().equalsIgnoreCase(type)).findFirst(); + } + } + + static ObjectMapper MAPPER; + + private final String id; + private final EventType eventType; + private final T value; + private final T expected; + private Boolean accepted; + private String validationError; + + /** + * Creates a new state event using the given parameters. + * + * @param id + * The unique identifier of the event. + * @param eventType + * The type of the event. + * @param value + * The value of the event. + * @param expected + * The expected value of the event before the change is applied. + */ + public StateEvent(String id, EventType eventType, T value, T expected) { + this.id = id; + this.eventType = eventType; + this.value = value; + this.expected = expected; + } + + /** + * Creates a new state event using the given parameters. + * + * @param id + * The unique identifier of the event. + * @param eventType + * The type of the event. + * @param value + * The value of the event. + */ + public StateEvent(String id, EventType eventType, T value) { + this(id, eventType, value, null); + } + + /** + * Creates a new state event using the given JSON representation. + * + * @param json + * The JSON representation of the event. + */ + public StateEvent(ObjectNode json, Class valueType) { + this.id = extractId(json); + this.eventType = extractEventType(json); + this.value = convertValue(extractValue(json, true), valueType); + + JsonNode expected = json.get(Field.EXPECTED); + this.expected = convertValue(expected, valueType); + + } + + /** + * Sets the object mapper to be used for serialization and deserialization + * of state events in Signal library. + * + * @param mapper + * The object mapper to be used for serialization and + * deserialization of state events. + */ + public static void setMapper(ObjectMapper mapper) { + MAPPER = mapper; + } + + public static X convertValue(JsonNode rawValue, Class valueType) { + if (rawValue == null) { + return null; + } + return MAPPER.convertValue(rawValue, valueType); + } + + public static String extractId(JsonNode json) { + var id = json.get(Field.ID); + if (id == null) { + throw new MissingFieldException(Field.ID); + } + return id.asText(); + } + + public static JsonNode extractValue(JsonNode json, boolean required) { + var value = json.get(Field.VALUE); + if (value == null) { + if (required) { + throw new MissingFieldException(Field.VALUE); + } + return null; + } + return value; + } + + public static JsonNode extractExpected(JsonNode json, boolean required) { + var expected = json.get(Field.EXPECTED); + if (expected == null) { + if (required) { + throw new MissingFieldException(Field.EXPECTED); + } + return null; + } + return expected; + } + + public static String extractRawEventType(JsonNode json) { + var rawType = json.get(Field.TYPE); + if (rawType == null) { + var message = String.format( + "Missing event type. Type is required, and should be one of: %s", + Arrays.toString(EventType.values())); + throw new MissingFieldException(message); + } + return rawType.asText(); + } + + public static EventType extractEventType(JsonNode json) { + var rawType = extractRawEventType(json); + try { + return EventType.of(rawType); + } catch (IllegalArgumentException e) { + var message = String.format( + "Invalid event type %s. Type should be one of: %s", rawType, + Arrays.toString(EventType.values())); + throw new InvalidEventTypeException(message, e); + } + } + + /** + * Checks if the given JSON object represents a SET state event. + * + * @param event + * The JSON object to check. + * @return true if the given JSON object represents a SET state + * event, false otherwise. + * @throws MissingFieldException + * If the event does not contain the TYPE field. + * @throws InvalidEventTypeException + * If the event contains an invalid event type. + */ + public static boolean isSetEvent(ObjectNode event) { + var rawEventType = StateEvent.extractRawEventType(event); + if (rawEventType == null) { + throw new MissingFieldException(Field.TYPE); + } + var eventType = StateEvent.EventType.find(rawEventType) + .orElseThrow(() -> new InvalidEventTypeException(rawEventType)); + return eventType == EventType.SET; + } + + /** + * Checks if the given JSON object represents a REPLACE state event. + * + * @param event + * The JSON object to check. + * @return true if the given JSON object represents a REPLACE + * state event, false otherwise. + * @throws MissingFieldException + * If the event does not contain the TYPE field. + * @throws InvalidEventTypeException + * If the event contains an invalid event type. + */ + public static boolean isReplaceEvent(ObjectNode event) { + var rawEventType = StateEvent.extractRawEventType(event); + if (rawEventType == null) { + throw new MissingFieldException(Field.TYPE); + } + var eventType = StateEvent.EventType.find(rawEventType) + .orElseThrow(() -> new InvalidEventTypeException(rawEventType)); + return eventType == EventType.REPLACE; + } + + /** + * Returns the JSON representation of the event. + * + * @return The JSON representation of the event. + */ + public ObjectNode toJson() { + ObjectNode json = MAPPER.createObjectNode(); + json.put(Field.ID, id); + json.put(Field.TYPE, eventType.name().toLowerCase()); + json.set(Field.VALUE, valueAsJsonNode(getValue())); + if (getExpected() != null) { + json.set(Field.EXPECTED, valueAsJsonNode(getExpected())); + } + if (accepted != null) { + json.put(Field.ACCEPTED, accepted); + } + if (validationError != null) { + json.put(StateEvent.Field.VALIDATION_ERROR, validationError); + } + return json; + } + + public static boolean isAccepted(ObjectNode event) { + return event.has(Field.ACCEPTED) + && event.get(Field.ACCEPTED).asBoolean(); + } + + public static boolean isRejected(ObjectNode event) { + return event.has(Field.ACCEPTED) + && !event.get(Field.ACCEPTED).asBoolean() + && event.has(Field.VALIDATION_ERROR) + && !event.get(Field.VALIDATION_ERROR).asText().isBlank(); + } + + public static String extractValidationError(ObjectNode event) { + if (!isRejected(event)) { + throw new IllegalStateException( + "The event is not rejected, so it does not have a validation error"); + } + return event.get(Field.VALIDATION_ERROR).asText(); + } + + public static void clearValidationError(ObjectNode event) { + if (!isRejected(event)) { + throw new IllegalStateException( + "The event is not rejected, so it does not have a validation error"); + } + event.remove(Field.VALIDATION_ERROR); + } + + private static JsonNode valueAsJsonNode(Object value) { + return MAPPER.valueToTree(value); + } + + /** + * Returns the unique identifier of the event. + * + * @return The unique identifier of the event. + */ + public String getId() { + return id; + } + + /** + * Returns the type of the event. + * + * @return The type of the event. + */ + public EventType getEventType() { + return eventType; + } + + /** + * Returns the value of the event. + * + * @return The value of the event. + */ + public T getValue() { + return value; + } + + /** + * Returns the expected value of the event if exists. + * + * @return The expected value of the event if exists. + */ + public T getExpected() { + return expected; + } + + /** + * Returns whether the event was accepted or not. + * + * @return whether the event was accepted or not. + */ + public Boolean getAccepted() { + return accepted; + } + + /** + * Sets whether the event was accepted or not. + * + * @param accepted + * whether the event was accepted or not. + */ + public void setAccepted(Boolean accepted) { + this.accepted = accepted; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof StateEvent that)) { + return false; + } + return Objects.equals(getId(), that.getId()); + } + + @Override + public int hashCode() { + return Objects.hash(getId()); + } + + public String getValidationError() { + return validationError; + } + + public void setValidationError(String validationError) { + this.validationError = validationError; + } + + public void clearValidationError() { + this.validationError = null; + } +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/core/registry/SecureSignalsRegistry.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/core/registry/SecureSignalsRegistry.java new file mode 100644 index 0000000000..682a2f5acc --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/core/registry/SecureSignalsRegistry.java @@ -0,0 +1,125 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals.core.registry; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.vaadin.hilla.AuthenticationUtil; +import com.vaadin.hilla.EndpointInvocationException; +import com.vaadin.hilla.EndpointInvoker; +import com.vaadin.hilla.EndpointRegistry; +import com.vaadin.hilla.signals.Signal; +import jakarta.validation.constraints.NotNull; +import org.springframework.stereotype.Component; + +import java.lang.reflect.Method; +import java.security.Principal; +import java.util.HashMap; +import java.util.Map; +import java.util.function.Function; + +/** + * Proxy for the accessing the SignalRegistry. + */ +@Component +public class SecureSignalsRegistry { + + record EndpointMethod(String endpoint, String method) { + } + + private final Map endpointMethods = new HashMap<>(); + private final SignalsRegistry delegate; + private final EndpointInvoker invoker; + + public SecureSignalsRegistry(EndpointInvoker invoker) { + this.invoker = invoker; + this.delegate = new SignalsRegistry(); + } + + public synchronized void register(String clientSignalId, + String endpointName, String methodName, ObjectNode body) + throws EndpointInvocationException.EndpointAccessDeniedException, + EndpointInvocationException.EndpointNotFoundException, + EndpointInvocationException.EndpointBadRequestException, + EndpointInvocationException.EndpointInternalException { + Principal principal = AuthenticationUtil + .getSecurityHolderAuthentication(); + Function isInRole = AuthenticationUtil + .getSecurityHolderRoleChecker(); + checkAccess(endpointName, methodName, principal, isInRole); + + Signal signal = (Signal) invoker.invoke(endpointName, methodName, + body, principal, isInRole); + endpointMethods.put(clientSignalId, + new EndpointMethod(endpointName, methodName)); + delegate.register(clientSignalId, signal); + } + + public synchronized void unsubscribe(String clientSignalId) { + var endpointMethodInfo = endpointMethods.get(clientSignalId); + if (endpointMethodInfo == null) { + return; + } + delegate.removeClientSignalToSignalMapping(clientSignalId); + endpointMethods.remove(clientSignalId); + } + + public synchronized Signal get(String clientSignalId) + throws EndpointInvocationException.EndpointAccessDeniedException, + EndpointInvocationException.EndpointNotFoundException { + var endpointMethodInfo = endpointMethods.get(clientSignalId); + if (endpointMethodInfo == null) { + return null; + } + checkAccess(endpointMethodInfo.endpoint, endpointMethodInfo.method); + return delegate.get(clientSignalId); + } + + private void checkAccess(String endpointName, String methodName) + throws EndpointInvocationException.EndpointNotFoundException, + EndpointInvocationException.EndpointAccessDeniedException { + Principal principal = AuthenticationUtil + .getSecurityHolderAuthentication(); + Function isInRole = AuthenticationUtil + .getSecurityHolderRoleChecker(); + checkAccess(endpointName, methodName, principal, isInRole); + } + + private void checkAccess(String endpointName, String methodName, + Principal principal, Function isInRole) + throws EndpointInvocationException.EndpointNotFoundException, + EndpointInvocationException.EndpointAccessDeniedException { + EndpointRegistry.VaadinEndpointData endpointData = invoker + .getVaadinEndpointData(endpointName); + Method method = getMethod(endpointData, methodName); + var checkError = invoker.checkAccess(endpointData, method, principal, + isInRole); + if (checkError != null) { + throw new EndpointInvocationException.EndpointAccessDeniedException( + String.format( + "Endpoint '%s' method '%s' request cannot be accessed, reason: '%s'", + endpointName, methodName, checkError)); + } + } + + private Method getMethod( + @NotNull EndpointRegistry.VaadinEndpointData endpointData, + String methodName) + throws EndpointInvocationException.EndpointNotFoundException { + return endpointData.getMethod(methodName).orElseThrow( + EndpointInvocationException.EndpointNotFoundException::new); + } +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/core/registry/SignalsRegistry.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/core/registry/SignalsRegistry.java new file mode 100644 index 0000000000..e6b9e86cbb --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/core/registry/SignalsRegistry.java @@ -0,0 +1,224 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals.core.registry; + +import com.vaadin.hilla.signals.Signal; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.UUID; +import java.util.WeakHashMap; +import java.util.stream.Collectors; + +/** + * A registry for signal instances and their client signal id mappings. + */ +public final class SignalsRegistry { + + private static final Logger LOGGER = LoggerFactory + .getLogger(SignalsRegistry.class); + private final Map> signals = new WeakHashMap<>(); + private final Map clientSignalToSignalMapping = new HashMap<>(); + + SignalsRegistry() { + } + + /** + * Registers a signal instance and creates an association between the + * provided {@code clientSignalId} and {@code signal}. + *

+ * If the signal is already registered, signal instance registration is + * skipped. if the mapping between the provided {@code clientSignalId} and + * {@code signal} is already registered, the mapping is skipped, too. + * + * @param clientSignalId + * the client signal id, must not be null + * @param signal + * the signal instance, must not be null + * @throws NullPointerException + * if {@code clientSignalId} or {@code signal} is null + */ + public synchronized void register(String clientSignalId, Signal signal) { + Objects.requireNonNull(clientSignalId, + "Client signal id must not be null"); + Objects.requireNonNull(signal, "Signal must not be null"); + if (!signals.containsKey(signal.getId())) { + signals.put(signal.getId(), signal); + } + if (!clientSignalToSignalMapping.containsKey(clientSignalId)) { + clientSignalToSignalMapping.put(clientSignalId, signal.getId()); + } + LOGGER.debug("Registered client-signal: {} => signal: {}", + clientSignalId, signal.getId()); + } + + /** + * Get a signal instance by the provided {@code clientSignalId}. + *

+ * + * @param clientSignalId + * the client signal id, must not be null + * + * @return the signal instance, or null if no signal is found for the + * provided {@code clientSignalId} + * @throws NullPointerException + * if {@code clientSignalId} is null + */ + public synchronized Signal get(String clientSignalId) { + Objects.requireNonNull(clientSignalId, + "Client signal id must not be null"); + UUID signalId = clientSignalToSignalMapping.get(clientSignalId); + if (signalId == null) { + LOGGER.debug("No associated signal found for client signal id: {}", + clientSignalId); + return null; + } + return signals.get(signalId); + } + + /** + * Get a signal instance by the provided {@code signalId}. + *

+ * + * @param signalId + * the signal id, must not be null + * + * @return the signal instance, or null if no signal is found for the + * provided {@code signalId} + * @throws NullPointerException + * if {@code signalId} is null + */ + public synchronized Signal getBySignalId(UUID signalId) { + Objects.requireNonNull(signalId, "Signal id must not be null"); + return signals.get(signalId); + } + + /** + * Checks if a mapping exists between a registered signal instance and the + * provided {@code clientSignalId}. + * + * @param clientSignalId + * the client signal id, must not be null + * @return true if the signal instance is registered, false otherwise + * @throws NullPointerException + * if {@code signalId} is null + */ + public synchronized boolean contains(String clientSignalId) { + Objects.requireNonNull(clientSignalId, + "Client signal id must not be null"); + if (!clientSignalToSignalMapping.containsKey(clientSignalId)) { + return false; + } + var signalId = clientSignalToSignalMapping.get(clientSignalId); + if (!signals.containsKey(signalId)) { + throw new IllegalStateException(String.format( + "A mapping for client Signal exists, but the signal itself is not registered. Client signal id: %s", + clientSignalId)); + } + return true; + } + + /** + * Removes a signal instance by the provided {@code signalId}. + *

+ * It also removes all the possible associated client signals, too. + * + * @param signalId + * the signal id, must not be null + * @throws NullPointerException + * if {@code signalId} is null + */ + public synchronized void unregister(UUID signalId) { + Objects.requireNonNull(signalId, + "Signal id to remove must not be null"); + signals.remove(signalId); + clientSignalToSignalMapping.values().removeIf(signalId::equals); + LOGGER.debug( + "Removed signal {}, and the possible mappings between for its associated client signals, too.", + signalId); + } + + /** + * Removes only the mapping between a signal instance and the provided + * {@code clientSignalId}. + * + * @param clientSignalId + * the client signal id, must not be null + * @throws NullPointerException + * if {@code clientSignalId} is null + */ + public synchronized void removeClientSignalToSignalMapping( + String clientSignalId) { + Objects.requireNonNull(clientSignalId, + "Client signal id to remove must not be null"); + clientSignalToSignalMapping.remove(clientSignalId); + LOGGER.debug("Removed client signal to signal mapping: {}", + clientSignalId); + } + + /** + * Checks if the registry is empty. + * + * @return true if the registry is empty, false otherwise + */ + public synchronized boolean isEmpty() { + return signals.isEmpty(); + } + + /** + * Returns the number of registered signal instances. + * + * @return the number of registered signal instances + */ + public synchronized int size() { + return signals.size(); + } + + /** + * Returns the number of registered unique mappings between client signal + * ids and the signal instances. + * + * @return the number of registered client signals + */ + public synchronized int getAllClientSubscriptionsSize() { + return clientSignalToSignalMapping.size(); + } + + /** + * Returns the Set of registered client signal ids for the provided + * {@code signalId}. + * + * @param signalId + * the signal id, must not be null + * @return the Set of registered client signal ids + * @throws NullPointerException + * if {@code signalId} is null + */ + public synchronized Set getAllClientSignalIdsFor(UUID signalId) { + Objects.requireNonNull(signalId, "Signal id must not be null"); + if (!signals.containsKey(signalId)) { + return Set.of(); + } + return clientSignalToSignalMapping.entrySet().stream() + .filter(entry -> entry.getValue().equals(signalId)) + .map(Map.Entry::getKey).collect(Collectors.toUnmodifiableSet()); + } +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/handler/SignalsHandler.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/handler/SignalsHandler.java new file mode 100644 index 0000000000..ccd36073be --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/handler/SignalsHandler.java @@ -0,0 +1,134 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals.handler; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.vaadin.flow.server.auth.AnonymousAllowed; +import com.vaadin.hilla.BrowserCallable; +import com.vaadin.hilla.EndpointInvocationException; +import com.vaadin.hilla.signals.core.event.ListStateEvent; +import com.vaadin.hilla.signals.core.registry.SecureSignalsRegistry; +import jakarta.annotation.Nullable; +import reactor.core.publisher.Flux; + +/** + * Handler Endpoint for Fullstack Signals' subscription and update events. + */ +@AnonymousAllowed +@BrowserCallable +public class SignalsHandler { + + private static final String FEATURE_FLAG_ERROR_MESSAGE = """ + %n + *********************************************************************************************************************** + * The Hilla Fullstack Signals API is currently considered experimental and may change in the future. * + * To use it you need to explicitly enable it in Copilot, or by adding com.vaadin.experimental.fullstackSignals=true * + * to src/main/resources/vaadin-featureflags.properties. * + *********************************************************************************************************************** + %n""" + .stripIndent(); + + private final SecureSignalsRegistry registry; + + public SignalsHandler(@Nullable SecureSignalsRegistry registry) { + this.registry = registry; + } + + /** + * Subscribes to a signal. + * + * @param providerEndpoint + * the endpoint that provides the signal + * @param providerMethod + * the endpoint method that provides the signal + * @param clientSignalId + * the client signal id + * + * @return a Flux of JSON events + */ + public Flux subscribe(String providerEndpoint, + String providerMethod, String clientSignalId, ObjectNode body, + @Nullable String parentClientSignalId) { + if (registry == null) { + throw new IllegalStateException( + String.format(FEATURE_FLAG_ERROR_MESSAGE)); + } + try { + if (parentClientSignalId != null) { + return subscribe(parentClientSignalId, clientSignalId); + } + var signal = registry.get(clientSignalId); + if (signal != null) { + return signal.subscribe().doFinally( + (event) -> registry.unsubscribe(clientSignalId)); + } + registry.register(clientSignalId, providerEndpoint, providerMethod, + body); + return registry.get(clientSignalId).subscribe() + .doFinally((event) -> registry.unsubscribe(clientSignalId)); + } catch (Exception e) { + return Flux.error(e); + } + } + + private Flux subscribe(String parentClientSignalId, + String clientSignalId) + throws EndpointInvocationException.EndpointAccessDeniedException, + EndpointInvocationException.EndpointNotFoundException { + var parentSignal = registry.get(parentClientSignalId); + if (parentSignal == null) { + throw new IllegalStateException(String.format( + "Parent Signal not found for parent client signal id: %s", + parentClientSignalId)); + } + return parentSignal.subscribe(clientSignalId) + .doFinally((event) -> registry.unsubscribe(clientSignalId)); + } + + /** + * Updates a signal with an event. + * + * @param clientSignalId + * the clientSignalId associated with the signal to update + * @param event + * the event to update with + */ + public void update(String clientSignalId, ObjectNode event) + throws EndpointInvocationException.EndpointAccessDeniedException, + EndpointInvocationException.EndpointNotFoundException { + if (registry == null) { + throw new IllegalStateException( + String.format(FEATURE_FLAG_ERROR_MESSAGE)); + } + var parentSignalId = ListStateEvent.extractParentSignalId(event); + if (parentSignalId != null) { + if (registry.get(parentSignalId) == null) { + throw new IllegalStateException(String.format( + "Parent Signal not found for signal id: %s", + parentSignalId)); + } + registry.get(parentSignalId).submit(event); + } else { + if (registry.get(clientSignalId) == null) { + throw new IllegalStateException( + String.format("Signal not found for client signal: %s", + clientSignalId)); + } + registry.get(clientSignalId).submit(event); + } + } +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/handler/package-info.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/handler/package-info.java new file mode 100644 index 0000000000..01566a1346 --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/handler/package-info.java @@ -0,0 +1,4 @@ +@NonNullApi +package com.vaadin.hilla.signals.handler; + +import org.springframework.lang.NonNullApi; diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/IncrementOperation.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/IncrementOperation.java new file mode 100644 index 0000000000..d98ab5d34d --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/IncrementOperation.java @@ -0,0 +1,24 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals.operation; + +public record IncrementOperation(String operationId, Double value) implements ValueOperation { + + public static IncrementOperation of(String operationId, Double value) { + return new IncrementOperation(operationId, value); + } +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/ListInsertOperation.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/ListInsertOperation.java new file mode 100644 index 0000000000..eef3e4496e --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/ListInsertOperation.java @@ -0,0 +1,25 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals.operation; + +import com.vaadin.hilla.signals.core.event.ListStateEvent; + +public record ListInsertOperation( + String operationId, + ListStateEvent.InsertPosition position, + T value +) implements ValueOperation {} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/ListRemoveOperation.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/ListRemoveOperation.java new file mode 100644 index 0000000000..46dac9a1a1 --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/ListRemoveOperation.java @@ -0,0 +1,24 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals.operation; + +import com.vaadin.hilla.signals.core.event.ListStateEvent; + +public record ListRemoveOperation( + String operationId, + ListStateEvent.ListEntry entryToRemove +) implements SignalOperation {} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/OperationValidator.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/OperationValidator.java new file mode 100644 index 0000000000..de0b751b09 --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/OperationValidator.java @@ -0,0 +1,22 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals.operation; + +@FunctionalInterface +public interface OperationValidator { + ValidationResult validate(SignalOperation operation); +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/ReplaceValueOperation.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/ReplaceValueOperation.java new file mode 100644 index 0000000000..55764d947b --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/ReplaceValueOperation.java @@ -0,0 +1,35 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals.operation; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.vaadin.hilla.signals.core.event.StateEvent; + +public record ReplaceValueOperation(String operationId, T expected, T value) implements ValueOperation { + + public static ReplaceValueOperation of(ObjectNode event, Class valueType) { + var rawValue = StateEvent.extractValue(event, true); + var rawExpected = StateEvent.extractExpected(event, true); + return new ReplaceValueOperation<>(StateEvent.extractId(event), + StateEvent.convertValue(rawExpected, valueType), + StateEvent.convertValue(rawValue, valueType)); + } + + public static ReplaceValueOperation of(String operationId, T expected, T value) { + return new ReplaceValueOperation<>(operationId, expected, value); + } +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/SetValueOperation.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/SetValueOperation.java new file mode 100644 index 0000000000..1a3d7081b6 --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/SetValueOperation.java @@ -0,0 +1,33 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals.operation; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.vaadin.hilla.signals.core.event.StateEvent; + +public record SetValueOperation(String operationId, T value) implements ValueOperation { + + public static SetValueOperation of(ObjectNode event, Class valueType) { + var rawValue = StateEvent.extractValue(event, true); + return new SetValueOperation<>(StateEvent.extractId(event), + StateEvent.convertValue(rawValue, valueType)); + } + + public static SetValueOperation of(String operationId, T value) { + return new SetValueOperation<>(operationId, value); + } +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/SignalOperation.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/SignalOperation.java new file mode 100644 index 0000000000..28269a8407 --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/SignalOperation.java @@ -0,0 +1,21 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals.operation; + +public interface SignalOperation { + String operationId(); +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/ValidationResult.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/ValidationResult.java new file mode 100644 index 0000000000..a16e292234 --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/ValidationResult.java @@ -0,0 +1,61 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals.operation; + +public class ValidationResult { + + public enum Status { + ALLOWED, REJECTED + } + + private final Status status; + private final String errorMessage; + + private ValidationResult(Status status, String errorMessage) { + this.status = status; + this.errorMessage = errorMessage; + } + + private ValidationResult(Status status) { + this.status = status; + this.errorMessage = null; + } + + public Status getStatus() { + return status; + } + + public String getErrorMessage() { + return errorMessage; + } + + public boolean isOk() { + return status == Status.ALLOWED; + } + + public boolean isRejected() { + return status == Status.REJECTED; + } + + public static ValidationResult reject(String errorMessage) { + return new ValidationResult(Status.REJECTED, errorMessage); + } + + public static ValidationResult allow() { + return new ValidationResult(Status.ALLOWED); + } +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/ValueOperation.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/ValueOperation.java new file mode 100644 index 0000000000..c1fc427a85 --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/operation/ValueOperation.java @@ -0,0 +1,21 @@ +/* + * Copyright 2000-2024 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.hilla.signals.operation; + +public interface ValueOperation extends SignalOperation { + T value(); +} diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/package-info.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/package-info.java new file mode 100644 index 0000000000..99b7c4c60e --- /dev/null +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/signals/package-info.java @@ -0,0 +1,4 @@ +@NonNullApi +package com.vaadin.hilla.signals; + +import org.springframework.lang.NonNullApi; diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/startup/EndpointRegistryInitializer.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/startup/EndpointRegistryInitializer.java index 05a77ca3ec..f1db03929e 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/startup/EndpointRegistryInitializer.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/startup/EndpointRegistryInitializer.java @@ -1,26 +1,13 @@ package com.vaadin.hilla.startup; -import com.vaadin.flow.function.DeploymentConfiguration; import com.vaadin.flow.server.ServiceInitEvent; import com.vaadin.flow.server.VaadinServiceInitListener; import com.vaadin.hilla.EndpointController; -import com.vaadin.hilla.engine.EngineConfiguration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import java.net.MalformedURLException; -import java.net.URL; - @Component public class EndpointRegistryInitializer implements VaadinServiceInitListener { - private static final Logger LOGGER = LoggerFactory - .getLogger(EndpointRegistryInitializer.class); - - private static final String OPEN_API_PROD_RESOURCE_PATH = '/' - + EngineConfiguration.OPEN_API_PATH; - private final EndpointController endpointController; public EndpointRegistryInitializer(EndpointController endpointController) { @@ -29,28 +16,6 @@ public EndpointRegistryInitializer(EndpointController endpointController) { @Override public void serviceInit(ServiceInitEvent event) { - var deploymentConfig = event.getSource().getDeploymentConfiguration(); - var openApiResource = getOpenApiAsResource(deploymentConfig); - endpointController.registerEndpoints(openApiResource); - } - - private URL getOpenApiAsResource(DeploymentConfiguration deploymentConfig) { - if (deploymentConfig.isProductionMode()) { - return getClass().getResource(OPEN_API_PROD_RESOURCE_PATH); - } - var openApiPathInDevMode = deploymentConfig.getProjectFolder().toPath() - .resolve(deploymentConfig.getBuildFolder()) - .resolve(EngineConfiguration.OPEN_API_PATH); - try { - return openApiPathInDevMode.toFile().exists() - ? openApiPathInDevMode.toUri().toURL() - : null; - } catch (MalformedURLException e) { - LOGGER.debug(String.format( - "%s Mode: Path %s to resource %s seems to be malformed/could not be parsed. ", - deploymentConfig.getMode(), openApiPathInDevMode.toUri(), - EngineConfiguration.OPEN_API_PATH), e); - return null; - } + endpointController.registerEndpoints(); } } diff --git a/packages/java/endpoint/src/main/java/com/vaadin/hilla/startup/RouteUnifyingServiceInitListener.java b/packages/java/endpoint/src/main/java/com/vaadin/hilla/startup/RouteUnifyingServiceInitListener.java index 85ef0fc72f..6d751f9818 100644 --- a/packages/java/endpoint/src/main/java/com/vaadin/hilla/startup/RouteUnifyingServiceInitListener.java +++ b/packages/java/endpoint/src/main/java/com/vaadin/hilla/startup/RouteUnifyingServiceInitListener.java @@ -16,15 +16,23 @@ package com.vaadin.hilla.startup; +import com.vaadin.flow.server.HandlerHelper; import com.vaadin.flow.server.ServiceInitEvent; +import com.vaadin.flow.server.SynchronizedRequestHandler; +import com.vaadin.flow.server.VaadinRequest; +import com.vaadin.flow.server.VaadinResponse; import com.vaadin.flow.server.VaadinServiceInitListener; +import com.vaadin.flow.server.VaadinSession; import com.vaadin.flow.server.auth.NavigationAccessControl; import com.vaadin.flow.server.auth.ViewAccessChecker; import com.vaadin.flow.server.menu.AvailableViewInfo; -import com.vaadin.flow.server.menu.MenuRegistry; +import com.vaadin.flow.internal.menu.MenuRegistry; +import com.vaadin.flow.shared.ApplicationConstants; +import com.vaadin.flow.shared.JsonConstants; import com.vaadin.hilla.HillaStats; import com.vaadin.hilla.route.RouteUnifyingIndexHtmlRequestListener; import com.vaadin.hilla.route.RouteUtil; +import com.vaadin.hilla.route.ServerAndClientViewsProvider; import com.vaadin.hilla.route.RouteUnifyingConfigurationProperties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -32,6 +40,7 @@ import org.springframework.lang.Nullable; import org.springframework.stereotype.Component; +import java.io.IOException; import java.util.Map; /** @@ -77,15 +86,39 @@ public void serviceInit(ServiceInitEvent event) { deploymentConfiguration.isReactEnabled()); boolean hasHillaFsRoute = false; if (deploymentConfiguration.isReactEnabled()) { - var routeUnifyingIndexHtmlRequestListener = new RouteUnifyingIndexHtmlRequestListener( + var serverAndClientViewsProvider = new ServerAndClientViewsProvider( deploymentConfiguration, accessControl, viewAccessChecker, routeUnifyingConfigurationProperties .isExposeServerRoutesToClient()); + var routeUnifyingIndexHtmlRequestListener = new RouteUnifyingIndexHtmlRequestListener( + serverAndClientViewsProvider); var deploymentMode = deploymentConfiguration.isProductionMode() ? "PRODUCTION" : "DEVELOPMENT"; event.addIndexHtmlRequestListener( routeUnifyingIndexHtmlRequestListener); + if (!deploymentConfiguration.isProductionMode()) { + // Dynamic updates are only useful during development + event.addRequestHandler(new SynchronizedRequestHandler() { + + @Override + public boolean synchronizedHandleRequest( + VaadinSession session, VaadinRequest request, + VaadinResponse response) throws IOException { + if ("routeinfo".equals(request.getParameter( + ApplicationConstants.REQUEST_TYPE_PARAMETER))) { + response.setContentType( + JsonConstants.JSON_CONTENT_TYPE); + response.getWriter() + .write(serverAndClientViewsProvider + .createFileRoutesJson(request)); + return true; + } + return false; + } + + }); + } LOGGER.debug( "{} mode: Registered RouteUnifyingIndexHtmlRequestListener.", deploymentMode); diff --git a/packages/java/endpoint/src/main/resources/META-INF/services/com.vaadin.flow.hotswap.VaadinHotswapper b/packages/java/endpoint/src/main/resources/META-INF/services/com.vaadin.flow.hotswap.VaadinHotswapper new file mode 100644 index 0000000000..6e6102c019 --- /dev/null +++ b/packages/java/endpoint/src/main/resources/META-INF/services/com.vaadin.flow.hotswap.VaadinHotswapper @@ -0,0 +1 @@ +com.vaadin.hilla.Hotswapper diff --git a/packages/java/endpoint/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/packages/java/endpoint/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index ce0bbbe0c1..a90b4907b7 100644 --- a/packages/java/endpoint/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/packages/java/endpoint/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,8 +1,8 @@ com.vaadin.hilla.EndpointController com.vaadin.hilla.push.PushConfigurer com.vaadin.hilla.ApplicationContextProvider -com.vaadin.hilla.crud.CrudConfiguration com.vaadin.hilla.startup.EndpointRegistryInitializer com.vaadin.hilla.startup.RouteUnifyingServiceInitListener com.vaadin.hilla.route.RouteUtil com.vaadin.hilla.route.RouteUnifyingConfiguration +com.vaadin.hilla.signals.config.SignalsConfiguration diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/EndpointControllerConfigurationTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/EndpointControllerConfigurationTest.java index 0bc4ebc6c5..447d8523ee 100644 --- a/packages/java/endpoint/src/test/java/com/vaadin/hilla/EndpointControllerConfigurationTest.java +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/EndpointControllerConfigurationTest.java @@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.jackson.JacksonProperties; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.ConfigurableApplicationContext; import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; @@ -25,9 +26,32 @@ public class EndpointControllerConfigurationTest { @Autowired private EndpointAccessChecker endpointAccessChecker; + @Autowired + private ConfigurableApplicationContext context; + @Test public void dependenciesAvailable() { Assert.assertNotNull(endpointRegistry); Assert.assertNotNull(endpointAccessChecker); } + + @Test + public void testEndpointInvokerUsesQualifiedObjectMapper() + throws NoSuchFieldException, IllegalAccessException { + var endpointInvoker = context.getBean(EndpointInvoker.class); + var objectMapper = context.getBean("hillaEndpointObjectMapper"); + + Assert.assertNotNull("EndpointInvoker should not be null", + endpointInvoker); + Assert.assertNotNull("hillaEndpointObjectMapper should not be null", + objectMapper); + + var field = EndpointInvoker.class + .getDeclaredField("endpointObjectMapper"); + field.setAccessible(true); + + Assert.assertSame( + "EndpointInvoker should use the qualified hillaEndpointObjectMapper", + objectMapper, field.get(endpointInvoker)); + } } diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/EndpointControllerDauTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/EndpointControllerDauTest.java new file mode 100644 index 0000000000..df92783dd5 --- /dev/null +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/EndpointControllerDauTest.java @@ -0,0 +1,183 @@ +package com.vaadin.hilla; + +import jakarta.servlet.ServletContext; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.util.HashMap; +import java.util.Map; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mockito; +import org.springframework.context.ApplicationContext; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; + +import com.vaadin.flow.function.DeploymentConfiguration; +import com.vaadin.flow.server.Constants; +import com.vaadin.flow.server.VaadinContext; +import com.vaadin.flow.server.VaadinRequest; +import com.vaadin.flow.server.VaadinRequestInterceptor; +import com.vaadin.flow.server.VaadinResponse; +import com.vaadin.flow.server.VaadinServletService; +import com.vaadin.flow.server.VaadinSession; +import com.vaadin.flow.server.dau.DauEnforcementException; +import com.vaadin.flow.server.dau.EnforcementNotificationMessages; +import com.vaadin.hilla.auth.CsrfChecker; +import com.vaadin.hilla.parser.jackson.JacksonObjectMapperFactory; +import com.vaadin.pro.licensechecker.dau.EnforcementException; + +import static com.vaadin.flow.server.dau.DAUUtils.ENFORCEMENT_EXCEPTION_KEY; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.isNull; +import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.when; + +/** + * Ensures that DAU tracking and enforcement is applied in Hilla, by calling + * Flow start/end request hooks. + */ +public class EndpointControllerDauTest { + + EndpointController controller; + + @Before + public void setUp() { + ServletContext servletContext = Mockito.mock(ServletContext.class); + CsrfChecker csrfChecker = new CsrfChecker(servletContext); + csrfChecker.setCsrfProtection(false); + EndpointRegistry endpointRegistry = new EndpointRegistry( + new EndpointNameChecker()); + ApplicationContext appCtx = Mockito.mock(ApplicationContext.class); + EndpointInvoker endpointInvoker = new EndpointInvoker(appCtx, + new JacksonObjectMapperFactory.Json().build(), + new ExplicitNullableTypeChecker(), servletContext, + endpointRegistry); + controller = new EndpointController(appCtx, endpointRegistry, + endpointInvoker, csrfChecker); + } + + @Test + public void serveEndpoint_vaadinRequestStartEndHooksInvoked() { + MockVaadinService vaadinService = new MockVaadinService(); + when(vaadinService.getDeploymentConfiguration().isProductionMode()) + .thenReturn(true); + when(vaadinService.getDeploymentConfiguration() + .getBooleanProperty(Constants.DAU_TOKEN, false)) + .thenReturn(true); + controller.vaadinService = vaadinService; + + HttpServletRequest request = Mockito.mock(HttpServletRequest.class); + HttpServletResponse response = Mockito.mock(HttpServletResponse.class); + when(request.getHeader("X-CSRF-Token")).thenReturn("Vaadin Fusion"); + controller.serveEndpoint("TEST", "test", null, request, response); + + Mockito.verify(vaadinService.testInterceptor).requestStart( + any(VaadinRequest.class), any(VaadinResponse.class)); + Mockito.verify(vaadinService.testInterceptor) + .requestEnd(any(VaadinRequest.class), isNull(), isNull()); + } + + @Test + public void serveEndpoint_dauEnforcement_serviceUnavailableResponse() + throws JsonProcessingException { + MockVaadinService vaadinService = new MockVaadinService(); + when(vaadinService.getDeploymentConfiguration().isProductionMode()) + .thenReturn(true); + when(vaadinService.getDeploymentConfiguration() + .getBooleanProperty(Constants.DAU_TOKEN, false)) + .thenReturn(true); + controller.vaadinService = vaadinService; + + Map attributes = new HashMap<>(); + HttpServletRequest request = Mockito.mock(HttpServletRequest.class); + HttpServletResponse response = Mockito.mock(HttpServletResponse.class); + when(request.getHeader("X-CSRF-Token")).thenReturn("Vaadin Fusion"); + doAnswer(i -> attributes.put(i.getArgument(0), i.getArgument(1))) + .when(request).setAttribute(anyString(), any()); + when(request.getAttribute(anyString())) + .then(i -> attributes.get(i. getArgument(0))); + + Mockito.doAnswer(i -> { + request.setAttribute(ENFORCEMENT_EXCEPTION_KEY, + new EnforcementException("STOP")); + return null; + }).when(vaadinService.testInterceptor).requestStart( + any(VaadinRequest.class), any(VaadinResponse.class)); + + ResponseEntity responseEntity = controller.serveEndpoint("TEST", + "test", null, request, response); + + Mockito.verify(vaadinService.testInterceptor).requestStart( + any(VaadinRequest.class), any(VaadinResponse.class)); + Mockito.verify(vaadinService.testInterceptor) + .requestEnd(any(VaadinRequest.class), isNull(), isNull()); + + Assert.assertEquals("Expected 503 response for blocked request", + HttpStatus.SERVICE_UNAVAILABLE, responseEntity.getStatusCode()); + ObjectNode jsonNodes = new ObjectMapper() + .readValue(responseEntity.getBody(), ObjectNode.class); + EnforcementNotificationMessages expectedError = EnforcementNotificationMessages.DEFAULT; + assertEquals(DauEnforcementException.class.getName(), + jsonNodes.get("type").asText()); + assertEquals(expectedError.caption(), + jsonNodes.get("message").asText()); + ObjectNode errorDetails = (ObjectNode) jsonNodes.get("detail"); + assertEquals(expectedError.caption(), + errorDetails.get("caption").asText()); + assertEquals(expectedError.message(), + errorDetails.get("message").asText()); + if (expectedError.details() != null) { + assertEquals(expectedError.details(), + errorDetails.get("details").asText()); + } else { + assertTrue(errorDetails.get("details").isNull()); + } + if (expectedError.url() != null) { + assertEquals(expectedError.details(), + errorDetails.get("url").asText()); + } else { + assertTrue(errorDetails.get("url").isNull()); + } + } + + private static class MockVaadinService extends VaadinServletService { + + private final VaadinRequestInterceptor testInterceptor = Mockito + .mock(VaadinRequestInterceptor.class); + private final VaadinContext vaadinContext = Mockito + .mock(VaadinContext.class); + private final DeploymentConfiguration deploymentConfiguration = Mockito + .mock(DeploymentConfiguration.class); + + @Override + public void requestStart(VaadinRequest request, + VaadinResponse response) { + testInterceptor.requestStart(request, response); + } + + @Override + public void requestEnd(VaadinRequest request, VaadinResponse response, + VaadinSession session) { + testInterceptor.requestEnd(request, response, session); + } + + @Override + public VaadinContext getContext() { + return vaadinContext; + } + + @Override + public DeploymentConfiguration getDeploymentConfiguration() { + return deploymentConfiguration; + } + } +} diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/EndpointControllerMockBuilder.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/EndpointControllerMockBuilder.java index f212937c6d..12e0040cb1 100644 --- a/packages/java/endpoint/src/test/java/com/vaadin/hilla/EndpointControllerMockBuilder.java +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/EndpointControllerMockBuilder.java @@ -2,6 +2,8 @@ import static org.mockito.Mockito.mock; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.vaadin.hilla.endpointransfermapper.EndpointTransferMapper; import org.mockito.Mockito; import org.springframework.context.ApplicationContext; @@ -10,11 +12,13 @@ import com.vaadin.hilla.parser.jackson.JacksonObjectMapperFactory; import jakarta.servlet.ServletContext; +import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; /** * A helper class to build a mocked EndpointController. */ public class EndpointControllerMockBuilder { + private static final EndpointTransferMapper ENDPOINT_TRANSFER_MAPPER = new EndpointTransferMapper(); private ApplicationContext applicationContext; private EndpointNameChecker endpointNameChecker = mock( EndpointNameChecker.class); @@ -28,8 +32,10 @@ public EndpointController build() { ServletContext servletContext = Mockito.mock(ServletContext.class); Mockito.when(csrfChecker.validateCsrfTokenInRequest(Mockito.any())) .thenReturn(true); - EndpointInvoker invoker = Mockito - .spy(new EndpointInvoker(applicationContext, factory, + ObjectMapper endpointObjectMapper = createEndpointObjectMapper( + applicationContext, factory); + EndpointInvoker invoker = Mockito.spy( + new EndpointInvoker(applicationContext, endpointObjectMapper, explicitNullableTypeChecker, servletContext, registry)); EndpointController controller = Mockito.spy(new EndpointController( applicationContext, registry, invoker, csrfChecker)); @@ -38,6 +44,26 @@ public EndpointController build() { return controller; } + public static ObjectMapper createEndpointObjectMapper( + ApplicationContext applicationContext, + JacksonObjectMapperFactory factory) { + ObjectMapper endpointObjectMapper = factory != null ? factory.build() + : createDefaultEndpointMapper(applicationContext); + if (endpointObjectMapper != null) { + endpointObjectMapper.registerModule( + ENDPOINT_TRANSFER_MAPPER.getJacksonModule()); + } + return endpointObjectMapper; + } + + private static ObjectMapper createDefaultEndpointMapper( + ApplicationContext applicationContext) { + var endpointMapper = new JacksonObjectMapperFactory.Json().build(); + applicationContext.getBean(Jackson2ObjectMapperBuilder.class) + .configure(endpointMapper); + return endpointMapper; + } + public EndpointControllerMockBuilder withApplicationContext( ApplicationContext applicationContext) { this.applicationContext = applicationContext; diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/EndpointControllerTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/EndpointControllerTest.java index 11c8ed3be4..3af6311432 100644 --- a/packages/java/endpoint/src/test/java/com/vaadin/hilla/EndpointControllerTest.java +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/EndpointControllerTest.java @@ -67,6 +67,7 @@ import com.vaadin.hilla.exception.EndpointValidationException; import com.vaadin.hilla.packages.application.ApplicationComponent; import com.vaadin.hilla.packages.application.ApplicationEndpoint; +import com.vaadin.hilla.packages.library.LibraryEndpoint; import com.vaadin.hilla.parser.jackson.JacksonObjectMapperFactory; import com.vaadin.hilla.testendpoint.BridgeMethodTestEndpoint; @@ -819,13 +820,14 @@ public void should_Never_UseSpringObjectMapper() { .thenReturn(Collections.emptyMap()); EndpointRegistry registry = new EndpointRegistry( mock(EndpointNameChecker.class)); - - EndpointInvoker invoker = new EndpointInvoker(contextMock, null, - mock(ExplicitNullableTypeChecker.class), + var endpointObjectMapper = EndpointControllerMockBuilder + .createEndpointObjectMapper(contextMock, null); + EndpointInvoker invoker = new EndpointInvoker(contextMock, + endpointObjectMapper, mock(ExplicitNullableTypeChecker.class), mock(ServletContext.class), registry); new EndpointController(contextMock, registry, invoker, null) - .registerEndpoints(getDefaultOpenApiResourcePathInDevMode()); + .registerEndpoints(); verify(contextMock, never()).getBean(ObjectMapper.class); verify(contextMock, times(1)) @@ -1143,10 +1145,10 @@ public void should_Instantiate_endpoints_correctly() throws Exception { public void should_Fallback_to_Spring_Context() throws Exception { // this also tests that an empty definition is not a problem var endpointRegistry = registerEndpoints("openapi-noendpoints.json"); - // this one is found by Spring + // as browser callables are found through Spring, the results are the + // same assertNotNull(endpointRegistry.get("applicationEndpoint")); - // the others are outside the Spring context - assertNull(endpointRegistry.get("libraryEndpoint")); + assertNotNull(endpointRegistry.get("libraryEndpoint")); assertNull(endpointRegistry.get("libraryEndpointWithConstructor")); } @@ -1163,12 +1165,14 @@ private URL getDefaultOpenApiResourcePathInDevMode() { private EndpointRegistry registerEndpoints(String openApiFilename) { var context = Mockito.mock(ApplicationContext.class); var applicationComponent = new ApplicationComponent(); + // Suppose that both the "regular" browser callable and the one from a + // library are Spring beans Mockito.doReturn(Map.of("regularEndpoint", - new ApplicationEndpoint(applicationComponent))).when(context) + new ApplicationEndpoint(applicationComponent), + "libraryEndpoint", new LibraryEndpoint())).when(context) .getBeansWithAnnotation(Endpoint.class); var controller = createVaadinControllerWithApplicationContext(context); - controller.registerEndpoints(getClass() - .getResource("/com/vaadin/hilla/packages/" + openApiFilename)); + controller.registerEndpoints(); return controller.endpointRegistry; } @@ -1296,10 +1300,12 @@ private EndpointController createVaadinController(T endpoint, ApplicationContext mockApplicationContext = mockApplicationContext( endpoint); EndpointRegistry registry = new EndpointRegistry(endpointNameChecker); - + ObjectMapper endpointObjectMapper = EndpointControllerMockBuilder + .createEndpointObjectMapper(mockApplicationContext, + endpointMapperFactory); EndpointInvoker invoker = Mockito .spy(new EndpointInvoker(mockApplicationContext, - endpointMapperFactory, explicitNullableTypeChecker, + endpointObjectMapper, explicitNullableTypeChecker, mock(ServletContext.class), registry)); Mockito.doReturn(accessChecker).when(invoker).getAccessChecker(); @@ -1307,8 +1313,7 @@ private EndpointController createVaadinController(T endpoint, EndpointController connectController = Mockito .spy(new EndpointController(mockApplicationContext, registry, invoker, csrfChecker)); - connectController - .registerEndpoints(getDefaultOpenApiResourcePathInDevMode()); + connectController.registerEndpoints(); return connectController; } @@ -1336,8 +1341,7 @@ private EndpointController createVaadinControllerWithApplicationContext( EndpointController hillaController = controllerMockBuilder .withObjectMapperFactory(new JacksonObjectMapperFactory.Json()) .withApplicationContext(applicationContext).build(); - hillaController - .registerEndpoints(getDefaultOpenApiResourcePathInDevMode()); + hillaController.registerEndpoints(); return hillaController; } diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/EndpointInvokerTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/EndpointInvokerTest.java index 643e5bbb3c..9dbfd4c8a0 100644 --- a/packages/java/endpoint/src/test/java/com/vaadin/hilla/EndpointInvokerTest.java +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/EndpointInvokerTest.java @@ -1,5 +1,6 @@ package com.vaadin.hilla; +import com.vaadin.hilla.parser.jackson.JacksonObjectMapperFactory; import jakarta.servlet.ServletContext; import jakarta.servlet.http.HttpServletRequest; @@ -66,7 +67,8 @@ public void setUp() { endpointRegistry = new EndpointRegistry(endpointNameChecker); - endpointInvoker = new EndpointInvoker(applicationContext, null, + endpointInvoker = new EndpointInvoker(applicationContext, + new JacksonObjectMapperFactory.Json().build(), explicitNullableTypeChecker, servletContext, endpointRegistry) { protected EndpointAccessChecker getAccessChecker() { return endpointAccessChecker; diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/ExplicitNullableTypeCheckerTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/ExplicitNullableTypeCheckerTest.java index 4e9c839ac3..6520be06d5 100644 --- a/packages/java/endpoint/src/test/java/com/vaadin/hilla/ExplicitNullableTypeCheckerTest.java +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/ExplicitNullableTypeCheckerTest.java @@ -31,7 +31,7 @@ import java.util.Map; import java.util.Optional; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import org.junit.Assert; import org.junit.Before; @@ -406,7 +406,7 @@ public void should_InvokeCheckValueForType_When_AnnotatedNonnull() .checkValueForAnnotatedElement(notNullValue, getClass().getMethod("stringNonnull"), false); - Assert.assertNull("Should allow values with @Nonnull", error); + Assert.assertNull("Should allow values with @NonNull", error); verify(explicitNullableTypeChecker).checkValueForType(notNullValue, String.class, false); @@ -500,7 +500,7 @@ public Long methodWithIdAnnotation() { /** * Method for testing */ - @Nonnull + @javax.annotation.Nonnull public String stringNonnull() { return ""; } @@ -511,7 +511,7 @@ static private class Bean { public String ignoreProperty; public String description; transient String transientProperty; - @Nonnull + @NonNull private String title; public Bean() { diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/NonnullEntity.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/NonnullEntity.java index b593b25775..478d7e5c20 100644 --- a/packages/java/endpoint/src/test/java/com/vaadin/hilla/NonnullEntity.java +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/NonnullEntity.java @@ -4,13 +4,15 @@ import java.util.List; import java.util.Map; +import org.jspecify.annotations.NonNull; + public class NonnullEntity { - @Nonnull - private final List<@Nonnull String> nonNullableField = new ArrayList<>(); + @NonNull + private final List<@NonNull String> nonNullableField = new ArrayList<>(); - @Nonnull + @NonNull public String nonNullableMethod( - @Nonnull Map nonNullableParameter) { + @NonNull Map nonNullableParameter) { return nonNullableParameter.getOrDefault("test", ""); } } diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/NonnullParserTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/NonnullParserTest.java index e2e077e8d6..b602a7948e 100644 --- a/packages/java/endpoint/src/test/java/com/vaadin/hilla/NonnullParserTest.java +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/NonnullParserTest.java @@ -17,6 +17,7 @@ import static org.junit.Assert.assertTrue; public class NonnullParserTest { + private static final String ANNOTATION_NAME = "NonNull"; FieldDeclaration field; MethodDeclaration method; com.github.javaparser.ast.body.Parameter parameter; @@ -38,32 +39,33 @@ public void init() throws FileNotFoundException { @Test public void should_haveNonNullableField() { - assertTrue(field.isAnnotationPresent("Nonnull")); + assertTrue(field.isAnnotationPresent(ANNOTATION_NAME)); } @Test public void should_haveFieldWithNonNullableCollectionItem() { - assertTrue(field.getVariables().get(0).getType() - .asClassOrInterfaceType().getTypeArguments().get().get(0) - .getAnnotations().stream().anyMatch(annotation -> "Nonnull" - .equals(annotation.getName().asString()))); + assertTrue( + field.getVariables().get(0).getType().asClassOrInterfaceType() + .getTypeArguments().get().get(0).getAnnotations() + .stream().anyMatch(annotation -> ANNOTATION_NAME + .equals(annotation.getName().asString()))); } @Test public void should_haveMethodWithNonNullableReturnType() { - assertTrue(method.isAnnotationPresent("Nonnull")); + assertTrue(method.isAnnotationPresent(ANNOTATION_NAME)); } @Test public void should_haveMethodWithNonNullableParameter() { - assertTrue(parameter.isAnnotationPresent("Nonnull")); + assertTrue(parameter.isAnnotationPresent(ANNOTATION_NAME)); } @Test public void should_haveMethodParameterWithNonNullableCollectionItemType() { assertTrue(parameter.getType().asClassOrInterfaceType() .getTypeArguments().get().get(1).getAnnotations().stream() - .anyMatch(annotation -> "Nonnull" + .anyMatch(annotation -> ANNOTATION_NAME .equals(annotation.getName().asString()))); } } diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/NonnullReflectionTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/NonnullReflectionTest.java index fed280c5bc..794f1c0908 100644 --- a/packages/java/endpoint/src/test/java/com/vaadin/hilla/NonnullReflectionTest.java +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/NonnullReflectionTest.java @@ -7,6 +7,7 @@ import java.lang.reflect.Parameter; import java.util.Map; +import org.jspecify.annotations.NonNull; import org.junit.Before; import org.junit.Test; @@ -27,26 +28,26 @@ public void init() throws NoSuchFieldException, NoSuchMethodException { @Test public void should_haveNonNullableField() { - assertTrue(field.getAnnotatedType().isAnnotationPresent(Nonnull.class)); + assertTrue(field.getAnnotatedType().isAnnotationPresent(NonNull.class)); } @Test public void should_haveFieldWithNonNullableCollectionItem() { AnnotatedType listItemType = ((AnnotatedParameterizedType) field .getAnnotatedType()).getAnnotatedActualTypeArguments()[0]; - assertTrue(listItemType.isAnnotationPresent(Nonnull.class)); + assertTrue(listItemType.isAnnotationPresent(NonNull.class)); } @Test public void should_haveMethodWithNonNullableReturnType() { assertTrue(method.getAnnotatedReturnType() - .isAnnotationPresent(Nonnull.class)); + .isAnnotationPresent(NonNull.class)); } @Test public void should_haveMethodWithNonNullableParameter() { assertTrue(parameter.getAnnotatedType() - .isAnnotationPresent(Nonnull.class)); + .isAnnotationPresent(NonNull.class)); } @Test @@ -54,6 +55,6 @@ public void should_haveMethodParameterWithNonNullableCollectionItemType() { AnnotatedType mapValueType = ((AnnotatedParameterizedType) parameter .getAnnotatedType()).getAnnotatedActualTypeArguments()[1]; - assertTrue(mapValueType.isAnnotationPresent(Nonnull.class)); + assertTrue(mapValueType.isAnnotationPresent(NonNull.class)); } } diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/crud/CrudRepositoryServiceTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/crud/CrudRepositoryServiceTest.java index 707768599c..b1000167bc 100644 --- a/packages/java/endpoint/src/test/java/com/vaadin/hilla/crud/CrudRepositoryServiceTest.java +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/crud/CrudRepositoryServiceTest.java @@ -1,8 +1,9 @@ package com.vaadin.hilla.crud; -import com.vaadin.hilla.BrowserCallable; -import com.vaadin.hilla.EndpointController; -import com.vaadin.hilla.push.PushConfigurer; +import java.util.List; +import java.util.Optional; +import java.util.function.Function; + import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -18,12 +19,9 @@ import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.FluentQuery; import org.springframework.stereotype.Repository; -import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; -import java.util.List; -import java.util.Optional; -import java.util.function.Function; +import com.vaadin.hilla.BrowserCallable; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -35,7 +33,6 @@ CrudRepositoryServiceTest.CustomCrudRepositoryService.class, CrudRepositoryServiceTest.CustomJpaRepository.class, CrudRepositoryServiceTest.CustomJpaRepositoryService.class }) -@ContextConfiguration(classes = { CrudConfiguration.class }) @EnableAutoConfiguration public class CrudRepositoryServiceTest { diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/crud/FilterTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/crud/FilterTest.java index 034750dbe3..6d47fba0d5 100644 --- a/packages/java/endpoint/src/test/java/com/vaadin/hilla/crud/FilterTest.java +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/crud/FilterTest.java @@ -31,9 +31,6 @@ public class FilterTest { @Autowired private TestRepository repository; - @Autowired - private JpaFilterConverter jpaFilterConverter; - @Test public void filterStringPropertyUsingContains() { setupNames("Jack", "John", "Johnny", "Polly", "Josh"); @@ -304,7 +301,7 @@ public void filterUnknownEnumValue() { executeFilter(filter); } - @Test(expected = IllegalArgumentException.class) + @Test(expected = InvalidDataAccessApiUsageException.class) public void filterNonExistingProperty() { setupNames("Jack", "John", "Johnny", "Polly", "Josh"); PropertyStringFilter filter = createFilter("foo", Matcher.EQUALS, @@ -425,7 +422,7 @@ private void assertFilterResult(Filter filter, List result) { } private List executeFilter(Filter filter) { - Specification spec = jpaFilterConverter.toSpec(filter, + Specification spec = JpaFilterConverter.toSpec(filter, TestObject.class); return repository.findAll(spec); } diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/crud/TestApplication.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/crud/TestApplication.java index 36bb2bbf6b..7f4c62e742 100644 --- a/packages/java/endpoint/src/test/java/com/vaadin/hilla/crud/TestApplication.java +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/crud/TestApplication.java @@ -1,10 +1,7 @@ package com.vaadin.hilla.crud; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.Import; -import org.springframework.test.context.ContextConfiguration; @SpringBootApplication -@Import(CrudConfiguration.class) public class TestApplication { } diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/crud/filter/FilterTransformerTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/crud/filter/FilterTransformerTest.java index fbf18d4ba3..182fbc2549 100644 --- a/packages/java/endpoint/src/test/java/com/vaadin/hilla/crud/filter/FilterTransformerTest.java +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/crud/filter/FilterTransformerTest.java @@ -26,9 +26,6 @@ public class FilterTransformerTest { @Autowired private TestRepository repository; - @Autowired - private JpaFilterConverter jpaFilterConverter; - @Test public void testRemap() { var testObject = new TestObject(); @@ -88,7 +85,7 @@ public void testRemap() { }); var filter = transformer.apply(andFilter); - var spec = jpaFilterConverter.toSpec(filter, TestObject.class); + var spec = JpaFilterConverter.toSpec(filter, TestObject.class); var result = repository.findAll(spec); assertEquals(2, result.size()); diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/rest/EndpointWithRestControllerTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/rest/EndpointWithRestControllerTest.java index abbfde97ec..4809b9319a 100644 --- a/packages/java/endpoint/src/test/java/com/vaadin/hilla/rest/EndpointWithRestControllerTest.java +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/rest/EndpointWithRestControllerTest.java @@ -82,7 +82,7 @@ public void setUp() throws IOException { EndpointControllerMockBuilder controllerMockBuilder = new EndpointControllerMockBuilder(); EndpointController controller = controllerMockBuilder .withApplicationContext(applicationContext).build(); - controller.registerEndpoints(getDefaultOpenApiResourcePathInDevMode()); + controller.registerEndpoints(); mockMvcForEndpoint = MockMvcBuilders.standaloneSetup(controller) .build(); } diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/route/RouteUnifyingIndexHtmlRequestListenerTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/route/RouteUnifyingIndexHtmlRequestListenerTest.java index 7107d81bb6..45e8926e71 100644 --- a/packages/java/endpoint/src/test/java/com/vaadin/hilla/route/RouteUnifyingIndexHtmlRequestListenerTest.java +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/route/RouteUnifyingIndexHtmlRequestListenerTest.java @@ -13,6 +13,7 @@ import com.vaadin.flow.di.Instantiator; import com.vaadin.flow.di.Lookup; import com.vaadin.flow.function.DeploymentConfiguration; +import com.vaadin.flow.internal.CurrentInstance; import com.vaadin.flow.server.VaadinContext; import com.vaadin.flow.server.VaadinRequest; @@ -23,6 +24,7 @@ import org.jsoup.nodes.DataNode; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; +import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -42,10 +44,10 @@ import com.vaadin.flow.server.auth.MenuAccessControl; import com.vaadin.flow.server.communication.IndexHtmlResponse; import com.vaadin.flow.server.menu.AvailableViewInfo; -import com.vaadin.flow.server.menu.MenuRegistry; +import com.vaadin.flow.internal.menu.MenuRegistry; -import static com.vaadin.flow.server.menu.MenuRegistry.FILE_ROUTES_JSON_NAME; -import static com.vaadin.flow.server.menu.MenuRegistry.FILE_ROUTES_JSON_PROD_PATH; +import static com.vaadin.flow.internal.menu.MenuRegistry.FILE_ROUTES_JSON_NAME; +import static com.vaadin.flow.internal.menu.MenuRegistry.FILE_ROUTES_JSON_PROD_PATH; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.CALLS_REAL_METHODS; @@ -65,8 +67,11 @@ public class RouteUnifyingIndexHtmlRequestListenerTest { @Rule public TemporaryFolder projectRoot = new TemporaryFolder(); + private ServerAndClientViewsProvider serverClientViewsProvider; + @Before public void setUp() throws IOException { + MenuRegistry.clearFileRoutesCache(); vaadinService = Mockito.mock(VaadinService.class); VaadinContext vaadinContext = Mockito.mock(VaadinContext.class); @@ -79,8 +84,10 @@ public void setUp() throws IOException { deploymentConfiguration = Mockito.mock(DeploymentConfiguration.class); Mockito.when(vaadinService.getDeploymentConfiguration()) .thenReturn(deploymentConfiguration); - requestListener = new RouteUnifyingIndexHtmlRequestListener( + serverClientViewsProvider = new ServerAndClientViewsProvider( deploymentConfiguration, null, null, true); + requestListener = new RouteUnifyingIndexHtmlRequestListener( + serverClientViewsProvider); indexHtmlResponse = Mockito.mock(IndexHtmlResponse.class); vaadinRequest = Mockito.mock(VaadinRequest.class); @@ -90,6 +97,10 @@ public void setUp() throws IOException { Mockito.when(vaadinRequest.getUserPrincipal()) .thenReturn(userPrincipal); + Mockito.when(vaadinRequest.getService()).thenReturn(vaadinService); + Mockito.when(vaadinService.getDeploymentConfiguration()) + .thenReturn(deploymentConfiguration); + final Document document = Mockito.mock(Document.class); final Element element = new Element("head"); Mockito.when(document.head()).thenReturn(element); @@ -115,6 +126,8 @@ public void setUp() throws IOException { .thenReturn(menuAccessControl); Mockito.when(menuAccessControl.getPopulateClientSideMenu()) .thenReturn(MenuAccessControl.PopulateClientMenu.ALWAYS); + Mockito.doCallRealMethod().when(menuAccessControl) + .canAccessView(any(AvailableViewInfo.class)); // Add test data for production mode projectRoot.newFolder("META-INF", "VAADIN"); @@ -122,6 +135,13 @@ public void setUp() throws IOException { FILE_ROUTES_JSON_PROD_PATH); copyClientRoutes("clientRoutes.json", productionRouteFile); + + CurrentInstance.set(VaadinRequest.class, vaadinRequest); + } + + @After + public void tearDown() { + CurrentInstance.set(VaadinRequest.class, null); } private static List prepareServerRoutes() { @@ -206,8 +226,7 @@ public void when_productionMode_anonymous_user_should_modifyIndexHtmlResponse_wi MatcherAssert.assertThat("Generated missing fieldName " + field, actual.has(field), Matchers.is(true)); MatcherAssert.assertThat("Missing element " + field, - actual.toString(), - Matchers.containsString(expected.get(field).toString())); + actual.get(field), Matchers.equalTo(expected.get(field))); } while (elementsFields.hasNext()); } @@ -260,8 +279,7 @@ public void when_productionMode_authenticated_user_should_modifyIndexHtmlRespons MatcherAssert.assertThat("Generated missing fieldName " + field, actual.has(field), Matchers.is(true)); MatcherAssert.assertThat("Missing element " + field, - actual.toString(), - Matchers.containsString(expected.get(field).toString())); + actual.get(field), Matchers.equalTo(expected.get(field))); } while (elementsFields.hasNext()); } @@ -316,8 +334,7 @@ public void when_productionMode_admin_user_should_modifyIndexHtmlResponse_with_a MatcherAssert.assertThat("Generated missing fieldName " + field, actual.has(field), Matchers.is(true)); MatcherAssert.assertThat("Missing element " + field, - actual.toString(), - Matchers.containsString(expected.get(field).toString())); + actual.get(field), Matchers.equalTo(expected.get(field))); } while (elementsFields.hasNext()); } @@ -362,8 +379,7 @@ public void when_developmentMode_should_modifyIndexHtmlResponse() MatcherAssert.assertThat("Generated missing fieldName " + field, actual.has(field), Matchers.is(true)); MatcherAssert.assertThat("Missing element " + field, - actual.toString(), - Matchers.containsString(expected.get(field).toString())); + actual.get(field), Matchers.equalTo(expected.get(field))); } while (elementsFields.hasNext()); } @@ -375,7 +391,7 @@ public void should_collectServerViews() { .mockStatic(VaadinService.class)) { mocked.when(VaadinService::getCurrent).thenReturn(vaadinService); - views = requestListener.collectServerViews(true); + views = serverClientViewsProvider.collectServerViews(true); } MatcherAssert.assertThat(views, Matchers.aMapWithSize(4)); MatcherAssert.assertThat(views.get("/bar").title(), @@ -413,7 +429,8 @@ public void when_productionMode_should_collectClientViews() menuRegistry.when(() -> MenuRegistry.getClassLoader()) .thenReturn(mockClassLoader); mocked.when(VaadinService::getCurrent).thenReturn(vaadinService); - var views = requestListener.collectClientViews(vaadinRequest); + var views = serverClientViewsProvider + .collectClientViews(vaadinRequest); MatcherAssert.assertThat(views, Matchers.aMapWithSize(4)); } } @@ -430,7 +447,8 @@ public void when_developmentMode_should_collectClientViews() try (MockedStatic mocked = Mockito .mockStatic(VaadinService.class)) { mocked.when(VaadinService::getCurrent).thenReturn(vaadinService); - var views = requestListener.collectClientViews(vaadinRequest); + var views = serverClientViewsProvider + .collectClientViews(vaadinRequest); MatcherAssert.assertThat(views, Matchers.aMapWithSize(4)); } } @@ -455,8 +473,10 @@ public void when_exposeServerRoutesToClient_false_serverSideRoutesAreNotInRespon .thenReturn(true); Mockito.when(vaadinRequest.isUserInRole(Mockito.anyString())) .thenReturn(true); - var requestListener = new RouteUnifyingIndexHtmlRequestListener( + var serverClientViewsProvider = new ServerAndClientViewsProvider( deploymentConfiguration, null, null, false); + var requestListener = new RouteUnifyingIndexHtmlRequestListener( + serverClientViewsProvider); requestListener.modifyIndexHtmlResponse(indexHtmlResponse); } @@ -492,8 +512,7 @@ public void when_exposeServerRoutesToClient_false_serverSideRoutesAreNotInRespon MatcherAssert.assertThat("Generated missing fieldName " + field, actual.has(field), Matchers.is(true)); MatcherAssert.assertThat("Missing element " + field, - actual.toString(), - Matchers.containsString(expected.get(field).toString())); + actual.get(field), Matchers.equalTo(expected.get(field))); } while (elementsFields.hasNext()); } @@ -521,8 +540,10 @@ public void when_exposeServerRoutesToClient_noLayout_serverSideRoutesAreNotInRes .thenReturn(true); Mockito.when(vaadinRequest.isUserInRole(Mockito.anyString())) .thenReturn(true); - var requestListener = new RouteUnifyingIndexHtmlRequestListener( + var serverAndClientViewsProvider = new ServerAndClientViewsProvider( deploymentConfiguration, null, null, true); + var requestListener = new RouteUnifyingIndexHtmlRequestListener( + serverAndClientViewsProvider); requestListener.modifyIndexHtmlResponse(indexHtmlResponse); } @@ -556,9 +577,22 @@ public void when_exposeServerRoutesToClient_noLayout_serverSideRoutesAreNotInRes @Test public void when_exposeServerRoutesToClient_layoutExists_serverSideRoutesAreInResponse() throws IOException { + assertServerRoutesExposedToClientWhenLayoutExists( + "clientRoutesWithLayout.json", "server-and-client-views.json"); + } + + @Test + public void when_exposeServerRoutesToClient_layoutExists_routeWithEmptyPath_serverSideRoutesAreInResponse() + throws IOException { + assertServerRoutesExposedToClientWhenLayoutExists( + "clientRoutesWithLayoutAndIndexView.json", + "server-and-client-views-layout-and-index-route.json"); + } + private void assertServerRoutesExposedToClientWhenLayoutExists( + String testJsonFile, String expectedJsonFile) throws IOException { // Use routes with layout - copyClientRoutes("clientRoutesWithLayout.json", productionRouteFile); + copyClientRoutes(testJsonFile, productionRouteFile); try (MockedStatic mocked = Mockito .mockStatic(VaadinService.class); @@ -579,8 +613,10 @@ public void when_exposeServerRoutesToClient_layoutExists_serverSideRoutesAreInRe .thenReturn(true); Mockito.when(vaadinRequest.isUserInRole(Mockito.anyString())) .thenReturn(true); - var requestListener = new RouteUnifyingIndexHtmlRequestListener( + var serverAndClientViewsProvider = new ServerAndClientViewsProvider( deploymentConfiguration, null, null, true); + var requestListener = new RouteUnifyingIndexHtmlRequestListener( + serverAndClientViewsProvider); requestListener.modifyIndexHtmlResponse(indexHtmlResponse); } @@ -604,8 +640,8 @@ public void when_exposeServerRoutesToClient_layoutExists_serverSideRoutesAreInRe final var mapper = new ObjectMapper(); var actual = mapper.readTree(views); - var expected = mapper.readTree(getClass() - .getResource("/META-INF/VAADIN/server-and-client-views.json")); + var expected = mapper.readTree( + getClass().getResource("/META-INF/VAADIN/" + expectedJsonFile)); MatcherAssert.assertThat("Different amount of items", actual.size(), Matchers.is(expected.size())); @@ -616,8 +652,7 @@ public void when_exposeServerRoutesToClient_layoutExists_serverSideRoutesAreInRe MatcherAssert.assertThat("Generated missing fieldName " + field, actual.has(field), Matchers.is(true)); MatcherAssert.assertThat("Missing element " + field, - actual.toString(), - Matchers.containsString(expected.get(field).toString())); + actual.get(field), Matchers.equalTo(expected.get(field))); } while (elementsFields.hasNext()); } diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/route/RouteUtilTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/route/RouteUtilTest.java index 6da3a03860..444b481025 100644 --- a/packages/java/endpoint/src/test/java/com/vaadin/hilla/route/RouteUtilTest.java +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/route/RouteUtilTest.java @@ -36,7 +36,7 @@ public void test_role_allowed() { AvailableViewInfo config = new AvailableViewInfo("Test", new String[] { "ROLE_ADMIN" }, false, "/test", false, false, - null, null, null); + null, null, null, false); routeUtil.setRoutes(Collections.singletonMap("/test", config)); Assert.assertTrue("Route should be allowed for ADMIN role.", @@ -52,7 +52,7 @@ public void test_role_not_allowed() { AvailableViewInfo config = new AvailableViewInfo("Test", new String[] { "ROLE_ADMIN" }, false, "/test", false, false, - null, null, null); + null, null, null, false); routeUtil.setRoutes(Collections.singletonMap("/test", config)); Assert.assertFalse("USER role should not allow ADMIN route.", @@ -67,7 +67,7 @@ public void test_login_required() { request.setUserPrincipal(Mockito.mock(Principal.class)); AvailableViewInfo config = new AvailableViewInfo("Test", null, true, - "/test", false, false, null, null, null); + "/test", false, false, null, null, null, false); routeUtil.setRoutes(Collections.singletonMap("/test", config)); Assert.assertTrue("Request with user principal should be allowed", @@ -82,7 +82,7 @@ public void test_login_required_failed() { request.setUserPrincipal(null); AvailableViewInfo config = new AvailableViewInfo("Test", null, true, - "/test", false, false, null, null, null); + "/test", false, false, null, null, null, false); routeUtil.setRoutes(Collections.singletonMap("/test", config)); Assert.assertFalse("No login should be denied access", @@ -97,11 +97,11 @@ public void test_login_required_on_layout() { request.setUserPrincipal(null); AvailableViewInfo pageWithoutLogin = new AvailableViewInfo("Test Page", - null, false, "/test", false, false, null, null, null); + null, false, "/test", false, false, null, null, null, false); AvailableViewInfo layoutWithLogin = new AvailableViewInfo("Test Layout", null, true, "", false, false, null, - Collections.singletonList(pageWithoutLogin), null); + Collections.singletonList(pageWithoutLogin), null, false); routeUtil.setRoutes(Map.ofEntries(entry("/test", pageWithoutLogin), entry("", layoutWithLogin))); @@ -118,11 +118,11 @@ public void test_login_required_on_page() { request.setUserPrincipal(null); AvailableViewInfo pageWithLogin = new AvailableViewInfo("Test Page", - null, true, "/test", false, false, null, null, null); + null, true, "/test", false, false, null, null, null, false); AvailableViewInfo layoutWithoutLogin = new AvailableViewInfo( "Test Layout", null, false, "", false, false, null, - Collections.singletonList(pageWithLogin), null); + Collections.singletonList(pageWithLogin), null, false); routeUtil.setRoutes(Map.ofEntries(entry("/test", pageWithLogin), entry("", layoutWithoutLogin))); @@ -142,7 +142,7 @@ public void test_login_not_required_on_root() { request.setUserPrincipal(null); AvailableViewInfo config = new AvailableViewInfo("Root", null, false, - "", false, false, null, null, null); + "", false, false, null, null, null, false); routeUtil.setRoutes(Collections.singletonMap("", config)); Assert.assertTrue("Login no required should allow access", diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/ListSignalTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/ListSignalTest.java new file mode 100644 index 0000000000..c644a3a037 --- /dev/null +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/ListSignalTest.java @@ -0,0 +1,1438 @@ +package com.vaadin.hilla.signals; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.vaadin.hilla.EndpointControllerMockBuilder; +import com.vaadin.hilla.parser.jackson.JacksonObjectMapperFactory; +import com.vaadin.hilla.signals.core.event.ListStateEvent; +import com.vaadin.hilla.signals.core.event.StateEvent; +import com.vaadin.hilla.signals.core.event.MissingFieldException; +import com.vaadin.hilla.signals.operation.ListInsertOperation; +import com.vaadin.hilla.signals.operation.ListRemoveOperation; +import com.vaadin.hilla.signals.operation.ReplaceValueOperation; +import com.vaadin.hilla.signals.operation.SetValueOperation; +import com.vaadin.hilla.signals.operation.ValidationResult; +import com.vaadin.hilla.signals.operation.ValueOperation; +import jakarta.annotation.Nullable; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.mockito.Mockito; +import org.springframework.context.ApplicationContext; +import reactor.core.publisher.Flux; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.UUID; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.IntStream; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThrows; + +import static com.vaadin.hilla.signals.core.event.ListStateEvent.InsertPosition; +import static com.vaadin.hilla.signals.core.event.ListStateEvent.ListEntry; +import static org.junit.Assert.assertTrue; + +public class ListSignalTest { + + private static final ObjectMapper MAPPER = new ObjectMapper(); + + private static final class Entry implements ListEntry { + private final UUID id; + private UUID prev; + private UUID next; + private final ValueSignal value; + + public Entry(UUID id, @Nullable UUID prev, @Nullable UUID next, V value, + Class valueType) { + this.id = id; + this.prev = prev; + this.next = next; + this.value = new ValueSignal(value, valueType); + } + + @Override + public UUID id() { + return id; + } + + @Override + public UUID previous() { + return prev; + } + + @Override + public UUID next() { + return next; + } + + @Override + public V value() { + return value.getValue(); + } + + @Override + public ValueSignal getValueSignal() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof ListEntry entry)) + return false; + return Objects.equals(id, entry.id()); + } + + @Override + public int hashCode() { + return Objects.hashCode(id); + } + } + + @BeforeClass + public static void setup() { + var appCtx = Mockito.mock(ApplicationContext.class); + var endpointObjectMapper = EndpointControllerMockBuilder + .createEndpointObjectMapper(appCtx, + new JacksonObjectMapperFactory.Json()); + Signal.setMapper(endpointObjectMapper); + } + + @AfterClass + public static void tearDown() { + Signal.setMapper(null); + } + + @Test + public void constructor_withNullArgs_doesNotAcceptNull() { + assertThrows(NullPointerException.class, + () -> new ListSignal<>((Class) null)); + } + + @Test + public void getId_returns_not_null() { + var listSignal = new ListSignal<>(String.class); + assertNotNull(listSignal.getId()); + } + + @Test + public void subscribe_returns_flux_withJsonEvents() { + var signal = new ListSignal<>(Person.class); + + var flux = signal.subscribe(); + + flux.subscribe(Assert::assertNotNull); + } + + @Test + public void subscribe_toAnEntry_returns_flux_withJsonEvents() { + var listSignal = new ListSignal<>(Person.class); + var listFlux = listSignal.subscribe(); + + var entryIds = new ArrayList(); + var counter = new AtomicInteger(0); + listFlux.subscribe(eventJson -> { + // skip the initial state notification when counter is 0 + if (counter.get() == 1) { + assertTrue(isAccepted(eventJson)); + entryIds.add(extractEntryId(eventJson)); + } + counter.incrementAndGet(); + }); + var evt = createInsertEvent(new Person("John", 42, true), + InsertPosition.LAST); + listSignal.submit(evt); + assertEquals(2, counter.get()); + + var entryFlux = listSignal.subscribe(entryIds.get(0)); + entryFlux.subscribe(Assert::assertNotNull); + } + + @Test + public void submit_notifies_subscribers_whenInsertingAtLast() { + var signal = new ListSignal<>(Person.class); + Flux flux = signal.subscribe(); + + var name = "John"; + var age = 42; + var adult = true; + + var counter = new AtomicInteger(0); + flux.subscribe(eventJson -> { + assertNotNull(eventJson); + + if (counter.get() == 0) { + // notification for the initial state + var entries = extractEntries(eventJson, Person.class, + Entry::new); + assertEquals(0, entries.size()); + } else if (counter.get() == 1) { + assertTrue(isAccepted(eventJson)); + } + counter.incrementAndGet(); + }); + + var evt = createInsertEvent(new Person(name, age, adult), + InsertPosition.LAST); + signal.submit(evt); + + assertEquals(2, counter.get()); + + var entries = extractEntries(signal.createSnapshotEvent(), Person.class, + Entry::new); + assertEquals(1, entries.size()); + var entry = entries.get(0); + assertEquals(name, entry.value().getName()); + assertEquals(age, entry.value().getAge()); + assertEquals(adult, entry.value().isAdult()); + } + + @Test + public void submit_setEvent_toAnEntry_notifies_subscribersToTheEntry_withCorrectEvents() { + var listSignal = new ListSignal<>(Person.class); + var listFlux = listSignal.subscribe(); + + var entryIds = new ArrayList(); + var counter = new AtomicInteger(0); + listFlux.subscribe(eventJson -> { + // skip the initial state notification when counter is 0 + if (counter.get() > 0) { + assertTrue(isAccepted(eventJson)); + entryIds.add(extractEntryId(eventJson)); + } + counter.incrementAndGet(); + }); + var evt = createInsertEvent(new Person("John", 42, true), + InsertPosition.LAST); + listSignal.submit(evt); + var evt2 = createInsertEvent(new Person("Smith", 44, true), + InsertPosition.LAST); + listSignal.submit(evt2); + + assertEquals(3, counter.get()); + + var entries = extractEntries(listSignal.createSnapshotEvent(), + Person.class, Entry::new); + var linkedList = buildLinkedList(entries); + assertEquals(2, linkedList.size()); + var entry1 = linkedList.get(0); + assertEquals("John", entry1.value().getName()); + assertEquals(42, entry1.value().getAge()); + assertTrue(entry1.value().isAdult()); + + var entryFlux = listSignal.subscribe(entryIds.get(0)); + var entryCounter = new AtomicInteger(0); + entryFlux.subscribe(eventJson -> { + // skip the initial state notification when counter is 0 + if (entryCounter.get() == 1) { + assertEquals(StateEvent.EventType.SET.name().toLowerCase(), + eventJson.get(StateEvent.Field.TYPE).asText()); + assertTrue(isAccepted(eventJson)); + } + entryCounter.incrementAndGet(); + }); + var setEvent = createSetEvent(new Person("Jane", 13, false), + entryIds.get(0)); + listSignal.submit(setEvent); + assertEquals(2, entryCounter.get()); + + entries = extractEntries(listSignal.createSnapshotEvent(), Person.class, + Entry::new); + linkedList = buildLinkedList(entries); + assertEquals(2, linkedList.size()); + var sameEntry1 = linkedList.get(0); + assertEquals("Jane", sameEntry1.value().getName()); + assertEquals(13, sameEntry1.value().getAge()); + assertFalse(sameEntry1.value().isAdult()); + var secondEntry = linkedList.get(1); + assertEquals("Smith", secondEntry.value().getName()); + assertEquals(44, secondEntry.value().getAge()); + assertTrue(secondEntry.value().isAdult()); + + assertEquals(entry1.id(), sameEntry1.id()); + assertEquals(entryIds.get(1), secondEntry.id().toString()); + + // No change is expected in the list signal itself: + assertEquals(3, counter.get()); + } + + @Test + public void submit_replaceEvent_toAnEntry_notifies_subscribersToTheEntry_withCorrectEvents() { + var listSignal = new ListSignal<>(Person.class); + var listFlux = listSignal.subscribe(); + + var entryIds = new ArrayList(); + var counter = new AtomicInteger(0); + listFlux.subscribe(eventJson -> { + // skip the initial state notification when counter is 0 + if (counter.get() > 0) { + assertTrue(isAccepted(eventJson)); + entryIds.add(extractEntryId(eventJson)); + } + counter.incrementAndGet(); + }); + var evt = createInsertEvent(new Person("John", 42, true), + InsertPosition.LAST); + listSignal.submit(evt); + var evt2 = createInsertEvent(new Person("Smith", 44, true), + InsertPosition.LAST); + listSignal.submit(evt2); + + assertEquals(3, counter.get()); + + var entries = extractEntries(listSignal.createSnapshotEvent(), + Person.class, Entry::new); + var linkedList = buildLinkedList(entries); + assertEquals(2, linkedList.size()); + var entry2 = linkedList.get(1); + assertEquals("Smith", entry2.value().getName()); + assertEquals(44, entry2.value().getAge()); + assertTrue(entry2.value().isAdult()); + + var entryFlux = listSignal.subscribe(entryIds.get(1)); + var entryCounter = new AtomicInteger(0); + entryFlux.subscribe(eventJson -> { + // skip the initial state notification when counter is 0 + if (entryCounter.get() == 1) { + assertEquals(StateEvent.EventType.REPLACE.name().toLowerCase(), + eventJson.get(StateEvent.Field.TYPE).asText()); + assertTrue(isAccepted(eventJson)); + } + entryCounter.incrementAndGet(); + }); + var replaceEvent = createReplaceEvent(new Person("Smith", 44, true), + new Person("Jane", 13, false), entryIds.get(1)); + listSignal.submit(replaceEvent); + assertEquals(2, entryCounter.get()); + + entries = extractEntries(listSignal.createSnapshotEvent(), Person.class, + Entry::new); + linkedList = buildLinkedList(entries); + assertEquals(2, linkedList.size()); + var entry1 = linkedList.get(0); + assertEquals("John", entry1.value().getName()); + assertEquals(42, entry1.value().getAge()); + assertTrue(entry1.value().isAdult()); + var secondEntry = linkedList.get(1); + assertEquals("Jane", secondEntry.value().getName()); + assertEquals(13, secondEntry.value().getAge()); + assertFalse(secondEntry.value().isAdult()); + + assertEquals(entry2.id(), secondEntry.id()); + assertEquals(entryIds.get(1), secondEntry.id().toString()); + + // No change is expected in the list signal itself: + assertEquals(3, counter.get()); + } + + @Test + public void submit_willThrow_when_insertingAtPositionsOtherThanLast() { + var signal = new ListSignal<>(Person.class); + + var name = "John"; + var age = 42; + var adult = true; + + var person = new Person(name, age, adult); + + assertThrows(UnsupportedOperationException.class, () -> signal + .submit(createInsertEvent(person, InsertPosition.FIRST))); + assertThrows(UnsupportedOperationException.class, () -> signal + .submit(createInsertEvent(person, InsertPosition.BEFORE))); + assertThrows(UnsupportedOperationException.class, () -> signal + .submit(createInsertEvent(person, InsertPosition.AFTER))); + } + + @Test + public void submit_many_insertLastEvents_notifiesSubscribersWithCorrectStateChanges() { + var signal = new ListSignal<>(Person.class); + Flux flux = signal.subscribe(); + + var name = "John"; + var age = 42; + var adult = true; + + var counter = new AtomicInteger(0); + flux.subscribe(eventJson -> { + assertNotNull(eventJson); + if (counter.get() == 0) { + // notification for the initial state + var entries = extractEntries(eventJson, Person.class, + Entry::new); + assertEquals(0, entries.size()); + // check snapshot events to also marked as accepted + assertTrue(isAccepted(eventJson)); + } else { + assertTrue(isAccepted(eventJson)); + } + counter.incrementAndGet(); + }); + + IntStream.of(1, 2, 3, 4, 5).forEach(i -> { + var evt = createInsertEvent(new Person(name + i, age + i, adult), + InsertPosition.LAST); + signal.submit(evt); + }); + assertEquals(6, counter.get()); + + var snapshot = extractEntries(signal.createSnapshotEvent(), + Person.class, Entry::new); + var linkedList = buildLinkedList(snapshot); + assertEquals(5, linkedList.size()); + + for (int i = 0; i < linkedList.size(); i++) { + var entry = linkedList.get(i); + assertEquals(name + (i + 1), entry.value().getName()); + assertEquals(age + (i + 1), entry.value().getAge()); + if (i < linkedList.size() - 1) { + var nextEntry = linkedList.get(i + 1); + assertEquals(entry.id(), nextEntry.previous()); + assertEquals(entry.next(), nextEntry.id()); + } + } + } + + @Test + public void submit_remove_notifiesWithCorrectStateChanges() { + var signal = new ListSignal<>(Person.class); + Flux flux = signal.subscribe(); + + var name = "John"; + var age = 42; + var adult = true; + + var counter = new AtomicInteger(0); + flux.subscribe(eventJson -> { + assertNotNull(eventJson); + if (counter.get() > 0) { + assertTrue(isAccepted(eventJson)); + } + counter.incrementAndGet(); + }); + + var person1 = new Person(name, age, adult); + var person2 = new Person(name + 2, age + 2, adult); + var person3 = new Person(name + 3, age + 3, adult); + + var insert1 = createInsertEvent(person1, InsertPosition.LAST); + var insert2 = createInsertEvent(person2, InsertPosition.LAST); + var insert3 = createInsertEvent(person3, InsertPosition.LAST); + + signal.submit(insert1); + signal.submit(insert2); + signal.submit(insert3); + + var receivedEntries = extractEntries(signal.createSnapshotEvent(), + Person.class, Entry::new); + var linkedList = buildLinkedList(receivedEntries); + assertEquals(3, linkedList.size()); + + var entry2 = linkedList.get(1); + var removeEvent = createRemoveEvent(entry2); + signal.submit(removeEvent); + + assertEquals(5, counter.get()); + + receivedEntries = extractEntries(signal.createSnapshotEvent(), + Person.class, Entry::new); + linkedList = buildLinkedList(receivedEntries); + assertEquals(2, linkedList.size()); + + var entry1 = linkedList.get(0); + var entry3 = linkedList.get(1); + + assertEquals(person1.getName(), entry1.value().getName()); + assertEquals(person1.getAge(), entry1.value().getAge()); + assertEquals(person3.getName(), entry3.value().getName()); + assertEquals(person3.getAge(), entry3.value().getAge()); + } + + @Test + public void submit_remove_notifiesWithCorrectStateChanges_whenRemovingTheOnlyEntry() { + var signal = new ListSignal<>(Person.class); + Flux flux = signal.subscribe(); + + var name = "John"; + var age = 42; + var adult = true; + + flux.subscribe(eventJson -> { + assertNotNull(eventJson); + isAccepted(eventJson); + }); + + var person1 = new Person(name, age, adult); + var insert1 = createInsertEvent(person1, InsertPosition.LAST); + signal.submit(insert1); + + var receivedEntries = extractEntries(signal.createSnapshotEvent(), + Person.class, Entry::new); + var linkedList = buildLinkedList(receivedEntries); + assertEquals(1, linkedList.size()); + + var entry1 = linkedList.get(0); + var removeEvent = createRemoveEvent(entry1); + signal.submit(removeEvent); + + receivedEntries = extractEntries(signal.createSnapshotEvent(), + Person.class, Entry::new); + assertEquals(0, receivedEntries.size()); + } + + @Test + public void submit_remove_notifiesWithCorrectStateChanges_whenRemovingTheHead() { + var signal = new ListSignal<>(Person.class); + Flux flux = signal.subscribe(); + + var name = "John"; + var age = 42; + var adult = true; + + flux.subscribe(eventJson -> { + assertNotNull(eventJson); + isAccepted(eventJson); + }); + + var person1 = new Person(name, age, adult); + var person2 = new Person(name + 2, age + 2, adult); + var insert1 = createInsertEvent(person1, InsertPosition.LAST); + var insert2 = createInsertEvent(person2, InsertPosition.LAST); + signal.submit(insert1); + signal.submit(insert2); + + var receivedEntries = extractEntries(signal.createSnapshotEvent(), + Person.class, Entry::new); + var linkedList = buildLinkedList(receivedEntries); + assertEquals(2, linkedList.size()); + + var head = linkedList.get(0); + var removeEvent = createRemoveEvent(head); + signal.submit(removeEvent); + + receivedEntries = extractEntries(signal.createSnapshotEvent(), + Person.class, Entry::new); + linkedList = buildLinkedList(receivedEntries); + assertEquals(1, linkedList.size()); + + var entry2 = linkedList.get(0); + assertEquals(person2.getName(), entry2.value().getName()); + assertEquals(person2.getAge(), entry2.value().getAge()); + + var person3 = new Person(name + 4, age + 4, adult); + var insert3 = createInsertEvent(person3, InsertPosition.LAST); + signal.submit(insert3); + + receivedEntries = extractEntries(signal.createSnapshotEvent(), + Person.class, Entry::new); + linkedList = buildLinkedList(receivedEntries); + assertEquals(2, linkedList.size()); + var newHead = linkedList.get(0); + assertEquals(person2.getName(), newHead.value().getName()); + assertEquals(person2.getAge(), newHead.value().getAge()); + } + + @Test + public void submit_remove_notifiesWithCorrectStateChanges_whenRemovingTheTail() { + var signal = new ListSignal<>(Person.class); + Flux flux = signal.subscribe(); + + var name = "John"; + var age = 42; + var adult = true; + + flux.subscribe(eventJson -> { + assertNotNull(eventJson); + isAccepted(eventJson); + }); + + var person1 = new Person(name, age, adult); + var person2 = new Person(name + 2, age + 2, adult); + var insert1 = createInsertEvent(person1, InsertPosition.LAST); + var insert2 = createInsertEvent(person2, InsertPosition.LAST); + signal.submit(insert1); + signal.submit(insert2); + + var receivedEntries = extractEntries(signal.createSnapshotEvent(), + Person.class, Entry::new); + var linkedList = buildLinkedList(receivedEntries); + assertEquals(2, linkedList.size()); + + var tail = linkedList.get(1); + var removeEvent = createRemoveEvent(tail); + signal.submit(removeEvent); + + receivedEntries = extractEntries(signal.createSnapshotEvent(), + Person.class, Entry::new); + linkedList = buildLinkedList(receivedEntries); + assertEquals(1, linkedList.size()); + + var head = linkedList.get(0); + assertEquals(person1.getName(), head.value().getName()); + assertEquals(person1.getAge(), head.value().getAge()); + + // insert the second person again + signal.submit(insert2); + + var person3 = new Person(name + 4, age + 4, adult); + var insert3 = createInsertEvent(person3, InsertPosition.LAST); + signal.submit(insert3); + + receivedEntries = extractEntries(signal.createSnapshotEvent(), + Person.class, Entry::new); + linkedList = buildLinkedList(receivedEntries); + tail = linkedList.get(2); + removeEvent = createRemoveEvent(tail); + signal.submit(removeEvent); + + receivedEntries = extractEntries(signal.createSnapshotEvent(), + Person.class, Entry::new); + linkedList = buildLinkedList(receivedEntries); + var newTail = linkedList.get(1); + assertEquals(person2.getName(), newTail.value().getName()); + assertEquals(person2.getAge(), newTail.value().getAge()); + } + + @Test + public void submit_various_insert_and_remove_notifiesWithCorrectStateChanges() { + var signal = new ListSignal<>(Person.class); + Flux flux = signal.subscribe(); + + var name = "John"; + var age = 42; + var adult = true; + + flux.subscribe(eventJson -> { + assertNotNull(eventJson); + isAccepted(eventJson); + }); + + var person1 = new Person(name + 1, age + 1, adult); + var person2 = new Person(name + 2, age + 2, adult); + var person3 = new Person(name + 3, age + 3, adult); + var person4 = new Person(name + 4, age + 4, adult); + var person5 = new Person(name + 5, age + 5, adult); + var person6 = new Person(name + 6, age + 6, adult); + + var insert1 = createInsertEvent(person1, InsertPosition.LAST); + var insert2 = createInsertEvent(person2, InsertPosition.LAST); + var insert3 = createInsertEvent(person3, InsertPosition.LAST); + var insert4 = createInsertEvent(person4, InsertPosition.LAST); + var insert5 = createInsertEvent(person5, InsertPosition.LAST); + var insert6 = createInsertEvent(person6, InsertPosition.LAST); + + signal.submit(insert1); + signal.submit(insert2); + signal.submit(insert3); + signal.submit(insert4); + signal.submit(insert5); + + var receivedEntries = extractEntries(signal.createSnapshotEvent(), + Person.class, Entry::new); + var linkedList = buildLinkedList(receivedEntries); + assertEquals(5, linkedList.size()); + + var entry1 = linkedList.get(0); + var entry2 = linkedList.get(1); + var entry3 = linkedList.get(2); + var entry4 = linkedList.get(3); + var entry5 = linkedList.get(4); + + signal.submit(createRemoveEvent(entry2)); + signal.submit(createRemoveEvent(entry4)); + + signal.submit(insert6); + + signal.submit(createRemoveEvent(entry5)); + + receivedEntries = extractEntries(signal.createSnapshotEvent(), + Person.class, Entry::new); + linkedList = buildLinkedList(receivedEntries); + assertEquals(3, linkedList.size()); + + var entry6 = linkedList.get(2); + + signal.submit(insert2); + signal.submit(insert4); + + signal.submit(createRemoveEvent(entry1)); + signal.submit(createRemoveEvent(entry3)); + signal.submit(createRemoveEvent(entry6)); + + receivedEntries = extractEntries(signal.createSnapshotEvent(), + Person.class, Entry::new); + linkedList = buildLinkedList(receivedEntries); + assertEquals(2, linkedList.size()); + + assertEquals(person2.getName(), linkedList.get(0).value().getName()); + assertEquals(person4.getName(), linkedList.get(1).value().getName()); + + signal.submit(createRemoveEvent(linkedList.get(0))); + signal.submit(createRemoveEvent(linkedList.get(1))); + + receivedEntries = extractEntries(signal.createSnapshotEvent(), + Person.class, Entry::new); + assertEquals(0, receivedEntries.size()); + + signal.submit(insert6); + signal.submit(insert5); + signal.submit(insert4); + signal.submit(insert3); + signal.submit(insert2); + signal.submit(insert1); + + receivedEntries = extractEntries(signal.createSnapshotEvent(), + Person.class, Entry::new); + linkedList = buildLinkedList(receivedEntries); + assertEquals(6, linkedList.size()); + + for (int i = linkedList.size(); i > 0; i--) { + var entry = linkedList.get(6 - i); + assertEquals(name + i, entry.value().getName()); + assertEquals(age + i, entry.value().getAge()); + } + } + + @Test + public void withInsertionValidator_doesNotLimitTheRemoveOperation() { + ListSignal unrestrictedSignal = new ListSignal<>(String.class); + ListSignal noInsertionAllowedSignal = unrestrictedSignal + .withOperationValidator(operation -> { + if (operation instanceof ListInsertOperation) { + return ValidationResult.reject("No insertion allowed"); + } + return ValidationResult.allow(); + }); + + unrestrictedSignal + .submit(createInsertEvent("John Normal", InsertPosition.LAST)); + unrestrictedSignal.submit( + createInsertEvent("Jane Executive", InsertPosition.LAST)); + // make sure restriction is in-tact: + noInsertionAllowedSignal.submit( + createInsertEvent("Should-be Rejected", InsertPosition.LAST)); + + var entries = extractEntries(unrestrictedSignal.createSnapshotEvent(), + String.class, Entry::new); + assertEquals(2, entries.size()); + assertEquals(2, + extractEntries(noInsertionAllowedSignal.createSnapshotEvent(), + String.class, Entry::new).size()); + + // remove the first entry through the restricted signal: + noInsertionAllowedSignal.submit(createRemoveEvent(entries.get(0))); + assertEquals(1, + extractEntries(noInsertionAllowedSignal.createSnapshotEvent(), + String.class, Entry::new).size()); + assertEquals(1, extractEntries(unrestrictedSignal.createSnapshotEvent(), + String.class, Entry::new).size()); + } + + @Test + public void withInsertionValidator_doesNotChangeSubscriptionBehavior() { + ListSignal unrestrictedSignal = new ListSignal<>(String.class); + ListSignal noInsertionAllowedSignal = unrestrictedSignal + .withOperationValidator(operation -> { + if (operation instanceof ListInsertOperation) { + return ValidationResult.reject("No insertion allowed"); + } + return ValidationResult.allow(); + }); + + Flux unrestrictedFlux = unrestrictedSignal.subscribe(); + AtomicInteger unrestrictedCounter = new AtomicInteger(0); + unrestrictedFlux.subscribe(eventJson -> { + unrestrictedCounter.incrementAndGet(); + }); + assertEquals(1, unrestrictedCounter.get()); // initial state + + Flux noInsertionAllowedFlux = noInsertionAllowedSignal + .subscribe(); + AtomicInteger noInsertionAllowedCounter = new AtomicInteger(0); + noInsertionAllowedFlux.subscribe(eventJson -> { + noInsertionAllowedCounter.incrementAndGet(); + }); + assertEquals(1, noInsertionAllowedCounter.get()); // initial state + + unrestrictedSignal + .submit(createInsertEvent("John Normal", InsertPosition.LAST)); + assertEquals(2, unrestrictedCounter.get()); + assertEquals(2, noInsertionAllowedCounter.get()); + + unrestrictedSignal.submit( + createInsertEvent("Jane Executive", InsertPosition.LAST)); + assertEquals(3, unrestrictedCounter.get()); + assertEquals(3, noInsertionAllowedCounter.get()); + } + + @Test + public void withRemovalValidator_doesNotLimitTheInsertOperation() { + ListSignal unrestrictedSignal = new ListSignal<>(String.class); + ListSignal noRemovalAllowedSignal = unrestrictedSignal + .withOperationValidator(operation -> { + if (operation instanceof ListRemoveOperation) { + return ValidationResult.reject("No removal allowed"); + } + return ValidationResult.allow(); + }); + + unrestrictedSignal + .submit(createInsertEvent("John Normal", InsertPosition.LAST)); + unrestrictedSignal.submit( + createInsertEvent("Jane Executive", InsertPosition.LAST)); + var entries = extractEntries( + noRemovalAllowedSignal.createSnapshotEvent(), String.class, + Entry::new); + + // assert that restriction is in-tact: + noRemovalAllowedSignal.submit(createRemoveEvent(entries.get(0))); + entries = extractEntries(noRemovalAllowedSignal.createSnapshotEvent(), + String.class, Entry::new); + assertEquals(2, entries.size()); + assertEquals(2, extractEntries(unrestrictedSignal.createSnapshotEvent(), + String.class, Entry::new).size()); + + unrestrictedSignal.submit(createRemoveEvent(entries.get(0))); + entries = extractEntries(noRemovalAllowedSignal.createSnapshotEvent(), + String.class, Entry::new); + assertEquals(1, entries.size()); + assertEquals(1, extractEntries(unrestrictedSignal.createSnapshotEvent(), + String.class, Entry::new).size()); + + // insert another entry through the restricted signal: + noRemovalAllowedSignal.submit( + createInsertEvent("Emma Executive", InsertPosition.LAST)); + assertEquals(2, + extractEntries(noRemovalAllowedSignal.createSnapshotEvent(), + String.class, Entry::new).size()); + assertEquals(2, extractEntries(unrestrictedSignal.createSnapshotEvent(), + String.class, Entry::new).size()); + } + + @Test + public void withRemovalValidator_doesNotChangeSubscriptionBehavior() { + ListSignal unrestrictedSignal = new ListSignal<>(String.class); + ListSignal noRemovalAllowedSignal = unrestrictedSignal + .withOperationValidator(operation -> { + if (operation instanceof ListRemoveOperation) { + return ValidationResult.reject("No removal allowed"); + } + return ValidationResult.allow(); + }); + + Flux unrestrictedFlux = unrestrictedSignal.subscribe(); + AtomicInteger unrestrictedCounter = new AtomicInteger(0); + unrestrictedFlux + .subscribe(eventJson -> unrestrictedCounter.incrementAndGet()); + assertEquals(1, unrestrictedCounter.get()); // initial state + + Flux noRemovalAllowedFlux = noRemovalAllowedSignal + .subscribe(); + AtomicInteger noRemovalAllowedCounter = new AtomicInteger(0); + noRemovalAllowedFlux.subscribe( + eventJson -> noRemovalAllowedCounter.incrementAndGet()); + assertEquals(1, noRemovalAllowedCounter.get()); // initial state + + unrestrictedSignal + .submit(createInsertEvent("John Normal", InsertPosition.LAST)); + unrestrictedSignal.submit( + createInsertEvent("Jane Executive", InsertPosition.LAST)); + assertEquals(3, unrestrictedCounter.get()); + assertEquals(3, noRemovalAllowedCounter.get()); + + var entries = extractEntries( + noRemovalAllowedSignal.createSnapshotEvent(), String.class, + Entry::new); + + // updates should be received for the rejected events: + noRemovalAllowedSignal.submit(createRemoveEvent(entries.get(0))); + assertEquals(4, unrestrictedCounter.get()); + assertEquals(4, noRemovalAllowedCounter.get()); + + unrestrictedSignal.submit(createRemoveEvent(entries.get(0))); + assertEquals(5, unrestrictedCounter.get()); + assertEquals(5, noRemovalAllowedCounter.get()); + + unrestrictedSignal.submit(createRemoveEvent(entries.get(1))); + assertEquals(6, unrestrictedCounter.get()); + assertEquals(6, noRemovalAllowedCounter.get()); + } + + @Test + public void withMultipleStructuralValidators_allValidatorsAreApplied() { + ListSignal partiallyRestrictedSignal = new ListSignal<>( + String.class).withOperationValidator(operation -> { + if (operation instanceof ListInsertOperation insOp + && insOp.value().startsWith("Joe")) { + return ValidationResult.reject("No Joe is allowed"); + } + return ValidationResult.allow(); + }); + + ListSignal readonlyStructureSignal = partiallyRestrictedSignal + .withOperationValidator(operation -> { + if (operation instanceof ListInsertOperation) { + return ValidationResult.reject("No insertion allowed"); + } else if (operation instanceof ListRemoveOperation) { + return ValidationResult.reject("No removal allowed"); + } + return ValidationResult.allow(); + }); + + partiallyRestrictedSignal + .submit(createInsertEvent("John Normal", InsertPosition.LAST)); + partiallyRestrictedSignal.submit( + createInsertEvent("Jane Executive", InsertPosition.LAST)); + partiallyRestrictedSignal.submit(createInsertEvent( + "Joe Should-be-rejected", InsertPosition.LAST)); + + var entries = extractEntries( + readonlyStructureSignal.createSnapshotEvent(), String.class, + Entry::new); + assertEquals(2, entries.size()); + + readonlyStructureSignal.submit(createRemoveEvent(entries.get(0))); + assertEquals(2, + extractEntries(readonlyStructureSignal.createSnapshotEvent(), + String.class, Entry::new).size()); + + readonlyStructureSignal.submit(createRemoveEvent(entries.get(1))); + assertEquals(2, + extractEntries(readonlyStructureSignal.createSnapshotEvent(), + String.class, Entry::new).size()); + + readonlyStructureSignal.submit( + createInsertEvent("Emma Executive", InsertPosition.LAST)); + assertEquals(2, + extractEntries(readonlyStructureSignal.createSnapshotEvent(), + String.class, Entry::new).size()); + + partiallyRestrictedSignal.submit( + createInsertEvent("Emma Executive", InsertPosition.LAST)); + assertEquals(3, + extractEntries(partiallyRestrictedSignal.createSnapshotEvent(), + String.class, Entry::new).size()); + assertEquals(3, + extractEntries(readonlyStructureSignal.createSnapshotEvent(), + String.class, Entry::new).size()); + } + + @Test + public void withItemSetValueValidator_doesNotLimitTheOriginalInstance_norOtherOperations() { + ListSignal signal = new ListSignal<>(String.class); + ListSignal noItemSetValueAllowedSignal = signal + .withOperationValidator(operation -> { + if (operation instanceof SetValueOperation) { + return ValidationResult + .reject("No item set value allowed"); + } + return ValidationResult.allow(); + }); + // add items through both signal instances: + signal.submit(createInsertEvent("John Normal", InsertPosition.LAST)); + // verify that adding itemSetValueValidator doesn't affect other + // operations: + noItemSetValueAllowedSignal.submit( + createInsertEvent("Jane Executive", InsertPosition.LAST)); + + var entries = extractEntries(signal.createSnapshotEvent(), String.class, + Entry::new); + assertEquals(2, entries.size()); + // the restricted instance sees the same entries as the original one: + assertEquals(2, + extractEntries( + noItemSetValueAllowedSignal.createSnapshotEvent(), + String.class, Entry::new).size()); + + var orderedEntries = buildLinkedList(entries); + // unrestricted instance allows item set value: + var firstSignalId = orderedEntries.get(0).id(); + signal.submit( + createSetEvent("Should-be accepted", firstSignalId.toString())); + // the restricted instance doesn't allow item set value: + var secondSignalId = orderedEntries.get(1).id(); + noItemSetValueAllowedSignal.submit(createSetEvent("Should-be Rejected", + secondSignalId.toString())); + + entries = extractEntries(signal.createSnapshotEvent(), String.class, + Entry::new); + orderedEntries = buildLinkedList(entries); + + // verify the change: + assertEquals(2, orderedEntries.size()); + assertEquals("Should-be accepted", orderedEntries.get(0).value()); + assertEquals("Jane Executive", orderedEntries.get(1).value()); + assertEquals(secondSignalId, orderedEntries.get(1).id()); + + // the item SetValue validator doesn't limit item Replace operation: + noItemSetValueAllowedSignal.submit(createReplaceEvent("Jane Executive", + "Replace Accepted", secondSignalId.toString())); + entries = extractEntries(signal.createSnapshotEvent(), String.class, + Entry::new); + orderedEntries = buildLinkedList(entries); + + // verify replace operation was successful, even through the restricted + // instance: + assertEquals(2, orderedEntries.size()); + assertEquals("Should-be accepted", orderedEntries.get(0).value()); + assertEquals("Replace Accepted", orderedEntries.get(1).value()); + + // verify the restricted instance allows removing the items: + noItemSetValueAllowedSignal + .submit(createRemoveEvent(orderedEntries.get(1))); + entries = extractEntries(signal.createSnapshotEvent(), String.class, + Entry::new); + assertEquals(1, entries.size()); + } + + @Test + public void withItemReplaceValueValidator_doesNotLimitTheOriginalInstance_norOtherOperations() { + ListSignal signal = new ListSignal<>(String.class); + ListSignal noItemReplaceValueAllowedSignal = signal + .withOperationValidator(operation -> { + if (operation instanceof ReplaceValueOperation) { + return ValidationResult + .reject("No item replace value allowed"); + } + return ValidationResult.allow(); + }); + // verify that adding itemSetValueValidator doesn't affect other + // operations: + noItemReplaceValueAllowedSignal.submit( + createInsertEvent("Jane Executive", InsertPosition.LAST)); + // add items through both signal instances: + signal.submit(createInsertEvent("John Normal", InsertPosition.LAST)); + + var entries = extractEntries(signal.createSnapshotEvent(), String.class, + Entry::new); + assertEquals(2, entries.size()); + // the restricted instance sees the same entries as the original one: + assertEquals(2, + extractEntries( + noItemReplaceValueAllowedSignal.createSnapshotEvent(), + String.class, Entry::new).size()); + + var orderedEntries = buildLinkedList(entries); + // unrestricted instance allows item set value: + var firstSignalId = orderedEntries.get(0).id(); + signal.submit(createReplaceEvent("Jane Executive", "Should-be accepted", + firstSignalId.toString())); + // the restricted instance doesn't allow item set value: + var secondSignalId = orderedEntries.get(1).id(); + noItemReplaceValueAllowedSignal.submit(createReplaceEvent("John Normal", + "Should-be Rejected", secondSignalId.toString())); + + entries = extractEntries(signal.createSnapshotEvent(), String.class, + Entry::new); + orderedEntries = buildLinkedList(entries); + + // verify the change: + assertEquals(2, orderedEntries.size()); + assertEquals("Should-be accepted", orderedEntries.get(0).value()); + assertEquals("John Normal", orderedEntries.get(1).value()); + assertEquals(secondSignalId, orderedEntries.get(1).id()); + + // the item ReplaceValue validator doesn't limit item set operation: + noItemReplaceValueAllowedSignal.submit( + createSetEvent("Set Accepted", secondSignalId.toString())); + entries = extractEntries(signal.createSnapshotEvent(), String.class, + Entry::new); + orderedEntries = buildLinkedList(entries); + + // verify replace operation was successful, even through the restricted + // instance: + assertEquals(2, orderedEntries.size()); + assertEquals("Should-be accepted", orderedEntries.get(0).value()); + assertEquals("Set Accepted", orderedEntries.get(1).value()); + + // verify the restricted instance allows removing the items: + noItemReplaceValueAllowedSignal + .submit(createRemoveEvent(orderedEntries.get(1))); + entries = extractEntries(signal.createSnapshotEvent(), String.class, + Entry::new); + assertEquals(1, entries.size()); + } + + @Test + public void withMultipleItemValidators_allValidatorsAreApplied() { + ListSignal signal = new ListSignal<>(String.class); + ListSignal readOnlyItemsSignal = signal + .withOperationValidator(operation -> { + if (operation instanceof SetValueOperation) { + return ValidationResult + .reject("No item set value allowed"); + } else if (operation instanceof ReplaceValueOperation) { + return ValidationResult + .reject("No item replace value allowed"); + } + return ValidationResult.allow(); + }); + + // add items through both signal instances: + signal.submit(createInsertEvent("John Normal", InsertPosition.LAST)); + readOnlyItemsSignal.submit( + createInsertEvent("Jane Executive", InsertPosition.LAST)); + + var entries = extractEntries(signal.createSnapshotEvent(), String.class, + Entry::new); + assertEquals(2, entries.size()); + var orderedEntries = buildLinkedList(entries); + + // the restricted instance shouldn't allow items value be changed: + readOnlyItemsSignal.submit(createSetEvent("Set Rejected", + orderedEntries.get(0).id().toString())); + readOnlyItemsSignal.submit(createReplaceEvent("John Normal", + "Should-be Rejected", orderedEntries.get(1).id().toString())); + + entries = extractEntries(signal.createSnapshotEvent(), String.class, + Entry::new); + orderedEntries = buildLinkedList(entries); + + assertEquals("John Normal", orderedEntries.get(0).value()); + assertEquals("Jane Executive", orderedEntries.get(1).value()); + + // original signal should allow item value to be changed: + signal.submit(createSetEvent("Set Accepted", + orderedEntries.get(0).id().toString())); + signal.submit(createReplaceEvent("Jane Executive", "Replace Accepted", + orderedEntries.get(1).id().toString())); + + entries = extractEntries(signal.createSnapshotEvent(), String.class, + Entry::new); + orderedEntries = buildLinkedList(entries); + + assertEquals("Set Accepted", orderedEntries.get(0).value()); + assertEquals("Replace Accepted", orderedEntries.get(1).value()); + } + + @Test + public void readOnlyListSignal_shouldReceiveAllUpdates() { + ListSignal signal = new ListSignal<>(String.class); + signal.submit(createInsertEvent("Jane Executive", InsertPosition.LAST)); + + ListSignal readOnlyItemsSignal = signal + .withOperationValidator(operation -> { + if (operation instanceof ListInsertOperation) { + return ValidationResult.reject("No insertion allowed"); + } else if (operation instanceof ListRemoveOperation) { + return ValidationResult.reject("No removal allowed"); + } else if (operation instanceof SetValueOperation) { + return ValidationResult + .reject("No item set value allowed"); + } else if (operation instanceof ReplaceValueOperation) { + return ValidationResult + .reject("No item replace value allowed"); + } + return ValidationResult.allow(); + }); + + var entries = extractEntries(readOnlyItemsSignal.createSnapshotEvent(), + String.class, Entry::new); + assertEquals(1, entries.size()); + assertEquals("Jane Executive", entries.get(0).value()); + + // verify all operations are blocked: + readOnlyItemsSignal + .submit(createInsertEvent("John Normal", InsertPosition.LAST)); + readOnlyItemsSignal.submit(createRemoveEvent(entries.get(0))); + readOnlyItemsSignal.submit(createReplaceEvent("Jane Executive", + "Replace Rejected", entries.get(0).id().toString())); + readOnlyItemsSignal.submit( + createSetEvent("Set Rejected", entries.get(0).id().toString())); + + entries = extractEntries(readOnlyItemsSignal.createSnapshotEvent(), + String.class, Entry::new); + assertEquals(1, entries.size()); + assertEquals("Jane Executive", entries.get(0).value()); + + var flux = readOnlyItemsSignal.subscribe(); + AtomicInteger counter = new AtomicInteger(0); + flux.subscribe(eventJson -> counter.incrementAndGet()); + assertEquals(1, counter.get()); // initial state + + signal.submit(createInsertEvent("John Normal", InsertPosition.LAST)); + signal.submit(createInsertEvent("Joe Doe", InsertPosition.LAST)); + signal.submit( + createSetEvent("Set Accepted", entries.get(0).id().toString())); + signal.submit(createReplaceEvent("Set Accepted", "Emma Executive", + entries.get(0).id().toString())); + signal.submit(createRemoveEvent(entries.get(0))); + + // 3 more operations on list signals + 1 initial state: + assertEquals(4, counter.get()); + + entries = extractEntries(readOnlyItemsSignal.createSnapshotEvent(), + String.class, Entry::new); + var orderedEntries = buildLinkedList(entries); + assertEquals(2, orderedEntries.size()); + assertEquals("John Normal", orderedEntries.get(0).value()); + assertEquals("Joe Doe", orderedEntries.get(1).value()); + } + + @Test + public void withValidatorSignal_shouldReceiveUpdates() { + ListSignal chatSignal = new ListSignal<>(String.class) + .withOperationValidator(operation -> { + if (operation instanceof ListInsertOperation insOp + && insOp.value().toLowerCase().contains("bad")) { + return ValidationResult + .reject("The word 'bad' is not allowed"); + } + return ValidationResult.allow(); + }); + ListSignal adminSignal = chatSignal + .withOperationValidator(operation -> { + if (operation instanceof ListRemoveOperation) { + return ValidationResult.reject("No removal allowed"); + } + return ValidationResult.allow(); + }); + ListSignal userSignal = adminSignal + .withOperationValidator(operation -> { + if (operation instanceof ListInsertOperation) { + return ValidationResult.reject( + "Read-only signal doesn't allow insertion"); + } + return ValidationResult.allow(); + }); + + var chatFlux = chatSignal.subscribe(); + var adminFlux = adminSignal.subscribe(); + var userFlux = userSignal.subscribe(); + + AtomicInteger chatCounter = new AtomicInteger(0); + AtomicInteger adminCounter = new AtomicInteger(0); + AtomicInteger userCounter = new AtomicInteger(0); + + chatFlux.subscribe(eventJson -> chatCounter.incrementAndGet()); + adminFlux.subscribe(eventJson -> adminCounter.incrementAndGet()); + userFlux.subscribe(eventJson -> userCounter.incrementAndGet()); + + assertEquals(1, chatCounter.get()); // initial snapshot + assertEquals(1, adminCounter.get()); // initial snapshot + assertEquals(1, userCounter.get()); // initial snapshot + + chatSignal.submit(createInsertEvent("Hello", InsertPosition.LAST)); + chatSignal + .submit(createInsertEvent("How are you?", InsertPosition.LAST)); + // following should be rejected because of the word "bad": + adminSignal.submit(createInsertEvent("I'm bad", InsertPosition.LAST)); + // following should be rejected because user signal cannot insert: + userSignal.submit(createInsertEvent("I'm good", InsertPosition.LAST)); + + var chatEntries = extractEntries(chatSignal.createSnapshotEvent(), + String.class, Entry::new); + assertEquals(2, chatEntries.size()); + var adminEntries = extractEntries(adminSignal.createSnapshotEvent(), + String.class, Entry::new); + assertEquals(2, adminEntries.size()); + var userEntries = extractEntries(userSignal.createSnapshotEvent(), + String.class, Entry::new); + assertEquals(2, userEntries.size()); + + userSignal.submit(createRemoveEvent(userEntries.get(0))); + adminSignal.submit(createRemoveEvent(adminEntries.get(0))); + + chatEntries = extractEntries(chatSignal.createSnapshotEvent(), + String.class, Entry::new); + assertEquals(2, chatEntries.size()); + adminEntries = extractEntries(adminSignal.createSnapshotEvent(), + String.class, Entry::new); + assertEquals(2, adminEntries.size()); + userEntries = extractEntries(userSignal.createSnapshotEvent(), + String.class, Entry::new); + assertEquals(2, userEntries.size()); + + chatSignal.submit(createRemoveEvent(chatEntries.get(0))); + + chatEntries = extractEntries(chatSignal.createSnapshotEvent(), + String.class, Entry::new); + assertEquals(1, chatEntries.size()); + adminEntries = extractEntries(adminSignal.createSnapshotEvent(), + String.class, Entry::new); + assertEquals(1, adminEntries.size()); + userEntries = extractEntries(userSignal.createSnapshotEvent(), + String.class, Entry::new); + assertEquals(1, userEntries.size()); + + assertEquals(8, chatCounter.get()); + assertEquals(8, adminCounter.get()); + assertEquals(8, userCounter.get()); + } + + @Test + public void asReadOnlySignal_blocksAllOperations_butGetsAllUpdates() { + ListSignal signal = new ListSignal<>(String.class); + ListSignal readOnlySignal = signal.asReadonly(); + + var flux = signal.subscribe(); + AtomicInteger counter = new AtomicInteger(0); + flux.subscribe(eventJson -> counter.incrementAndGet()); + assertEquals(1, counter.get()); // initial state + var readonlyFlux = readOnlySignal.subscribe(); + AtomicInteger readonlyCounter = new AtomicInteger(0); + readonlyFlux.subscribe(eventJson -> readonlyCounter.incrementAndGet()); + assertEquals(1, readonlyCounter.get()); // initial state + + signal.submit(createInsertEvent("John Normal", InsertPosition.LAST)); + signal.submit(createInsertEvent("Jane Executive", InsertPosition.LAST)); + + var entries = extractEntries(readOnlySignal.createSnapshotEvent(), + String.class, Entry::new); + var orderedEntries = buildLinkedList(entries); + assertEquals(2, orderedEntries.size()); + assertEquals(3, counter.get()); + assertEquals(3, readonlyCounter.get()); + + var exampleEntry = orderedEntries.get(1); + var entryFlux = readOnlySignal.subscribe(exampleEntry.id().toString()); + AtomicInteger entryCounter = new AtomicInteger(0); + entryFlux.subscribe(eventJson -> entryCounter.incrementAndGet()); + assertEquals(1, entryCounter.get()); // initial snapshot + + // verify all operations are blocked: + readOnlySignal + .submit(createInsertEvent("Joe Doe", InsertPosition.LAST)); + readOnlySignal.submit(createRemoveEvent(entries.get(0))); + assertEquals("Jane Executive", exampleEntry.value()); + readOnlySignal.submit(createReplaceEvent("Jane Executive", + "Replace Rejected", exampleEntry.id().toString())); + readOnlySignal.submit( + createSetEvent("Set Rejected", exampleEntry.id().toString())); + + entries = extractEntries(readOnlySignal.createSnapshotEvent(), + String.class, Entry::new); + orderedEntries = buildLinkedList(entries); + assertEquals(2, orderedEntries.size()); + assertEquals("John Normal", orderedEntries.get(0).value()); + assertEquals("Jane Executive", orderedEntries.get(1).value()); + + // parent signal does not get the updates for its entries: + assertEquals(5, counter.get()); + assertEquals(5, readonlyCounter.get()); + // child signal gets the updates: + signal.submit(createReplaceEvent("Jane Executive", "Replace Accepted", + exampleEntry.id().toString())); + entries = extractEntries(readOnlySignal.createSnapshotEvent(), + String.class, Entry::new); + orderedEntries = buildLinkedList(entries); + assertEquals(2, orderedEntries.size()); + assertEquals("John Normal", orderedEntries.get(0).value()); + assertEquals("Replace Accepted", orderedEntries.get(1).value()); + + assertEquals(4, entryCounter.get()); + } + + @Test + public void withOperationValidator_throws_whenValidatorIsNull() { + assertThrows(NullPointerException.class, () -> { + new ListSignal<>(String.class).withOperationValidator(null); + }); + } + + private ObjectNode createInsertEvent(T value, InsertPosition position) { + return new ListStateEvent<>(UUID.randomUUID().toString(), + ListStateEvent.EventType.INSERT, value, position).toJson(); + } + + private ObjectNode createRemoveEvent(ListEntry toRemove) { + ObjectNode event = MAPPER.createObjectNode(); + event.put(StateEvent.Field.ID, UUID.randomUUID().toString()); + event.put(StateEvent.Field.TYPE, + ListStateEvent.EventType.REMOVE.name().toLowerCase()); + event.put(ListStateEvent.Field.ENTRY_ID, toRemove.id().toString()); + return event; + } + + private ObjectNode createSetEvent(T value, String entryId) { + var setEvent = new StateEvent<>(entryId, StateEvent.EventType.SET, + value); + return setEvent.toJson(); + } + + private ObjectNode createReplaceEvent(T expectedValue, T value, + String entryId) { + var setEvent = new StateEvent<>(entryId, StateEvent.EventType.REPLACE, + value, expectedValue); + return setEvent.toJson(); + } + + private List> buildLinkedList( + Collection> entries) { + Map> entryMap = new HashMap<>(); + ListStateEvent.ListEntry start = null; + // Populate the map with entries, using their id as the key + for (ListStateEvent.ListEntry entry : entries) { + entryMap.put(entry.id(), entry); + if (entry.previous() == null) { + // Find the starting entry where previous is null + start = entry; + } + } + if (start == null) { + throw new IllegalArgumentException( + "No head entry found (entry with previous == null)."); + } + + // Traverse and build the linked list + List> linkedList = new ArrayList<>(); + ListStateEvent.ListEntry current = start; + while (current != null) { + linkedList.add(current); + current = entryMap.get(current.next()); + } + return linkedList; + } + + private static List> extractEntries(JsonNode json, + Class valueType, + ListStateEvent.ListEntryFactory entryFactory) { + var rawEntries = json.get(ListStateEvent.Field.ENTRIES); + if (rawEntries == null) { + throw new MissingFieldException(ListStateEvent.Field.ENTRIES); + } + List> entries = new ArrayList<>(); + for (JsonNode rawEntry : rawEntries) { + var id = extractOrGenerateId(rawEntry); + var next = extractUUIDOrNull(rawEntry, ListStateEvent.Field.NEXT); + var prev = extractUUIDOrNull(rawEntry, ListStateEvent.Field.PREV); + var value = StateEvent.convertValue( + StateEvent.extractValue(rawEntry, true), valueType); + entries.add(entryFactory.create(id, prev, next, value, valueType)); + } + return entries; + } + + private static UUID extractOrGenerateId(JsonNode rawEntry) { + var id = rawEntry.get(StateEvent.Field.ID); + if (id == null) { + return UUID.randomUUID(); + } + return UUID.fromString(id.asText()); + } + + private static UUID extractUUIDOrNull(JsonNode json, String fieldName) { + var rawId = json.get(fieldName); + return rawId == null ? null : UUID.fromString(rawId.asText()); + } + + private static boolean isAccepted(ObjectNode event) { + return event.has(StateEvent.Field.ACCEPTED) + && event.get(StateEvent.Field.ACCEPTED).asBoolean(); + } + + private static String extractEntryId(JsonNode json) { + var entryId = json.get(ListStateEvent.Field.ENTRY_ID); + return entryId == null ? null : entryId.asText(); + } +} diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/Message.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/Message.java new file mode 100644 index 0000000000..7623cb10a2 --- /dev/null +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/Message.java @@ -0,0 +1,6 @@ +package com.vaadin.hilla.signals; + +import java.time.LocalDateTime; + +public record Message(String text, String author, LocalDateTime timestamp) { +} diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/NumberSignalTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/NumberSignalTest.java new file mode 100644 index 0000000000..34e310efbb --- /dev/null +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/NumberSignalTest.java @@ -0,0 +1,273 @@ +package com.vaadin.hilla.signals; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.vaadin.hilla.EndpointControllerMockBuilder; +import com.vaadin.hilla.parser.jackson.JacksonObjectMapperFactory; +import com.vaadin.hilla.signals.core.event.StateEvent; +import com.vaadin.hilla.signals.operation.IncrementOperation; +import com.vaadin.hilla.signals.operation.ReplaceValueOperation; +import com.vaadin.hilla.signals.operation.SetValueOperation; +import com.vaadin.hilla.signals.operation.ValidationResult; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.mockito.Mockito; +import org.springframework.context.ApplicationContext; +import reactor.core.publisher.Flux; + +import java.util.UUID; +import java.util.concurrent.atomic.AtomicInteger; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; + +public class NumberSignalTest { + + private final ObjectMapper mapper = new ObjectMapper(); + + @BeforeClass + public static void setup() { + var appCtx = Mockito.mock(ApplicationContext.class); + var endpointObjectMapper = EndpointControllerMockBuilder + .createEndpointObjectMapper(appCtx, + new JacksonObjectMapperFactory.Json()); + Signal.setMapper(endpointObjectMapper); + } + + @AfterClass + public static void tearDown() { + Signal.setMapper(null); + } + + @Test + public void constructor_withValueArg_usesValueAsDefaultValue() { + NumberSignal signal = new NumberSignal(42.0); + + assertEquals(42.0, signal.getValue(), 0.0); + } + + @Test + public void constructor_withoutValueArg_usesZeroAsDefaultValue() { + NumberSignal signal = new NumberSignal(); + + assertEquals(0.0, signal.getValue(), 0.0); + } + + @Test + public void constructor_withValueArg_doesNotAcceptNull() { + assertThrows(NullPointerException.class, + () -> new NumberSignal((Double) null)); + } + + @Test + public void getId_returns_not_null() { + NumberSignal signal1 = new NumberSignal(); + assertNotNull(signal1.getId()); + + NumberSignal signal3 = new NumberSignal(42.0); + assertNotNull(signal3.getId()); + } + + @Test + public void subscribe_returns_flux() { + NumberSignal signal = new NumberSignal(); + + Flux flux = signal.subscribe(); + + assertNotNull(flux); + } + + @Test + public void subscribe_returns_flux_withJsonEvents() { + NumberSignal signal = new NumberSignal(); + + Flux flux = signal.subscribe(); + + flux.subscribe(Assert::assertNotNull); + } + + @Test + public void submit_notifies_subscribers() { + NumberSignal signal = new NumberSignal(); + + Flux flux = signal.subscribe(); + + var counter = new AtomicInteger(0); + flux.subscribe(eventJson -> { + assertNotNull(eventJson); + var stateEvent = new StateEvent<>(eventJson, Double.class); + if (counter.get() == 0) { + // notification for the initial value + assertEquals(0.0, stateEvent.getValue(), 0.0); + assertTrue(StateEvent.isAccepted(eventJson)); + } else if (counter.get() == 1) { + assertEquals(42.0, stateEvent.getValue(), 0.0); + } + counter.incrementAndGet(); + }); + + signal.submit(createSetEvent("42")); + } + + @Test + public void submit_eventWithUnknownCommand_throws() { + NumberSignal signal = new NumberSignal(); + + var exception = assertThrows(UnsupportedOperationException.class, + () -> signal.submit(createUnknownCommandEvent())); + assertTrue(exception.getMessage().startsWith("Unsupported JSON: ")); + } + + @Test + public void submit_eventWithIncrementCommand_incrementsValue() { + NumberSignal signal = new NumberSignal(42.0); + + signal.submit(createIncrementEvent("2")); + assertEquals(44.0, signal.getValue(), 0.0); + + signal.submit(createIncrementEvent("-5.5")); + assertEquals(38.5, signal.getValue(), 0.0); + } + + @Test + public void incrementOperationValidated_originalInstanceIsNotRestricted() { + NumberSignal counter = new NumberSignal(42.0); + NumberSignal limitedCounter = counter.withOperationValidator(op -> { + if (op instanceof IncrementOperation increment + && increment.value() > 1) { + return ValidationResult + .reject("Only increment by 1 is allowed"); + } + return ValidationResult.allow(); + }); + + counter.submit(createIncrementEvent("2")); + assertEquals(44.0, counter.getValue(), 0.0); + + // the restricted instance sees the same value as the original one: + assertEquals(44.0, limitedCounter.getValue(), 0.0); + + // the restricted instance doesn't allow replace operation: + limitedCounter.submit(createIncrementEvent("2")); + assertEquals(44.0, limitedCounter.getValue(), 0.0); + } + + @Test + public void incrementOperationValidated_subscriptionWorks() { + NumberSignal number = new NumberSignal(42.0); + NumberSignal limitedNumber = number + .withOperationValidator(operation -> { + if (operation instanceof IncrementOperation increment + && increment.value() > 1) { + return ValidationResult + .reject("Only increment by 1 is allowed"); + } + return ValidationResult.allow(); + }); + + Flux numberFlux = number.subscribe(); + AtomicInteger numberCounter = new AtomicInteger(0); + numberFlux.subscribe(eventJson -> numberCounter.incrementAndGet()); + assertEquals(1, numberCounter.get()); // initial state + + Flux limitedNumberFlux = limitedNumber.subscribe(); + AtomicInteger limitedNumberCounter = new AtomicInteger(0); + limitedNumberFlux + .subscribe(eventJson -> limitedNumberCounter.incrementAndGet()); + assertEquals(1, limitedNumberCounter.get()); // initial state + + number.submit(createIncrementEvent("5")); + assertEquals(2, numberCounter.get()); + assertEquals(2, limitedNumberCounter.get()); + + number.submit(createIncrementEvent("3")); + assertEquals(3, numberCounter.get()); + assertEquals(3, limitedNumberCounter.get()); + } + + @Test + public void multipleValidators_allValidatorsAreApplied() { + NumberSignal partiallyRestrictedSignal1 = new NumberSignal(42.0) + .withOperationValidator(op -> { + if (op instanceof IncrementOperation increment + && increment.value() % 2 == 0) { + return ValidationResult.reject( + "Increment by multiples of 2 is not allowed"); + } + return ValidationResult.allow(); + }); + NumberSignal partiallyRestrictedSignal2 = partiallyRestrictedSignal1 + .withOperationValidator(op -> { + if (op instanceof IncrementOperation increment + && increment.value() % 3 == 0) { + return ValidationResult.reject( + "Increment by multiples of 3 is not allowed"); + } + return ValidationResult.allow(); + }); + NumberSignal fullyRestrictedSignal = partiallyRestrictedSignal2 + .withOperationValidator(op -> { + if (op instanceof IncrementOperation) { + return ValidationResult + .reject("No increment is allowed"); + } + return ValidationResult.allow(); + }); + + // allowed: + partiallyRestrictedSignal1.submit(createIncrementEvent("1")); + // allowed: + partiallyRestrictedSignal2.submit(createIncrementEvent("5")); + // not allowed: + partiallyRestrictedSignal2.submit(createIncrementEvent("6")); + + assertEquals(48.0, fullyRestrictedSignal.getValue(), 0.0); + assertEquals(48.0, partiallyRestrictedSignal1.getValue(), 0.0); + + fullyRestrictedSignal.submit(createIncrementEvent("1")); + assertEquals(48.0, fullyRestrictedSignal.getValue(), 0.0); + assertEquals(48.0, partiallyRestrictedSignal1.getValue(), 0.0); + } + + @Test + public void withOperationValidator_throws_whenValidatorIsNull() { + assertThrows(NullPointerException.class, + () -> new NumberSignal(42.0).withOperationValidator(null)); + } + + @Test + public void readonlyInstance_doesNotAllowAnyModifications() { + NumberSignal signal = new NumberSignal(42.0); + NumberSignal readonlySignal = signal.asReadonly(); + + readonlySignal.submit(createIncrementEvent("2")); + assertEquals(42.0, readonlySignal.getValue(), 0.0); + + readonlySignal.submit(createSetEvent("5")); + assertEquals(42.0, readonlySignal.getValue(), 0.0); + } + + private ObjectNode createIncrementEvent(String value) { + var setEvent = new StateEvent<>(UUID.randomUUID().toString(), + StateEvent.EventType.INCREMENT, Double.parseDouble(value)); + return setEvent.toJson(); + } + + private ObjectNode createSetEvent(String value) { + var setEvent = new StateEvent<>(UUID.randomUUID().toString(), + StateEvent.EventType.SET, Double.parseDouble(value)); + return setEvent.toJson(); + } + + private ObjectNode createUnknownCommandEvent() { + var unknown = mapper.createObjectNode(); + unknown.put(StateEvent.Field.ID, UUID.randomUUID().toString()); + unknown.put("increase", "2"); + unknown.put(StateEvent.Field.VALUE, "42"); + return unknown; + } +} diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/Person.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/Person.java new file mode 100644 index 0000000000..183763e69c --- /dev/null +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/Person.java @@ -0,0 +1,57 @@ +package com.vaadin.hilla.signals; + +import java.util.Objects; + +public class Person { + private String name; + private int age; + private boolean adult; + + public Person(String name, int age, boolean adult) { + this.name = name; + this.age = age; + this.adult = adult; + } + + public Person() { + } + + public String getName() { + return name; + } + + public int getAge() { + return age; + } + + public boolean isAdult() { + return adult; + } + + public void setName(String name) { + this.name = name; + } + + public void setAge(int age) { + this.age = age; + } + + public void setAdult(boolean adult) { + this.adult = adult; + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Person person)) + return false; + return getAge() == person.getAge() && isAdult() == person.isAdult() + && Objects.equals(getName(), person.getName()); + } + + @Override + public int hashCode() { + return Objects.hash(getName(), getAge(), isAdult()); + } +} diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/ValueSignalTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/ValueSignalTest.java new file mode 100644 index 0000000000..6de797dee5 --- /dev/null +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/ValueSignalTest.java @@ -0,0 +1,531 @@ +package com.vaadin.hilla.signals; + +import java.time.LocalDateTime; +import java.util.UUID; +import java.util.concurrent.atomic.AtomicInteger; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.vaadin.hilla.EndpointControllerMockBuilder; +import com.vaadin.hilla.parser.jackson.JacksonObjectMapperFactory; +import com.vaadin.hilla.signals.core.event.StateEvent; +import com.vaadin.hilla.signals.operation.ReplaceValueOperation; +import com.vaadin.hilla.signals.operation.SetValueOperation; +import com.vaadin.hilla.signals.operation.ValidationResult; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.ApplicationContext; +import reactor.core.publisher.Flux; + +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mockStatic; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ValueSignalTest { + + private final ObjectMapper mapper = new ObjectMapper(); + + @BeforeClass + public static void setup() { + var appCtx = Mockito.mock(ApplicationContext.class); + var endpointObjectMapper = EndpointControllerMockBuilder + .createEndpointObjectMapper(appCtx, + new JacksonObjectMapperFactory.Json()); + Signal.setMapper(endpointObjectMapper); + } + + @AfterClass + public static void tearDown() { + Signal.setMapper(null); + } + + @Test + public void constructor_withValueArg_usesValueAsDefaultValue() { + var numberValueSignal = new ValueSignal<>(42.0, Double.class); + assertEquals(42.0, numberValueSignal.getValue(), 0.0); + + var stringValueSignal = new ValueSignal<>("test", String.class); + assertEquals("test", stringValueSignal.getValue()); + + var booleanValueSignal = new ValueSignal<>(true, Boolean.class); + assertEquals(true, booleanValueSignal.getValue()); + + var name = "John"; + var age = 42; + var adult = true; + var objectValueSignal = new ValueSignal<>(new Person(name, age, adult), + Person.class); + assertEquals(name, objectValueSignal.getValue().getName()); + assertEquals(age, objectValueSignal.getValue().getAge()); + assertEquals(adult, objectValueSignal.getValue().isAdult()); + } + + @Test + public void constructor_withoutValueArg_usesNullAsDefaultValue() { + var numberValueSignal = new ValueSignal<>(Double.class); + assertNull(numberValueSignal.getValue()); + + var stringValueSignal = new ValueSignal<>(String.class); + assertNull(stringValueSignal.getValue()); + + var booleanValueSignal = new ValueSignal<>(Boolean.class); + assertNull(booleanValueSignal.getValue()); + + var objectValueSignal = new ValueSignal<>(Person.class); + assertNull(objectValueSignal.getValue()); + } + + @Test + public void constructor_withNullArgs_doesNotAcceptNull() { + assertThrows(NullPointerException.class, + () -> new ValueSignal<>((Class) null)); + assertThrows(NullPointerException.class, + () -> new ValueSignal<>(null, Double.class)); + } + + @Test + public void getId_returns_not_null() { + var signal1 = new ValueSignal<>(String.class); + assertNotNull(signal1.getId()); + + var signal3 = new ValueSignal<>("foo", String.class); + assertNotNull(signal3.getId()); + } + + @Test + public void subscribe_returns_flux_withJsonEvents() { + var signal = new ValueSignal<>(Person.class); + + var flux = signal.subscribe(); + + flux.subscribe(Assert::assertNotNull); + } + + @Test + public void submit_notifies_subscribers() { + var signal = new ValueSignal<>(Person.class); + Flux flux = signal.subscribe(); + + var name = "John"; + var age = 42; + var adult = true; + + var counter = new AtomicInteger(0); + flux.subscribe(eventJson -> { + assertNotNull(eventJson); + var stateEvent = new StateEvent<>(eventJson, Person.class); + if (counter.get() == 0) { + // notification for the initial value + assertNull(stateEvent.getValue()); + assertTrue(StateEvent.isAccepted(eventJson)); + } else if (counter.get() == 1) { + assertTrue(StateEvent.isAccepted(eventJson)); + assertEquals(name, stateEvent.getValue().getName()); + assertEquals(name, signal.getValue().getName()); + assertEquals(age, stateEvent.getValue().getAge()); + assertEquals(age, signal.getValue().getAge()); + assertEquals(adult, stateEvent.getValue().isAdult()); + assertEquals(adult, signal.getValue().isAdult()); + } + counter.incrementAndGet(); + }); + + var person = new Person(name, age, adult); + signal.submit(createSetEvent(person)); + + assertEquals(2, counter.get()); + } + + @Test + public void serialization_for_java8_datetime_is_supported() { + var currentTimestamp = LocalDateTime.now(); + var signal = new ValueSignal<>( + new Message("Hi", "John Doe", currentTimestamp), Message.class); + var flux = signal.subscribe(); + AtomicInteger counter = new AtomicInteger(0); + var laterTimestamp = LocalDateTime.now(); + flux.subscribe(eventJson -> { + if (counter.get() == 0) { + assertNotNull(eventJson); + var stateEvent = new StateEvent<>(eventJson, Message.class); + assertEquals("Hi", stateEvent.getValue().text()); + assertEquals("John Doe", stateEvent.getValue().author()); + assertEquals(currentTimestamp, + stateEvent.getValue().timestamp()); + } else if (counter.get() == 1) { + var stateEvent = new StateEvent<>(eventJson, Message.class); + assertEquals("Hey", stateEvent.getValue().text()); + assertEquals("Jane Smith", stateEvent.getValue().author()); + assertEquals(laterTimestamp, stateEvent.getValue().timestamp()); + } + counter.incrementAndGet(); + }); + + signal.submit(createSetEvent( + new Message("Hey", "Jane Smith", laterTimestamp))); + + assertEquals(2, counter.get()); + } + + @Test + public void submit_conditionIsMet_notifies_subscribers_with_snapshot_event() { + var signal = new ValueSignal<>(2.0, Double.class); + Flux flux = signal.subscribe(); + + var conditionalReplaceEvent = createReplaceEvent(2.0, 3.0); + + var counter = new AtomicInteger(0); + flux.subscribe(eventJson -> { + assertNotNull(eventJson); + var stateEvent = new StateEvent<>(eventJson, Double.class); + if (counter.get() == 0) { + // notification for the initial value + assertEquals(2.0, stateEvent.getValue(), 0.0); + assertTrue(StateEvent.isAccepted(eventJson)); + } else if (counter.get() == 1) { + assertEquals(conditionalReplaceEvent.get(StateEvent.Field.ID) + .asText(), stateEvent.getId()); + assertEquals(StateEvent.EventType.REPLACE, + stateEvent.getEventType()); + assertTrue(StateEvent.isAccepted(eventJson)); + assertEquals(3.0, signal.getValue(), 0.0); + } + counter.incrementAndGet(); + }); + + signal.submit(conditionalReplaceEvent); + + assertEquals(2, counter.get()); + } + + @Test + public void submit_conditionIsNotMet_notifies_subscribers_with_reject_event() { + var signal = new ValueSignal<>(1.0, Double.class); + Flux flux = signal.subscribe(); + + var conditionalReplaceEvent = createReplaceEvent(2.0, 3.0); + + var counter = new AtomicInteger(0); + flux.subscribe(eventJson -> { + assertNotNull(eventJson); + var stateEvent = new StateEvent<>(eventJson, Double.class); + if (counter.get() == 0) { + // notification for the initial value + assertTrue(StateEvent.isAccepted(eventJson)); + } else if (counter.get() == 1) { + assertEquals(conditionalReplaceEvent.get(StateEvent.Field.ID) + .asText(), stateEvent.getId()); + assertEquals(StateEvent.EventType.REPLACE, + stateEvent.getEventType()); + assertFalse(StateEvent.isAccepted(eventJson)); + assertEquals(1.0, signal.getValue(), 0.0); + } + counter.incrementAndGet(); + }); + + signal.submit(conditionalReplaceEvent); + + assertEquals(2, counter.get()); + } + + @Test + public void submit_eventWithUnknownCommand_throws() { + var signal = new ValueSignal<>("Foo", String.class); + + var exception = assertThrows(UnsupportedOperationException.class, + () -> signal.submit(createUnknownCommandEvent())); + assertTrue(exception.getMessage().startsWith("Unsupported JSON: ")); + } + + @Test + public void setOperationValidated_originalInstanceIsNotLimited() { + ValueSignal unrestrictedSignal = new ValueSignal<>("Foo", + String.class); + + unrestrictedSignal.submit(createSetEvent("Bar")); + assertEquals("Bar", unrestrictedSignal.getValue()); + + ValueSignal noSetAllowedSignal = unrestrictedSignal + .withOperationValidator(value -> { + if (value instanceof SetValueOperation) { + return ValidationResult.reject("No set allowed"); + } + return ValidationResult.allow(); + }); + // the restricted instance sees the same value as the original one: + assertEquals("Bar", noSetAllowedSignal.getValue()); + + // the restricted instance doesn't allow set operation: + noSetAllowedSignal.submit(createSetEvent("Should-be rejected!")); + assertEquals("Bar", noSetAllowedSignal.getValue()); + + unrestrictedSignal.submit(createSetEvent("Baz")); + assertEquals("Baz", unrestrictedSignal.getValue()); + assertEquals("Baz", noSetAllowedSignal.getValue()); + } + + @Test + public void setOperationValidated_subscriptionWorks() { + ValueSignal unrestrictedSignal = new ValueSignal<>("Foo", + String.class); + ValueSignal noSetAllowedSignal = unrestrictedSignal + .withOperationValidator(value -> { + if (value instanceof SetValueOperation) { + return ValidationResult.reject("No set allowed"); + } + return ValidationResult.allow(); + }); + + Flux unrestrictedFlux = unrestrictedSignal.subscribe(); + AtomicInteger unrestrictedCounter = new AtomicInteger(0); + unrestrictedFlux.subscribe(eventJson -> { + unrestrictedCounter.incrementAndGet(); + }); + assertEquals(1, unrestrictedCounter.get()); // initial state + + Flux noSetAllowedFlux = noSetAllowedSignal.subscribe(); + AtomicInteger noSetAllowedCounter = new AtomicInteger(0); + noSetAllowedFlux.subscribe(eventJson -> { + noSetAllowedCounter.incrementAndGet(); + }); + assertEquals(1, noSetAllowedCounter.get()); // initial state + + unrestrictedSignal.submit(createSetEvent("Bar")); + assertEquals(2, unrestrictedCounter.get()); + assertEquals(2, noSetAllowedCounter.get()); + + unrestrictedSignal.submit(createSetEvent("Baz")); + assertEquals(3, unrestrictedCounter.get()); + assertEquals(3, noSetAllowedCounter.get()); + } + + @Test + public void setOperationValidated_otherOperationsAreNotAffected() { + ValueSignal unrestrictedSignal = new ValueSignal<>("Foo", + String.class); + ValueSignal noSetAllowedSignal = unrestrictedSignal + .withOperationValidator(value -> { + if (value instanceof SetValueOperation) { + return ValidationResult.reject("No set allowed"); + } + return ValidationResult.allow(); + }); + + unrestrictedSignal.submit(createSetEvent("Bar")); + // make sure restriction is intact: + noSetAllowedSignal.submit(createSetEvent("Should-be Rejected")); + + assertEquals("Bar", unrestrictedSignal.getValue()); + assertEquals("Bar", noSetAllowedSignal.getValue()); + + // perform another operation via the restricted signal: + noSetAllowedSignal.submit(createReplaceEvent("Bar", "Baz")); + assertEquals("Baz", noSetAllowedSignal.getValue()); + assertEquals("Baz", unrestrictedSignal.getValue()); + } + + @Test + public void replaceOperationValidated_originalInstanceIsNotRestricted() { + ValueSignal unrestrictedSignal = new ValueSignal<>("Foo", + String.class); + + unrestrictedSignal.submit(createReplaceEvent("Foo", "Bar")); + assertEquals("Bar", unrestrictedSignal.getValue()); + + ValueSignal noReplaceAllowedSignal = unrestrictedSignal + .withOperationValidator(op -> { + if (op instanceof ReplaceValueOperation) { + return ValidationResult.reject("No replace allowed"); + } + return ValidationResult.allow(); + }); + // the restricted instance sees the same value as the original one: + assertEquals("Bar", noReplaceAllowedSignal.getValue()); + + // the restricted instance doesn't allow replace operation: + noReplaceAllowedSignal + .submit(createReplaceEvent("Bar", "Should-be rejected!")); + assertEquals("Bar", noReplaceAllowedSignal.getValue()); + + unrestrictedSignal.submit(createReplaceEvent("Bar", "Baz")); + assertEquals("Baz", unrestrictedSignal.getValue()); + assertEquals("Baz", noReplaceAllowedSignal.getValue()); + } + + @Test + public void replaceOperationValidated_subscriptionWorks() { + ValueSignal unrestrictedSignal = new ValueSignal<>("Foo", + String.class); + ValueSignal noReplaceAllowedSignal = unrestrictedSignal + .withOperationValidator(op -> { + if (op instanceof ReplaceValueOperation) { + return ValidationResult.reject("No replace allowed"); + } + return ValidationResult.allow(); + }); + + Flux unrestrictedFlux = unrestrictedSignal.subscribe(); + AtomicInteger unrestrictedCounter = new AtomicInteger(0); + unrestrictedFlux.subscribe(eventJson -> { + unrestrictedCounter.incrementAndGet(); + }); + assertEquals(1, unrestrictedCounter.get()); // initial state + + Flux noReplaceAllowedFlux = noReplaceAllowedSignal + .subscribe(); + AtomicInteger noReplaceAllowedCounter = new AtomicInteger(0); + noReplaceAllowedFlux.subscribe(eventJson -> { + noReplaceAllowedCounter.incrementAndGet(); + }); + assertEquals(1, noReplaceAllowedCounter.get()); // initial state + + unrestrictedSignal.submit(createReplaceEvent("Foo", "Bar")); + assertEquals(2, unrestrictedCounter.get()); + assertEquals(2, noReplaceAllowedCounter.get()); + + unrestrictedSignal.submit(createReplaceEvent("Bar", "Baz")); + assertEquals(3, unrestrictedCounter.get()); + assertEquals(3, noReplaceAllowedCounter.get()); + } + + @Test + public void replaceOperationValidated_otherOperationsAreNotAffected() { + ValueSignal unrestrictedSignal = new ValueSignal<>("Foo", + String.class); + ValueSignal noReplaceAllowedSignal = unrestrictedSignal + .withOperationValidator(op -> { + if (op instanceof ReplaceValueOperation) { + return ValidationResult.reject("No replace allowed"); + } + return ValidationResult.allow(); + }); + + unrestrictedSignal.submit(createReplaceEvent("Foo", "Bar")); + // make sure restriction is intact: + noReplaceAllowedSignal + .submit(createReplaceEvent("Bar", "Should-be Rejected")); + + assertEquals("Bar", unrestrictedSignal.getValue()); + assertEquals("Bar", noReplaceAllowedSignal.getValue()); + + // perform another operation via the restricted signal: + noReplaceAllowedSignal.submit(createSetEvent("Baz")); + assertEquals("Baz", noReplaceAllowedSignal.getValue()); + assertEquals("Baz", unrestrictedSignal.getValue()); + } + + @Test + public void withMultipleOperationValidators_allValidatorsAreApplied() { + ValueSignal partiallyRestrictedSignal = new ValueSignal<>("Foo", + String.class).withOperationValidator(validator -> { + if (validator instanceof SetValueOperation setOp + && setOp.value().startsWith("Joe")) { + return ValidationResult.reject("No Joe is allowed"); + } + return ValidationResult.allow(); + }); + ValueSignal fullyRestrictedSignal = partiallyRestrictedSignal + .withOperationValidator(op -> { + if (op instanceof SetValueOperation) { + return ValidationResult.reject("No set allowed"); + } else if (op instanceof ReplaceValueOperation) { + return ValidationResult.reject("No replace allowed"); + } + return ValidationResult.allow(); + }); + + partiallyRestrictedSignal.submit(createSetEvent("John Normal")); + partiallyRestrictedSignal.submit(createSetEvent("Jane Executive")); + partiallyRestrictedSignal + .submit(createSetEvent("Joe Should-be-rejected")); + + assertEquals("Jane Executive", fullyRestrictedSignal.getValue()); + + fullyRestrictedSignal.submit( + createReplaceEvent("Jane Executive", "Should-be Rejected")); + assertEquals("Jane Executive", fullyRestrictedSignal.getValue()); + + fullyRestrictedSignal.submit(createSetEvent("Emma Executive")); + assertEquals("Jane Executive", fullyRestrictedSignal.getValue()); + + partiallyRestrictedSignal.submit(createSetEvent("Emma Executive")); + assertEquals("Emma Executive", partiallyRestrictedSignal.getValue()); + assertEquals("Emma Executive", fullyRestrictedSignal.getValue()); + } + + @Test + public void withOperationValidator_throws_whenValidatorIsNull() { + assertThrows(NullPointerException.class, + () -> new ValueSignal<>("Foo", String.class) + .withOperationValidator(null)); + } + + @Test + public void readonlyInstance_doesNotAllowAnyModifications() { + ValueSignal signal = new ValueSignal<>("Foo", String.class); + ValueSignal readonlySignal = signal.asReadonly(); + + readonlySignal.submit(createSetEvent("Bar")); + assertEquals("Foo", readonlySignal.getValue()); + + readonlySignal.submit(createReplaceEvent("Foo", "Bar")); + assertEquals("Foo", readonlySignal.getValue()); + } + + @Test + public void submit_eventThatIsRejected_logsTheValidationError() { + Logger logger = Mockito.mock(Logger.class); + try (MockedStatic mockedLoggerFactory = mockStatic( + LoggerFactory.class)) { + + mockedLoggerFactory + .when(() -> LoggerFactory.getLogger(Signal.class)) + .thenReturn(logger); + + var signal = new ValueSignal<>("Foo", String.class) + .withOperationValidator(op -> ValidationResult + .reject("No changes allowed")); + var operation = createSetEvent("Bar"); + signal.submit(operation); + + verify(logger, times(1)).warn( + "Operation with id '{}' is rejected with validator message: '{}'", + StateEvent.extractId(operation), "No changes allowed"); + } + } + + private ObjectNode createSetEvent(T value) { + var setEvent = new StateEvent<>(UUID.randomUUID().toString(), + StateEvent.EventType.SET, value); + return setEvent.toJson(); + } + + private ObjectNode createReplaceEvent(T expectedValue, T value) { + var setEvent = new StateEvent<>(UUID.randomUUID().toString(), + StateEvent.EventType.REPLACE, value, expectedValue); + return setEvent.toJson(); + } + + private ObjectNode createUnknownCommandEvent() { + var unknown = mapper.createObjectNode(); + unknown.put(StateEvent.Field.ID, UUID.randomUUID().toString()); + unknown.put("concat", "bar"); + unknown.put(StateEvent.Field.VALUE, "Foo"); + return unknown; + } +} diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/core/event/ListStateEventTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/core/event/ListStateEventTest.java new file mode 100644 index 0000000000..7393da452c --- /dev/null +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/core/event/ListStateEventTest.java @@ -0,0 +1,454 @@ +package com.vaadin.hilla.signals.core.event; + +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.vaadin.hilla.EndpointControllerMockBuilder; +import com.vaadin.hilla.parser.jackson.JacksonObjectMapperFactory; +import com.vaadin.hilla.signals.ValueSignal; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.UUID; + +import com.vaadin.hilla.signals.Person; +import org.mockito.Mockito; +import org.springframework.context.ApplicationContext; + +import static org.junit.Assert.*; + +import static com.vaadin.hilla.signals.core.event.StateEvent.MAPPER; + +public class ListStateEventTest { + + @BeforeClass + public static void setup() { + var appCtx = Mockito.mock(ApplicationContext.class); + var endpointObjectMapper = EndpointControllerMockBuilder + .createEndpointObjectMapper(appCtx, + new JacksonObjectMapperFactory.Json()); + StateEvent.setMapper(endpointObjectMapper); + } + + @AfterClass + public static void tearDown() { + StateEvent.setMapper(null); + } + + @Test + public void constructor_withEntries_shouldCreateListStateEvent() { + String id = UUID.randomUUID().toString(); + ListStateEvent.EventType eventType = ListStateEvent.EventType.SNAPSHOT; + + List> entries = Arrays.asList( + new MockListEntry<>(UUID.randomUUID(), null, null, "value1"), + new MockListEntry<>(UUID.randomUUID(), null, null, "value2")); + + ListStateEvent event = new ListStateEvent<>(id, eventType, + entries); + + assertEquals(id, event.getId()); + assertEquals(eventType, event.getEventType()); + assertEquals(entries, event.getEntries()); + assertNull(event.getValue()); + assertNull(event.getPosition()); + } + + @Test + public void constructor_withValueAndPosition_shouldCreateListStateEvent() { + String id = UUID.randomUUID().toString(); + ListStateEvent.EventType eventType = ListStateEvent.EventType.INSERT; + String value = "testValue"; + ListStateEvent.InsertPosition position = ListStateEvent.InsertPosition.FIRST; + + ListStateEvent event = new ListStateEvent<>(id, eventType, + value, position); + + assertEquals(id, event.getId()); + assertEquals(eventType, event.getEventType()); + assertEquals(value, event.getValue()); + assertEquals(position, event.getPosition()); + assertNull(event.getEntries()); + } + + @Test + public void constructor_withJson_shouldCreateListStateEvent() { + String id = UUID.randomUUID().toString(); + ListStateEvent.EventType eventType = ListStateEvent.EventType.INSERT; + String value = "testValue"; + ListStateEvent.InsertPosition position = ListStateEvent.InsertPosition.AFTER; + + ObjectNode json = MAPPER.createObjectNode(); + json.put(StateEvent.Field.ID, id); + json.put(StateEvent.Field.TYPE, eventType.name().toLowerCase()); + json.put(ListStateEvent.Field.POSITION, position.name().toLowerCase()); + json.set(StateEvent.Field.VALUE, MAPPER.valueToTree(value)); + + ListStateEvent event = new ListStateEvent<>(json, String.class); + + assertEquals(id, event.getId()); + assertEquals(eventType, event.getEventType()); + assertEquals(value, event.getValue()); + assertEquals(position, event.getPosition()); + } + + @Test + public void toJson_withEntries_shouldReturnCorrectJson() { + String id = UUID.randomUUID().toString(); + ListStateEvent.EventType eventType = ListStateEvent.EventType.SNAPSHOT; + + UUID entryId1 = UUID.randomUUID(); + UUID entryId2 = UUID.randomUUID(); + + List> entries = Arrays.asList( + new MockListEntry<>(entryId1, null, entryId2, "value1"), + new MockListEntry<>(entryId2, entryId1, null, "value2")); + + ListStateEvent event = new ListStateEvent<>(id, eventType, + entries); + ObjectNode eventJson = event.toJson(); + + assertEquals(id, eventJson.get(StateEvent.Field.ID).asText()); + assertEquals(eventType.name().toLowerCase(), + eventJson.get(StateEvent.Field.TYPE).asText()); + + ArrayNode entriesJson = (ArrayNode) eventJson + .get(ListStateEvent.Field.ENTRIES); + assertNotNull(entriesJson); + assertEquals(2, entriesJson.size()); + + ObjectNode entryJson1 = (ObjectNode) entriesJson.get(0); + assertEquals(entryId1.toString(), + entryJson1.get(StateEvent.Field.ID).asText()); + assertEquals(entryId2.toString(), + entryJson1.get(ListStateEvent.Field.NEXT).asText()); + assertFalse(entryJson1.has(ListStateEvent.Field.PREV)); + assertEquals("value1", entryJson1.get(StateEvent.Field.VALUE).asText()); + + ObjectNode entryJson2 = (ObjectNode) entriesJson.get(1); + assertEquals(entryId2.toString(), + entryJson2.get(StateEvent.Field.ID).asText()); + assertEquals(entryId1.toString(), + entryJson2.get(ListStateEvent.Field.PREV).asText()); + assertFalse(entryJson2.has(ListStateEvent.Field.NEXT)); + assertEquals("value2", entryJson2.get(StateEvent.Field.VALUE).asText()); + } + + @Test + public void toJson_withValueAndPosition_shouldReturnCorrectJson() { + String id = UUID.randomUUID().toString(); + ListStateEvent.EventType eventType = ListStateEvent.EventType.INSERT; + String value = "testValue"; + ListStateEvent.InsertPosition position = ListStateEvent.InsertPosition.BEFORE; + + ListStateEvent event = new ListStateEvent<>(id, eventType, + value, position); + ObjectNode eventJson = event.toJson(); + + assertEquals(id, eventJson.get(StateEvent.Field.ID).asText()); + assertEquals(eventType.name().toLowerCase(), + eventJson.get(StateEvent.Field.TYPE).asText()); + assertEquals(position.name().toLowerCase(), + eventJson.get(ListStateEvent.Field.POSITION).asText()); + assertEquals(value, eventJson.get(StateEvent.Field.VALUE).asText()); + } + + @Test + public void constructor_withJsonInvalidEventType_shouldThrowInvalidEventTypeException() { + String id = UUID.randomUUID().toString(); + + ObjectNode json = MAPPER.createObjectNode(); + json.put(StateEvent.Field.ID, id); + json.put(StateEvent.Field.TYPE, "invalidType"); + + Exception exception = assertThrows(InvalidEventTypeException.class, + () -> new ListStateEvent<>(json, String.class)); + + String expectedMessage = "Invalid event type invalidType. Type should be one of: [SNAPSHOT, INSERT, REMOVE]"; + String actualMessage = exception.getMessage(); + + assertTrue(actualMessage.contains(expectedMessage)); + } + + @Test + public void constructor_withJsonInvalidInsertPosition_shouldThrowInvalidEventTypeException() { + String id = UUID.randomUUID().toString(); + String value = "testValue"; + + ObjectNode json = MAPPER.createObjectNode(); + json.put(StateEvent.Field.ID, id); + json.put(StateEvent.Field.TYPE, + ListStateEvent.EventType.INSERT.name().toLowerCase()); + json.put(ListStateEvent.Field.POSITION, "invalidPosition"); + json.set(StateEvent.Field.VALUE, MAPPER.valueToTree(value)); + + Exception exception = assertThrows(InvalidEventTypeException.class, + () -> new ListStateEvent<>(json, String.class)); + + String expectedMessage = "Invalid event position: invalidPosition. Position should be one of: [FIRST, LAST, BEFORE, AFTER]"; + String actualMessage = exception.getMessage(); + + assertTrue(actualMessage.contains(expectedMessage)); + } + + @Test + public void when_typeIsInsert_constructor_withJsonMissingPosition_shouldThrowMissingFieldException() { + String id = UUID.randomUUID().toString(); + String value = "testValue"; + + ObjectNode json = MAPPER.createObjectNode(); + json.put(StateEvent.Field.ID, id); + json.put(StateEvent.Field.TYPE, + ListStateEvent.EventType.INSERT.name().toLowerCase()); + json.set(StateEvent.Field.VALUE, MAPPER.valueToTree(value)); + + Exception exception = assertThrows(MissingFieldException.class, + () -> new ListStateEvent<>(json, String.class)); + + String expectedMessage = "Missing event position. Position is required, and should be one of: [FIRST, LAST, BEFORE, AFTER]"; + String actualMessage = exception.getMessage(); + + assertTrue(actualMessage.contains(expectedMessage)); + } + + @Test + public void when_typeIsInsert_constructor_withJsonMissingValue_shouldThrowMissingFieldException() { + String id = UUID.randomUUID().toString(); + ListStateEvent.EventType eventType = ListStateEvent.EventType.INSERT; + ListStateEvent.InsertPosition position = ListStateEvent.InsertPosition.AFTER; + + ObjectNode json = MAPPER.createObjectNode(); + json.put(StateEvent.Field.ID, id); + json.put(StateEvent.Field.TYPE, eventType.name().toLowerCase()); + json.put(ListStateEvent.Field.POSITION, position.name().toLowerCase()); + + Exception exception = assertThrows(MissingFieldException.class, + () -> new ListStateEvent<>(json, String.class)); + + String expectedMessage = "Missing field: value"; + String actualMessage = exception.getMessage(); + + assertTrue(actualMessage.contains(expectedMessage)); + } + + @Test + public void getEntryId_withEntryId_shouldReturnEntryId() { + String id = UUID.randomUUID().toString(); + ListStateEvent.EventType eventType = ListStateEvent.EventType.REMOVE; + UUID entryId = UUID.fromString("123e4567-e89b-12d3-a456-426614174000"); + + ObjectNode json = MAPPER.createObjectNode(); + json.put(StateEvent.Field.ID, id); + json.put(StateEvent.Field.TYPE, eventType.name().toLowerCase()); + json.put(ListStateEvent.Field.ENTRY_ID, entryId.toString()); + + ListStateEvent event = new ListStateEvent<>(json, String.class); + + assertEquals(entryId, event.getEntryId()); + } + + @Test + public void setEntryId_shouldSetEntryId() { + String id = UUID.randomUUID().toString(); + ListStateEvent.EventType eventType = ListStateEvent.EventType.REMOVE; + + ListStateEvent event = new ListStateEvent<>(id, eventType, + null); + UUID entryId = UUID.randomUUID(); + event.setEntryId(entryId); + + assertEquals(entryId, event.getEntryId()); + } + + @Test + public void accepted_setter_mutatesTheAcceptedValue() { + String id = UUID.randomUUID().toString(); + ListStateEvent.EventType eventType = ListStateEvent.EventType.INSERT; + String value = "testValue"; + ListStateEvent.InsertPosition position = ListStateEvent.InsertPosition.FIRST; + + ListStateEvent event = new ListStateEvent<>(id, eventType, + value, position); + + assertNull(event.getAccepted()); + event.setAccepted(true); + assertTrue(event.getAccepted()); + event.setAccepted(false); + assertFalse(event.getAccepted()); + } + + @Test + public void toJson_withAcceptedField_returnsAcceptedField() { + String id = UUID.randomUUID().toString(); + ListStateEvent.EventType eventType = ListStateEvent.EventType.INSERT; + String value = "testValue"; + ListStateEvent.InsertPosition position = ListStateEvent.InsertPosition.FIRST; + + ListStateEvent event = new ListStateEvent<>(id, eventType, + value, position); + + ObjectNode json = event.toJson(); + assertFalse(json.has(StateEvent.Field.ACCEPTED)); + event.setAccepted(true); + json = event.toJson(); + assertTrue(json.has(StateEvent.Field.ACCEPTED)); + assertTrue(json.get(StateEvent.Field.ACCEPTED).asBoolean()); + } + + @Test + public void properlySerializesArbitraryValueTypes() { + String id = UUID.randomUUID().toString(); + ListStateEvent.EventType eventType = ListStateEvent.EventType.INSERT; + Person value = new Person("John Doe", 42, true); + ListStateEvent.InsertPosition position = ListStateEvent.InsertPosition.LAST; + + ListStateEvent event = new ListStateEvent<>(id, eventType, + value, position); + + ObjectNode eventJson = event.toJson(); + + assertEquals(id, eventJson.get(StateEvent.Field.ID).asText()); + assertEquals(eventType.name().toLowerCase(), + eventJson.get(StateEvent.Field.TYPE).asText()); + assertEquals(position.name().toLowerCase(), + eventJson.get(ListStateEvent.Field.POSITION).asText()); + + ObjectNode valueJson = (ObjectNode) eventJson + .get(StateEvent.Field.VALUE); + assertEquals(value.getName(), valueJson.get("name").asText()); + assertEquals(value.getAge(), valueJson.get("age").asInt()); + assertEquals(value.isAdult(), valueJson.get("adult").asBoolean()); + + ListStateEvent deserializedEvent = new ListStateEvent<>( + eventJson, Person.class); + + assertEquals(event.getId(), deserializedEvent.getId()); + assertEquals(event.getEventType(), deserializedEvent.getEventType()); + assertEquals(event.getPosition(), deserializedEvent.getPosition()); + + Person deserializedValue = deserializedEvent.getValue(); + assertEquals(value.getName(), deserializedValue.getName()); + assertEquals(value.getAge(), deserializedValue.getAge()); + assertEquals(value.isAdult(), deserializedValue.isAdult()); + } + + @Test + public void eventType_of_withValidType_shouldReturnCorrectEventType() { + assertEquals(ListStateEvent.EventType.SNAPSHOT, + ListStateEvent.EventType.of("snapshot")); + assertEquals(ListStateEvent.EventType.INSERT, + ListStateEvent.EventType.of("insert")); + assertEquals(ListStateEvent.EventType.REMOVE, + ListStateEvent.EventType.of("remove")); + } + + @Test + public void eventType_of_withInvalidType_shouldThrowIllegalArgumentException() { + Exception exception = assertThrows(IllegalArgumentException.class, + () -> ListStateEvent.EventType.of("invalidType")); + + String expectedMessage = "No enum constant"; + String actualMessage = exception.getMessage(); + + assertTrue(actualMessage.contains(expectedMessage)); + } + + @Test + public void insertPosition_of_withValidPosition_shouldReturnCorrectInsertPosition() { + assertEquals(ListStateEvent.InsertPosition.FIRST, + ListStateEvent.InsertPosition.of("first")); + assertEquals(ListStateEvent.InsertPosition.LAST, + ListStateEvent.InsertPosition.of("last")); + assertEquals(ListStateEvent.InsertPosition.BEFORE, + ListStateEvent.InsertPosition.of("before")); + assertEquals(ListStateEvent.InsertPosition.AFTER, + ListStateEvent.InsertPosition.of("after")); + } + + @Test + public void insertPosition_of_withInvalidPosition_shouldThrowIllegalArgumentException() { + Exception exception = assertThrows(IllegalArgumentException.class, + () -> ListStateEvent.InsertPosition.of("invalidPosition")); + + String expectedMessage = "No enum constant"; + String actualMessage = exception.getMessage(); + + assertTrue(actualMessage.contains(expectedMessage)); + } + + @Test + public void when_typeIsRemove_constructor_withJsonMissingEntryId_shouldThrowMissingFieldException() { + String id = UUID.randomUUID().toString(); + ListStateEvent.EventType eventType = ListStateEvent.EventType.REMOVE; + + ObjectNode json = MAPPER.createObjectNode(); + json.put(StateEvent.Field.ID, id); + json.put(StateEvent.Field.TYPE, eventType.name().toLowerCase()); + // Intentionally omitting 'entryId' field to simulate missing entryId + + Exception exception = assertThrows(MissingFieldException.class, + () -> new ListStateEvent<>(json, String.class)); + + String expectedMessage = "Missing field: entryId"; + String actualMessage = exception.getMessage(); + + assertTrue(actualMessage.contains(expectedMessage)); + } + + @Test + public void extractParentSignalId_withParentSignalId_shouldReturnParentSignalId() { + ObjectNode json = MAPPER.createObjectNode(); + json.put(ListStateEvent.Field.PARENT_SIGNAL_ID, "parent-signal-id"); + String parentSignalId = ListStateEvent.extractParentSignalId(json); + assertEquals("parent-signal-id", parentSignalId); + } + + @Test + public void extractParentSignalId_withoutParentSignalId_shouldReturnNull() { + ObjectNode json = MAPPER.createObjectNode(); + String parentSignalId = ListStateEvent.extractParentSignalId(json); + assertNull(parentSignalId); + } + + static class MockListEntry implements ListStateEvent.ListEntry { + private final UUID id; + private final UUID previous; + private final UUID next; + private final T value; + + public MockListEntry(UUID id, UUID previous, UUID next, T value) { + this.id = id; + this.previous = previous; + this.next = next; + this.value = value; + } + + @Override + public UUID id() { + return id; + } + + @Override + public UUID previous() { + return previous; + } + + @Override + public UUID next() { + return next; + } + + @Override + public T value() { + return value; + } + + @Override + public ValueSignal getValueSignal() { + return null; + } + } +} diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/core/event/StateEventTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/core/event/StateEventTest.java new file mode 100644 index 0000000000..4aae30fcf7 --- /dev/null +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/core/event/StateEventTest.java @@ -0,0 +1,430 @@ +package com.vaadin.hilla.signals.core.event; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.vaadin.hilla.EndpointControllerMockBuilder; +import com.vaadin.hilla.parser.jackson.JacksonObjectMapperFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.UUID; + +import com.vaadin.hilla.signals.Person; +import org.mockito.Mockito; +import org.springframework.context.ApplicationContext; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; + +import static com.vaadin.hilla.signals.core.event.StateEvent.MAPPER; + +public class StateEventTest { + + @BeforeClass + public static void setup() { + var appCtx = Mockito.mock(ApplicationContext.class); + var endpointObjectMapper = EndpointControllerMockBuilder + .createEndpointObjectMapper(appCtx, + new JacksonObjectMapperFactory.Json()); + StateEvent.setMapper(endpointObjectMapper); + } + + @AfterClass + public static void tearDown() { + StateEvent.setMapper(null); + } + + @Test + public void constructor_withoutExpected_shouldCreateStateEvent() { + String id = UUID.randomUUID().toString(); + StateEvent.EventType eventType = StateEvent.EventType.SET; + String value = "testValue"; + + StateEvent event = new StateEvent<>(id, eventType, value); + + assertEquals(id, event.getId()); + assertEquals(eventType, event.getEventType()); + assertEquals(value, event.getValue()); + assertNull(event.getExpected()); + } + + @Test + public void constructor_withExpected_shouldCreateStateEventContainingExpectedValue() { + String id = UUID.randomUUID().toString(); + StateEvent.EventType eventType = StateEvent.EventType.SET; + String value = "testValue"; + String expected = "expectedValue"; + + StateEvent event = new StateEvent<>(id, eventType, value, + expected); + + assertEquals(id, event.getId()); + assertEquals(eventType, event.getEventType()); + assertEquals(value, event.getValue()); + assertEquals(expected, event.getExpected()); + } + + @Test + public void constructor_withJson_shouldCreateStateEvent() { + String clientId = UUID.randomUUID().toString(); + StateEvent.EventType eventType = StateEvent.EventType.SET; + String value = "testValue"; + + ObjectNode json = MAPPER.createObjectNode(); + json.put(StateEvent.Field.ID, clientId); + json.put(StateEvent.Field.TYPE, eventType.name().toLowerCase()); + json.put(StateEvent.Field.VALUE, value); + + StateEvent event = new StateEvent<>(json, String.class); + + assertEquals(clientId, event.getId()); + assertEquals(eventType, event.getEventType()); + assertEquals(value, event.getValue()); + assertNull(event.getExpected()); + } + + @Test + public void constructor_withJsonContainingExpected_shouldCreateStateEvent() { + String clientId = UUID.randomUUID().toString(); + StateEvent.EventType eventType = StateEvent.EventType.SET; + String value = "testValue"; + String expected = "expectedValue"; + + ObjectNode json = MAPPER.createObjectNode(); + json.put(StateEvent.Field.ID, clientId); + json.put(StateEvent.Field.TYPE, eventType.name().toLowerCase()); + json.put(StateEvent.Field.VALUE, value); + json.put(StateEvent.Field.EXPECTED, expected); + + StateEvent event = new StateEvent<>(json, String.class); + + assertEquals(clientId, event.getId()); + assertEquals(eventType, event.getEventType()); + assertEquals(value, event.getValue()); + assertEquals(expected, event.getExpected()); + } + + @Test + public void toJson_whenCalled_shouldReturnCorrectJson() { + String id = UUID.randomUUID().toString(); + StateEvent.EventType eventType = StateEvent.EventType.SNAPSHOT; + String value = "testValue"; + + // Without expected value: + StateEvent eventWithoutExpected = new StateEvent<>(id, + eventType, value); + ObjectNode jsonWithoutExpected = eventWithoutExpected.toJson(); + + assertEquals(id, jsonWithoutExpected.get(StateEvent.Field.ID).asText()); + assertEquals(eventType.name().toLowerCase(), + jsonWithoutExpected.get(StateEvent.Field.TYPE).asText()); + assertEquals(value, + jsonWithoutExpected.get(StateEvent.Field.VALUE).asText()); + assertNull(jsonWithoutExpected.get(StateEvent.Field.EXPECTED)); + + // With expected value: + String expected = "expectedValue"; + StateEvent eventWitExpected = new StateEvent<>(id, eventType, + value, expected); + ObjectNode jsonWithExpected = eventWitExpected.toJson(); + + assertEquals(id, jsonWithExpected.get(StateEvent.Field.ID).asText()); + assertEquals(eventType.name().toLowerCase(), + jsonWithExpected.get(StateEvent.Field.TYPE).asText()); + assertEquals(value, + jsonWithExpected.get(StateEvent.Field.VALUE).asText()); + assertEquals(expected, + jsonWithExpected.get(StateEvent.Field.EXPECTED).asText()); + } + + @Test + public void constructor_withJsonInvalidEventType_shouldThrowInvalidEventTypeException() { + String clientId = UUID.randomUUID().toString(); + String value = "testValue"; + + ObjectNode json = MAPPER.createObjectNode(); + json.put(StateEvent.Field.ID, clientId); + json.put(StateEvent.Field.TYPE, "invalidType"); + json.put(StateEvent.Field.VALUE, value); + + Exception exception = assertThrows(InvalidEventTypeException.class, + () -> new StateEvent<>(json, String.class)); + + String expectedMessage = "Invalid event type invalidType. Type should be one of: [SNAPSHOT, SET, REPLACE, INCREMENT]"; + String actualMessage = exception.getMessage(); + + assertTrue(actualMessage.contains(expectedMessage)); + } + + @Test + public void constructor_withJsonMissingEventType_shouldThrowMissingFieldException() { + String clientId = UUID.randomUUID().toString(); + String value = "testValue"; + + ObjectNode json = MAPPER.createObjectNode(); + json.put(StateEvent.Field.ID, clientId); + json.put(StateEvent.Field.VALUE, value); + + Exception exception = assertThrows(MissingFieldException.class, + () -> new StateEvent<>(json, String.class)); + + String expectedMessage = "Missing event type. Type is required, and should be one of: [SNAPSHOT, SET, REPLACE, INCREMENT]"; + String actualMessage = exception.getMessage(); + + assertTrue(actualMessage.contains(expectedMessage)); + } + + @Test + public void properlySerializesArbitraryValueTypes() { + var id = UUID.randomUUID().toString(); + var eventType = StateEvent.EventType.SET; + var value = new Person("John Doe", 42, true); + + var event = new StateEvent<>(id, eventType, value); + + var eventJson = event.toJson(); + + assertEquals(id, eventJson.get(StateEvent.Field.ID).asText()); + assertEquals(eventType.name().toLowerCase(), + eventJson.get(StateEvent.Field.TYPE).asText()); + var personJson = eventJson.get(StateEvent.Field.VALUE); + assertEquals(value.getName(), personJson.get("name").asText()); + assertEquals(value.getAge(), personJson.get("age").asInt()); + assertEquals(value.isAdult(), personJson.get("adult").asBoolean()); + + var deserializedEvent = new StateEvent<>(eventJson, Person.class); + assertEquals(event.getId(), deserializedEvent.getId()); + assertEquals(event.getEventType(), deserializedEvent.getEventType()); + assertEquals(event.getValue().getName(), + deserializedEvent.getValue().getName()); + assertEquals(event.getValue().getAge(), + deserializedEvent.getValue().getAge()); + assertEquals(event.getValue().isAdult(), + deserializedEvent.getValue().isAdult()); + } + + @Test + public void eventType_of_shouldReturnCorrectEventType() { + assertEquals(StateEvent.EventType.SNAPSHOT, + StateEvent.EventType.of("snapshot")); + assertEquals(StateEvent.EventType.SET, StateEvent.EventType.of("set")); + assertEquals(StateEvent.EventType.REPLACE, + StateEvent.EventType.of("replace")); + assertEquals(StateEvent.EventType.INCREMENT, + StateEvent.EventType.of("increment")); + } + + @Test + public void eventType_of_withInvalidType_shouldThrowIllegalArgumentException() { + Exception exception = assertThrows(IllegalArgumentException.class, + () -> StateEvent.EventType.of("invalidType")); + + String expectedMessage = "No enum constant com.vaadin.hilla.signals.core.event.StateEvent.EventType.INVALIDTYPE"; + String actualMessage = exception.getMessage(); + + assertEquals(expectedMessage, actualMessage); + } + + @Test + public void eventType_of_null_shouldThrowNullPointerException() { + assertThrows(NullPointerException.class, + () -> StateEvent.EventType.of(null)); + } + + @Test + public void evenType_find_shouldReturnCorrectEventType() { + assertEquals(StateEvent.EventType.SNAPSHOT, + StateEvent.EventType.find("snapshot").get()); + assertEquals(StateEvent.EventType.SET, + StateEvent.EventType.find("set").get()); + assertEquals(StateEvent.EventType.REPLACE, + StateEvent.EventType.find("replace").get()); + assertEquals(StateEvent.EventType.INCREMENT, + StateEvent.EventType.find("increment").get()); + } + + @Test + public void eventType_find_withInvalidType_shouldReturnEmptyOptional() { + assertTrue(StateEvent.EventType.find("invalidType").isEmpty()); + assertTrue(StateEvent.EventType.find(null).isEmpty()); + } + + @Test + public void accepted_setter_mutatesTheAcceptedValue() { + var event = new StateEvent<>("id", StateEvent.EventType.SET, "value"); + assertNull(event.getAccepted()); + event.setAccepted(true); + assertTrue(event.getAccepted()); + event.setAccepted(false); + assertFalse(event.getAccepted()); + } + + @Test + public void isAccepted_staticMethod_returnsFalseIfAcceptedField_isNull() { + var event = new StateEvent<>("id", StateEvent.EventType.SET, "value"); + assertFalse(StateEvent.isAccepted(event.toJson())); + } + + @Test + public void toJson_withAcceptedField_returnsAcceptedField() { + var event = new StateEvent<>("id", StateEvent.EventType.SET, "value"); + var eventJson = event.toJson(); + assertFalse(eventJson.has(StateEvent.Field.ACCEPTED)); + assertFalse(StateEvent.isAccepted(eventJson)); + event.setAccepted(true); + eventJson = event.toJson(); + assertTrue(eventJson.has(StateEvent.Field.ACCEPTED)); + assertTrue(StateEvent.isAccepted(eventJson)); + } + + @Test + public void extractEventType_jsonWithEventType_returnsEventType() { + var eventJson = MAPPER.createObjectNode(); + eventJson.put(StateEvent.Field.TYPE, "set"); + assertEquals(StateEvent.EventType.SET, + StateEvent.extractEventType(eventJson)); + } + + @Test + public void extractEventType_jsonWithoutEventType_throwsMissingFieldException() { + var eventJson = MAPPER.createObjectNode(); + assertThrows(MissingFieldException.class, + () -> StateEvent.extractEventType(eventJson)); + } + + @Test + public void extractEventType_jsonWithInvalidEventType_throwsMissingFieldException() { + var eventJson = MAPPER.createObjectNode(); + eventJson.put(StateEvent.Field.TYPE, "someType"); + assertThrows(InvalidEventTypeException.class, + () -> StateEvent.extractEventType(eventJson)); + eventJson.set(StateEvent.Field.TYPE, MAPPER.createObjectNode()); + assertThrows(InvalidEventTypeException.class, + () -> StateEvent.extractEventType(eventJson)); + eventJson.set(StateEvent.Field.TYPE, eventJson.nullNode()); + assertThrows(InvalidEventTypeException.class, + () -> StateEvent.extractEventType(eventJson)); + } + + @Test + public void extractRawEventType_jsonWithEventType_returnsEventType() { + var eventJson = MAPPER.createObjectNode(); + eventJson.put(StateEvent.Field.TYPE, "set"); + assertEquals("set", StateEvent.extractRawEventType(eventJson)); + } + + @Test + public void extractRawEventType_jsonWithoutEventType_throwsMissingFieldException() { + var eventJson = MAPPER.createObjectNode(); + assertThrows(MissingFieldException.class, + () -> StateEvent.extractRawEventType(eventJson)); + } + + @Test + public void extractValue_jsonWithValue_returnsValue() { + var eventJson = MAPPER.createObjectNode(); + eventJson.put(StateEvent.Field.VALUE, "value"); + assertEquals("value", + StateEvent.extractValue(eventJson, true).asText()); + } + + @Test + public void extractValue_jsonWithoutValue_and_mandatory_throwsMissingFieldException() { + var eventJson = MAPPER.createObjectNode(); + assertThrows(MissingFieldException.class, + () -> StateEvent.extractValue(eventJson, true)); + } + + @Test + public void extractValue_jsonWithoutValue_and_optional_returnsNull() { + var eventJson = MAPPER.createObjectNode(); + assertNull(StateEvent.extractValue(eventJson, false)); + } + + @Test + public void extractId_jsonWithId_returnsId() { + var eventJson = MAPPER.createObjectNode(); + eventJson.put(StateEvent.Field.ID, "1234"); + assertEquals("1234", StateEvent.extractId(eventJson)); + } + + @Test + public void extractId_jsonWithoutId_throwsMissingFieldException() { + var eventJson = MAPPER.createObjectNode(); + assertThrows(MissingFieldException.class, + () -> StateEvent.extractId(eventJson)); + } + + @Test + public void convertValue_jsonWithValidValue_returnsConvertedValue() { + var eventJson = MAPPER.createObjectNode(); + eventJson.put(StateEvent.Field.VALUE, "value"); + assertEquals("value", StateEvent.convertValue( + eventJson.get(StateEvent.Field.VALUE), String.class)); + + eventJson.put(StateEvent.Field.VALUE, 42); + assertEquals(42, + StateEvent.convertValue(eventJson.get(StateEvent.Field.VALUE), + Integer.class).intValue()); + + eventJson.set(StateEvent.Field.VALUE, + MAPPER.valueToTree(new Person("John Doe", 42, true))); + var person = StateEvent.convertValue( + eventJson.get(StateEvent.Field.VALUE), Person.class); + assertEquals(new Person("John Doe", 42, true), person); + } + + @Test + public void extractValidationError_throws_whenEventIsNotRejected() { + var eventJson = MAPPER.createObjectNode(); + assertThrows(IllegalStateException.class, + () -> StateEvent.extractValidationError(eventJson)); + } + + @Test + public void extractValidationError_throws_whenEventIsRejectedButDoesNotHaveValidationError() { + var event = new StateEvent<>("id", StateEvent.EventType.SET, "value"); + event.setAccepted(false); + event.setValidationError(""); + assertThrows(IllegalStateException.class, + () -> StateEvent.extractValidationError(event.toJson())); + } + + @Test + public void extractValidationError_returnsValidationError() { + var eventJson = MAPPER.createObjectNode(); + eventJson.put(StateEvent.Field.VALIDATION_ERROR, "error"); + eventJson.put(StateEvent.Field.ACCEPTED, false); + assertEquals("error", StateEvent.extractValidationError(eventJson)); + + var event = new StateEvent<>("id", StateEvent.EventType.SET, "value"); + event.setAccepted(false); + event.setValidationError("error"); + assertEquals("error", + StateEvent.extractValidationError(event.toJson())); + } + + @Test + public void clearValidationError_removesValidationError() { + var eventJson = MAPPER.createObjectNode(); + eventJson.put(StateEvent.Field.VALIDATION_ERROR, "error"); + eventJson.put(StateEvent.Field.ACCEPTED, false); + assertEquals("error", StateEvent.extractValidationError(eventJson)); + StateEvent.clearValidationError(eventJson); + assertFalse(eventJson.has(StateEvent.Field.VALIDATION_ERROR)); + + var event = new StateEvent<>("id", StateEvent.EventType.SET, "value"); + event.setAccepted(false); + event.setValidationError("error"); + assertEquals("error", + StateEvent.extractValidationError(event.toJson())); + assertEquals("error", event.getValidationError()); + event.clearValidationError(); + var eventAsJson = event.toJson(); + assertNull(event.getValidationError()); + assertFalse(eventAsJson.has(StateEvent.Field.VALIDATION_ERROR)); + } +} diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/core/registry/SecureSignalsRegistryTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/core/registry/SecureSignalsRegistryTest.java new file mode 100644 index 0000000000..88d420b5e3 --- /dev/null +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/core/registry/SecureSignalsRegistryTest.java @@ -0,0 +1,162 @@ +package com.vaadin.hilla.signals.core.registry; + +import com.vaadin.hilla.EndpointInvocationException; +import com.vaadin.hilla.EndpointInvoker; +import com.vaadin.hilla.EndpointRegistry; +import com.vaadin.hilla.signals.NumberSignal; +import com.vaadin.hilla.signals.ValueSignal; +import org.junit.Test; +import org.mockito.Mockito; + +import java.lang.reflect.Method; +import java.util.Map; +import java.util.Optional; +import java.util.concurrent.atomic.AtomicReference; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class SecureSignalsRegistryTest { + + @Test + public void when_accessToEndpointIsAllowed_signalInstanceIsRegistered() + throws Exception { + NumberSignal signal = new NumberSignal(); + EndpointInvoker invoker = mockEndpointInvokerThatGrantsAccess(signal); + + AtomicReference signalsRegistry = new AtomicReference<>(); + try (var dummy = Mockito.mockConstruction(SignalsRegistry.class, + (mockSignalRegistry, context) -> { + when(mockSignalRegistry.get("clientSignalId")) + .thenAnswer(invocation -> signal); + signalsRegistry.set(mockSignalRegistry); + })) { + SecureSignalsRegistry secureSignalsRegistry = new SecureSignalsRegistry( + invoker); + secureSignalsRegistry.register("clientSignalId", "endpoint", + "method", null); + verify(signalsRegistry.get(), times(1)).register("clientSignalId", + signal); + } + } + + @Test + public void when_unsubscribedIsCalled_underlyingRegistryRemovesClientSignalToSignalMapping() + throws Exception { + NumberSignal signal = new NumberSignal(); + EndpointInvoker invoker = mockEndpointInvokerThatGrantsAccess(signal); + + AtomicReference signalsRegistry = new AtomicReference<>(); + try (var dummy = Mockito.mockConstruction(SignalsRegistry.class, + (mockSignalRegistry, context) -> { + when(mockSignalRegistry.get("clientSignalId")) + .thenAnswer(invocation -> signal); + signalsRegistry.set(mockSignalRegistry); + })) { + SecureSignalsRegistry secureSignalsRegistry = new SecureSignalsRegistry( + invoker); + secureSignalsRegistry.register("clientSignalId", "endpoint", + "method", null); + secureSignalsRegistry.unsubscribe("clientSignalId"); + verify(signalsRegistry.get(), times(1)) + .removeClientSignalToSignalMapping("clientSignalId"); + } + } + + @Test + public void when_accessToEndpointIsRejected_register_throws() + throws Exception { + EndpointInvoker invoker = mockEndpointInvokerThatDeniesAccess(); + SecureSignalsRegistry secureSignalsRegistry = new SecureSignalsRegistry( + invoker); + + assertThrows( + EndpointInvocationException.EndpointAccessDeniedException.class, + () -> secureSignalsRegistry.register("clientSignalId", + "endpoint", "method", null)); + } + + @Test + public void when_accessToEndpointIsAllowed_get_returnsSignal() + throws Exception { + NumberSignal signal = new NumberSignal(); + EndpointInvoker invoker = mockEndpointInvokerThatGrantsAccess(signal); + + AtomicReference signalsRegistry = new AtomicReference<>(); + try (var dummy = Mockito.mockConstruction(SignalsRegistry.class, + (mockSignalRegistry, context) -> { + when(mockSignalRegistry.get("clientSignalId")) + .thenAnswer(invocation -> signal); + signalsRegistry.set(mockSignalRegistry); + })) { + SecureSignalsRegistry secureSignalsRegistry = new SecureSignalsRegistry( + invoker); + secureSignalsRegistry.register("clientSignalId", "endpoint", + "method", null); + NumberSignal result = (NumberSignal) secureSignalsRegistry + .get("clientSignalId"); + assertEquals(signal, result); + verify(signalsRegistry.get(), times(1)).get("clientSignalId"); + } + } + + @Test + public void when_accessToEndpointIsRejected_get_throws() throws Exception { + EndpointInvoker invoker = mockEndpointInvokerThatDeniesAccess(); + SecureSignalsRegistry secureSignalsRegistry = new SecureSignalsRegistry( + invoker); + // fake an existing endpoint method registration in + // secureSignalsRegistry: + var endpointMethodsField = secureSignalsRegistry.getClass() + .getDeclaredField("endpointMethods"); + endpointMethodsField.setAccessible(true); + var endpointMethods = (Map) endpointMethodsField + .get(secureSignalsRegistry); + endpointMethods.put("clientSignalId", + new SecureSignalsRegistry.EndpointMethod("endpoint", "method")); + + assertThrows( + EndpointInvocationException.EndpointAccessDeniedException.class, + () -> secureSignalsRegistry.get("clientSignalId")); + } + + private EndpointInvoker mockEndpointInvokerThatGrantsAccess( + ValueSignal signal) throws Exception { + EndpointInvoker invoker = Mockito.mock(EndpointInvoker.class); + when(invoker.invoke(Mockito.anyString(), Mockito.anyString(), + Mockito.any(), Mockito.any(), Mockito.any())) + .thenReturn(signal); + fakeMethodExistenceOn(invoker); + return invoker; + } + + private EndpointInvoker mockEndpointInvokerThatDeniesAccess() + throws Exception { + EndpointInvoker invoker = Mockito.mock(EndpointInvoker.class); + when(invoker.checkAccess(Mockito.any(), Mockito.any(), Mockito.any(), + Mockito.any())).thenReturn("Access denied"); + fakeMethodExistenceOn(invoker); + return invoker; + } + + private void fakeMethodExistenceOn(EndpointInvoker invoker) + throws Exception { + EndpointRegistry.VaadinEndpointData mockVaadinEndpointData = Mockito + .mock(EndpointRegistry.VaadinEndpointData.class); + Method mockMethod = this.getClass().getMethod("aFakeMethod"); + when(mockVaadinEndpointData.getMethod(Mockito.anyString())) + .thenReturn(Optional.of(mockMethod)); + when(invoker.getVaadinEndpointData(Mockito.anyString())) + .thenReturn(mockVaadinEndpointData); + } + + public void aFakeMethod() { + } + + private static ValueSignal typedValueSignal(ValueSignal signal) { + return signal; + } +} diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/core/registry/SignalsRegistryTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/core/registry/SignalsRegistryTest.java new file mode 100644 index 0000000000..b93a5fe5b2 --- /dev/null +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/core/registry/SignalsRegistryTest.java @@ -0,0 +1,233 @@ +package com.vaadin.hilla.signals.core.registry; + +import com.vaadin.hilla.signals.NumberSignal; +import org.junit.Test; + +import java.util.UUID; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; + +public class SignalsRegistryTest { + + @Test + public void when_inputsAreNull_throws() { + SignalsRegistry signalsRegistry = new SignalsRegistry(); + + assertThrows(NullPointerException.class, + () -> signalsRegistry.register(null, new NumberSignal())); + assertThrows(NullPointerException.class, () -> signalsRegistry + .register(UUID.randomUUID().toString(), null)); + assertThrows(NullPointerException.class, + () -> signalsRegistry.register(null, null)); + } + + @Test + public void when_signalIsRegistered_clientIdToSignalIdMapping_isAlsoCreated() { + SignalsRegistry signalsRegistry = new SignalsRegistry(); + assertTrue(signalsRegistry.isEmpty()); + + String clientSignalId = UUID.randomUUID().toString(); + NumberSignal signal = new NumberSignal(); + + signalsRegistry.register(clientSignalId, signal); + + assertEquals(1, signalsRegistry.size()); + assertEquals(signal, signalsRegistry.getBySignalId(signal.getId())); + + assertEquals(1, signalsRegistry.getAllClientSubscriptionsSize()); + assertEquals(1, signalsRegistry.getAllClientSignalIdsFor(signal.getId()) + .size()); + assertEquals(signal, signalsRegistry.get(clientSignalId)); + } + + @Test + public void when_signalIsAlreadyRegistered_signalIsNotRegisteredAgain() { + SignalsRegistry signalsRegistry = new SignalsRegistry(); + assertTrue(signalsRegistry.isEmpty()); + + String clientSignalId = UUID.randomUUID().toString(); + NumberSignal signal = new NumberSignal(); + + signalsRegistry.register(clientSignalId, signal); + + assertEquals(1, signalsRegistry.size()); + assertEquals(1, signalsRegistry.getAllClientSubscriptionsSize()); + assertEquals(signal, signalsRegistry.get(clientSignalId)); + + String anotherClientSignalId = UUID.randomUUID().toString(); + signalsRegistry.register(anotherClientSignalId, signal); + + assertEquals(1, signalsRegistry.size()); + assertEquals(2, signalsRegistry.getAllClientSubscriptionsSize()); + assertEquals(2, signalsRegistry.getAllClientSignalIdsFor(signal.getId()) + .size()); + assertEquals(signal, signalsRegistry.get(anotherClientSignalId)); + } + + @Test + public void get_nullClientSignalIdArg_throws() { + SignalsRegistry signalsRegistry = new SignalsRegistry(); + assertThrows(NullPointerException.class, + () -> signalsRegistry.get(null)); + } + + @Test + public void when_noSignalIsFoundForClientSignalId_returnsNull() { + SignalsRegistry signalsRegistry = new SignalsRegistry(); + assertTrue(signalsRegistry.isEmpty()); + + String clientSignalId = UUID.randomUUID().toString(); + NumberSignal signal = new NumberSignal(); + + signalsRegistry.register(clientSignalId, signal); + + assertEquals(1, signalsRegistry.size()); + assertEquals(1, signalsRegistry.getAllClientSubscriptionsSize()); + assertEquals(signal, signalsRegistry.get(clientSignalId)); + + String anotherClientSignalId = UUID.randomUUID().toString(); + assertNull(signalsRegistry.get(anotherClientSignalId)); + } + + @Test + public void getBySignalId_nullSignalIdArg_throws() { + SignalsRegistry signalsRegistry = new SignalsRegistry(); + assertThrows(NullPointerException.class, + () -> signalsRegistry.getBySignalId(null)); + } + + @Test + public void when_noSignalIsFoundForSignalId_returnsNull() { + SignalsRegistry signalsRegistry = new SignalsRegistry(); + assertTrue(signalsRegistry.isEmpty()); + + String clientSignalId = UUID.randomUUID().toString(); + NumberSignal signal = new NumberSignal(); + + signalsRegistry.register(clientSignalId, signal); + + assertEquals(1, signalsRegistry.size()); + assertEquals(1, signalsRegistry.getAllClientSubscriptionsSize()); + assertEquals(signal, signalsRegistry.get(clientSignalId)); + + assertNull(signalsRegistry.getBySignalId(UUID.randomUUID())); + } + + @Test + public void contains_nullClientSignalIdArg_throws() { + SignalsRegistry signalsRegistry = new SignalsRegistry(); + assertThrows(NullPointerException.class, + () -> signalsRegistry.contains(null)); + } + + @Test + public void when_signalIsRegistered_contains_returnsTrue() { + SignalsRegistry signalsRegistry = new SignalsRegistry(); + assertTrue(signalsRegistry.isEmpty()); + + String clientSignalId = UUID.randomUUID().toString(); + NumberSignal signal = new NumberSignal(); + + signalsRegistry.register(clientSignalId, signal); + + assertEquals(1, signalsRegistry.size()); + assertEquals(1, signalsRegistry.getAllClientSubscriptionsSize()); + assertEquals(signal, signalsRegistry.get(clientSignalId)); + + assertTrue(signalsRegistry.contains(clientSignalId)); + } + + @Test + public void when_signalIsNotRegistered_contains_returnsFalse() { + SignalsRegistry signalsRegistry = new SignalsRegistry(); + assertTrue(signalsRegistry.isEmpty()); + assertFalse(signalsRegistry.contains(UUID.randomUUID().toString())); + + String clientSignalId = UUID.randomUUID().toString(); + NumberSignal signal = new NumberSignal(); + + signalsRegistry.register(clientSignalId, signal); + + assertEquals(1, signalsRegistry.size()); + assertEquals(1, signalsRegistry.getAllClientSubscriptionsSize()); + assertEquals(signal, signalsRegistry.get(clientSignalId)); + + assertFalse(signalsRegistry.contains(UUID.randomUUID().toString())); + } + + @Test + public void isEmpty_correctly_returns_status() { + SignalsRegistry signalsRegistry = new SignalsRegistry(); + assertTrue(signalsRegistry.isEmpty()); + + String clientSignalId = UUID.randomUUID().toString(); + NumberSignal signal = new NumberSignal(); + + signalsRegistry.register(clientSignalId, signal); + assertFalse(signalsRegistry.isEmpty()); + + signalsRegistry.unregister(signal.getId()); + assertTrue(signalsRegistry.isEmpty()); + } + + @Test + public void unregister_nullIdArg_throws() { + SignalsRegistry signalsRegistry = new SignalsRegistry(); + assertThrows(NullPointerException.class, + () -> signalsRegistry.unregister(null)); + } + + @Test + public void when_signalIsUnregistered_clientIdToSignalIdMapping_isAlsoRemoved() { + SignalsRegistry signalsRegistry = new SignalsRegistry(); + assertTrue(signalsRegistry.isEmpty()); + + String clientSignalId = UUID.randomUUID().toString(); + NumberSignal signal = new NumberSignal(); + + signalsRegistry.register(clientSignalId, signal); + + assertEquals(1, signalsRegistry.size()); + assertEquals(1, signalsRegistry.getAllClientSignalIdsFor(signal.getId()) + .size()); + assertEquals(signal, signalsRegistry.get(clientSignalId)); + + signalsRegistry.unregister(signal.getId()); + + assertTrue(signalsRegistry.isEmpty()); + assertNull(signalsRegistry.get(clientSignalId)); + assertEquals(0, signalsRegistry.size()); + assertEquals(0, signalsRegistry.getAllClientSignalIdsFor(signal.getId()) + .size()); + } + + @Test + public void when_clientIdToSignalIdMappingIsRemoved_signalIsNotRemoved() { + SignalsRegistry signalsRegistry = new SignalsRegistry(); + assertTrue(signalsRegistry.isEmpty()); + + String clientSignalId = UUID.randomUUID().toString(); + NumberSignal signal = new NumberSignal(); + + signalsRegistry.register(clientSignalId, signal); + + assertEquals(1, signalsRegistry.size()); + assertEquals(1, signalsRegistry.getAllClientSignalIdsFor(signal.getId()) + .size()); + assertEquals(signal, signalsRegistry.get(clientSignalId)); + + signalsRegistry.removeClientSignalToSignalMapping(clientSignalId); + + assertFalse(signalsRegistry.isEmpty()); + assertNull(signalsRegistry.get(clientSignalId)); + assertNotNull(signalsRegistry.getBySignalId(signal.getId())); + assertEquals(1, signalsRegistry.size()); + assertEquals(0, signalsRegistry.getAllClientSignalIdsFor(signal.getId()) + .size()); + } +} diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/handler/SignalsHandlerTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/handler/SignalsHandlerTest.java new file mode 100644 index 0000000000..21266aba33 --- /dev/null +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/signals/handler/SignalsHandlerTest.java @@ -0,0 +1,253 @@ +package com.vaadin.hilla.signals.handler; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.vaadin.hilla.EndpointControllerMockBuilder; +import com.vaadin.hilla.parser.jackson.JacksonObjectMapperFactory; +import com.vaadin.hilla.signals.NumberSignal; +import com.vaadin.hilla.signals.Signal; +import com.vaadin.hilla.signals.core.event.ListStateEvent; +import com.vaadin.hilla.signals.core.registry.SecureSignalsRegistry; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.mockito.Mockito; +import org.springframework.context.ApplicationContext; +import reactor.core.publisher.Flux; +import reactor.test.StepVerifier; + +import java.util.UUID; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.when; + +public class SignalsHandlerTest { + + private static final String CLIENT_SIGNAL_ID_1 = "90000000-9000-9000-9000-900000000000"; + private static final String CLIENT_SIGNAL_ID_2 = "80000000-8000-8000-8000-800000000000"; + + private final ObjectMapper mapper = new ObjectMapper(); + private SignalsHandler signalsHandler; + private SecureSignalsRegistry signalsRegistry; + + @BeforeClass + public static void setup() { + var appCtx = Mockito.mock(ApplicationContext.class); + var endpointObjectMapper = EndpointControllerMockBuilder + .createEndpointObjectMapper(appCtx, + new JacksonObjectMapperFactory.Json()); + Signal.setMapper(endpointObjectMapper); + } + + @AfterClass + public static void tearDown() { + Signal.setMapper(null); + } + + @Before + public void setUp() { + signalsRegistry = Mockito.mock(SecureSignalsRegistry.class); + signalsHandler = new SignalsHandler(signalsRegistry); + } + + @Test + public void when_signalAlreadyRegistered_subscribe_returnsSubscriptionOfSameInstance() + throws Exception { + + NumberSignal numberSignal = new NumberSignal(); + when(signalsRegistry.get(CLIENT_SIGNAL_ID_1)) + .thenAnswer(invocation -> numberSignal); + when(signalsRegistry.get(CLIENT_SIGNAL_ID_2)) + .thenAnswer(invocation -> numberSignal); + + assertEquals(signalsRegistry.get(CLIENT_SIGNAL_ID_1).getId(), + signalsRegistry.get(CLIENT_SIGNAL_ID_2).getId()); + + var signalId = numberSignal.getId(); + var expectedSignalEventJson = new ObjectNode(mapper.getNodeFactory()) + .put("value", 0.0).put("id", signalId.toString()) + .put("type", "snapshot"); + + // first client subscribe to a signal, it registers the signal: + Flux firstFlux = signalsHandler.subscribe("endpoint", + "method", CLIENT_SIGNAL_ID_1, null, null); + firstFlux.subscribe(next -> { + assertNotNull(next); + assertEquals(expectedSignalEventJson, next); + }, error -> { + throw new RuntimeException(error); + }); + + // another client subscribes to the same signal: + Flux secondFlux = signalsHandler.subscribe("endpoint", + "method", CLIENT_SIGNAL_ID_2, null, null); + secondFlux.subscribe(next -> { + assertNotNull(next); + assertEquals(expectedSignalEventJson, next); + }, error -> { + throw new RuntimeException(error); + }); + } + + @Test + public void when_signalIsNotRegistered_update_throwsException() { + var setEvent = new ObjectNode(mapper.getNodeFactory()).put("value", 0.0) + .put("id", UUID.randomUUID().toString()).put("type", "set"); + assertThrows(IllegalStateException.class, + () -> signalsHandler.update(CLIENT_SIGNAL_ID_1, setEvent)); + } + + @Test + public void when_signalIsRegistered_update_notifiesTheSubscribers() + throws Exception { + NumberSignal numberSignal = new NumberSignal(10.0); + var signalId = numberSignal.getId(); + when(signalsRegistry.get(CLIENT_SIGNAL_ID_1)) + .thenAnswer(invocation -> numberSignal); + + Flux firstFlux = signalsHandler.subscribe("endpoint", + "method", CLIENT_SIGNAL_ID_1, null, null); + + var setEvent = new ObjectNode(mapper.getNodeFactory()).put("value", 42) + .put("id", UUID.randomUUID().toString()).put("type", "set"); + signalsHandler.update(CLIENT_SIGNAL_ID_1, setEvent); + + var expectedUpdatedSignalEventJson = new ObjectNode( + mapper.getNodeFactory()).put("value", 42.0) + .put("id", signalId.toString()).put("type", "snapshot") + .put("accepted", true); + StepVerifier.create(firstFlux) + .expectNext(expectedUpdatedSignalEventJson).thenCancel() + .verify(); + } + + @Test + public void when_parentClientSignalIdIsNotNull_andParentSignalExists_subscribe_returnsSubscription() + throws Exception { + String parentClientSignalId = "parent-signal-id"; + String clientSignalId = CLIENT_SIGNAL_ID_1; + + // Mock parent signal + Signal parentSignal = Mockito.mock(Signal.class); + + // Mock registry.get(parentClientSignalId) to return parentSignal + when(signalsRegistry.get(parentClientSignalId)) + .thenReturn(parentSignal); + + // Mock parentSignal.subscribe(clientSignalId) to return a + // Flux + ObjectNode expectedNode = mapper.createObjectNode(); + expectedNode.put("key", "value"); + Flux expectedFlux = Flux.just(expectedNode); + when(parentSignal.subscribe(clientSignalId)).thenReturn(expectedFlux); + + // Call subscribe with parentClientSignalId not null + Flux resultFlux = signalsHandler.subscribe("endpoint", + "method", clientSignalId, null, parentClientSignalId); + + // Verify that unsubscribe is called upon completion + StepVerifier.create(resultFlux).expectNext(expectedNode).thenCancel() + .verify(); + + // Verify that registry.unsubscribe(clientSignalId) is called + Mockito.verify(signalsRegistry).unsubscribe(clientSignalId); + } + + @Test + public void when_parentClientSignalIdIsNotNull_andParentSignalDoesNotExist_subscribe_returnsErrorFlux() + throws Exception { + String parentClientSignalId = "parent-signal-id"; + String clientSignalId = CLIENT_SIGNAL_ID_1; + + // Mock registry.get(parentClientSignalId) to return null + when(signalsRegistry.get(parentClientSignalId)).thenReturn(null); + + // Call subscribe with parentClientSignalId not null + Flux resultFlux = signalsHandler.subscribe("endpoint", + "method", clientSignalId, null, parentClientSignalId); + + // Verify that the resultFlux emits an error + StepVerifier.create(resultFlux).expectErrorMatches( + throwable -> throwable instanceof IllegalStateException + && throwable.getMessage().contains( + "Parent Signal not found for parent client signal id: " + + parentClientSignalId)) + .verify(); + + // Ensure that unsubscribe is not called since subscription did not + // succeed + Mockito.verify(signalsRegistry, Mockito.never()) + .unsubscribe(clientSignalId); + } + + @Test + public void when_parentSignalIdIsNotNull_andParentSignalExists_update_callsSubmitOnParentSignal() + throws Exception { + String parentSignalId = "parent-signal-id"; + + // Create an event ObjectNode with parentSignalId + ObjectNode event = mapper.createObjectNode(); + event.put(ListStateEvent.Field.PARENT_SIGNAL_ID, parentSignalId); + event.put("id", UUID.randomUUID().toString()); + event.put("type", "someType"); + + // Mock registry.get(parentSignalId) to return a mock parentSignal + Signal parentSignal = Mockito.mock(Signal.class); + when(signalsRegistry.get(parentSignalId)).thenReturn(parentSignal); + + // Call update + signalsHandler.update(CLIENT_SIGNAL_ID_1, event); + + // Verify that parentSignal.submit(event) was called + Mockito.verify(parentSignal).submit(event); + } + + @Test + public void when_parentSignalIdIsNotNull_andParentSignalDoesNotExist_update_throwsException() + throws Exception { + String parentSignalId = "parent-signal-id"; + + // Create an event ObjectNode with parentSignalId + ObjectNode event = mapper.createObjectNode(); + event.put(ListStateEvent.Field.PARENT_SIGNAL_ID, parentSignalId); + event.put("id", UUID.randomUUID().toString()); + event.put("type", "someType"); + + // Mock registry.get(parentSignalId) to return null + when(signalsRegistry.get(parentSignalId)).thenReturn(null); + + // Call update and expect an IllegalStateException + IllegalStateException exception = assertThrows( + IllegalStateException.class, () -> { + signalsHandler.update(CLIENT_SIGNAL_ID_1, event); + }); + + // Verify the exception message + String expectedMessage = "Parent Signal not found for signal id: " + + parentSignalId; + assertEquals(expectedMessage, exception.getMessage()); + + // Ensure that no interaction with clientSignalId's signal occurred + Mockito.verify(signalsRegistry, Mockito.never()) + .get(CLIENT_SIGNAL_ID_1); + } + + @Test + public void when_signalRegistryIsNull_anyInteraction_throwsException() { + signalsHandler = new SignalsHandler(null); + var exception = assertThrows(IllegalStateException.class, + () -> signalsHandler.subscribe("endpoint", "method", + CLIENT_SIGNAL_ID_1, null, null)); + assertTrue(exception.getMessage().contains( + "The Hilla Fullstack Signals API is currently considered experimental")); + + exception = assertThrows(IllegalStateException.class, + () -> signalsHandler.update(CLIENT_SIGNAL_ID_1, null)); + assertTrue(exception.getMessage().contains( + "The Hilla Fullstack Signals API is currently considered experimental")); + } +} diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/startup/RouteUnifyingServiceInitListenerTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/startup/RouteUnifyingServiceInitListenerTest.java index 8dad9192e2..b1263ab130 100644 --- a/packages/java/endpoint/src/test/java/com/vaadin/hilla/startup/RouteUnifyingServiceInitListenerTest.java +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/startup/RouteUnifyingServiceInitListenerTest.java @@ -2,6 +2,7 @@ import java.io.IOException; +import com.vaadin.flow.server.Constants; import com.vaadin.hilla.route.RouteUnifyingConfigurationProperties; import org.junit.Assert; import org.junit.Before; @@ -45,6 +46,10 @@ public void setup() throws IOException { .thenReturn(mockDeploymentConfiguration); event = new ServiceInitEvent(mockVaadinService); + Mockito.when(mockDeploymentConfiguration.getProjectFolder()) + .thenReturn(projectRoot.getRoot()); + Mockito.when(mockDeploymentConfiguration.getBuildFolder()) + .thenReturn(Constants.TARGET); var frontendGeneratedDir = projectRoot.newFolder("frontend/generated"); Mockito.when(mockDeploymentConfiguration.getFrontendFolder()) .thenReturn(frontendGeneratedDir.getParentFile()); diff --git a/packages/java/endpoint/src/test/java/com/vaadin/hilla/typeconversion/BaseTypeConversionTest.java b/packages/java/endpoint/src/test/java/com/vaadin/hilla/typeconversion/BaseTypeConversionTest.java index 2daacf5de4..48df88072c 100644 --- a/packages/java/endpoint/src/test/java/com/vaadin/hilla/typeconversion/BaseTypeConversionTest.java +++ b/packages/java/endpoint/src/test/java/com/vaadin/hilla/typeconversion/BaseTypeConversionTest.java @@ -17,7 +17,6 @@ import com.vaadin.hilla.EndpointController; import com.vaadin.hilla.EndpointControllerMockBuilder; -import com.vaadin.hilla.engine.EngineConfiguration; import org.junit.Assert; import org.junit.Before; import org.junit.Rule; @@ -69,10 +68,7 @@ public void setUp() throws IOException { EndpointControllerMockBuilder controllerMockBuilder = new EndpointControllerMockBuilder(); EndpointController controller = controllerMockBuilder .withApplicationContext(applicationContext).build(); - var openApiResource = projectFolder.getRoot().toPath() - .resolve(appConfig.getBuildFolder()) - .resolve(EngineConfiguration.OPEN_API_PATH); - controller.registerEndpoints(openApiResource.toUri().toURL()); + controller.registerEndpoints(); mockMvc = MockMvcBuilders.standaloneSetup(controller).build(); } diff --git a/packages/java/endpoint/src/test/resources/META-INF/VAADIN/available-views-admin.json b/packages/java/endpoint/src/test/resources/META-INF/VAADIN/available-views-admin.json index 0bb1fa0c80..47de977524 100644 --- a/packages/java/endpoint/src/test/resources/META-INF/VAADIN/available-views-admin.json +++ b/packages/java/endpoint/src/test/resources/META-INF/VAADIN/available-views-admin.json @@ -7,7 +7,8 @@ "route": "/foo", "lazy": false, "register": false, - "menu": null + "menu": null, + "flowLayout":false }, "/bar": { "params": {}, @@ -17,7 +18,8 @@ "route": "/bar", "lazy": false, "register": false, - "menu": null + "menu": null, + "flowLayout":false }, "/home": { "params": {}, @@ -27,7 +29,14 @@ "route": "/home", "lazy": false, "register": false, - "menu": null + "menu": { + "title": "Home", + "order": null, + "exclude": false, + "icon": null, + "menuClass": null + }, + "flowLayout":false }, "/wildcard": { "params": { @@ -39,7 +48,8 @@ "route": "/wildcard", "lazy": false, "register": false, - "menu": null + "menu": null, + "flowLayout":false }, "/comments": { "params": { @@ -51,7 +61,8 @@ "route": "/comments", "lazy": false, "register": false, - "menu": null + "menu": null, + "flowLayout":false }, "/profile": { "params": {}, @@ -64,7 +75,14 @@ "route": "/profile", "lazy": false, "register": false, - "menu": null + "menu": { + "title": "Profile", + "order": null, + "exclude": false, + "icon": null, + "menuClass": null + }, + "flowLayout":false }, "/": { "params": {}, @@ -74,7 +92,14 @@ "route": "/", "lazy": false, "register": false, - "menu": null + "menu": { + "title": "Index", + "order": null, + "exclude": false, + "icon": null, + "menuClass": null + }, + "flowLayout":false }, "/orders": { "params": {}, @@ -84,6 +109,13 @@ "route": "/orders", "lazy": false, "register": false, - "menu": null + "menu": { + "title": "Orders", + "order": null, + "exclude": false, + "icon": null, + "menuClass": null + }, + "flowLayout":false } } diff --git a/packages/java/endpoint/src/test/resources/META-INF/VAADIN/available-views-anonymous.json b/packages/java/endpoint/src/test/resources/META-INF/VAADIN/available-views-anonymous.json index 9f2bce8153..69ed3dcc3d 100644 --- a/packages/java/endpoint/src/test/resources/META-INF/VAADIN/available-views-anonymous.json +++ b/packages/java/endpoint/src/test/resources/META-INF/VAADIN/available-views-anonymous.json @@ -7,7 +7,14 @@ "route": "/home", "lazy": false, "register": false, - "menu": null + "menu": { + "title": "Home", + "order": null, + "exclude": false, + "icon": null, + "menuClass": null + }, + "flowLayout":false }, "/foo": { "params": {}, @@ -17,7 +24,8 @@ "route": "/foo", "lazy": false, "register": false, - "menu": null + "menu": null, + "flowLayout":false }, "/wildcard": { "params": { @@ -29,7 +37,8 @@ "route": "/wildcard", "lazy": false, "register": false, - "menu": null + "menu": null, + "flowLayout":false }, "/bar": { "params": {}, @@ -39,7 +48,8 @@ "route": "/bar", "lazy": false, "register": false, - "menu": null + "menu": null, + "flowLayout":false }, "/comments": { "params": { @@ -51,7 +61,8 @@ "route": "/comments", "lazy": false, "register": false, - "menu": null + "menu": null, + "flowLayout":false }, "/": { "params": {}, @@ -61,7 +72,14 @@ "route": "/", "lazy": false, "register": false, - "menu": null + "menu": { + "title": "Index", + "order": null, + "exclude": false, + "icon": null, + "menuClass": null + }, + "flowLayout":false }, "/orders": { "params": {}, @@ -71,6 +89,13 @@ "route": "/orders", "lazy": false, "register": false, - "menu": null + "menu": { + "title": "Orders", + "order": null, + "exclude": false, + "icon": null, + "menuClass": null + }, + "flowLayout":false } } diff --git a/packages/java/endpoint/src/test/resources/META-INF/VAADIN/available-views-user.json b/packages/java/endpoint/src/test/resources/META-INF/VAADIN/available-views-user.json index 0bb1fa0c80..47de977524 100644 --- a/packages/java/endpoint/src/test/resources/META-INF/VAADIN/available-views-user.json +++ b/packages/java/endpoint/src/test/resources/META-INF/VAADIN/available-views-user.json @@ -7,7 +7,8 @@ "route": "/foo", "lazy": false, "register": false, - "menu": null + "menu": null, + "flowLayout":false }, "/bar": { "params": {}, @@ -17,7 +18,8 @@ "route": "/bar", "lazy": false, "register": false, - "menu": null + "menu": null, + "flowLayout":false }, "/home": { "params": {}, @@ -27,7 +29,14 @@ "route": "/home", "lazy": false, "register": false, - "menu": null + "menu": { + "title": "Home", + "order": null, + "exclude": false, + "icon": null, + "menuClass": null + }, + "flowLayout":false }, "/wildcard": { "params": { @@ -39,7 +48,8 @@ "route": "/wildcard", "lazy": false, "register": false, - "menu": null + "menu": null, + "flowLayout":false }, "/comments": { "params": { @@ -51,7 +61,8 @@ "route": "/comments", "lazy": false, "register": false, - "menu": null + "menu": null, + "flowLayout":false }, "/profile": { "params": {}, @@ -64,7 +75,14 @@ "route": "/profile", "lazy": false, "register": false, - "menu": null + "menu": { + "title": "Profile", + "order": null, + "exclude": false, + "icon": null, + "menuClass": null + }, + "flowLayout":false }, "/": { "params": {}, @@ -74,7 +92,14 @@ "route": "/", "lazy": false, "register": false, - "menu": null + "menu": { + "title": "Index", + "order": null, + "exclude": false, + "icon": null, + "menuClass": null + }, + "flowLayout":false }, "/orders": { "params": {}, @@ -84,6 +109,13 @@ "route": "/orders", "lazy": false, "register": false, - "menu": null + "menu": { + "title": "Orders", + "order": null, + "exclude": false, + "icon": null, + "menuClass": null + }, + "flowLayout":false } } diff --git a/packages/java/endpoint/src/test/resources/META-INF/VAADIN/only-client-views.json b/packages/java/endpoint/src/test/resources/META-INF/VAADIN/only-client-views.json index cc28c73ceb..1dd86472d8 100644 --- a/packages/java/endpoint/src/test/resources/META-INF/VAADIN/only-client-views.json +++ b/packages/java/endpoint/src/test/resources/META-INF/VAADIN/only-client-views.json @@ -7,7 +7,14 @@ "route": "/home", "lazy": false, "register": false, - "menu": null + "menu": { + "title": "Home", + "order": null, + "exclude": false, + "icon": null, + "menuClass": null + }, + "flowLayout":false }, "/profile": { "params": {}, @@ -20,7 +27,14 @@ "route": "/profile", "lazy": false, "register": false, - "menu": null + "menu": { + "title": "Profile", + "order": null, + "exclude": false, + "icon": null, + "menuClass": null + }, + "flowLayout":false }, "/": { "params": {}, @@ -30,7 +44,14 @@ "route": "/", "lazy": false, "register": false, - "menu": null + "menu": { + "title": "Index", + "order": null, + "exclude": false, + "icon": null, + "menuClass": null + }, + "flowLayout":false }, "/orders": { "params": {}, @@ -40,6 +61,13 @@ "route": "/orders", "lazy": false, "register": false, - "menu": null + "menu": { + "title": "Orders", + "order": null, + "exclude": false, + "icon": null, + "menuClass": null + }, + "flowLayout":false } } diff --git a/packages/java/endpoint/src/test/resources/META-INF/VAADIN/server-and-client-views-layout-and-index-route.json b/packages/java/endpoint/src/test/resources/META-INF/VAADIN/server-and-client-views-layout-and-index-route.json new file mode 100644 index 0000000000..738fa9872e --- /dev/null +++ b/packages/java/endpoint/src/test/resources/META-INF/VAADIN/server-and-client-views-layout-and-index-route.json @@ -0,0 +1,87 @@ +{ + "/foo": { + "params": {}, + "title": "RouteTarget", + "rolesAllowed": null, + "loginRequired": false, + "route": "/foo", + "lazy": false, + "register": false, + "menu": null, + "flowLayout":false + }, + "/bar": { + "params": {}, + "title": "Component", + "rolesAllowed": null, + "loginRequired": false, + "route": "/bar", + "lazy": false, + "register": false, + "menu": null, + "flowLayout":false + }, + "": { + "title": "Home", + "rolesAllowed": null, + "loginRequired": false, + "route": "", + "lazy": false, + "register": false, + "menu": { + "title": "Home", + "order": null, + "exclude": false, + "icon": null, + "menuClass": null + }, + "flowLayout":false, + "params": {} + }, + "/comments": { + "params": { + ":___commentId?": "opt" + }, + "title": "RouteTarget", + "rolesAllowed": null, + "loginRequired": false, + "route": "/comments", + "lazy": false, + "register": false, + "menu": null, + "flowLayout":false + }, + "/wildcard": { + "params": { + ":___wildcard*": "*" + }, + "title": "RouteTarget", + "rolesAllowed": null, + "loginRequired": false, + "route": "/wildcard", + "lazy": false, + "register": false, + "menu": null, + "flowLayout":false + }, + "/profile": { + "params": {}, + "title": "Profile", + "rolesAllowed": [ + "ROLE_USER", + "ROLE_ADMIN" + ], + "loginRequired": true, + "route": "/profile", + "lazy": false, + "register": false, + "menu": { + "title": "Profile", + "order": null, + "exclude": false, + "icon": null, + "menuClass": null + }, + "flowLayout":false + } +} diff --git a/packages/java/endpoint/src/test/resources/META-INF/VAADIN/server-and-client-views.json b/packages/java/endpoint/src/test/resources/META-INF/VAADIN/server-and-client-views.json index 7fa202a126..a09be2bfdf 100644 --- a/packages/java/endpoint/src/test/resources/META-INF/VAADIN/server-and-client-views.json +++ b/packages/java/endpoint/src/test/resources/META-INF/VAADIN/server-and-client-views.json @@ -1,14 +1,4 @@ { - "": { - "params": {}, - "title": "Layout", - "rolesAllowed": null, - "loginRequired": false, - "route": "", - "lazy": false, - "register": false, - "menu": null - }, "/foo": { "params": {}, "title": "RouteTarget", @@ -17,7 +7,8 @@ "route": "/foo", "lazy": false, "register": false, - "menu": null + "menu": null, + "flowLayout":false }, "/bar": { "params": {}, @@ -27,7 +18,8 @@ "route": "/bar", "lazy": false, "register": false, - "menu": null + "menu": null, + "flowLayout":false }, "/home": { "params": {}, @@ -37,7 +29,14 @@ "route": "/home", "lazy": false, "register": false, - "menu": null + "menu": { + "title": "Home", + "order": null, + "exclude": false, + "icon": null, + "menuClass": null + }, + "flowLayout":false }, "/comments": { "params": { @@ -49,7 +48,8 @@ "route": "/comments", "lazy": false, "register": false, - "menu": null + "menu": null, + "flowLayout":false }, "/wildcard": { "params": { @@ -61,7 +61,8 @@ "route": "/wildcard", "lazy": false, "register": false, - "menu": null + "menu": null, + "flowLayout":false }, "/profile": { "params": {}, @@ -74,6 +75,13 @@ "route": "/profile", "lazy": false, "register": false, - "menu": null + "menu": { + "title": "Profile", + "order": null, + "exclude": false, + "icon": null, + "menuClass": null + }, + "flowLayout":false } } diff --git a/packages/java/endpoint/src/test/resources/com/vaadin/hilla/route/clientRoutes.json b/packages/java/endpoint/src/test/resources/com/vaadin/hilla/route/clientRoutes.json index cf007bcb83..d8cd41cc3a 100644 --- a/packages/java/endpoint/src/test/resources/com/vaadin/hilla/route/clientRoutes.json +++ b/packages/java/endpoint/src/test/resources/com/vaadin/hilla/route/clientRoutes.json @@ -2,8 +2,7 @@ { "route": "/home", "params": {}, - "title": "Home", - "children": [] + "title": "Home" }, { @@ -39,6 +38,33 @@ "lazy": false, "register": false, "menu": null -} + }, + { + "route": "/products", + "params": {}, + "title": "Products", + "lazy": false, + "loginRequired": true, + "rolesAllowed": ["ROLE_ADMIN"], + "children": [ + { + "route": "/:id", + "loginRequired": false, + "rolesAllowed": null, + "lazy": false, + "params": { ":id": "req"}, + "title": "Product Page", + "children": [ + { + "route": "/edit", + "loginRequired": false, + "rolesAllowed": null, + "lazy": false, + "title": "Edit Product" + } + ] + } + ] + } ] diff --git a/packages/java/endpoint/src/test/resources/com/vaadin/hilla/route/clientRoutesWithLayout.json b/packages/java/endpoint/src/test/resources/com/vaadin/hilla/route/clientRoutesWithLayout.json index 11bdaccb34..7889157347 100644 --- a/packages/java/endpoint/src/test/resources/com/vaadin/hilla/route/clientRoutesWithLayout.json +++ b/packages/java/endpoint/src/test/resources/com/vaadin/hilla/route/clientRoutesWithLayout.json @@ -7,8 +7,7 @@ { "route": "/home", "params": {}, - "title": "Home", - "children": [] + "title": "Home" }, { "route": "/profile", diff --git a/packages/java/endpoint/src/test/resources/com/vaadin/hilla/route/clientRoutesWithLayoutAndIndexView.json b/packages/java/endpoint/src/test/resources/com/vaadin/hilla/route/clientRoutesWithLayoutAndIndexView.json new file mode 100644 index 0000000000..a3fa8ef77d --- /dev/null +++ b/packages/java/endpoint/src/test/resources/com/vaadin/hilla/route/clientRoutesWithLayoutAndIndexView.json @@ -0,0 +1,35 @@ +[ + { + "route": "", + "params": {}, + "title": "Layout", + "children": [ + { + "route": "", + "params": {}, + "title": "Home" + }, + { + "route": "/profile", + "params": {}, + "title": "Profile", + "loginRequired": true, + "rolesAllowed": [ + "ROLE_USER", + "ROLE_ADMIN" + ] + }, + { + "route": "/user/:userId", + "loginRequired": true, + "rolesAllowed": [ + "ROLE_ADMIN" + ], + "params": { + ":userId": "req" + }, + "title": "User Profile" + } + ] + } +] diff --git a/packages/java/engine-core/pom.xml b/packages/java/engine-core/pom.xml index 88370aee4a..d961374bd3 100644 --- a/packages/java/engine-core/pom.xml +++ b/packages/java/engine-core/pom.xml @@ -6,7 +6,7 @@ com.vaadin hilla-project - 24.5-SNAPSHOT + 24.7-SNAPSHOT ../../../pom.xml @@ -49,8 +49,8 @@ ${project.version} - com.google.code.findbugs - jsr305 + org.jspecify + jspecify org.junit.jupiter @@ -87,6 +87,11 @@ hilla-parser-jvm-plugin-transfertypes ${project.version} + + org.springframework.boot + spring-boot-loader-tools + provided + org.mockito mockito-core diff --git a/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/AotBrowserCallableFinder.java b/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/AotBrowserCallableFinder.java new file mode 100644 index 0000000000..1b11037291 --- /dev/null +++ b/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/AotBrowserCallableFinder.java @@ -0,0 +1,171 @@ +package com.vaadin.hilla.engine; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.boot.loader.tools.MainClassFinder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.io.IOException; +import java.lang.annotation.Annotation; +import java.net.URL; +import java.net.URLClassLoader; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * Utility class to find browser callables (endpoints) in a non-running Hilla + * application. + */ +class AotBrowserCallableFinder { + private static final Logger LOGGER = LoggerFactory + .getLogger(AotBrowserCallableFinder.class); + private static final String SPRING_BOOT_APPLICATION_CLASS_NAME = "org.springframework.boot.autoconfigure.SpringBootApplication"; + private static final String SPRING_AOT_PROCESSOR = "org.springframework.boot.SpringApplicationAotProcessor"; + + static List> findEndpointClasses( + EngineConfiguration engineConfiguration) + throws IOException, InterruptedException { + // Determine the main application class + var applicationClass = determineApplicationClass(engineConfiguration); + if (applicationClass == null) { + LOGGER.warn("This project has not been recognized as a Spring Boot" + + " application because a main class could not be found." + + " Hilla services will not be available."); + return List.of(); + } + + // Generate the AOT artifacts, including reflect-config.json + var reflectConfigPath = generateAotArtifacts(engineConfiguration, + applicationClass); + + // Load annotated classes from reflect-config.json + return loadAnnotatedClasses(engineConfiguration, reflectConfigPath); + } + + private static String determineApplicationClass( + EngineConfiguration engineConfiguration) throws IOException { + var mainClass = engineConfiguration.getMainClass(); + if (mainClass != null) { + return mainClass; + } + + return MainClassFinder.findSingleMainClass( + engineConfiguration.getClassesDir().toFile(), + SPRING_BOOT_APPLICATION_CLASS_NAME); + } + + private static Path generateAotArtifacts( + EngineConfiguration engineConfiguration, String applicationClass) + throws IOException, InterruptedException { + var aotOutput = engineConfiguration.getBuildDir() + .resolve("spring-aot/main"); + var classesDirectory = aotOutput.resolve("classes"); + var classpath = engineConfiguration.getClasspath().stream() + .filter(Files::exists).toList(); + + var settings = Stream.of("-cp", + classpath.stream().map(AotBrowserCallableFinder::quotePath) + .collect(Collectors.joining(File.pathSeparator)), + SPRING_AOT_PROCESSOR, applicationClass, + quotePath(aotOutput.resolve("sources")), + quotePath(aotOutput.resolve("resources")), + quotePath(classesDirectory), engineConfiguration.getGroupId(), + engineConfiguration.getArtifactId()).toList(); + + var argsFile = engineConfiguration.getBuildDir() + .resolve("hilla-aot-args.txt"); + Files.write(argsFile, settings); + + var javaExecutable = ProcessHandle.current().info().command() + .orElse(Path.of(System.getProperty("java.home"), "bin", "java") + .toString()); + + // Runs the SpringApplicationAotProcessor to generate the + // reflect-config.json file. This comes from the `process-aot` goal. + int exitCode = new ProcessBuilder().inheritIO() + .command(javaExecutable, "@" + argsFile).start().waitFor(); + + if (exitCode != 0) { + LOGGER.error( + SPRING_AOT_PROCESSOR + " exited with code: " + exitCode); + } + + var json = aotOutput.resolve(Path.of("resources", "META-INF", + "native-image", engineConfiguration.getGroupId(), + engineConfiguration.getArtifactId(), "reflect-config.json")); + + if (!Files.isRegularFile(json)) { + throw new ParserException(String.format( + "The `%s` tool has not produced the expected" + + " `reflect-config.json` file, which is used to" + + " identify available endpoints.", + SPRING_AOT_PROCESSOR)); + } + + return json; + } + + private static List> loadAnnotatedClasses( + EngineConfiguration engineConfiguration, Path reflectConfigPath) + throws IOException { + // The file simply contains a list of beans, we just need their names, + // which are class names. + var jsonContent = Files.readString(reflectConfigPath); + var objectMapper = new ObjectMapper(); + var rootNode = objectMapper.readTree(jsonContent); + + if (!rootNode.isArray()) { + throw new ParserException( + "Aot output file reflect-config.json does not contain" + + " information about beans, so endpoint detection" + + " cannot be performed"); + } + + // Extract candidate class names + var candidates = new ArrayList(); + for (var node : rootNode) { + String name = node.get("name").asText(); + candidates.add(name); + } + + // Prepare classloader + var classpath = engineConfiguration.getClasspath().stream() + .filter(Files::exists).toList(); + + var urls = classpath.stream().map(Path::toFile).map(file -> { + try { + return file.toURI().toURL(); + } catch (Throwable t) { + return null; + } + }).filter(Objects::nonNull).toArray(URL[]::new); + + var annotationNames = engineConfiguration.getParser() + .getEndpointAnnotations().stream().map(Class::getName).toList(); + + var classLoader = new URLClassLoader(urls, + AotBrowserCallableFinder.class.getClassLoader()); + return candidates.stream().map(name -> { + try { + return Class.forName(name, false, classLoader); + } catch (Throwable t) { + return null; + } + }).filter(Objects::nonNull) + .filter(cls -> Arrays.stream(cls.getAnnotations()) + .map(Annotation::annotationType).map(Class::getName) + .anyMatch(annotationNames::contains)) + .collect(Collectors.toList()); + } + + private static String quotePath(Path path) { + return '"' + path.toString().replace("\\", "\\\\") + '"'; + } +} diff --git a/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/ConfigurationException.java b/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/ConfigurationException.java index da87af1eb7..f47bc3642d 100644 --- a/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/ConfigurationException.java +++ b/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/ConfigurationException.java @@ -4,4 +4,8 @@ public final class ConfigurationException extends RuntimeException { ConfigurationException(Throwable cause) { super(cause); } + + ConfigurationException(String message, Throwable cause) { + super(message, cause); + } } diff --git a/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/EngineConfiguration.java b/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/EngineConfiguration.java index dee60221ed..0662ed0533 100644 --- a/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/EngineConfiguration.java +++ b/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/EngineConfiguration.java @@ -2,118 +2,88 @@ import java.io.File; import java.io.IOException; +import java.lang.annotation.Annotation; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLClassLoader; import java.nio.file.Files; import java.nio.file.Path; +import java.util.Arrays; import java.util.Collection; -import java.util.LinkedHashSet; -import java.util.Objects; +import java.util.List; import java.util.Set; import java.util.stream.Collectors; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.PropertyAccessor; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.vaadin.flow.server.ExecutionFailedException; import com.vaadin.flow.server.frontend.FrontendUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + public class EngineConfiguration { - public static final String DEFAULT_CONFIG_FILE_NAME = "hilla-engine-configuration.json"; + private static EngineConfiguration INSTANCE; + private static final Logger LOGGER = LoggerFactory + .getLogger(EngineConfiguration.class); + public static final String OPEN_API_PATH = "hilla-openapi.json"; - static final ObjectMapper MAPPER = new ObjectMapper() - .setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE) - .setVisibility(PropertyAccessor.FIELD, - JsonAutoDetect.Visibility.ANY); - private Path baseDir; + private Set classpath = Arrays + .stream(System.getProperty("java.class.path") + .split(File.pathSeparator)) + .map(Path::of).collect(Collectors.toSet()); + private String groupId; + private String artifactId; + private String mainClass; private Path buildDir; - @JsonDeserialize(as = LinkedHashSet.class) - private Set classPath; + private Path baseDir; private Path classesDir; private GeneratorConfiguration generator; private Path outputDir; private ParserConfiguration parser; + private BrowserCallableFinder browserCallableFinder; + private boolean productionMode = false; + private String nodeCommand = "node"; private EngineConfiguration() { + baseDir = Path.of(System.getProperty("user.dir")); + buildDir = baseDir.resolve("target"); + generator = new GeneratorConfiguration(); + parser = new ParserConfiguration(); + + var legacyFrontendDir = baseDir.resolve("frontend"); + if (Files.exists(legacyFrontendDir)) { + outputDir = legacyFrontendDir.resolve("generated"); + } else { + outputDir = baseDir.resolve( + FrontendUtils.DEFAULT_PROJECT_FRONTEND_GENERATED_DIR); + } } - /** - * Reads the configuration from the given base directory. Reads only files - * with the default name. - * - * @param configDir - * a directory that contains the configuration file. - * @return the configuration, or null if the configuration file - * does not exist - * @throws IOException - * if thrown while reading the configuration file - * @throws ConfigurationException - * if the configuration file is invalid - */ - public static EngineConfiguration loadDirectory(Path configDir) - throws IOException { - return load(configDir.resolve(DEFAULT_CONFIG_FILE_NAME).toFile()); + public Set getClasspath() { + return classpath; } - /** - * Reads the configuration from the given file path. - * - * @param configFile - * a path to a configuration file. - * @return the configuration, or null if the configuration file - * does not exist - * @throws IOException - * if thrown while reading the configuration file - * @throws ConfigurationException - * if the configuration file is invalid - */ - public static EngineConfiguration load(File configFile) throws IOException { - if (!configFile.isFile()) { - return null; - } - - try { - return MAPPER.readValue(configFile, EngineConfiguration.class); - } - // This is mainly to wrap Jackson exceptions, but declaring them - // explicitly can cause problems in tests if they are not on the - // classpath - catch (RuntimeException e) { - throw new ConfigurationException(e); - } + public String getGroupId() { + return groupId; } - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - var that = (EngineConfiguration) o; - return Objects.equals(baseDir, that.baseDir) - && Objects.equals(classPath, that.classPath) - && Objects.equals(generator, that.generator) - && Objects.equals(parser, that.parser) - && Objects.equals(buildDir, that.buildDir) - && Objects.equals(classesDir, that.classesDir) - && Objects.equals(outputDir, that.outputDir); + public String getArtifactId() { + return artifactId; } - public Path getBaseDir() { - return baseDir; + public String getMainClass() { + return mainClass; } public Path getBuildDir() { return buildDir; } - public Set getClassPath() { - return classPath; + public Path getBaseDir() { + return baseDir; } public Path getClassesDir() { - return classesDir; + return classesDir == null ? buildDir.resolve("classes") : classesDir; } public GeneratorConfiguration getGenerator() { @@ -128,45 +98,79 @@ public ParserConfiguration getParser() { return parser; } - @Override - public int hashCode() { - return Objects.hash(baseDir, classPath, generator, parser, buildDir, - classesDir, outputDir); + public boolean isProductionMode() { + return productionMode; } - public void store(File file) throws IOException { - MAPPER.writeValue(file, this); + public String getNodeCommand() { + return nodeCommand; } - @JsonIgnore - public Path getOpenAPIFile(boolean isProductionMode) { - return isProductionMode ? classesDir.resolve(OPEN_API_PATH) + public List> getEndpointAnnotations() { + return parser.getEndpointAnnotations(); + } + + public List> getEndpointExposedAnnotations() { + return parser.getEndpointExposedAnnotations(); + } + + public Path getOpenAPIFile() { + return productionMode + ? buildDir.resolve("classes").resolve(OPEN_API_PATH) : buildDir.resolve(OPEN_API_PATH); } + public BrowserCallableFinder getBrowserCallableFinder() { + if (browserCallableFinder != null) { + return browserCallableFinder; + } + + return () -> { + try { + return AotBrowserCallableFinder.findEndpointClasses(this); + } catch (IOException | InterruptedException e) { + throw new ExecutionFailedException(e); + } + }; + } + + public static EngineConfiguration getDefault() { + if (INSTANCE == null) { + INSTANCE = new EngineConfiguration(); + } + + return INSTANCE; + } + + public static void setDefault(EngineConfiguration config) { + INSTANCE = config; + } + public static final class Builder { private final EngineConfiguration configuration = new EngineConfiguration(); - public Builder(Path baseDir) { - configuration.baseDir = baseDir; - var legacyFrontendGeneratedDir = baseDir - .resolve("frontend/generated"); - if (Files.exists(legacyFrontendGeneratedDir)) { - configuration.outputDir = legacyFrontendGeneratedDir; - } else { - configuration.outputDir = baseDir.resolve( - FrontendUtils.DEFAULT_PROJECT_FRONTEND_GENERATED_DIR); - } + public Builder() { + this(getDefault()); } public Builder(EngineConfiguration configuration) { this.configuration.baseDir = configuration.baseDir; - this.configuration.classPath = configuration.classPath; - this.configuration.generator = configuration.generator; - this.configuration.parser = configuration.parser; this.configuration.buildDir = configuration.buildDir; this.configuration.classesDir = configuration.classesDir; + this.configuration.classpath = configuration.classpath; + this.configuration.generator = configuration.generator; + this.configuration.parser = configuration.parser; this.configuration.outputDir = configuration.outputDir; + this.configuration.groupId = configuration.groupId; + this.configuration.artifactId = configuration.artifactId; + this.configuration.mainClass = configuration.mainClass; + this.configuration.browserCallableFinder = configuration.browserCallableFinder; + this.configuration.productionMode = configuration.productionMode; + this.configuration.nodeCommand = configuration.nodeCommand; + this.configuration.parser.setEndpointAnnotations( + configuration.getEndpointAnnotations()); + this.configuration.parser.setEndpointExposedAnnotations( + configuration.getEndpointExposedAnnotations()); } public Builder baseDir(Path value) { @@ -183,23 +187,18 @@ public Builder buildDir(Path value) { return this; } - public Builder classPath(Collection value) { - configuration.classPath = value.stream().map(Path::of) - .map(this::resolve) - .collect(Collectors.toCollection(LinkedHashSet::new)); - return this; - } - public Builder classesDir(Path value) { configuration.classesDir = resolve(value); return this; } - public Builder classesDir(String value) { - return classesDir(Path.of(value)); + public Builder classpath(Collection value) { + configuration.classpath = value.stream().map(Path::of) + .map(this::resolve).collect(Collectors.toSet()); + return this; } - public EngineConfiguration create() { + public EngineConfiguration build() { return configuration; } @@ -222,9 +221,96 @@ public Builder parser(ParserConfiguration value) { return this; } + public Builder groupId(String value) { + configuration.groupId = value; + return this; + } + + public Builder artifactId(String value) { + configuration.artifactId = value; + return this; + } + + public Builder mainClass(String value) { + configuration.mainClass = value; + return this; + } + + public Builder browserCallableFinder(BrowserCallableFinder finder) { + configuration.browserCallableFinder = finder; + return this; + } + + public Builder productionMode(boolean value) { + configuration.productionMode = value; + return this; + } + + public Builder nodeCommand(String value) { + configuration.nodeCommand = value; + return this; + } + + public Builder endpointAnnotations( + Class... value) { + configuration.parser.setEndpointAnnotations(Arrays.asList(value)); + return this; + } + + public Builder endpointExposedAnnotations( + Class... value) { + configuration.parser + .setEndpointExposedAnnotations(Arrays.asList(value)); + return this; + } + + public Builder withDefaultAnnotations() { + ClassLoader classLoader = getClass().getClassLoader(); + if (configuration.classpath != null) { + var urls = configuration.classpath.stream().map(path -> { + try { + return path.toUri().toURL(); + } catch (MalformedURLException e) { + throw new ConfigurationException( + "Classpath contains invalid elements", e); + } + }).toArray(URL[]::new); + classLoader = new URLClassLoader(urls, + getClass().getClassLoader()); + } + + try { + configuration.parser.setEndpointAnnotations(List.of( + (Class) Class.forName( + "com.vaadin.hilla.BrowserCallable", true, + classLoader), + (Class) Class.forName( + "com.vaadin.hilla.Endpoint", true, + classLoader))); + configuration.parser.setEndpointExposedAnnotations( + List.of((Class) Class.forName( + "com.vaadin.hilla.EndpointExposed", true, + classLoader))); + } catch (Throwable t) { + LOGGER.debug( + "Default annotations not found. Hilla is probably not in the classpath."); + } + return this; + } + private Path resolve(Path path) { return path.isAbsolute() ? path.normalize() : configuration.baseDir.resolve(path).normalize(); } } + + /** + * Functional interface for finding browser-callable classes. + * Implementations of this interface are responsible for locating and + * returning a list of endpoint classes. + */ + @FunctionalInterface + public interface BrowserCallableFinder { + List> findBrowserCallables() throws ExecutionFailedException; + } } diff --git a/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/GeneratorConfiguration.java b/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/GeneratorConfiguration.java index 85f209c98f..61e8cce213 100644 --- a/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/GeneratorConfiguration.java +++ b/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/GeneratorConfiguration.java @@ -1,6 +1,6 @@ package com.vaadin.hilla.engine; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -81,8 +81,8 @@ public Plugins() { disableAllDefaults = false; } - Plugins(@Nonnull Collection use, - @Nonnull Collection disable, + Plugins(@NonNull Collection use, + @NonNull Collection disable, boolean disableAllDefaults) { this.use.addAll(use); this.disable.addAll(disable); @@ -143,6 +143,7 @@ static class PluginsProcessor extends ConfigList.Processor { new Plugin("@vaadin/hilla-generator-plugin-barrel"), new Plugin("@vaadin/hilla-generator-plugin-model"), new Plugin("@vaadin/hilla-generator-plugin-push"), + new Plugin("@vaadin/hilla-generator-plugin-signals"), new Plugin("@vaadin/hilla-generator-plugin-subtypes")); PluginsProcessor() { diff --git a/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/GeneratorProcessor.java b/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/GeneratorProcessor.java index c05641df84..9d5cad020f 100644 --- a/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/GeneratorProcessor.java +++ b/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/GeneratorProcessor.java @@ -8,7 +8,7 @@ import java.util.List; import java.util.Objects; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.engine.commandrunner.CommandNotFoundException; import com.vaadin.hilla.engine.commandrunner.CommandRunnerException; @@ -27,17 +27,16 @@ public final class GeneratorProcessor { private final Path outputDirectory; private final GeneratorConfiguration.PluginsProcessor pluginsProcessor = new GeneratorConfiguration.PluginsProcessor(); - public GeneratorProcessor(EngineConfiguration conf, String nodeCommand, - boolean isProductionMode) { + public GeneratorProcessor(EngineConfiguration conf) { this.baseDir = conf.getBaseDir(); - this.openAPIFile = conf.getOpenAPIFile(isProductionMode); + this.openAPIFile = conf.getOpenAPIFile(); this.outputDirectory = conf.getOutputDir(); - this.nodeCommand = nodeCommand; + this.nodeCommand = conf.getNodeCommand(); applyConfiguration(conf.getGenerator()); } public void process() throws GeneratorException { - var arguments = new ArrayList<>(); + var arguments = new ArrayList(); arguments.add(TSGEN_PATH); prepareOutputDir(arguments); preparePlugins(arguments); @@ -80,7 +79,7 @@ private GeneratorProcessor applyConfiguration( return this; } - private void applyPlugins(@Nonnull GeneratorConfiguration.Plugins plugins) { + private void applyPlugins(GeneratorConfiguration.@NonNull Plugins plugins) { pluginsProcessor.setConfig(plugins); } diff --git a/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/ParserConfiguration.java b/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/ParserConfiguration.java index d0fd282829..b94f510f1e 100644 --- a/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/ParserConfiguration.java +++ b/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/ParserConfiguration.java @@ -1,12 +1,13 @@ package com.vaadin.hilla.engine; +import java.lang.annotation.Annotation; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Objects; import java.util.Optional; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.PluginConfiguration; import com.vaadin.hilla.parser.plugins.backbone.BackbonePlugin; @@ -17,18 +18,18 @@ import com.vaadin.hilla.parser.utils.ConfigList; public final class ParserConfiguration { - private String endpointAnnotation; - private String endpointExposedAnnotation; + private List> endpointAnnotations = List.of(); + private List> endpointExposedAnnotations = List + .of(); private String openAPIBasePath; private Plugins plugins; - private List packages; - public Optional getEndpointAnnotation() { - return Optional.ofNullable(endpointAnnotation); + public List> getEndpointAnnotations() { + return endpointAnnotations; } - public Optional getEndpointExposedAnnotation() { - return Optional.ofNullable(endpointExposedAnnotation); + public List> getEndpointExposedAnnotations() { + return endpointExposedAnnotations; } public Optional getOpenAPIBasePath() { @@ -39,39 +40,14 @@ public Optional getPlugins() { return Optional.ofNullable(plugins); } - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - var that = (ParserConfiguration) o; - return Objects.equals(endpointAnnotation, that.endpointAnnotation) - && Objects.equals(endpointExposedAnnotation, - that.endpointExposedAnnotation) - && Objects.equals(openAPIBasePath, that.openAPIBasePath) - && Objects.equals(plugins, that.plugins) - && Objects.equals(packages, that.packages); - } - - @Override - public int hashCode() { - return Objects.hash(endpointAnnotation, endpointExposedAnnotation, - openAPIBasePath, plugins, packages); - } - - public Optional> getPackages() { - return Optional.ofNullable(packages); - } - - void setEndpointAnnotation(String endpointAnnotation) { - this.endpointAnnotation = endpointAnnotation; + public void setEndpointAnnotations( + @NonNull List> endpointAnnotations) { + this.endpointAnnotations = endpointAnnotations; } - void setEndpointExposedAnnotation(String endpointExposedAnnotation) { - this.endpointExposedAnnotation = endpointExposedAnnotation; + public void setEndpointExposedAnnotations( + @NonNull List> endpointExposedAnnotations) { + this.endpointExposedAnnotations = endpointExposedAnnotations; } void setOpenAPIBasePath(String openAPIBasePath) { @@ -82,10 +58,6 @@ void setPlugins(Plugins plugins) { this.plugins = plugins; } - public void setPackages(List packages) { - this.packages = packages; - } - public static class Plugin { private PluginConfiguration configuration; private String name; @@ -120,7 +92,7 @@ public PluginConfiguration getConfiguration() { return configuration; } - @Nonnull + @NonNull public String getName() { return name; } @@ -141,8 +113,8 @@ public Plugins() { disableAllDefaults = false; } - Plugins(@Nonnull Collection use, - @Nonnull Collection disable, + Plugins(@NonNull Collection use, + @NonNull Collection disable, boolean disableAllDefaults) { this.disable.addAll(disable); this.use.addAll(use); diff --git a/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/ParserProcessor.java b/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/ParserProcessor.java index 8d5f09c0f4..8ed742193b 100644 --- a/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/ParserProcessor.java +++ b/packages/java/engine-core/src/main/java/com/vaadin/hilla/engine/ParserProcessor.java @@ -1,6 +1,7 @@ package com.vaadin.hilla.engine; import java.io.IOException; +import java.lang.annotation.Annotation; import java.nio.file.Files; import java.nio.file.Path; import java.util.Collection; @@ -10,7 +11,7 @@ import java.util.Set; import java.util.stream.Collectors; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,54 +21,50 @@ import com.vaadin.hilla.parser.core.PluginManager; import com.vaadin.hilla.parser.utils.JsonPrinter; -import static com.vaadin.hilla.engine.EngineConfiguration.OPEN_API_PATH; - public final class ParserProcessor { private static final Logger logger = LoggerFactory .getLogger(ParserProcessor.class); private final Path baseDir; - private final ClassLoader classLoader; private final Set classPath; private final Path openAPIFile; private final ParserConfiguration.PluginsProcessor pluginsProcessor = new ParserConfiguration.PluginsProcessor(); - private String endpointAnnotationName = "com.vaadin.hilla.Endpoint"; - private String endpointExposedAnnotationName = "com.vaadin.hilla.EndpointExposed"; - private Collection exposedPackages = List.of(); + private List> endpointAnnotations = List.of(); + private List> endpointExposedAnnotations = List + .of(); private String openAPIBasePath; - public ParserProcessor(EngineConfiguration conf, ClassLoader classLoader, - boolean isProductionMode) { + public ParserProcessor(EngineConfiguration conf) { this.baseDir = conf.getBaseDir(); - this.openAPIFile = conf.getOpenAPIFile(isProductionMode); - this.classLoader = classLoader; - this.classPath = conf.getClassPath(); + this.openAPIFile = conf.getOpenAPIFile(); + this.classPath = conf.getClasspath(); + this.endpointAnnotations = conf.getEndpointAnnotations(); + this.endpointExposedAnnotations = conf.getEndpointExposedAnnotations(); applyConfiguration(conf.getParser()); } - public String createOpenAPI() throws IOException { - var parser = new Parser().classLoader(classLoader) + private String createOpenAPI(List> endpoints) throws IOException { + var parser = new Parser() .classPath(classPath.stream().map(Path::toString) .collect(Collectors.toSet())) - .endpointAnnotation(endpointAnnotationName) - .endpointExposedAnnotation(endpointExposedAnnotationName) - .exposedPackages(exposedPackages); + .endpointAnnotations(endpointAnnotations) + .endpointExposedAnnotations(endpointExposedAnnotations); preparePlugins(parser); prepareOpenAPIBase(parser); logger.debug("Starting JVM Parser"); - var openAPI = parser.execute(); + var openAPI = parser.execute(endpoints); return new JsonPrinter().pretty().writeAsString(openAPI); } - public void process() throws ParserException { + public void process(List> endpoints) throws ParserException { String openAPIString; try { Files.createDirectories(openAPIFile.getParent()); - openAPIString = createOpenAPI(); + openAPIString = createOpenAPI(endpoints); } catch (IOException e) { throw new ParserException("Unable to prepare OpenAPI definition", e); @@ -94,37 +91,30 @@ private void applyConfiguration(ParserConfiguration parserConfiguration) { return; } - parserConfiguration.getEndpointAnnotation() - .ifPresent(this::applyEndpointAnnotation); - parserConfiguration.getEndpointExposedAnnotation() - .ifPresent(this::applyEndpointExposedAnnotation); + applyEndpointAnnotations(parserConfiguration.getEndpointAnnotations()); + applyEndpointExposedAnnotations( + parserConfiguration.getEndpointExposedAnnotations()); parserConfiguration.getOpenAPIBasePath() .ifPresent(this::applyOpenAPIBase); parserConfiguration.getPlugins().ifPresent(this::applyPlugins); - parserConfiguration.getPackages().ifPresent(this::applyExposedPackages); - } - - private void applyEndpointAnnotation( - @Nonnull String endpointAnnotationName) { - this.endpointAnnotationName = Objects - .requireNonNull(endpointAnnotationName); } - private void applyEndpointExposedAnnotation( - @Nonnull String endpointExposedAnnotationName) { - this.endpointExposedAnnotationName = Objects - .requireNonNull(endpointExposedAnnotationName); + private void applyEndpointAnnotations( + @NonNull List> endpointAnnotations) { + this.endpointAnnotations = Objects.requireNonNull(endpointAnnotations); } - private void applyExposedPackages(@Nonnull List exposedPackages) { - this.exposedPackages = exposedPackages; + private void applyEndpointExposedAnnotations( + @NonNull List> endpointExposedAnnotations) { + this.endpointExposedAnnotations = Objects + .requireNonNull(endpointExposedAnnotations); } - private void applyOpenAPIBase(@Nonnull String openAPIBasePath) { + private void applyOpenAPIBase(@NonNull String openAPIBasePath) { this.openAPIBasePath = openAPIBasePath; } - private void applyPlugins(@Nonnull ParserConfiguration.Plugins plugins) { + private void applyPlugins(ParserConfiguration.@NonNull Plugins plugins) { this.pluginsProcessor.setConfig(plugins); } diff --git a/packages/java/engine-core/src/test/java/com/vaadin/hilla/engine/EngineConfigurationTest.java b/packages/java/engine-core/src/test/java/com/vaadin/hilla/engine/EngineConfigurationTest.java deleted file mode 100644 index 66c618e34d..0000000000 --- a/packages/java/engine-core/src/test/java/com/vaadin/hilla/engine/EngineConfigurationTest.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.vaadin.hilla.engine; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; - -import java.io.File; -import java.io.IOException; -import java.lang.reflect.InvocationTargetException; -import java.net.URISyntaxException; -import java.net.URL; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.LinkedHashSet; -import java.util.List; - -import com.vaadin.hilla.parser.plugins.nonnull.AnnotationMatcher; -import com.vaadin.hilla.parser.plugins.nonnull.NonnullPluginConfig; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import com.vaadin.hilla.parser.testutils.JsonAssertions; -import com.vaadin.hilla.parser.testutils.TestEngineConfigurationPathResolver; - -public class EngineConfigurationTest { - private static final String CONFIG_FILE_NAME = "hilla-engine-configuration.json"; - private static final URL TEST_CONFIG_URL = EngineConfigurationTest.class - .getResource(CONFIG_FILE_NAME); - private Path baseDirectory; - private File configFile; - private EngineConfiguration.Builder configurationBuilder; - private Path temporaryDirectory; - - @BeforeEach - public void setUp() throws IOException { - this.temporaryDirectory = Files - .createTempDirectory(getClass().getName()); - this.configFile = this.temporaryDirectory.resolve(CONFIG_FILE_NAME) - .toFile(); - - this.baseDirectory = this.temporaryDirectory.resolve("base"); - - var parserConfiguration = new ParserConfiguration(); - parserConfiguration - .setEndpointAnnotation("com.vaadin.hilla.test.Endpoint"); - parserConfiguration.setEndpointExposedAnnotation( - "com.vaadin.hilla.test.EndpointExposed"); - parserConfiguration.setPlugins(new ParserConfiguration.Plugins(List.of( - new ParserConfiguration.Plugin("parser-jvm-plugin-use"), - new ParserConfiguration.Plugin("parser-jvm-plugin-nonnull", - new NonnullPluginConfig(List.of(new AnnotationMatcher( - "com.example.application.annotations.NeverNull", - false, 50)), List.of()))), - List.of(new ParserConfiguration.Plugin( - "parser-jvm-plugin-disable")), - true)); - parserConfiguration.setOpenAPIBasePath("test-openapi.json"); - - var generatorConfiguration = new GeneratorConfiguration(); - generatorConfiguration.setPlugins(new GeneratorConfiguration.Plugins( - List.of(new GeneratorConfiguration.Plugin( - "generator-jvm-plugin" + "-use")), - List.of(new GeneratorConfiguration.Plugin( - "generator-jvm-plugin" + "-disable")), - true)); - - this.configurationBuilder = new EngineConfiguration.Builder( - this.baseDirectory).buildDir("build") - .outputDir("src/frontend/typescript/generated") - .classPath(new LinkedHashSet<>( - List.of("build/classes", "dependency"))) - .parser(parserConfiguration).generator(generatorConfiguration); - } - - @Test - public void should_DeserializeFromJsonFile() - throws IOException, URISyntaxException, InvocationTargetException, - NoSuchMethodException, InstantiationException, - IllegalAccessException, NoSuchFieldException { - var config = configurationBuilder.create(); - Files.copy(Path.of(TEST_CONFIG_URL.toURI()), configFile.toPath()); - - var loadedConfig = TestEngineConfigurationPathResolver - .resolve(EngineConfiguration.load(configFile), baseDirectory); - - assertNotNull(loadedConfig); - JsonAssertions.assertEquals(config, loadedConfig); - } - - @Test - public void should_NotRelativizeOutputDir_WhenGivenRelative() { - var config = configurationBuilder.outputDir("relative/path").create(); - assertEquals(baseDirectory.resolve("relative/path"), - config.getOutputDir()); - } - - @Test - public void should_RelativizeOutputDir_WhenGivenAbsolutePath() { - var path = temporaryDirectory.resolve("absolute/path"); - var config = configurationBuilder.outputDir(path).create(); - - assertEquals(path, config.getOutputDir()); - } - - @Test - public void should_SerializeToJsonFile() throws IOException, - InvocationTargetException, NoSuchMethodException, - InstantiationException, IllegalAccessException { - configurationBuilder.create().store(configFile); - - var storedConfig = EngineConfiguration.MAPPER.readValue(configFile, - EngineConfiguration.class); - var expectedConfig = TestEngineConfigurationPathResolver - .resolve(EngineConfiguration.MAPPER.readValue(TEST_CONFIG_URL, - EngineConfiguration.class), baseDirectory); - - JsonAssertions.assertEquals(expectedConfig, storedConfig); - } - - @AfterEach - public void tearDown() throws IOException { - if (this.configFile.exists()) { - Files.delete(this.configFile.toPath()); - } - Files.delete(this.temporaryDirectory); - } -} diff --git a/packages/java/engine-core/src/test/resources/com/vaadin/hilla/engine/hilla-engine-configuration.json b/packages/java/engine-core/src/test/resources/com/vaadin/hilla/engine/hilla-engine-configuration.json index 9456278294..3ae836f124 100644 --- a/packages/java/engine-core/src/test/resources/com/vaadin/hilla/engine/hilla-engine-configuration.json +++ b/packages/java/engine-core/src/test/resources/com/vaadin/hilla/engine/hilla-engine-configuration.json @@ -34,6 +34,19 @@ { "configuration": null, "name": "parser-jvm-plugin-use" + }, + { + "configuration": { + "class": "com.vaadin.hilla.parser.plugins.nonnull.NonnullPluginConfig", + "disable": [], + "use": [ + { + "name": "com.example.application.annotations.NeverNull", + "score": 50 + } + ] + }, + "name": "parser-jvm-plugin-nonnull" } ] }, diff --git a/packages/java/engine-runtime/pom.xml b/packages/java/engine-runtime/pom.xml index 63a13b3ca4..3dd527d86a 100644 --- a/packages/java/engine-runtime/pom.xml +++ b/packages/java/engine-runtime/pom.xml @@ -6,7 +6,7 @@ com.vaadin hilla-project - 24.5-SNAPSHOT + 24.7-SNAPSHOT ../../../pom.xml @@ -28,6 +28,11 @@ + + com.vaadin + hilla-endpoint + ${project.version} + com.vaadin flow-server @@ -39,8 +44,8 @@ ${project.version} - com.google.code.findbugs - jsr305 + org.jspecify + jspecify org.junit.jupiter @@ -69,5 +74,10 @@ ${project.version} test + + org.springframework.boot + spring-boot-test + test + diff --git a/packages/java/engine-runtime/src/main/java/com/vaadin/hilla/internal/AbstractTaskEndpointGenerator.java b/packages/java/engine-runtime/src/main/java/com/vaadin/hilla/internal/AbstractTaskEndpointGenerator.java index 802b953f92..15d65e2715 100644 --- a/packages/java/engine-runtime/src/main/java/com/vaadin/hilla/internal/AbstractTaskEndpointGenerator.java +++ b/packages/java/engine-runtime/src/main/java/com/vaadin/hilla/internal/AbstractTaskEndpointGenerator.java @@ -15,150 +15,23 @@ */ package com.vaadin.hilla.internal; -import java.io.File; -import java.io.InputStream; -import java.io.IOException; -import java.net.URL; -import java.util.Arrays; import java.util.Objects; -import java.util.Optional; -import java.util.Properties; -import java.util.function.Function; -import java.util.stream.Stream; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.vaadin.flow.server.ExecutionFailedException; import com.vaadin.flow.server.frontend.FallibleCommand; - -import com.vaadin.hilla.engine.ConfigurationException; import com.vaadin.hilla.engine.EngineConfiguration; -import com.vaadin.hilla.engine.commandrunner.GradleRunner; -import com.vaadin.hilla.engine.commandrunner.MavenRunner; -import com.vaadin.hilla.engine.commandrunner.CommandRunnerException; /** * Abstract class for endpoint related generators. */ abstract class AbstractTaskEndpointGenerator implements FallibleCommand { - private static final Logger LOGGER = LoggerFactory - .getLogger(AbstractTaskEndpointGenerator.class); - private static boolean firstRun = true; - - private final String buildDirectoryName; - private final Logger logger = LoggerFactory.getLogger(getClass()); - protected final File outputDirectory; - private final File projectDirectory; - private final Function resourceFinder; - private EngineConfiguration engineConfiguration; + private final EngineConfiguration engineConfiguration; - AbstractTaskEndpointGenerator(File projectDirectory, - String buildDirectoryName, File outputDirectory, - Function resourceFinder) { - this.projectDirectory = Objects.requireNonNull(projectDirectory, - "Project directory cannot be null"); - this.buildDirectoryName = Objects.requireNonNull(buildDirectoryName, - "Build directory name cannot be null"); - this.outputDirectory = Objects.requireNonNull(outputDirectory, - "Output directory name cannot be null"); - this.resourceFinder = Objects.requireNonNull(resourceFinder, - "Class finder cannot be null"); + AbstractTaskEndpointGenerator(EngineConfiguration engineConfiguration) { + this.engineConfiguration = Objects.requireNonNull(engineConfiguration, + "Engine configuration cannot be null"); } - protected EngineConfiguration getEngineConfiguration() - throws ExecutionFailedException { - if (engineConfiguration == null) { - prepareEngineConfiguration(); - } - + protected EngineConfiguration getEngineConfiguration() { return engineConfiguration; } - - protected void prepareEngineConfiguration() - throws ExecutionFailedException { - var configDir = projectDirectory.toPath().resolve(buildDirectoryName); - - if (firstRun) { - logger.debug("Configure Hilla engine using build system plugin"); - - var mavenConfigure = MavenRunner.forProject(projectDirectory, "-q", - "vaadin:configure"); - var mavenConfigureVersion = getVaadinVersion() - .flatMap(version -> MavenRunner.forProject(projectDirectory, - "-q", "com.vaadin:vaadin-maven-plugin:" + version - + ":configure")); - var gradleConfigure = GradleRunner.forProject(projectDirectory, - "-q", "hillaConfigure"); - - var runners = Stream - .of(mavenConfigure, mavenConfigureVersion, gradleConfigure) - .flatMap(Optional::stream).toList(); - - if (runners.isEmpty()) { - throw new ExecutionFailedException(String.format( - "Failed to determine project directory for dev mode. " - + "Directory '%s' does not look like a Maven or " - + "Gradle project.", - projectDirectory)); - } else { - for (var runner : runners) { - try { - runner.run(null, false); - firstRun = false; - break; - } catch (CommandRunnerException e) { - logger.debug( - "Failed to configure Hilla engine using " - + runner.getClass().getSimpleName() - + " with arguments " - + Arrays.toString(runner.arguments()), - e); - } - } - } - - if (firstRun) { - throw new ExecutionFailedException( - "Failed to configure Hilla engine: no runner succeeded. " - + "Set log level to debug to see more details."); - } - } - - try { - var config = EngineConfiguration.loadDirectory(configDir); - - if (config == null) { - throw new ExecutionFailedException( - "Engine configuration is missing"); - } - - this.engineConfiguration = new EngineConfiguration.Builder(config) - .outputDir(outputDirectory.toPath()).create(); - } catch (IOException | ConfigurationException e) { - throw new ExecutionFailedException( - "Failed to read Hilla engine configuration", e); - } - - } - - private Optional getVaadinVersion() { - String vaadinVersion = null; - try (final InputStream vaadinPomProperties = resourceFinder - .apply("META-INF/maven/com.vaadin/vaadin-core/pom.properties") - .openStream()) { - if (vaadinPomProperties != null) { - final Properties properties = new Properties(); - properties.load(vaadinPomProperties); - vaadinVersion = properties.getProperty("version", ""); - } else { - LOGGER.debug("Unable to determine Vaadin version. " - + "No META-INF/maven/com.vaadin/vaadin-core/pom.properties found"); - } - } catch (Exception e) { - LOGGER.debug("Unable to determine Vaadin version", e); - } - - return Optional.ofNullable(vaadinVersion); - } } diff --git a/packages/java/engine-runtime/src/main/java/com/vaadin/hilla/internal/EndpointGeneratorTaskFactoryImpl.java b/packages/java/engine-runtime/src/main/java/com/vaadin/hilla/internal/EndpointGeneratorTaskFactoryImpl.java index 9df5487cb2..7bfafa9904 100644 --- a/packages/java/engine-runtime/src/main/java/com/vaadin/hilla/internal/EndpointGeneratorTaskFactoryImpl.java +++ b/packages/java/engine-runtime/src/main/java/com/vaadin/hilla/internal/EndpointGeneratorTaskFactoryImpl.java @@ -15,6 +15,7 @@ */ package com.vaadin.hilla.internal; +import com.vaadin.hilla.engine.EngineConfiguration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -58,13 +59,8 @@ public TaskGenerateEndpoint createTaskGenerateEndpoint(Options options) { return new SkipTaskGenerateEndpoint(); } - var nodeExecutable = buildTools(options).getNodeExecutable(); - - return new TaskGenerateEndpointImpl(options.getNpmFolder(), - options.getBuildDirectoryName(), - options.getFrontendGeneratedFolder(), - options.getClassFinder()::getResource, - options.isProductionMode(), nodeExecutable); + var engineConfiguration = configureFromOptions(options); + return new TaskGenerateEndpointImpl(engineConfiguration); } @Override @@ -75,12 +71,8 @@ public TaskGenerateOpenAPI createTaskGenerateOpenAPI(Options options) { return new SkipTaskGenerateOpenAPI(); } - return new TaskGenerateOpenAPIImpl(options.getNpmFolder(), - options.getBuildDirectoryName(), - options.getFrontendGeneratedFolder(), - options.getClassFinder()::getResource, - options.getClassFinder().getClassLoader(), - options.isProductionMode()); + var engineConfiguration = configureFromOptions(options); + return new TaskGenerateOpenAPIImpl(engineConfiguration); } private static class SkipTaskGenerateEndpoint @@ -98,4 +90,14 @@ public void execute() { LOGGER.debug("Skipping generating OpenAPI spec"); } } + + private static EngineConfiguration configureFromOptions(Options options) { + return new EngineConfiguration.Builder() + .baseDir(options.getNpmFolder().toPath()) + .buildDir(options.getBuildDirectoryName()) + .outputDir(options.getFrontendGeneratedFolder().toPath()) + .nodeCommand(buildTools(options).getNodeExecutable()) + .productionMode(options.isProductionMode()) + .withDefaultAnnotations().build(); + } } diff --git a/packages/java/engine-runtime/src/main/java/com/vaadin/hilla/internal/EngineRuntimeException.java b/packages/java/engine-runtime/src/main/java/com/vaadin/hilla/internal/EngineRuntimeException.java deleted file mode 100644 index 4685832c09..0000000000 --- a/packages/java/engine-runtime/src/main/java/com/vaadin/hilla/internal/EngineRuntimeException.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.vaadin.hilla.internal; - -public class EngineRuntimeException extends RuntimeException { - EngineRuntimeException(String message) { - super(message); - } - - EngineRuntimeException(String message, Throwable cause) { - super(message, cause); - } - - EngineRuntimeException(Throwable cause) { - super(cause); - } -} diff --git a/packages/java/engine-runtime/src/main/java/com/vaadin/hilla/internal/TaskGenerateEndpointImpl.java b/packages/java/engine-runtime/src/main/java/com/vaadin/hilla/internal/TaskGenerateEndpointImpl.java index 3bc06f820d..6067a958a1 100644 --- a/packages/java/engine-runtime/src/main/java/com/vaadin/hilla/internal/TaskGenerateEndpointImpl.java +++ b/packages/java/engine-runtime/src/main/java/com/vaadin/hilla/internal/TaskGenerateEndpointImpl.java @@ -15,17 +15,11 @@ */ package com.vaadin.hilla.internal; -import java.io.File; -import java.net.URL; -import java.util.function.Function; - -import com.vaadin.hilla.engine.GeneratorException; -import com.vaadin.hilla.engine.GeneratorProcessor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import com.vaadin.flow.server.ExecutionFailedException; import com.vaadin.flow.server.frontend.TaskGenerateEndpoint; +import com.vaadin.hilla.ApplicationContextProvider; +import com.vaadin.hilla.engine.EngineConfiguration; +import com.vaadin.hilla.engine.GeneratorProcessor; /** * Starts the generation of TS files for endpoints. @@ -33,39 +27,14 @@ public class TaskGenerateEndpointImpl extends AbstractTaskEndpointGenerator implements TaskGenerateEndpoint { - private static final Logger LOGGER = LoggerFactory - .getLogger(TaskGenerateEndpointImpl.class); - - private final String nodeCommand; - private final boolean productionMode; - /** * Create a task for generating OpenAPI spec. * - * @param projectDirectory - * the base directory of the project. - * - * @param buildDirectoryName - * Java build directory name (relative to the {@code - * projectDirectory}). - * - * @param outputDirectory - * the output directory for generated TypeScript code. - * @param resourceFinder - * used internally to find resources - * @param productionMode - * {@code true} if building for production - * @param nodeCommand - * a command to run NodeJS, either absolute path to the - * executable or PATH-related command + * @param engineConfiguration + * Hilla engine configuration instance */ - TaskGenerateEndpointImpl(File projectDirectory, String buildDirectoryName, - File outputDirectory, Function resourceFinder, - boolean productionMode, String nodeCommand) { - super(projectDirectory, buildDirectoryName, outputDirectory, - resourceFinder); - this.productionMode = productionMode; - this.nodeCommand = nodeCommand; + TaskGenerateEndpointImpl(EngineConfiguration engineConfiguration) { + super(engineConfiguration); } /** @@ -75,17 +44,20 @@ public class TaskGenerateEndpointImpl extends AbstractTaskEndpointGenerator */ @Override public void execute() throws ExecutionFailedException { - try { - var engineConfiguration = getEngineConfiguration(); - var processor = new GeneratorProcessor(engineConfiguration, - nodeCommand, productionMode); - processor.process(); - } catch (GeneratorException e) { - // Make sure the exception is printed in the logs - LOGGER.error("Failed to run TypeScript endpoint generator", e); - throw new ExecutionFailedException( - "Failed to run TypeScript endpoint generator"); + if (getEngineConfiguration().isProductionMode()) { + runProcessor(); + } else { + // Even if we don't need the application context here, we have to + // wait for the parser to complete its job, so we add this the + // context queue. + ApplicationContextProvider.runOnContext(applicationContext -> { + runProcessor(); + }); } } + private void runProcessor() { + var processor = new GeneratorProcessor(getEngineConfiguration()); + processor.process(); + } } diff --git a/packages/java/engine-runtime/src/main/java/com/vaadin/hilla/internal/TaskGenerateOpenAPIImpl.java b/packages/java/engine-runtime/src/main/java/com/vaadin/hilla/internal/TaskGenerateOpenAPIImpl.java index f91fdd6b7d..5d83631dda 100644 --- a/packages/java/engine-runtime/src/main/java/com/vaadin/hilla/internal/TaskGenerateOpenAPIImpl.java +++ b/packages/java/engine-runtime/src/main/java/com/vaadin/hilla/internal/TaskGenerateOpenAPIImpl.java @@ -15,20 +15,25 @@ */ package com.vaadin.hilla.internal; -import javax.annotation.Nonnull; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import org.jspecify.annotations.NonNull; import java.io.File; import java.net.URL; import java.util.Objects; import java.util.function.Function; -import com.vaadin.hilla.engine.ParserException; +import com.vaadin.hilla.ApplicationContextProvider; +import com.vaadin.hilla.EndpointCodeGenerator; +import com.vaadin.hilla.engine.EngineConfiguration; import com.vaadin.hilla.engine.ParserProcessor; import com.vaadin.flow.server.ExecutionFailedException; import com.vaadin.flow.server.frontend.TaskGenerateOpenAPI; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.springframework.aop.framework.AopProxyUtils; /** * Generate OpenAPI json file for Vaadin Endpoints. @@ -36,42 +41,14 @@ public class TaskGenerateOpenAPIImpl extends AbstractTaskEndpointGenerator implements TaskGenerateOpenAPI { - private static final Logger LOGGER = LoggerFactory - .getLogger(TaskGenerateOpenAPIImpl.class); - - private final ClassLoader classLoader; - private final boolean isProductionMode; - /** * Create a task for generating OpenAPI spec. * - * @param projectDirectory - * the base directory of the project. - * - * @param buildDirectoryName - * Java build directory name (relative to the {@code - * projectDirectory}). - * - * @param outputDirectory - * the output directory for generated TypeScript code. - * - * @param resourceFinder - * used internally to find resources. - * - * @param classLoader - * the Java Class Loader for the parser. - * - * @param isProductionMode - * {@code true} if building for production. + * @param engineConfiguration + * Hilla engine configuration instance */ - TaskGenerateOpenAPIImpl(File projectDirectory, String buildDirectoryName, - File outputDirectory, Function resourceFinder, - @Nonnull ClassLoader classLoader, boolean isProductionMode) { - super(projectDirectory, buildDirectoryName, outputDirectory, - resourceFinder); - this.classLoader = Objects.requireNonNull(classLoader, - "ClassLoader should not be null"); - this.isProductionMode = isProductionMode; + TaskGenerateOpenAPIImpl(EngineConfiguration engineConfiguration) { + super(engineConfiguration); } /** @@ -81,15 +58,20 @@ public class TaskGenerateOpenAPIImpl extends AbstractTaskEndpointGenerator */ @Override public void execute() throws ExecutionFailedException { - try { - var engineConfiguration = getEngineConfiguration(); - var processor = new ParserProcessor(engineConfiguration, - classLoader, isProductionMode); - processor.process(); - } catch (ParserException e) { - // Make sure the exception is printed in the logs - LOGGER.error("Java code parsing failed", e); - throw new ExecutionFailedException("Java code parsing failed"); + var engineConfiguration = getEngineConfiguration(); + if (engineConfiguration.isProductionMode()) { + var browserCallables = engineConfiguration + .getBrowserCallableFinder().findBrowserCallables(); + var processor = new ParserProcessor(engineConfiguration); + processor.process(browserCallables); + } else { + ApplicationContextProvider.runOnContext(applicationContext -> { + List> browserCallables = EndpointCodeGenerator + .findBrowserCallables(engineConfiguration, + applicationContext); + var processor = new ParserProcessor(engineConfiguration); + processor.process(browserCallables); + }); } } } diff --git a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/AbstractTaskEndpointGeneratorTest.java b/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/AbstractTaskEndpointGeneratorTest.java index eb46a90419..1c3aa75827 100644 --- a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/AbstractTaskEndpointGeneratorTest.java +++ b/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/AbstractTaskEndpointGeneratorTest.java @@ -1,56 +1,23 @@ package com.vaadin.hilla.internal; -import java.io.File; -import java.net.URL; -import java.nio.file.Files; -import java.util.Optional; -import java.util.function.Function; - -import com.vaadin.hilla.engine.commandrunner.CommandRunnerException; -import com.vaadin.hilla.engine.commandrunner.MavenRunner; -import org.junit.jupiter.api.Test; - import com.vaadin.flow.server.ExecutionFailedException; +import com.vaadin.hilla.engine.EngineConfiguration; +import org.junit.jupiter.api.Test; -import static org.mockito.Mockito.*; import static org.junit.jupiter.api.Assertions.assertThrowsExactly; class AbstractTaskEndpointGeneratorTest extends TaskTest { @Test - void shouldThrowIfProjectDirectoryIsNull() { + void shouldThrowIfEngineConfigurationIsNull() { assertThrowsExactly(NullPointerException.class, () -> { - new TestTaskEndpointGenerator(null, getBuildDirectory(), - getTemporaryDirectory().resolve(getOutputDirectory()) - .toFile()); - }, "Project directory cannot be null"); + new TestTaskEndpointGenerator(null); + }, "Engine configuration cannot be null"); } - @Test - void shouldThrowIfBuildDirectoryNameIsNull() { - assertThrowsExactly(NullPointerException.class, () -> { - new TestTaskEndpointGenerator(getTemporaryDirectory().toFile(), - null, getTemporaryDirectory().resolve(getOutputDirectory()) - .toFile()); - }, "Build directory name cannot be null"); - } - - @Test - void shouldThrowIfOutputDirectoryIsNull() { - assertThrowsExactly(NullPointerException.class, () -> { - new TestTaskEndpointGenerator(getTemporaryDirectory().toFile(), - getBuildDirectory(), null); - }, "Output directory cannot be null"); - } - - private final Function resourceFinder = Thread.currentThread() - .getContextClassLoader()::getResource; - private class TestTaskEndpointGenerator extends AbstractTaskEndpointGenerator { - TestTaskEndpointGenerator(File projectDirectory, - String buildDirectoryName, File outputDirectory) { - super(projectDirectory, buildDirectoryName, outputDirectory, - resourceFinder); + TestTaskEndpointGenerator(EngineConfiguration engineConfiguration) { + super(engineConfiguration); } @Override @@ -58,51 +25,4 @@ public void execute() throws ExecutionFailedException { // no-op } } - - private class MockedTaskEndpointGenerator - extends AbstractTaskEndpointGenerator { - MockedTaskEndpointGenerator(File projectDirectory, - String buildDirectoryName, File outputDirectory) { - super(projectDirectory, buildDirectoryName, outputDirectory, - resourceFinder); - } - - @Override - public void execute() throws ExecutionFailedException { - getEngineConfiguration(); - } - } - - @Test - void shouldRunSpecificVersionWhenGoalIsNotFound() throws Exception { - var mockConfigureNotFound = mock(MavenRunner.class); - var rootException = new RuntimeException( - "MOCK: Could not find goal 'configure' in plugin"); - doThrow(new CommandRunnerException("MOCK: Failed to execute command", - rootException)).when(mockConfigureNotFound).run(null, false); - var mockConfigureFound = mock(MavenRunner.class); - - try (var staticMock = mockStatic(MavenRunner.class)) { - staticMock - .when(() -> MavenRunner.forProject(any(), eq("-q"), - eq("vaadin:configure"))) - .thenReturn(Optional.of(mockConfigureNotFound)); - staticMock - .when(() -> MavenRunner.forProject(any(), eq("-q"), eq( - "com.vaadin:vaadin-maven-plugin:1.0.0:configure"))) - .thenReturn(Optional.of(mockConfigureFound)); - var task = new MockedTaskEndpointGenerator( - getTemporaryDirectory().toFile(), getBuildDirectory(), - getTemporaryDirectory().resolve(getOutputDirectory()) - .toFile()); - var firstRun = AbstractTaskEndpointGenerator.class - .getDeclaredField("firstRun"); - firstRun.setAccessible(true); - firstRun.set(null, true); - Files.createFile(getTemporaryDirectory().resolve("pom.xml")); - task.execute(); - verify(mockConfigureNotFound).run(null, false); - verify(mockConfigureFound).run(null, false); - } - } } diff --git a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/NodeTasksEndpointTest.java b/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/NodeTasksEndpointTest.java index 8156952355..265b17222e 100644 --- a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/NodeTasksEndpointTest.java +++ b/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/NodeTasksEndpointTest.java @@ -6,8 +6,10 @@ import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.Arrays; +import java.util.List; import java.util.Set; +import com.vaadin.hilla.internal.fixtures.MyEndpoint; import org.apache.commons.io.FileUtils; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -20,16 +22,17 @@ import com.vaadin.flow.server.frontend.scanner.ClassFinder; import com.vaadin.flow.server.frontend.scanner.ClassFinder.DefaultClassFinder; import com.vaadin.hilla.EndpointController; +import com.vaadin.hilla.engine.EngineConfiguration; public class NodeTasksEndpointTest extends TaskTest { private Options options; - @Endpoint public static class ConnectEndpointsForTesting { } @BeforeEach - public void setUp() throws IOException { + public void setUp() + throws IOException, NoSuchFieldException, IllegalAccessException { Lookup mockLookup = Mockito.mock(Lookup.class); Mockito.doReturn(new EndpointGeneratorTaskFactoryImpl()) .when(mockLookup).lookup(EndpointGeneratorTaskFactory.class); @@ -74,6 +77,9 @@ public void should_GenerateEndpointFilesInDevBuildTask() throws Exception { public void should_GenerateEndpointFilesInProductionBuildTask() throws Exception { options = options.withProductionMode(true); + var engineConfiguration = new EngineConfiguration.Builder() + .browserCallableFinder(() -> List.of(MyEndpoint.class)).build(); + EngineConfiguration.setDefault(engineConfiguration); new NodeTasks(options).execute(); assertEndpointFilesInProductionMode(true); @@ -82,7 +88,6 @@ public void should_GenerateEndpointFilesInProductionBuildTask() @Test public void should_GenerateEndpointFilesInDevServerTask() throws Exception { options = options.withRunNpmInstall(true); - new NodeTasks(options).execute(); assertEndpointFiles(true); } diff --git a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/TaskGenerateEndpointTest.java b/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/TaskGenerateEndpointTest.java index d0cd4e47e4..e8193b3e4f 100644 --- a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/TaskGenerateEndpointTest.java +++ b/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/TaskGenerateEndpointTest.java @@ -31,8 +31,8 @@ public void setUp() throws IOException, URISyntaxException { .toURI()); Files.createDirectories(getOpenAPIFile().getParent()); Files.copy(referenceOpenAPIJsonFile, getOpenAPIFile()); - outputDirectory = Files - .createDirectory(getTemporaryDirectory().resolve("output")); + outputDirectory = Files.createDirectory( + getTemporaryDirectory().resolve(getOutputDirectory())); } @Test @@ -47,9 +47,7 @@ public void should_generate_Two_TypeScriptFiles() throws Exception { assertFalse(client.exists()); taskGenerateEndpoint = new TaskGenerateEndpointImpl( - getTemporaryDirectory().toFile(), getBuildDirectory(), - outputDirectory.toFile(), getClass()::getResource, false, - "node"); + getEngineConfiguration()); taskGenerateEndpoint.execute(); assertTrue(ts1.exists()); @@ -82,9 +80,7 @@ public void should_use_custom_endpoint_name_when_connect_client_exists() assertTrue(customConnectClient.exists()); taskGenerateEndpoint = new TaskGenerateEndpointImpl( - getTemporaryDirectory().toFile(), getBuildDirectory(), - outputDirectory.toFile(), getClass()::getResource, false, - "node"); + getEngineConfiguration()); taskGenerateEndpoint.execute(); assertTrue(ts1.exists()); diff --git a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/TaskGenerateOpenAPITest.java b/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/TaskGenerateOpenAPITest.java index 3722e65e2e..917020f0f8 100644 --- a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/TaskGenerateOpenAPITest.java +++ b/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/TaskGenerateOpenAPITest.java @@ -16,8 +16,7 @@ package com.vaadin.hilla.internal; import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.hasKey; -import static org.hamcrest.Matchers.not; +import static org.hamcrest.Matchers.*; import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test; @@ -40,53 +39,47 @@ public class TaskGenerateOpenAPITest extends TaskTest { public void should_UseCustomEndpointNameWithoutValueEqual_InsteadOf_UsingClassName() throws Exception { taskGenerateOpenApi = new TaskGenerateOpenAPIImpl( - getTemporaryDirectory().toFile(), getBuildDirectory(), - getTemporaryDirectory().resolve(getOutputDirectory()).toFile(), - getClass()::getResource, getClass().getClassLoader(), false); + getEngineConfiguration()); taskGenerateOpenApi.execute(); var generatedOpenAPI = getGeneratedOpenAPI(); - assertThat(generatedOpenAPI.getPaths(), - hasKey("/WithoutValueEqual/bar")); - assertThat(generatedOpenAPI.getPaths(), - not(hasKey("/EndpointNoValue/bar"))); - assertThat(generatedOpenAPI.getPaths(), - hasKey("/WithoutValueEqual/foo")); - assertThat(generatedOpenAPI.getPaths(), - not(hasKey("/EndpointNoValue/foo"))); + assertThat(generatedOpenAPI.getPaths().keySet(), + hasItem("/WithoutValueEqual/bar")); + assertThat(generatedOpenAPI.getPaths().keySet(), + not(hasItem("/EndpointNoValue/bar"))); + assertThat(generatedOpenAPI.getPaths().keySet(), + hasItem("/WithoutValueEqual/foo")); + assertThat(generatedOpenAPI.getPaths().keySet(), + not(hasItem("/EndpointNoValue/foo"))); } @Test public void should_UseCustomEndpointName_InsteadOf_UsingClassName() throws Exception { taskGenerateOpenApi = new TaskGenerateOpenAPIImpl( - getTemporaryDirectory().toFile(), getBuildDirectory(), - getTemporaryDirectory().resolve(getOutputDirectory()).toFile(), - getClass()::getResource, getClass().getClassLoader(), false); + getEngineConfiguration()); taskGenerateOpenApi.execute(); var generatedOpenAPI = getGeneratedOpenAPI(); - assertThat(generatedOpenAPI.getPaths(), - hasKey("/CustomEndpointName/bar")); - assertThat(generatedOpenAPI.getPaths(), - not(hasKey("/CustomEndpoint/bar"))); - assertThat(generatedOpenAPI.getPaths(), - hasKey("/CustomEndpointName/foo")); - assertThat(generatedOpenAPI.getPaths(), - not(hasKey("/CustomEndpoint/foo"))); + assertThat(generatedOpenAPI.getPaths().keySet(), + hasItem("/CustomEndpointName/bar")); + assertThat(generatedOpenAPI.getPaths().keySet(), + not(hasItem("/CustomEndpoint/bar"))); + assertThat(generatedOpenAPI.getPaths().keySet(), + hasItem("/CustomEndpointName/foo")); + assertThat(generatedOpenAPI.getPaths().keySet(), + not(hasItem("/CustomEndpoint/foo"))); } @Test public void should_UseDefaultProperties_when_applicationPropertiesIsEmpty() throws Exception { taskGenerateOpenApi = new TaskGenerateOpenAPIImpl( - getTemporaryDirectory().toFile(), getBuildDirectory(), - getTemporaryDirectory().resolve(getOutputDirectory()).toFile(), - getClass()::getResource, getClass().getClassLoader(), false); + getEngineConfiguration()); taskGenerateOpenApi.execute(); diff --git a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/TaskTest.java b/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/TaskTest.java index 4ee7fc6cf8..ffab51e38d 100644 --- a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/TaskTest.java +++ b/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/TaskTest.java @@ -3,32 +3,31 @@ import static com.vaadin.flow.server.frontend.FrontendUtils.PARAM_FRONTEND_DIR; import java.io.IOException; -import java.lang.reflect.InvocationTargetException; import java.net.URISyntaxException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Objects; import java.util.function.Function; import java.util.stream.Stream; +import com.vaadin.hilla.ApplicationContextProvider; +import com.vaadin.hilla.internal.fixtures.CustomEndpoint; +import com.vaadin.hilla.internal.fixtures.EndpointNoValue; +import com.vaadin.hilla.internal.fixtures.MyEndpoint; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import com.vaadin.flow.server.frontend.FrontendUtils; import com.vaadin.hilla.engine.EngineConfiguration; -import com.vaadin.hilla.parser.testutils.TestEngineConfigurationPathResolver; +import org.springframework.boot.test.context.SpringBootTest; +@SpringBootTest(classes = { CustomEndpoint.class, EndpointNoValue.class, + MyEndpoint.class, ApplicationContextProvider.class }) public class TaskTest { private Path temporaryDirectory; @BeforeEach public void setUpTaskApplication() throws IOException, URISyntaxException, - FrontendUtils.CommandExecutionException, InterruptedException, - InvocationTargetException, NoSuchMethodException, - InstantiationException, IllegalAccessException, - NoSuchFieldException { + FrontendUtils.CommandExecutionException, InterruptedException { temporaryDirectory = Files.createTempDirectory(getClass().getName()); temporaryDirectory.toFile().deleteOnExit(); var userDir = temporaryDirectory.toAbsolutePath().toString(); @@ -42,34 +41,17 @@ public void setUpTaskApplication() throws IOException, URISyntaxException, .resolve(getFrontendDirectory()); Files.createDirectories(frontendDir); - // Create hilla-engine-configuration.json from template - var configPath = buildDir - .resolve(EngineConfiguration.DEFAULT_CONFIG_FILE_NAME); - Files.copy( - Path.of(Objects - .requireNonNull(getClass().getResource( - EngineConfiguration.DEFAULT_CONFIG_FILE_NAME)) - .toURI()), - configPath); - - var config = prepareConfiguration(buildDir); - - Files.delete(configPath); - config.store(configPath.toFile()); - - // Let Hilla know that the file has been generated - var field = AbstractTaskEndpointGenerator.class - .getDeclaredField("firstRun"); - field.setAccessible(true); - field.set(null, false); - - var packagesDirectory = Path + Path packagesPath = Path .of(getClass().getClassLoader().getResource("").toURI()) .getParent() // target .getParent() // engine-runtime .getParent() // java - .getParent() // packages - .resolve("ts"); + .getParent(); // packages + + Path projectRoot = packagesPath.getParent(); + Files.copy(projectRoot.resolve(".npmrc"), + temporaryDirectory.resolve(".npmrc")); + var tsPackagesDirectory = packagesPath.resolve("ts"); var shellCmd = FrontendUtils.isWindows() ? Stream.of("cmd.exe", "/c") : Stream. empty(); @@ -77,7 +59,8 @@ public void setUpTaskApplication() throws IOException, URISyntaxException, var npmCmd = Stream.of("npm", "--no-update-notifier", "--no-audit", "install", "--no-save", "--install-links"); - var generatorFiles = Files.list(packagesDirectory).map(Path::toString); + var generatorFiles = Files.list(tsPackagesDirectory) + .map(Path::toString); var command = Stream.of(shellCmd, npmCmd, generatorFiles) .flatMap(Function.identity()).toList(); @@ -122,23 +105,10 @@ protected Path getTemporaryDirectory() { return temporaryDirectory; } - /** - * Modifies runtime settings (paths, class path) - */ - private EngineConfiguration prepareConfiguration(Path buildDir) - throws URISyntaxException, IOException, InvocationTargetException, - NoSuchMethodException, InstantiationException, - IllegalAccessException { - var classPath = new LinkedHashSet<>(List - .of(Path.of(getClass().getClassLoader().getResource("").toURI()) - .toString())); - - var config = EngineConfiguration.loadDirectory(buildDir); - - config = TestEngineConfigurationPathResolver.resolve(config, - temporaryDirectory); - - return new EngineConfiguration.Builder(config).classPath(classPath) - .create(); + protected EngineConfiguration getEngineConfiguration() { + return new EngineConfiguration.Builder() + .baseDir(getTemporaryDirectory()).buildDir(getBuildDirectory()) + .outputDir(getOutputDirectory()).withDefaultAnnotations() + .build(); } } diff --git a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/fixtures/CustomEndpoint.java b/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/fixtures/CustomEndpoint.java index c8b74d0c5e..c172517e24 100644 --- a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/fixtures/CustomEndpoint.java +++ b/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/fixtures/CustomEndpoint.java @@ -1,6 +1,6 @@ package com.vaadin.hilla.internal.fixtures; -import com.vaadin.hilla.internal.Endpoint; +import com.vaadin.hilla.Endpoint; /** * A test class. diff --git a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/fixtures/EndpointNoValue.java b/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/fixtures/EndpointNoValue.java index d00e435d32..7d79a7c9d5 100644 --- a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/fixtures/EndpointNoValue.java +++ b/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/fixtures/EndpointNoValue.java @@ -1,6 +1,6 @@ package com.vaadin.hilla.internal.fixtures; -import com.vaadin.hilla.internal.Endpoint; +import com.vaadin.hilla.Endpoint; /** * A test class. diff --git a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/fixtures/MyEndpoint.java b/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/fixtures/MyEndpoint.java index d490181627..8465c95fa1 100644 --- a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/fixtures/MyEndpoint.java +++ b/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/fixtures/MyEndpoint.java @@ -1,6 +1,6 @@ package com.vaadin.hilla.internal.fixtures; -import com.vaadin.hilla.internal.Endpoint; +import com.vaadin.hilla.Endpoint; /** * A test class. diff --git a/packages/java/gradle-plugin/build.gradle b/packages/java/gradle-plugin/build.gradle index 43adb00f0c..47a214a6e7 100644 --- a/packages/java/gradle-plugin/build.gradle +++ b/packages/java/gradle-plugin/build.gradle @@ -26,6 +26,7 @@ archivesBaseName = pom.artifactId sourceCompatibility = 17 targetCompatibility = 17 def rootPom = new XmlSlurper().parse(rootProject.file('../../../pom.xml')) +def springBootVersion = rootPom.properties['spring.boot.version'] def flowVersion = rootPom.properties['flow.version'] /*********************************************************************************************************************** @@ -65,12 +66,14 @@ repositories { } dependencies { - implementation('org.jetbrains.kotlin:kotlin-stdlib:1.7.20') - implementation("com.vaadin:hilla-engine-core:${pom.parent.version}") + implementation('org.jetbrains.kotlin:kotlin-stdlib:1.9.20') + implementation("com.vaadin:hilla-endpoint:$version") + implementation("com.vaadin:hilla-engine-core:$version") implementation("com.vaadin:flow-gradle-plugin:$flowVersion") + implementation("org.springframework.boot:spring-boot-loader-tools:$springBootVersion") testImplementation("junit:junit:4.13.2") - testImplementation("org.jetbrains.kotlin:kotlin-test:1.7.20") + testImplementation("org.jetbrains.kotlin:kotlin-test:1.9.20") } idea { @@ -195,9 +198,6 @@ functionalTest { } kotlin { - jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(17)) - } explicitApi() } @@ -208,3 +208,9 @@ compileKotlin { freeCompilerArgs = ["-Xjsr305=strict", "-Xemit-jvm-type-annotations"] } } + +compileFunctionalTestKotlin { + kotlinOptions { + jvmTarget = "17" + } +} diff --git a/packages/java/gradle-plugin/gradle/wrapper/gradle-wrapper.jar b/packages/java/gradle-plugin/gradle/wrapper/gradle-wrapper.jar index 943f0cbfa7..e6441136f3 100644 Binary files a/packages/java/gradle-plugin/gradle/wrapper/gradle-wrapper.jar and b/packages/java/gradle-plugin/gradle/wrapper/gradle-wrapper.jar differ diff --git a/packages/java/gradle-plugin/gradle/wrapper/gradle-wrapper.properties b/packages/java/gradle-plugin/gradle/wrapper/gradle-wrapper.properties index d0d403e27c..b82aa23a4f 100644 --- a/packages/java/gradle-plugin/gradle/wrapper/gradle-wrapper.properties +++ b/packages/java/gradle-plugin/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/packages/java/gradle-plugin/gradlew b/packages/java/gradle-plugin/gradlew index 65dcd68d65..1aa94a4269 100755 --- a/packages/java/gradle-plugin/gradlew +++ b/packages/java/gradle-plugin/gradlew @@ -83,10 +83,8 @@ done # This is normally unused # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -133,10 +131,13 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. @@ -144,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -152,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -197,11 +198,15 @@ if "$cygwin" || "$msys" ; then done fi -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/packages/java/gradle-plugin/gradlew.bat b/packages/java/gradle-plugin/gradlew.bat index 6689b85bee..7101f8e467 100644 --- a/packages/java/gradle-plugin/gradlew.bat +++ b/packages/java/gradle-plugin/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/packages/java/gradle-plugin/pom-portal.xml b/packages/java/gradle-plugin/pom-portal.xml index bb055ad01e..e8bd0fac76 100644 --- a/packages/java/gradle-plugin/pom-portal.xml +++ b/packages/java/gradle-plugin/pom-portal.xml @@ -5,7 +5,7 @@ com.vaadin hilla-project - 24.5-SNAPSHOT + 24.7-SNAPSHOT ../../../pom.xml diff --git a/packages/java/gradle-plugin/pom.xml b/packages/java/gradle-plugin/pom.xml index 69eddcdf67..ab78e507ea 100644 --- a/packages/java/gradle-plugin/pom.xml +++ b/packages/java/gradle-plugin/pom.xml @@ -3,7 +3,7 @@ com.vaadin hilla-project - 24.5-SNAPSHOT + 24.7-SNAPSHOT ../../../pom.xml diff --git a/packages/java/gradle-plugin/src/functionalTest/kotlin/com/vaadin/hilla/gradle/plugin/AbstractGradleTest.kt b/packages/java/gradle-plugin/src/functionalTest/kotlin/com/vaadin/hilla/gradle/plugin/AbstractGradleTest.kt index 67c94d3337..3ca12b13ec 100644 --- a/packages/java/gradle-plugin/src/functionalTest/kotlin/com/vaadin/hilla/gradle/plugin/AbstractGradleTest.kt +++ b/packages/java/gradle-plugin/src/functionalTest/kotlin/com/vaadin/hilla/gradle/plugin/AbstractGradleTest.kt @@ -25,8 +25,8 @@ import org.junit.Before */ abstract class AbstractGradleTest { - val hillaVersion = System.getenv("hilla.version").takeUnless { it.isNullOrEmpty() } ?: "24.4-SNAPSHOT" - + val hillaVersion = System.getenv("hilla.version").takeUnless { it.isNullOrEmpty() } ?: "24.7-SNAPSHOT" + val flowVersion = System.getenv("flow.version").takeUnless { it.isNullOrEmpty() } ?: "24.7-SNAPSHOT" /** * The testing Gradle project. Automatically deleted after every test. * Don't use TemporaryFolder JUnit `@Rule` since it will always delete the folder afterward, diff --git a/packages/java/gradle-plugin/src/functionalTest/kotlin/com/vaadin/hilla/gradle/plugin/SingleModuleTest.kt b/packages/java/gradle-plugin/src/functionalTest/kotlin/com/vaadin/hilla/gradle/plugin/SingleModuleTest.kt index b383e7c13b..a6cdc8e75d 100644 --- a/packages/java/gradle-plugin/src/functionalTest/kotlin/com/vaadin/hilla/gradle/plugin/SingleModuleTest.kt +++ b/packages/java/gradle-plugin/src/functionalTest/kotlin/com/vaadin/hilla/gradle/plugin/SingleModuleTest.kt @@ -32,52 +32,15 @@ import kotlin.test.expect class SingleModuleTest : AbstractGradleTest() { - @Test - fun `hillaConfigure executed HillaEngineConfigurationJson should exist`() { - createProject() - - testProject.build("hillaConfigure", checkTasksSuccessful = true) - - expect(true, "hilla-engine-configuration.json should be created after executing hillaConfigure task!") { - testProject.folder("build").find("hilla-engine-configuration.json").first().exists() - } - } - - @Test - fun `exposedPackagesToParser configured in build file hillaConfigure executed HillaEngineConfigurationJson should contain exposed packages`() { - val package1 = "com.example.app" - val package2 = "com.vaadin.hilla.foo" - - createProject(package1, package2) - - val buildResult: BuildResult = testProject.build("hillaConfigure", checkTasksSuccessful = true) - - buildResult.expectTaskSucceded("hillaConfigure") - - val hillaEngineConfigFile = testProject.folder("build").find("hilla-engine-configuration.json").first() - expect(true, "hilla-engine-configuration.json should be created after executing hillaConfigure task!") { - hillaEngineConfigFile.exists() - } - - val configuration = EngineConfiguration.load(hillaEngineConfigFile) - val packages = configuration.parser.packages.orElseThrow() - expect(true, "Configuration json should contained exposed package '$package1'") { - packages.contains(package1) - } - expect(true, "Configuration json should contained exposed package '$package2'") { - packages.contains(package2) - } - } - @Test fun `endpoints ts and openapi json are generated after hillaGenerate task executed in dev mode`() { createProject(withNpmInstall = true) addHelloReactEndpoint() + addMainClass() val buildResult: BuildResult = testProject.build("hillaGenerate", checkTasksSuccessful = true) - buildResult.expectTaskSucceded("hillaConfigure") buildResult.expectTaskSucceded("hillaGenerate") verifyOpenApiJsonFileGeneratedProperly(false) @@ -89,10 +52,10 @@ class SingleModuleTest : AbstractGradleTest() { createProject(withNpmInstall = true, productionMode = true) addHelloReactEndpoint() + addMainClass() val buildResult: BuildResult = testProject.build("hillaGenerate", checkTasksSuccessful = true) - buildResult.expectTaskSucceded("hillaConfigure") buildResult.expectTaskSucceded("hillaGenerate") verifyOpenApiJsonFileGeneratedProperly(true) @@ -124,6 +87,28 @@ class SingleModuleTest : AbstractGradleTest() { } } + private fun addMainClass() : File { + val mainClassFile = testProject.newFile("src/main/java/com/example/application/MainClass.java", + """ + package com.example.application; + + import org.springframework.boot.SpringApplication; + import org.springframework.boot.autoconfigure.SpringBootApplication; + + @SpringBootApplication + public class MainClass { + + public static void main(String[] args) { + SpringApplication.run(MainClass.class, args); + } + } + """.trimIndent()) + expect(true, "Main class 'MainClass.java' should exist!") { + mainClassFile.exists() + } + return mainClassFile + } + private fun addHelloReactEndpoint() : File { val endpointFile = testProject.newFile("src/main/java/com/example/application/HelloReactEndpoint.java", """ @@ -131,14 +116,14 @@ class SingleModuleTest : AbstractGradleTest() { import com.vaadin.flow.server.auth.AnonymousAllowed; import com.vaadin.hilla.Endpoint; - import com.vaadin.hilla.Nonnull; + import org.jspecify.annotations.NonNull; @Endpoint @AnonymousAllowed public class HelloReactEndpoint { - @Nonnull - public String sayHello(@Nonnull String name) { + @NonNull + public String sayHello(@NonNull String name) { if (name.isEmpty()) { return "Hello stranger"; } else { @@ -153,18 +138,9 @@ class SingleModuleTest : AbstractGradleTest() { return endpointFile } - private fun createProject(vararg exposedPackages: String, withNpmInstall: Boolean = false, productionMode: Boolean = false, + private fun createProject(withNpmInstall: Boolean = false, productionMode: Boolean = false, disableAllTasksToSimulateDryRun: Boolean = false) { - val exposedPackagesExtension = if (exposedPackages.isNotEmpty()) { - val commaSeparatedPackages = exposedPackages.asList().joinToString { "\"$it\"" } - """ - hilla { - exposedPackagesToParser = [$commaSeparatedPackages] - } - """.trimIndent() - } else ""; - val npmInstallTask = if (withNpmInstall) { """ task npmInstall(type: Exec) { @@ -208,14 +184,14 @@ class SingleModuleTest : AbstractGradleTest() { } } plugins { - id 'org.springframework.boot' version '3.1.5' + id 'org.springframework.boot' version '3.3.6' id 'io.spring.dependency-management' version '1.0.15.RELEASE' id 'java' } apply plugin: 'com.vaadin.hilla' - $exposedPackagesExtension + group = 'com.vaadin.hilla' $npmInstallTask @@ -231,14 +207,15 @@ class SingleModuleTest : AbstractGradleTest() { } dependencies { - implementation 'com.vaadin.hilla:hilla' + implementation 'com.vaadin:hilla' implementation 'com.vaadin:vaadin-spring' implementation 'org.springframework.boot:spring-boot-starter-web' } dependencyManagement { imports { - mavenBom "com.vaadin.hilla:hilla-bom:$hillaVersion" + mavenBom "com.vaadin:hilla-bom:$hillaVersion" + mavenBom "com.vaadin:flow-bom:$flowVersion" } } """.trimIndent() diff --git a/packages/java/gradle-plugin/src/functionalTest/kotlin/com/vaadin/hilla/gradle/plugin/TestUtils.kt b/packages/java/gradle-plugin/src/functionalTest/kotlin/com/vaadin/hilla/gradle/plugin/TestUtils.kt index f9785527be..a2896396bf 100644 --- a/packages/java/gradle-plugin/src/functionalTest/kotlin/com/vaadin/hilla/gradle/plugin/TestUtils.kt +++ b/packages/java/gradle-plugin/src/functionalTest/kotlin/com/vaadin/hilla/gradle/plugin/TestUtils.kt @@ -246,7 +246,7 @@ class TestProject { .withPluginClasspath() .withDebug(true) // use --debug to catch ReflectionsException: https://github.com/vaadin/vaadin-gradle-plugin/issues/99 .forwardOutput() // a must, otherwise ./gradlew check freezes on windows! - .withGradleVersion("8.5") + .withGradleVersion("8.7") override fun toString(): String = "TestProject(dir=$dir)" diff --git a/packages/java/gradle-plugin/src/main/kotlin/com/vaadin/hilla/gradle/plugin/EngineConfigureTask.kt b/packages/java/gradle-plugin/src/main/kotlin/com/vaadin/hilla/gradle/plugin/EngineConfigureTask.kt index edefae28f4..5a62050a39 100644 --- a/packages/java/gradle-plugin/src/main/kotlin/com/vaadin/hilla/gradle/plugin/EngineConfigureTask.kt +++ b/packages/java/gradle-plugin/src/main/kotlin/com/vaadin/hilla/gradle/plugin/EngineConfigureTask.kt @@ -18,10 +18,6 @@ package com.vaadin.hilla.gradle.plugin import com.vaadin.gradle.VaadinFlowPluginExtension import org.gradle.api.DefaultTask import org.gradle.api.tasks.TaskAction -import org.gradle.api.tasks.SourceSet -import org.gradle.api.tasks.SourceSetContainer -import java.nio.file.Files -import java.nio.file.Path import com.vaadin.hilla.engine.* @@ -31,56 +27,15 @@ import com.vaadin.hilla.engine.* */ public open class EngineConfigureTask : DefaultTask() { - private val sourceSets: SourceSetContainer by lazy { - project.extensions.getByType(SourceSetContainer::class.java) - } - init { group = "Vaadin" description = "Hilla Configure Task" } - private val legacyProjectFrontendPath = "./frontend" - @TaskAction public fun engineConfigure() { - val extension: EngineProjectExtension = EngineProjectExtension.get(project) - logger.info("Running the engineConfigure task with effective Hilla configuration $extension") val vaadinExtension = VaadinFlowPluginExtension.get(project) - logger.info("Running the engineConfigure task with effective Vaadin configuration $extension") - - val generator = GeneratorConfiguration() - val parser = ParserConfiguration() - if (extension.exposedPackagesToParser.isNotEmpty()) { - parser.setPackages(extension.exposedPackagesToParser) - } - - val projectBuildDir = project.layout.buildDirectory.get().asFile.toPath() - val projectClassesDir = projectBuildDir.resolve("classes") - val classPathElements = (sourceSets.getByName(vaadinExtension.sourceSetName.get()) as SourceSet) - .runtimeClasspath.elements.get().stream().map { it.toString() }.toList() - - var generatedTsFolder = vaadinExtension.generatedTsFolder.get().toPath() - val legacyFrontendFolder = project.projectDir.toPath().resolve(legacyProjectFrontendPath) - if (Files.exists(legacyFrontendFolder)) { - generatedTsFolder = legacyFrontendFolder.resolve("generated") - } - - val conf = EngineConfiguration.Builder(project.projectDir.toPath()) - .classPath(classPathElements) - .outputDir(generatedTsFolder) - .generator(generator) - .parser(parser) - .buildDir(vaadinExtension.projectBuildDir.get()) - .classesDir(projectClassesDir) - .create() - - val configDir: Path = project.projectDir.toPath().resolve(projectBuildDir) - Files.createDirectories(configDir) - conf.store( - configDir - .resolve(EngineConfiguration.DEFAULT_CONFIG_FILE_NAME) - .toFile() - ) + val engineConfiguration = HillaPlugin.createEngineConfiguration(project, vaadinExtension) + EngineConfiguration.setDefault(engineConfiguration) } } diff --git a/packages/java/gradle-plugin/src/main/kotlin/com/vaadin/hilla/gradle/plugin/EngineGenerateTask.kt b/packages/java/gradle-plugin/src/main/kotlin/com/vaadin/hilla/gradle/plugin/EngineGenerateTask.kt index 513139bf99..4d75b85b68 100644 --- a/packages/java/gradle-plugin/src/main/kotlin/com/vaadin/hilla/gradle/plugin/EngineGenerateTask.kt +++ b/packages/java/gradle-plugin/src/main/kotlin/com/vaadin/hilla/gradle/plugin/EngineGenerateTask.kt @@ -18,15 +18,12 @@ package com.vaadin.hilla.gradle.plugin import com.vaadin.gradle.VaadinFlowPluginExtension import org.gradle.api.DefaultTask import org.gradle.api.GradleException -import org.gradle.api.tasks.TaskAction import org.gradle.api.tasks.bundling.Jar import java.io.IOException -import java.net.URL -import java.net.URLClassLoader -import java.nio.file.Path -import java.util.* import com.vaadin.hilla.engine.* +import org.gradle.api.tasks.* + /** * Task that generates the endpoints.ts and model TS classes * needed for calling the backend in a typesafe manner. @@ -36,8 +33,8 @@ public open class EngineGenerateTask : DefaultTask() { group = "Vaadin" description = "Hilla Generate Task" - // we need the build/hilla-engine-configuration.json and the compiled classes: - dependsOn("classes", "hillaConfigure") + // we need the compiled classes: + dependsOn("classes") // Make sure to run this task before the `war`/`jar` tasks, so that // generated endpoints and models will end up packaged in the war/jar archive. @@ -47,39 +44,34 @@ public open class EngineGenerateTask : DefaultTask() { } } + @Input + public val groupId: String = project.group.toString() + + @Input + public val artifactId: String = project.name + + @Input + @Optional + public var mainClass: String? = project.findProperty("mainClass") as String? + @TaskAction public fun engineGenerate() { - val extension: EngineProjectExtension = EngineProjectExtension.get(project) - logger.info("Running the engineGenerate task with effective Hilla configuration $extension") val vaadinExtension = VaadinFlowPluginExtension.get(project) - logger.info("Running the engineGenerate task with effective Vaadin configuration $extension") - - val baseDir: Path = project.projectDir.toPath() - val buildDir: Path = baseDir.resolve(vaadinExtension.projectBuildDir.get()) + logger.info("Running the engineGenerate task with effective Vaadin configuration $vaadinExtension") try { - val conf: EngineConfiguration = Objects.requireNonNull( - EngineConfiguration.loadDirectory(buildDir)) - - val urls = conf.classPath - .stream().map { classPathItem: Path -> - classPathItem.toUri().toURL() - } - .toList() + val conf: EngineConfiguration = HillaPlugin.createEngineConfiguration(project, vaadinExtension) - val classLoader = URLClassLoader( - urls.toTypedArray(), - javaClass.classLoader - ) - val isProductionMode = vaadinExtension.productionMode.getOrElse(false); - val parserProcessor = ParserProcessor(conf, classLoader, isProductionMode) - val generatorProcessor = GeneratorProcessor(conf, extension.nodeCommand, isProductionMode) + val parserProcessor = ParserProcessor(conf) + val generatorProcessor = GeneratorProcessor(conf) - parserProcessor.process() + val endpoints = conf.browserCallableFinder.findBrowserCallables(); + parserProcessor.process(endpoints) generatorProcessor.process() - } catch (e: IOException) { - throw GradleException("Loading saved configuration failed", e) + throw GradleException("Endpoint collection failed", e) + } catch (e: InterruptedException) { + throw GradleException("Endpoint collection failed", e) } catch (e: GeneratorException) { throw GradleException("Execution failed", e) } catch (e: ParserException) { diff --git a/packages/java/gradle-plugin/src/main/kotlin/com/vaadin/hilla/gradle/plugin/EngineProjectExtension.kt b/packages/java/gradle-plugin/src/main/kotlin/com/vaadin/hilla/gradle/plugin/EngineProjectExtension.kt deleted file mode 100644 index ee4d2219cb..0000000000 --- a/packages/java/gradle-plugin/src/main/kotlin/com/vaadin/hilla/gradle/plugin/EngineProjectExtension.kt +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Copyright 2000-2024 Vaadin Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.vaadin.hilla.gradle.plugin - -import org.gradle.api.Project - -public open class EngineProjectExtension(project: Project) { - - /** - * The packages to scan for classes annotated with @Endpoint and - * related model classes. For a single module application, there is - * no need for configuring this necessarily, as the classes from the - * current project is automatically scanned (unless the endpoints are - * located in a dependency). - * On the contrary, in a multi-module project if the endpoint classes - * are located in the other modules, it is necessary to set the list - * packages in the build.gradle file. - */ - public var exposedPackagesToParser: List = mutableListOf() - - /** - * The node command to execute - */ - public var nodeCommand : String = "node" - - - public companion object { - public fun get(project: Project): EngineProjectExtension = - project.extensions.getByType(EngineProjectExtension::class.java) - } - - override fun toString(): String = "HillaPluginExtension(" + - "exposedPackagesToParser=$exposedPackagesToParser, " + - "nodeCommand=$nodeCommand" + - ")" -} diff --git a/packages/java/gradle-plugin/src/main/kotlin/com/vaadin/hilla/gradle/plugin/HillaPlugin.kt b/packages/java/gradle-plugin/src/main/kotlin/com/vaadin/hilla/gradle/plugin/HillaPlugin.kt index 54f2c492d4..1386589371 100644 --- a/packages/java/gradle-plugin/src/main/kotlin/com/vaadin/hilla/gradle/plugin/HillaPlugin.kt +++ b/packages/java/gradle-plugin/src/main/kotlin/com/vaadin/hilla/gradle/plugin/HillaPlugin.kt @@ -15,12 +15,19 @@ */ package com.vaadin.hilla.gradle.plugin +import com.vaadin.gradle.VaadinFlowPluginExtension import com.vaadin.gradle.VaadinPlugin +import com.vaadin.hilla.engine.EngineConfiguration import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.file.DuplicatesStrategy import org.gradle.api.plugins.JavaPlugin import org.gradle.api.tasks.Copy +import org.gradle.api.tasks.SourceSet +import org.gradle.api.tasks.SourceSetContainer +import org.gradle.api.tasks.bundling.Jar +import java.nio.file.Path +import java.util.stream.Stream /** * The main class of the Hilla Gradle Plugin @@ -35,14 +42,22 @@ public class HillaPlugin : Plugin { // to leverage from vaadinPrepareFrontend and vaadinBuildFrontend: project.pluginManager.apply(VaadinPlugin::class.java) - project.tasks.replace("vaadinBuildFrontend", EngineBuildFrontendTask::class.java) + // only register Hilla tasks in projects that use Spring Boot + if (project.plugins.hasPlugin("org.springframework.boot")) { + project.tasks.replace("vaadinBuildFrontend", EngineBuildFrontendTask::class.java) - val extensionName = "hilla" - project.extensions.create(extensionName, EngineProjectExtension::class.java, project) + project.tasks.apply { + register("hillaConfigure", EngineConfigureTask::class.java) + register("hillaGenerate", EngineGenerateTask::class.java) + } - project.tasks.apply { - register("hillaConfigure", EngineConfigureTask::class.java) - register("hillaGenerate", EngineGenerateTask::class.java) + project.tasks.named("vaadinBuildFrontend") { + it.dependsOn("hillaConfigure") + } + } + + project.tasks.withType(Jar::class.java) { task: Jar -> + task.mustRunAfter("vaadinBuildFrontend") } project.tasks.named("processResources") { @@ -52,4 +67,33 @@ public class HillaPlugin : Plugin { } } } + + public companion object { + public fun createEngineConfiguration(project: Project, vaadinExtension: VaadinFlowPluginExtension): EngineConfiguration { + val baseDir: Path = project.projectDir.toPath() + val buildDir: Path = baseDir.resolve(vaadinExtension.projectBuildDir.get()) + + val sourceSets: SourceSetContainer by lazy { + project.extensions.getByType(SourceSetContainer::class.java) + } + val sourceSet = sourceSets.getByName(vaadinExtension.sourceSetName.get()) as SourceSet + val classpathElements = sourceSet.runtimeClasspath.elements.get().stream().map { it.toString() } + val pluginClasspath = project.buildscript.configurations.getByName("classpath") + .resolve().stream().map { it.toString() }.filter { it.contains("-loader-tools") } + val classpath = Stream.concat(pluginClasspath, classpathElements).distinct().toList() + + return EngineConfiguration.Builder() + .baseDir(baseDir) + .buildDir(buildDir) + .classesDir(sourceSet.output.classesDirs.singleFile.toPath()) + .outputDir(vaadinExtension.generatedTsFolder.get().toPath()) + .groupId(project.group.toString().takeIf { it.isNotEmpty() } ?: "unspecified") + .artifactId(project.name) + .classpath(classpath) + .withDefaultAnnotations() + .mainClass(project.findProperty("mainClass") as String?) + .productionMode(vaadinExtension.productionMode.getOrElse(false)) + .build() + } + } } diff --git a/packages/java/hilla-bom/pom.xml b/packages/java/hilla-bom/pom.xml index 551742b5b8..8d4e5c165b 100644 --- a/packages/java/hilla-bom/pom.xml +++ b/packages/java/hilla-bom/pom.xml @@ -13,7 +13,7 @@ hilla-bom pom Hilla Platform (Bill of Materials) - 24.5-SNAPSHOT + 24.7-SNAPSHOT Hilla Platform (Bill of Materials) https://hilla.dev @@ -21,6 +21,51 @@ true + + + + central + https://repo.maven.apache.org/maven2 + + false + + + + vaadin-prereleases + https://maven.vaadin.com/vaadin-prereleases/ + + true + + + + vaadin-addons + https://maven.vaadin.com/vaadin-addons + + false + + + + + + + + central + https://repo.maven.apache.org/maven2 + + false + + + + vaadin-prereleases + https://maven.vaadin.com/vaadin-prereleases/ + + true + + + + diff --git a/packages/java/hilla-dev/package-lock.json b/packages/java/hilla-dev/package-lock.json deleted file mode 100644 index bcc80e9279..0000000000 --- a/packages/java/hilla-dev/package-lock.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "hilla-dev", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "hilla-dev", - "version": "1.0.0", - "license": "Apache-2.0", - "dependencies": { - "lit": "^2.8.0" - } - }, - "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz", - "integrity": "sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ==" - }, - "node_modules/@lit/reactive-element": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", - "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.0.0" - } - }, - "node_modules/@types/trusted-types": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.4.tgz", - "integrity": "sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==" - }, - "node_modules/lit": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", - "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", - "dependencies": { - "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.3.0", - "lit-html": "^2.8.0" - } - }, - "node_modules/lit-element": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", - "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.1.0", - "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.8.0" - } - }, - "node_modules/lit-html": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", - "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - } - } -} diff --git a/packages/java/hilla-dev/package.json b/packages/java/hilla-dev/package.json deleted file mode 100644 index 93c3a7633e..0000000000 --- a/packages/java/hilla-dev/package.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "hilla-dev", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "Apache-2.0", - "dependencies": { - "lit": "^2.8.0", - "@vaadin/common-frontend": "0.0.18", - "construct-style-sheets-polyfill": "3.1.0", - "@vaadin/router": "1.7.5", - "@polymer/polymer": "3.5.1" - }, - "devDependencies": { - "strip-css-comments": "5.0.0", - "workbox-build": "7.0.0", - "rollup-plugin-visualizer": "5.9.2", - "glob": "10.3.3", - "@rollup/plugin-replace": "5.0.2", - "async": "3.2.4", - "workbox-core": "7.0.0", - "vite": "4.4.11", - "rollup-plugin-brotli": "3.1.0", - "@rollup/pluginutils": "5.0.2", - "vite-plugin-checker": "0.6.1", - "workbox-precaching": "7.0.0", - "transform-ast": "2.4.4", - "typescript": "5.1.6", - "@vitejs/plugin-react": "4.0.4" - }, - "vaadin": { - "dependencies": { - "@vaadin/common-frontend": "0.0.18", - "construct-style-sheets-polyfill": "3.1.0", - "lit": "2.8.0", - "@vaadin/router": "1.7.5", - "@polymer/polymer": "3.5.1" - }, - "devDependencies": { - "strip-css-comments": "5.0.0", - "workbox-build": "7.0.0", - "rollup-plugin-visualizer": "5.9.2", - "glob": "10.3.3", - "@rollup/plugin-replace": "5.0.2", - "async": "3.2.4", - "workbox-core": "7.0.0", - "vite": "4.4.11", - "rollup-plugin-brotli": "3.1.0", - "@rollup/pluginutils": "5.0.2", - "vite-plugin-checker": "0.6.1", - "workbox-precaching": "7.0.0", - "transform-ast": "2.4.4", - "typescript": "5.1.6", - "@vitejs/plugin-react": "4.0.4" - }, - "hash": "" - } -} diff --git a/packages/java/hilla-dev/pom.xml b/packages/java/hilla-dev/pom.xml index cf6d2061c8..e9b03cce3b 100644 --- a/packages/java/hilla-dev/pom.xml +++ b/packages/java/hilla-dev/pom.xml @@ -7,7 +7,7 @@ com.vaadin hilla-project - 24.5-SNAPSHOT + 24.7-SNAPSHOT ../../../pom.xml @@ -28,12 +28,6 @@ ${project.version} true - - org.hotswapagent - hotswap-agent - 1.4.1 - provided - @@ -67,10 +61,6 @@ true - - com.vaadin - hilla-maven-plugin - diff --git a/packages/java/hilla-dev/src/main/java/com/vaadin/hilla/devmode/hotswapagent/HillaPlugin.java b/packages/java/hilla-dev/src/main/java/com/vaadin/hilla/devmode/hotswapagent/HillaPlugin.java deleted file mode 100644 index de4f865e31..0000000000 --- a/packages/java/hilla-dev/src/main/java/com/vaadin/hilla/devmode/hotswapagent/HillaPlugin.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.vaadin.hilla.devmode.hotswapagent; - -import org.hotswap.agent.annotation.Init; -import org.hotswap.agent.annotation.LoadEvent; -import org.hotswap.agent.annotation.OnClassLoadEvent; -import org.hotswap.agent.annotation.Plugin; -import org.hotswap.agent.command.ReflectionCommand; -import org.hotswap.agent.command.Scheduler; -import org.hotswap.agent.javassist.CannotCompileException; -import org.hotswap.agent.javassist.CtClass; -import org.hotswap.agent.javassist.NotFoundException; -import org.hotswap.agent.logging.AgentLogger; -import org.hotswap.agent.util.PluginManagerInvoker; - -@Plugin(name = "HillaPlugin", description = "HotSwapAgent plugin for Hilla", testedVersions = "2.3", expectedVersions = "2.3") -public class HillaPlugin { - private static AgentLogger LOGGER = AgentLogger - .getLogger(HillaPlugin.class); - private final String hotSwapperClass = "com.vaadin.hilla.Hotswapper"; - private boolean hotswapperClassAvailable = false; - - @OnClassLoadEvent(classNameRegexp = "com.vaadin.hilla.EndpointController") - public static void registerPlugin(CtClass ctClass) - throws NotFoundException, CannotCompileException { - String src = PluginManagerInvoker - .buildInitializePlugin(HillaPlugin.class); - src += PluginManagerInvoker.buildCallPluginMethod(HillaPlugin.class, - "init", "this", "java.lang.Object"); - ctClass.getConstructors()[0].insertAfter(src); - } - - @Init - ClassLoader appClassLoader; - - @Init - Scheduler scheduler; - - public void init(Object endpointController) { - try { - Class.forName(hotSwapperClass).getMethod("markInUse").invoke(null); - hotswapperClassAvailable = true; - LOGGER.info("Plugin {} initialized"); - } catch (Exception e) { - // Older Hilla version - LOGGER.info( - "Plugin {} initialized but will not be used as {} is not found", - getClass(), hotSwapperClass); - } - } - - @OnClassLoadEvent(classNameRegexp = ".*", events = LoadEvent.REDEFINE) - public void classRedefined(CtClass ctClass) { - if (!hotswapperClassAvailable) { - return; - } - Object[] params = new Object[] { true, - new String[] { ctClass.getName() } }; - scheduler.scheduleCommand(new ReflectionCommand(this, hotSwapperClass, - "onHotswap", null, params)); - } - - @OnClassLoadEvent(classNameRegexp = ".*", events = LoadEvent.DEFINE) - public void classChanged(CtClass ctClass) { - if (!hotswapperClassAvailable) { - return; - } - Object[] params = new Object[] { false, - new String[] { ctClass.getName() } }; - scheduler.scheduleCommand(new ReflectionCommand(this, hotSwapperClass, - "onHotswap", null, params)); - } - -} diff --git a/packages/java/hilla-dev/tsconfig.json b/packages/java/hilla-dev/tsconfig.json deleted file mode 100644 index af319d4618..0000000000 --- a/packages/java/hilla-dev/tsconfig.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "_version": "9", - "compilerOptions": { - "sourceMap": true, - "jsx": "react-jsx", - "inlineSources": true, - "module": "esNext", - "target": "es2020", - "moduleResolution": "bundler", - "strict": true, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, - "noImplicitReturns": true, - "noImplicitAny": true, - "noImplicitThis": true, - "noUnusedLocals": false, - "noUnusedParameters": false, - "experimentalDecorators": true, - "useDefineForClassFields": false, - "baseUrl": "frontend", - "paths": { - "@vaadin/flow-frontend": ["generated/jar-resources"], - "@vaadin/flow-frontend/*": ["generated/jar-resources/*"], - "Frontend/*": ["*"] - }, - "types": ["vite/client"] - }, - "include": ["src/main/resources/META-INF/resources/frontend/**/*", "types.d.ts"], - "exclude": ["frontend/generated/jar-resources/**"] - } - \ No newline at end of file diff --git a/packages/java/hilla/pom.xml b/packages/java/hilla/pom.xml index a5b9234822..8155df5cf7 100644 --- a/packages/java/hilla/pom.xml +++ b/packages/java/hilla/pom.xml @@ -7,7 +7,7 @@ com.vaadin hilla-project - 24.5-SNAPSHOT + 24.7-SNAPSHOT ../../../pom.xml diff --git a/packages/java/maven-plugin/pom.xml b/packages/java/maven-plugin/pom.xml index d66764d3f8..8e53fbd18a 100644 --- a/packages/java/maven-plugin/pom.xml +++ b/packages/java/maven-plugin/pom.xml @@ -6,7 +6,7 @@ com.vaadin hilla-project - 24.5-SNAPSHOT + 24.7-SNAPSHOT ../../../pom.xml @@ -15,7 +15,7 @@ Maven Plugin for Hilla Engine - 3.9.7 + 3.9.9 ${project.parent.basedir} @@ -49,14 +49,25 @@ provided - com.google.code.findbugs - jsr305 + org.jspecify + jspecify com.vaadin hilla-engine-core ${project.version} + + org.springframework.boot + spring-boot-loader-tools + + + + org.apache.commons + commons-compress + + + org.junit.jupiter junit-jupiter @@ -98,7 +109,7 @@ org.apache.maven.plugins maven-plugin-plugin - 3.8.2 + 3.15.0 vaadin diff --git a/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/BuildFrontendMojo.java b/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/BuildFrontendMojo.java index de071c4b7c..d5e525fa77 100644 --- a/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/BuildFrontendMojo.java +++ b/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/BuildFrontendMojo.java @@ -1,8 +1,12 @@ package com.vaadin.hilla.maven; -import org.apache.maven.plugins.annotations.Execute; +import java.io.File; + +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; import com.vaadin.flow.component.dependency.JavaScript; @@ -12,6 +16,8 @@ import com.vaadin.flow.server.frontend.FrontendUtils; import com.vaadin.flow.theme.Theme; +import static com.vaadin.flow.server.frontend.FrontendUtils.FRONTEND; + /** * Goal that builds the frontend bundle. * @@ -31,7 +37,51 @@ * @since Flow 2.0 */ @Mojo(name = "build-frontend", requiresDependencyResolution = ResolutionScope.COMPILE_PLUS_RUNTIME, defaultPhase = LifecyclePhase.PROCESS_CLASSES) -@Execute(goal = "configure") -public class BuildFrontendMojo - extends com.vaadin.flow.plugin.maven.BuildFrontendMojo { +public class BuildFrontendMojo extends + com.vaadin.flow.plugin.maven.BuildFrontendMojo implements Configurable { + /** + * A directory with project's frontend source files. + */ + @Parameter(property = "frontendDirectory", defaultValue = "${project.basedir}/src/main/" + + FRONTEND) + private File frontend; + + /** + * The folder where TypeScript endpoints are generated. + */ + @Parameter(property = "generatedTsFolder") + private File generated; + + @Parameter(property = "nodeCommand", defaultValue = "node") + private String node; + + @Parameter + private String mainClass; + + @Override + protected void executeInternal() + throws MojoExecutionException, MojoFailureException { + configure(); + super.executeInternal(); + } + + @Override + public String getNode() { + return node; + } + + @Override + public String getMainClass() { + return mainClass; + } + + @Override + public File getFrontend() { + return frontend; + } + + @Override + public File getGenerated() { + return generated; + } } diff --git a/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/Configurable.java b/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/Configurable.java new file mode 100644 index 0000000000..a972ff479e --- /dev/null +++ b/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/Configurable.java @@ -0,0 +1,95 @@ +package com.vaadin.hilla.maven; + +import java.io.File; +import java.util.Map; +import java.util.Optional; + +import org.apache.maven.model.Profile; +import org.apache.maven.project.MavenProject; +import org.codehaus.plexus.util.xml.Xpp3Dom; + +import com.vaadin.hilla.engine.EngineConfiguration; + +import static com.vaadin.flow.plugin.maven.FlowModeAbstractMojo.getClasspathElements; +import static com.vaadin.flow.server.frontend.FrontendUtils.GENERATED; + +interface Configurable { + Map getPluginContext(); + + File getFrontend(); + + File getGenerated(); + + String getNode(); + + String getMainClass(); + + default EngineConfiguration configure() { + var project = (MavenProject) getPluginContext().get("project"); + + var isProduction = project.getActiveProfiles().stream() + .map(Profile::getId).anyMatch("production"::equals); + + var mainClass = getMainClass(); + if (mainClass == null) { + mainClass = getPluginConfigurationProperty(project, + "org.springframework.boot", "spring-boot-maven-plugin", + "mainClass"); + } + + var conf = new EngineConfiguration.Builder() + .baseDir(project.getBasedir().toPath()) + .buildDir(project.getBuild().getDirectory()) + .outputDir(generatedOrOldLocation().toPath()) + .groupId(project.getGroupId()) + .artifactId(project.getArtifactId()) + .classpath(getClasspathElements(project)) + .withDefaultAnnotations().mainClass(mainClass) + .nodeCommand(getNode()).productionMode(isProduction).build(); + EngineConfiguration.setDefault(conf); + return conf; + } + + private File generatedOrOldLocation() { + if (getGenerated() != null) { + return getGenerated(); + } + return new File(getFrontend(), GENERATED); + } + + /** + * Retrieves a configuration property value from another plugin. + * + * @param project + * the MavenProject instance + * @param pluginGroupId + * the groupId of the target plugin + * @param pluginArtifactId + * the artifactId of the target plugin + * @param propertyName + * the name of the property to retrieve + * @return the value of the property, or null if not found + */ + static String getPluginConfigurationProperty(MavenProject project, + String pluginGroupId, String pluginArtifactId, + String propertyName) { + // Search for the plugin in the project's build plugins + for (var plugin : project.getBuild().getPlugins()) { + if (pluginGroupId.equals(plugin.getGroupId()) + && pluginArtifactId.equals(plugin.getArtifactId())) { + // Access the plugin's configuration + var configuration = plugin.getConfiguration(); + if (configuration instanceof Xpp3Dom configDom) { + var propertyNode = configDom.getChild(propertyName); + return Optional.ofNullable(propertyNode) + .map(Xpp3Dom::getValue) + // need to filter for property names in value + .filter(v -> v.indexOf('{') < 0).orElse(null); + } + } + } + + // Plugin or property not found + return null; + } +} diff --git a/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/EngineConfigureMojo.java b/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/EngineConfigureMojo.java index 2ba44f6aa3..b312171e81 100644 --- a/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/EngineConfigureMojo.java +++ b/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/EngineConfigureMojo.java @@ -1,98 +1,23 @@ package com.vaadin.hilla.maven; -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.util.Collection; -import java.util.LinkedHashSet; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import com.vaadin.flow.server.frontend.FrontendUtils; -import org.apache.maven.artifact.DependencyResolutionRequiredException; import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; -import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; -import org.apache.maven.project.MavenProject; - -import com.vaadin.flow.plugin.maven.FlowModeAbstractMojo; -import com.vaadin.hilla.engine.EngineConfiguration; -import com.vaadin.hilla.engine.GeneratorConfiguration; -import com.vaadin.hilla.engine.ParserConfiguration; /** - * Maven Plugin for Hilla. Emits Hilla engine configuration file in the build - * directory. - * - * The configuration gathered from the Maven plugin is saved in a file, so that - * further runs of the parser / generator can skip running a separate Maven - * process to get this configuration again. + * This goal is no longer used, so invoking it will only print a warning. */ @Mojo(name = "configure", defaultPhase = LifecyclePhase.GENERATE_RESOURCES, requiresDependencyResolution = ResolutionScope.COMPILE_PLUS_RUNTIME) +@Deprecated public final class EngineConfigureMojo extends AbstractMojo { - - @Parameter(readonly = true) - private final GeneratorConfiguration generator = new GeneratorConfiguration(); - - @Parameter(readonly = true) - private final ParserConfiguration parser = new ParserConfiguration(); - /** - * The folder where TypeScript endpoints are generated. - */ - @Parameter(defaultValue = "${project.basedir}/" - + FrontendUtils.DEFAULT_PROJECT_FRONTEND_GENERATED_DIR) - private File generatedTsFolder; - - private static final String LEGACY_PROJECT_FRONTEND_PATH = "./frontend"; - - @Parameter(defaultValue = "${project}", readonly = true) - private MavenProject project; - @Override - public void execute() throws EngineConfigureMojoException { - - if (!FlowModeAbstractMojo.isHillaAvailable(project)) { - getLog().warn( - "The 'configure' goal is only meant to be used in Hilla projects with endpoints." - .stripIndent()); - return; - } - try { - var legacyFrontendFolder = project.getBasedir().toPath() - .resolve(LEGACY_PROJECT_FRONTEND_PATH).toFile(); - if (legacyFrontendFolder.exists()) { - generatedTsFolder = legacyFrontendFolder.toPath() - .resolve("generated").toFile(); - } - var buildDir = project.getBuild().getDirectory(); - var cp = Stream - .of(project.getCompileClasspathElements(), - project.getRuntimeClasspathElements(), - project.getSystemClasspathElements()) - .flatMap(Collection::stream) - .collect(Collectors.toCollection(LinkedHashSet::new)); - var conf = new EngineConfiguration.Builder( - project.getBasedir().toPath()).classPath(cp) - .outputDir(generatedTsFolder.toPath()).generator(generator) - .parser(parser).buildDir(buildDir) - .classesDir(project.getBuild().getOutputDirectory()) - .create(); - - // The configuration gathered from the Maven plugin is saved in a - // file so that further runs can skip running a separate Maven - // project just to get this configuration again - var configDir = project.getBasedir().toPath().resolve(buildDir); - Files.createDirectories(configDir); - conf.store(configDir - .resolve(EngineConfiguration.DEFAULT_CONFIG_FILE_NAME) - .toFile()); - } catch (DependencyResolutionRequiredException e) { - throw new EngineConfigureMojoException("Configuration failed", e); - } catch (IOException e) { - throw new EngineConfigureMojoException( - "Maven configuration has not been saved to file", e); - } + public void execute() throws MojoFailureException { + getLog().warn( + """ + The 'configure' goal is no longer used and will be removed in a future version. + """ + .stripIndent()); } } diff --git a/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/EngineConfigureMojoException.java b/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/EngineConfigureMojoException.java deleted file mode 100644 index 0016ef2f9a..0000000000 --- a/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/EngineConfigureMojoException.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.vaadin.hilla.maven; - -import org.apache.maven.plugin.MojoFailureException; - -/** - * Exception thrown when the engine configuration fails. - */ -public class EngineConfigureMojoException extends MojoFailureException { - /** - * Constructs a new exception with the specified detail message. - * - * @param message - * Message for the exception. - */ - public EngineConfigureMojoException(String message) { - super(message); - } - - /** - * Constructs a new exception with the specified detail message and cause. - * - * @param message - * Message for the exception. - * @param cause - * Cause of the exception. - */ - public EngineConfigureMojoException(String message, Throwable cause) { - super(message, cause); - } -} diff --git a/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/EngineGenerateMojo.java b/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/EngineGenerateMojo.java index 328d01dbd0..e1e42e8d96 100644 --- a/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/EngineGenerateMojo.java +++ b/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/EngineGenerateMojo.java @@ -1,14 +1,8 @@ package com.vaadin.hilla.maven; -import java.io.IOException; -import java.net.URL; -import java.net.URLClassLoader; -import java.util.ArrayList; -import java.util.Objects; +import java.io.File; -import org.apache.maven.model.Profile; import org.apache.maven.plugin.AbstractMojo; -import org.apache.maven.plugins.annotations.Execute; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; @@ -16,27 +10,43 @@ import org.apache.maven.project.MavenProject; import com.vaadin.flow.plugin.maven.FlowModeAbstractMojo; -import com.vaadin.hilla.engine.EngineConfiguration; +import com.vaadin.flow.server.ExecutionFailedException; import com.vaadin.hilla.engine.GeneratorException; import com.vaadin.hilla.engine.GeneratorProcessor; import com.vaadin.hilla.engine.ParserException; import com.vaadin.hilla.engine.ParserProcessor; +import static com.vaadin.flow.server.frontend.FrontendUtils.FRONTEND; + /** * Maven Plugin for Hilla. Handles parsing Java bytecode and generating * TypeScript code from it. */ @Mojo(name = "generate", defaultPhase = LifecyclePhase.PROCESS_CLASSES, requiresDependencyResolution = ResolutionScope.COMPILE_PLUS_RUNTIME) -@Execute(goal = "configure") -public final class EngineGenerateMojo extends AbstractMojo { +public final class EngineGenerateMojo extends AbstractMojo + implements Configurable { + /** + * A directory with project's frontend source files. + */ + @Parameter(property = "frontendDirectory", defaultValue = "${project.basedir}/src/main/" + + FRONTEND) + private File frontend; + + /** + * The folder where TypeScript endpoints are generated. + */ + @Parameter(property = "generatedTsFolder") + private File generated; - @Parameter(defaultValue = "node") - private String nodeCommand; - @Parameter(defaultValue = "${project}", readonly = true) - private MavenProject project; + @Parameter(property = "nodeCommand", defaultValue = "node") + private String node; + + @Parameter(property = "mainClass") + private String mainClass; @Override public void execute() throws EngineGenerateMojoException { + var project = (MavenProject) getPluginContext().get("project"); if (!FlowModeAbstractMojo.isHillaAvailable(project)) { getLog().warn( """ @@ -46,31 +56,39 @@ public void execute() throws EngineGenerateMojoException { return; } try { - var baseDir = project.getBasedir().toPath(); - var buildDir = baseDir.resolve(project.getBuild().getDirectory()); - var conf = Objects.requireNonNull( - EngineConfiguration.loadDirectory(buildDir)); - var classPath = conf.getClassPath(); - var urls = new ArrayList(classPath.size()); - for (var classPathItem : classPath) { - urls.add(classPathItem.toUri().toURL()); - } - var classLoader = new URLClassLoader(urls.toArray(URL[]::new), - getClass().getClassLoader()); - var isProduction = project.getActiveProfiles().stream() - .map(Profile::getId).anyMatch("production"::equals); - var parserProcessor = new ParserProcessor(conf, classLoader, - isProduction); - var generatorProcessor = new GeneratorProcessor(conf, nodeCommand, - isProduction); + var conf = configure(); + var parserProcessor = new ParserProcessor(conf); + var generatorProcessor = new GeneratorProcessor(conf); - parserProcessor.process(); + var browserCallables = conf.getBrowserCallableFinder() + .findBrowserCallables(); + parserProcessor.process(browserCallables); generatorProcessor.process(); - } catch (IOException e) { - throw new EngineGenerateMojoException( - "Loading saved configuration failed", e); + } catch (ExecutionFailedException e) { + throw new EngineGenerateMojoException("Endpoint collection failed", + e); } catch (GeneratorException | ParserException e) { throw new EngineGenerateMojoException("Execution failed", e); } } + + @Override + public String getNode() { + return node; + } + + @Override + public String getMainClass() { + return mainClass; + } + + @Override + public File getFrontend() { + return frontend; + } + + @Override + public File getGenerated() { + return generated; + } } diff --git a/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/PrepareFrontendMojo.java b/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/PrepareFrontendMojo.java index c62fa4bd0c..a5498af425 100644 --- a/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/PrepareFrontendMojo.java +++ b/packages/java/maven-plugin/src/main/java/com/vaadin/hilla/maven/PrepareFrontendMojo.java @@ -1,10 +1,16 @@ package com.vaadin.hilla.maven; -import org.apache.maven.plugins.annotations.Execute; +import java.io.File; + +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; +import static com.vaadin.flow.server.frontend.FrontendUtils.FRONTEND; + /** * This goal checks that node and npm tools are installed and creates or updates * `package.json` and the frontend build tool configuration files. @@ -15,7 +21,52 @@ * @since Flow 2.0 */ @Mojo(name = "prepare-frontend", requiresDependencyResolution = ResolutionScope.COMPILE_PLUS_RUNTIME, defaultPhase = LifecyclePhase.PROCESS_RESOURCES) -@Execute(goal = "configure") public class PrepareFrontendMojo - extends com.vaadin.flow.plugin.maven.PrepareFrontendMojo { + extends com.vaadin.flow.plugin.maven.PrepareFrontendMojo + implements Configurable { + /** + * A directory with project's frontend source files. + */ + @Parameter(property = "frontendDirectory", defaultValue = "${project.basedir}/src/main/" + + FRONTEND) + private File frontend; + + /** + * The folder where TypeScript endpoints are generated. + */ + @Parameter(property = "generatedTsFolder") + private File generated; + + @Parameter(property = "nodeCommand", defaultValue = "node") + private String node; + + @Parameter(property = "mainClass") + private String mainClass; + + @Override + protected void executeInternal() + throws MojoExecutionException, MojoFailureException { + configure(); + super.executeInternal(); + } + + @Override + public String getNode() { + return node; + } + + @Override + public String getMainClass() { + return mainClass; + } + + @Override + public File getFrontend() { + return frontend; + } + + @Override + public File getGenerated() { + return generated; + } } diff --git a/packages/java/maven-plugin/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml b/packages/java/maven-plugin/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml new file mode 100644 index 0000000000..602d4e0e02 --- /dev/null +++ b/packages/java/maven-plugin/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml @@ -0,0 +1,31 @@ + + + + + + + validate + build-frontend + configure + generate + + + + + + + + + + prepare-frontend + + + + + false + true + + + + + diff --git a/packages/java/maven-plugin/src/test/java/com/vaadin/hilla/maven/AbstractMojoTest.java b/packages/java/maven-plugin/src/test/java/com/vaadin/hilla/maven/AbstractMojoTest.java index 69e14cb728..0fb37a23fc 100644 --- a/packages/java/maven-plugin/src/test/java/com/vaadin/hilla/maven/AbstractMojoTest.java +++ b/packages/java/maven-plugin/src/test/java/com/vaadin/hilla/maven/AbstractMojoTest.java @@ -1,7 +1,5 @@ package com.vaadin.hilla.maven; -import static org.junit.jupiter.api.Assertions.assertNotNull; - import java.io.File; import java.net.URISyntaxException; import java.nio.file.Files; @@ -9,17 +7,18 @@ import java.util.Comparator; import java.util.List; import java.util.Objects; +import java.util.Set; +import org.apache.maven.artifact.DefaultArtifact; +import org.apache.maven.artifact.handler.DefaultArtifactHandler; import org.apache.maven.model.Build; import org.apache.maven.plugin.Mojo; import org.apache.maven.plugin.testing.AbstractMojoTestCase; import org.apache.maven.project.MavenProject; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; -import org.mockito.Mockito; import com.vaadin.hilla.engine.EngineConfiguration; -import com.vaadin.hilla.parser.testutils.TestEngineConfigurationPathResolver; /** * Base class for Engine Maven plugin tests. Delegates to @@ -29,7 +28,7 @@ public class AbstractMojoTest { private final DelegateMojoTestCase testCase = new DelegateMojoTestCase(); private Path buildDirectory; - private EngineConfiguration.Builder configurationBuilder; + private EngineConfiguration engineConfiguration; private Path outputDirectory; private MavenProject project; private Path temporaryDirectory; @@ -48,46 +47,14 @@ public void setUpMojoTest() throws Exception { buildDirectory.resolve("test-classes/com/vaadin/hilla")); Files.createFile(buildDirectory.resolve( "test-classes/com/vaadin/hilla/EndpointController.class")); + // Maven project is not initialized on the mojo, setup a mock manually - project = Mockito.mock(MavenProject.class); - // Using Path.of here to have correct separators at Windows & Unix - var classPathElements = List - .of(buildDirectory.resolve("test-classes").toString()); - Mockito.doReturn(classPathElements).when(project) - .getCompileClasspathElements(); - Mockito.doReturn(classPathElements).when(project) - .getRuntimeClasspathElements(); - Mockito.doReturn(getTemporaryDirectory().toFile()).when(project) - .getBasedir(); - var mockBuild = Mockito.mock(Build.class); - Mockito.doReturn("build").when(mockBuild).getDirectory(); - Mockito.doReturn(Path.of("build/classes").toString()).when(mockBuild) - .getOutputDirectory(); - Mockito.doReturn(mockBuild).when(project).getBuild(); - - var configFilePath = getBuildDirectory() - .resolve(EngineConfiguration.DEFAULT_CONFIG_FILE_NAME); - - // Load reference EngineConfiguration - Files.copy( - Path.of(Objects - .requireNonNull(getClass().getResource( - EngineConfiguration.DEFAULT_CONFIG_FILE_NAME)) - .toURI()), - configFilePath); - - var config = TestEngineConfigurationPathResolver.resolve( - EngineConfiguration.load(configFilePath.toFile()), - temporaryDirectory); - - assertNotNull(config, "expected reference " - + "EngineConfiguration to load from json"); - configurationBuilder = new EngineConfiguration.Builder(config) - .baseDir(getTemporaryDirectory()); - - // Delete reference json file from temporary directory - Files.delete(getBuildDirectory() - .resolve(EngineConfiguration.DEFAULT_CONFIG_FILE_NAME)); + project = createMavenProject(); + + engineConfiguration = new EngineConfiguration.Builder() + .baseDir(temporaryDirectory) + .browserCallableFinder(() -> List.of()).build(); + EngineConfiguration.setDefault(engineConfiguration); } @AfterEach @@ -107,7 +74,7 @@ protected Path getBuildDirectory() { } protected EngineConfiguration getEngineConfiguration() { - return configurationBuilder.create(); + return engineConfiguration; } protected MavenProject getMavenProject() { @@ -154,4 +121,25 @@ protected void tearDown() throws Exception { super.tearDown(); } } + + MavenProject createMavenProject() { + MavenProject project = new MavenProject(); + project.setGroupId("com.vaadin.testing"); + project.setArtifactId("my-application"); + project.setFile(temporaryDirectory.resolve("pom.xml").toFile()); + project.setBuild(new Build()); + project.getBuild().setFinalName("finalName"); + project.getBuild().setDirectory("build"); + project.getBuild().setOutputDirectory("build/classes"); + + DefaultArtifactHandler artifactHandler = new DefaultArtifactHandler(); + artifactHandler.setAddedToClasspath(true); + DefaultArtifact artifact = new DefaultArtifact( + "com.vaadin.hilla.testing", "mock-hilla", "1.0", "compile", + "jar", null, artifactHandler); + artifact.setFile(buildDirectory.resolve("test-classes").toFile()); + project.setArtifacts(Set.of(artifact)); + return project; + } + } diff --git a/packages/java/maven-plugin/src/test/java/com/vaadin/hilla/maven/EngineConfigureMojoTest.java b/packages/java/maven-plugin/src/test/java/com/vaadin/hilla/maven/EngineConfigureMojoTest.java deleted file mode 100644 index d650208873..0000000000 --- a/packages/java/maven-plugin/src/test/java/com/vaadin/hilla/maven/EngineConfigureMojoTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.vaadin.hilla.maven; - -import static org.junit.jupiter.api.Assertions.assertNotNull; - -import org.junit.jupiter.api.Test; - -import com.vaadin.hilla.engine.EngineConfiguration; -import com.vaadin.hilla.parser.testutils.JsonAssertions; - -public class EngineConfigureMojoTest extends AbstractMojoTest { - - @Test - public void should_StoreConfigurationJson() throws Exception { - // Lookup and initialize mojo - var engineConfigureMojo = (EngineConfigureMojo) lookupMojo("configure", - getTestConfiguration()); - setVariableValueToObject(engineConfigureMojo, "project", - getMavenProject()); - engineConfigureMojo.execute(); - - var storedEngineConfiguration = EngineConfiguration - .loadDirectory(getBuildDirectory()); - assertNotNull(storedEngineConfiguration); - JsonAssertions.assertEquals(getEngineConfiguration(), - storedEngineConfiguration); - } -} diff --git a/packages/java/maven-plugin/src/test/java/com/vaadin/hilla/maven/EngineGenerateMojoTest.java b/packages/java/maven-plugin/src/test/java/com/vaadin/hilla/maven/EngineGenerateMojoTest.java index 9ee90cfae1..a4239b0b32 100644 --- a/packages/java/maven-plugin/src/test/java/com/vaadin/hilla/maven/EngineGenerateMojoTest.java +++ b/packages/java/maven-plugin/src/test/java/com/vaadin/hilla/maven/EngineGenerateMojoTest.java @@ -1,11 +1,9 @@ package com.vaadin.hilla.maven; -import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertInstanceOf; -import java.net.URL; -import java.net.URLClassLoader; +import java.util.Map; +import java.util.List; import org.junit.jupiter.api.Test; import org.mockito.Answers; @@ -24,50 +22,32 @@ public void should_RunParserAndGenerator() throws Exception { Mockito.withSettings().defaultAnswer(Answers.RETURNS_SELF), (mock, context) -> { // Verify ParserProcessor constructor arguments - assertEquals(3, context.arguments().size(), - "expected 3 ParserProcessor arguments"); + assertEquals(1, context.arguments().size(), + "expected 1 ParserProcessor argument"); // Verify configuration argument var conf = (EngineConfiguration) context.arguments().get(0); - assertEquals(conf, getEngineConfiguration()); - - // Verify class loader argument - var classLoader = (ClassLoader) context.arguments().get(1); - assertInstanceOf(URLClassLoader.class, classLoader); - assertEquals(classLoader.getParent(), - EngineGenerateMojo.class.getClassLoader()); - assertArrayEquals(new URL[] { getTemporaryDirectory() - .resolve("build/test-classes").toUri().toURL() }, - ((URLClassLoader) classLoader).getURLs()); + verifyConfiguration(conf); }); var mockedConstructionGenerator = Mockito.mockConstruction( GeneratorProcessor.class, Mockito.withSettings() .defaultAnswer(Answers.RETURNS_SELF), ((mock, context) -> { // Verify GeneratorProcessor arguments - assertEquals(3, context.arguments().size(), - "expected 3 GeneratorProcessor arguments"); + assertEquals(1, context.arguments().size(), + "expected 1 GeneratorProcessor argument"); // Verify configuration argument var conf = (EngineConfiguration) context.arguments() .get(0); - assertEquals(conf, getEngineConfiguration()); - })); - - var mockedStaticEngineConfiguration = Mockito - .mockStatic(EngineConfiguration.class)) { - - // Use reference EngineConfiguration - mockedStaticEngineConfiguration - .when(() -> EngineConfiguration - .loadDirectory(Mockito.eq(getBuildDirectory()))) - .thenReturn(getEngineConfiguration()); + verifyConfiguration(conf); + }));) { // Lookup and initialize mojo var engineGenerateMojo = (EngineGenerateMojo) lookupMojo("generate", getTestConfiguration()); - setVariableValueToObject(engineGenerateMojo, "project", - getMavenProject()); + engineGenerateMojo + .setPluginContext(Map.of("project", getMavenProject())); engineGenerateMojo.execute(); assertEquals(1, mockedConstructionParser.constructed().size(), @@ -80,8 +60,12 @@ public void should_RunParserAndGenerator() throws Exception { .get(0); var inOrder = Mockito.inOrder(parserProcessor, generatorProcessor); - inOrder.verify(parserProcessor).process(); + inOrder.verify(parserProcessor).process(List.of()); inOrder.verify(generatorProcessor).process(); } } + + private void verifyConfiguration(EngineConfiguration conf) { + assertEquals(conf.getBaseDir(), getTemporaryDirectory()); + } } diff --git a/packages/java/maven-plugin/src/test/resources/com/vaadin/hilla/maven/hilla-engine-configuration.json b/packages/java/maven-plugin/src/test/resources/com/vaadin/hilla/maven/hilla-engine-configuration.json index 984e52e6d8..0cf376d7dc 100644 --- a/packages/java/maven-plugin/src/test/resources/com/vaadin/hilla/maven/hilla-engine-configuration.json +++ b/packages/java/maven-plugin/src/test/resources/com/vaadin/hilla/maven/hilla-engine-configuration.json @@ -1,6 +1,6 @@ { "baseDir": "base", - "classPath": ["build/test-classes"], + "classPath": ["build/classes","build/test-classes"], "generator": { "plugins": { "use": [ diff --git a/packages/java/parser-jvm-core/pom.xml b/packages/java/parser-jvm-core/pom.xml index 1b86f2d47c..20e01828e8 100644 --- a/packages/java/parser-jvm-core/pom.xml +++ b/packages/java/parser-jvm-core/pom.xml @@ -6,7 +6,7 @@ com.vaadin hilla-project - 24.5-SNAPSHOT + 24.7-SNAPSHOT ../../../pom.xml @@ -20,8 +20,8 @@ - com.google.code.findbugs - jsr305 + org.jspecify + jspecify io.github.classgraph diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/AbstractCompositePlugin.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/AbstractCompositePlugin.java index 753af386db..19477347b8 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/AbstractCompositePlugin.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/AbstractCompositePlugin.java @@ -7,13 +7,13 @@ import com.vaadin.hilla.parser.utils.PluginException; -import jakarta.annotation.Nonnull; +import org.jspecify.annotations.NonNull; public abstract class AbstractCompositePlugin extends AbstractPlugin { private final LinkedList plugins = new LinkedList<>(); - protected AbstractCompositePlugin(@Nonnull Plugin... plugins) { + protected AbstractCompositePlugin(@NonNull Plugin... plugins) { Stream.of(plugins).map(Objects::requireNonNull) .forEachOrdered(this.plugins::add); verifyPluginsOrder(); @@ -31,9 +31,9 @@ public void exit(NodePath nodePath) { } @Override - @Nonnull - public Node resolve(@Nonnull Node node, - @Nonnull NodePath parentPath) { + @NonNull + public Node resolve(@NonNull Node node, + @NonNull NodePath parentPath) { for (var plugin : plugins) { node = plugin.resolve(node, parentPath); } @@ -41,8 +41,8 @@ public void exit(NodePath nodePath) { } @Override - @Nonnull - public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { + @NonNull + public NodeDependencies scan(@NonNull NodeDependencies nodeDependencies) { for (var plugin : plugins) { nodeDependencies = plugin.scan(nodeDependencies); } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/AbstractNode.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/AbstractNode.java index 21ac154f5c..68db4d4564 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/AbstractNode.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/AbstractNode.java @@ -2,7 +2,7 @@ import java.util.Objects; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.models.ClassInfoModel; import com.vaadin.hilla.parser.models.NamedModel; @@ -13,7 +13,7 @@ public abstract class AbstractNode implements Node { private T target; - protected AbstractNode(@Nonnull S source, T target) { + protected AbstractNode(@NonNull S source, T target) { this.source = Objects.requireNonNull(source); this.target = target; } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/NodeDependencies.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/NodeDependencies.java index c1c867f70e..6a4a0144e2 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/NodeDependencies.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/NodeDependencies.java @@ -4,31 +4,31 @@ import java.util.function.UnaryOperator; import java.util.stream.Stream; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; public final class NodeDependencies { private final Stream> childNodes; private final Node node; private final Stream> relatedNodes; - NodeDependencies(@Nonnull Node node, - @Nonnull Stream> childNodes, - @Nonnull Stream> relatedNodes) { + NodeDependencies(@NonNull Node node, + @NonNull Stream> childNodes, + @NonNull Stream> relatedNodes) { this.node = Objects.requireNonNull(node); this.childNodes = Objects.requireNonNull(childNodes); this.relatedNodes = Objects.requireNonNull(relatedNodes); } - @Nonnull + @NonNull public NodeDependencies appendChildNodes( - @Nonnull Stream> childNodesToAppend) { + @NonNull Stream> childNodesToAppend) { return withChildNodes( Stream.concat(getChildNodes(), childNodesToAppend)); } - @Nonnull + @NonNull public NodeDependencies appendRelatedNodes( - @Nonnull Stream> relatedNodesToAppend) { + @NonNull Stream> relatedNodesToAppend) { return withRelatedNodes( Stream.concat(getRelatedNodes(), relatedNodesToAppend)); } @@ -45,43 +45,43 @@ public NodeDependencies appendRelatedNodes( return relatedNodes; } - @Nonnull + @NonNull public NodeDependencies prependChildNodes( - @Nonnull Stream> childNodesToPrepend) { + @NonNull Stream> childNodesToPrepend) { return withChildNodes( Stream.concat(childNodesToPrepend, getChildNodes())); } - @Nonnull + @NonNull public NodeDependencies prependRelatedNodes( - @Nonnull Stream> relatedNodesToPrepend) { + @NonNull Stream> relatedNodesToPrepend) { return withRelatedNodes( Stream.concat(relatedNodesToPrepend, getRelatedNodes())); } - @Nonnull + @NonNull public NodeDependencies processChildNodes( - @Nonnull UnaryOperator>> childNodesProcessor) { + @NonNull UnaryOperator>> childNodesProcessor) { return new NodeDependencies(getNode(), childNodesProcessor.apply(getChildNodes()), getRelatedNodes()); } - @Nonnull + @NonNull public NodeDependencies processRelatedNodes( - @Nonnull UnaryOperator>> relatedNodesProcessor) { + @NonNull UnaryOperator>> relatedNodesProcessor) { return new NodeDependencies(getNode(), getChildNodes(), relatedNodesProcessor.apply(getRelatedNodes())); } - @Nonnull + @NonNull private NodeDependencies withChildNodes( - @Nonnull Stream> childNodes) { + @NonNull Stream> childNodes) { return new NodeDependencies(getNode(), childNodes, getRelatedNodes()); } - @Nonnull + @NonNull private NodeDependencies withRelatedNodes( - @Nonnull Stream> relatedNodes) { + @NonNull Stream> relatedNodes) { return new NodeDependencies(getNode(), getChildNodes(), relatedNodes); } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/NodePath.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/NodePath.java index 9aaae6d36e..b838695365 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/NodePath.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/NodePath.java @@ -4,21 +4,21 @@ import java.util.Objects; import java.util.stream.Stream; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; public final class NodePath> { private final N node; private final NodePath parentPath; private final NodePath rootPath; - private NodePath(@Nonnull N node, @Nonnull NodePath parentPath) { + private NodePath(@NonNull N node, @NonNull NodePath parentPath) { this.node = Objects.requireNonNull(node); this.parentPath = Objects.requireNonNull(parentPath); this.rootPath = Objects.requireNonNull(parentPath.getRootPath()); } @SuppressWarnings("unchecked") - private NodePath(@Nonnull N node) { + private NodePath(@NonNull N node) { if (!(node instanceof RootNode)) { throw new IllegalArgumentException("RootNode instance required"); } @@ -27,7 +27,7 @@ private NodePath(@Nonnull N node) { this.rootPath = (NodePath) this; } - static NodePath forRoot(@Nonnull RootNode rootNode) { + static NodePath forRoot(@NonNull RootNode rootNode) { return new NodePath<>(rootNode); } @@ -100,7 +100,7 @@ public String toString() { return String.join("", list); } - > NodePath withChildNode(@Nonnull N node) { + > NodePath withChildNode(@NonNull N node) { return new NodePath<>(node, this); } } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/Parser.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/Parser.java index abe5348fc1..9a48aba623 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/Parser.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/Parser.java @@ -9,18 +9,15 @@ import java.util.HashSet; import java.util.List; import java.util.Objects; -import java.util.Optional; import java.util.Set; import java.util.function.Consumer; -import java.util.stream.Collectors; +import java.util.stream.Stream; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; -import io.github.classgraph.ClassInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import io.github.classgraph.ClassGraph; import io.swagger.v3.oas.models.OpenAPI; /** @@ -47,6 +44,9 @@ control rules of the child class will be applied for the inherited methods of th "jakarta.annotation.security.RolesAllowed", "com.vaadin.flow.server.auth.AnonymousAllowed"); + private static final List INTERNAL_BROWSER_CALLABLES = List + .of("com.vaadin.hilla.signals.handler.SignalsHandler"); + public Parser() { try { var basicOpenAPIString = new String(Objects @@ -62,8 +62,8 @@ public Parser() { } } - private static OpenAPI parseOpenAPIFile(@Nonnull String source, - @Nonnull OpenAPIFileType type, OpenAPI origin) { + private static OpenAPI parseOpenAPIFile(@NonNull String source, + @NonNull OpenAPIFileType type, OpenAPI origin) { try { var mapper = type.getMapper(); var reader = origin != null ? mapper.readerForUpdating(origin) @@ -86,8 +86,8 @@ private static OpenAPI parseOpenAPIFile(@Nonnull String source, * An instance of the parser plugin. * @return this (for method chaining). */ - @Nonnull - public Parser addPlugin(@Nonnull Plugin plugin) { + @NonNull + public Parser addPlugin(@NonNull Plugin plugin) { config.plugins.add(Objects.requireNonNull(plugin)); return this; } @@ -99,26 +99,12 @@ public Parser addPlugin(@Nonnull Plugin plugin) { * a consumer lambda that accepts an OpenAPI instance. * @return this (for method chaining). */ - @Nonnull - public Parser adjustOpenAPI(@Nonnull Consumer action) { + @NonNull + public Parser adjustOpenAPI(@NonNull Consumer action) { action.accept(config.openAPI); return this; } - /** - * Allows to change the class loader that the parser uses for reflection. - * - * @param classLoader - * a class loader instance. - * - * @return this (for method chaining). - */ - @Nonnull - public Parser classLoader(@Nonnull ClassLoader classLoader) { - config.classLoader = classLoader; - return this; - } - /** * Specifies the classpath where the parser will scan for endpoints. * Specifying the classpath is required. @@ -130,8 +116,8 @@ public Parser classLoader(@Nonnull ClassLoader classLoader) { * a list of paths forming the classpath. * @return this (for method chaining). */ - @Nonnull - public Parser classPath(@Nonnull String... classPathElements) { + @NonNull + public Parser classPath(@NonNull String... classPathElements) { return classPath(classPathElements, true); } @@ -146,8 +132,8 @@ public Parser classPath(@Nonnull String... classPathElements) { * already specified. * @return this (for method chaining). */ - @Nonnull - public Parser classPath(@Nonnull String[] classPathElements, + @NonNull + public Parser classPath(@NonNull String[] classPathElements, boolean override) { return classPath( Arrays.asList(Objects.requireNonNull(classPathElements)), @@ -165,8 +151,8 @@ public Parser classPath(@Nonnull String[] classPathElements, * a list of paths forming the classpath. * @return this (for method chaining). */ - @Nonnull - public Parser classPath(@Nonnull Collection classPathElements) { + @NonNull + public Parser classPath(@NonNull Collection classPathElements) { return classPath(classPathElements, true); } @@ -181,8 +167,8 @@ public Parser classPath(@Nonnull Collection classPathElements) { * already specified. * @return this (for method chaining). */ - @Nonnull - public Parser classPath(@Nonnull Collection classPathElements, + @NonNull + public Parser classPath(@NonNull Collection classPathElements, boolean override) { if (override || config.classPathElements == null) { config.classPathElements = new HashSet<>( @@ -199,14 +185,14 @@ public Parser classPath(@Nonnull Collection classPathElements, *

* If the annotation name is already set, it will be overridden. * - * @param annotationFullyQualifiedName - * The fully qualified name of the annotation + * @param annotations + * The fully qualified names of the annotations * @return this (for method chaining). */ - @Nonnull - public Parser endpointAnnotation( - @Nonnull String annotationFullyQualifiedName) { - return endpointAnnotation(annotationFullyQualifiedName, true); + @NonNull + public Parser endpointAnnotations( + @NonNull List> annotations) { + return endpointAnnotations(annotations, true); } /** @@ -214,19 +200,19 @@ public Parser endpointAnnotation( * search for the endpoints. Only classes with this annotation will be * chosen. * - * @param annotationFullyQualifiedName - * The fully qualified name of the annotation + * @param annotations + * The fully qualified names of the annotations * @param override * specifies if the parser should override the annotation name if * it is already specified. * @return this (for method chaining). */ - @Nonnull - public Parser endpointAnnotation( - @Nonnull String annotationFullyQualifiedName, boolean override) { - if (override || config.endpointAnnotationName == null) { - config.endpointAnnotationName = Objects - .requireNonNull(annotationFullyQualifiedName); + @NonNull + public Parser endpointAnnotations( + @NonNull List> annotations, + boolean override) { + if (override || config.endpointAnnotations == null) { + config.endpointAnnotations = Objects.requireNonNull(annotations); } return this; } @@ -240,14 +226,14 @@ public Parser endpointAnnotation( *

* If the annotation name is already set, it will be overridden. * - * @param annotationFullyQualifiedName - * The fully qualified name of the annotation + * @param annotations + * The fully qualified names of the annotations * @return this (for method chaining). */ - @Nonnull - public Parser endpointExposedAnnotation( - @Nonnull String annotationFullyQualifiedName) { - return endpointExposedAnnotation(annotationFullyQualifiedName, true); + @NonNull + public Parser endpointExposedAnnotations( + @NonNull List> annotations) { + return endpointExposedAnnotations(annotations, true); } /** @@ -256,33 +242,20 @@ public Parser endpointExposedAnnotation( * part of the endpoint. Any superclass in the endpoint's inheritance chain * will be skipped if it doesn't have this annotation. * - * @param annotationFullyQualifiedName - * The fully qualified name of the annotation + * @param annotations + * The fully qualified names of the annotations * @param override * specifies if the parser should override the annotation name if * it is already specified. * @return this (for method chaining). */ - @Nonnull - public Parser endpointExposedAnnotation( - @Nonnull String annotationFullyQualifiedName, boolean override) { - if (override || config.endpointExposedAnnotationName == null) { - config.endpointExposedAnnotationName = Objects - .requireNonNull(annotationFullyQualifiedName); - } - return this; - } - - @Nonnull - public Parser exposedPackages(@Nonnull Collection exposedPackages) { - return exposedPackages(exposedPackages, true); - } - - @Nonnull - public Parser exposedPackages(@Nonnull Collection exposedPackages, + @NonNull + public Parser endpointExposedAnnotations( + @NonNull List> annotations, boolean override) { - if (override || config.exposedPackages == null) { - config.exposedPackages = Objects.requireNonNull(exposedPackages); + if (override || config.endpointExposedAnnotations == null) { + config.endpointExposedAnnotations = Objects + .requireNonNull(annotations); } return this; } @@ -292,52 +265,31 @@ public Parser exposedPackages(@Nonnull Collection exposedPackages, * * @return A result OpenAPI object. */ - @Nonnull - public OpenAPI execute() { - Objects.requireNonNull(config.classLoader, - "[JVM Parser] classLoader is not provided."); + @NonNull + public OpenAPI execute(List> browserCallables) { Objects.requireNonNull(config.classPathElements, "[JVM Parser] classPath is not provided."); - Objects.requireNonNull(config.endpointAnnotationName, - "[JVM Parser] endpointAnnotationName is not provided."); + if (config.endpointAnnotations == null + || config.endpointAnnotations.isEmpty()) { + throw new IllegalArgumentException( + "[JVM Parser] endpoint annotations are not provided."); + } logger.debug("JVM Parser started"); - var storage = new SharedStorage(config); - - var classGraph = new ClassGraph().enableAnnotationInfo() - .ignoreClassVisibility() - .overrideClassLoaders(config.getClassLoader()); - - Collection packages = config.exposedPackages; + browserCallables = browserCallables.stream().filter( + cls -> !INTERNAL_BROWSER_CALLABLES.contains(cls.getName())) + .toList(); - // Packages explicitly defined in pom.xml have priority - if (packages != null && !packages.isEmpty()) { - logger.debug("Search for endpoints in packages {}", packages); - classGraph.acceptPackages(packages.toArray(String[]::new)); - classGraph.overrideClasspath(config.getClassPathElements()); - } - // If no packages are defined, then scan the whole classpath except - // jars, which basically means scanning the build or target folder - else { - var buildDirectories = config.getClassPathElements().stream() - .filter(e -> !e.endsWith(".jar")) - .collect(Collectors.toList()); - logger.debug("Search for endpoints in directories {}", - buildDirectories); - classGraph.overrideClasspath(buildDirectories); - } + var storage = new SharedStorage(config); - try (var scanResult = classGraph.scan()) { - validateEndpointExposedClassesForAclAnnotations(scanResult); - var rootNode = new RootNode(new ScanResult(scanResult), - storage.getOpenAPI()); - var pluginManager = new PluginManager( - storage.getParserConfig().getPlugins()); - pluginManager.setStorage(storage); - var pluginExecutor = new PluginExecutor(pluginManager, rootNode); - pluginExecutor.execute(); - } + validateEndpointExposedClassesForAclAnnotations(browserCallables); + var rootNode = new RootNode(browserCallables, storage.getOpenAPI()); + var pluginManager = new PluginManager( + storage.getParserConfig().getPlugins()); + pluginManager.setStorage(storage); + var pluginExecutor = new PluginExecutor(pluginManager, rootNode); + pluginExecutor.execute(); logger.debug("JVM Parser finished successfully"); @@ -345,43 +297,52 @@ public OpenAPI execute() { } private void validateEndpointExposedClassesForAclAnnotations( - io.github.classgraph.ScanResult scanResult) { - - Optional.ofNullable(config.getEndpointExposedAnnotationName()) - .ifPresent(endpointExposedAnnotation -> scanResult - .getClassesWithAnnotation(endpointExposedAnnotation) - .forEach(classInfo -> { - checkClassLevelAnnotation(classInfo); - checkMethodLevelAnnotation(classInfo); - })); + List> browserCallables) { + + browserCallables.stream().flatMap(Parser::getSuperclasses) + .flatMap(browserCallable -> config + .getEndpointExposedAnnotations().stream() + .map(ann -> List.of(browserCallable, ann))) + .filter(pair -> pair.get(0).isAnnotationPresent( + (Class) pair.get(1))) + .forEach(pair -> { + checkClassLevelAnnotation(pair.get(0), pair.get(1)); + checkMethodLevelAnnotation(pair.get(0), pair.get(1)); + }); + } + + private static Stream> getSuperclasses(Class clazz) { + return Stream.iterate(clazz.getSuperclass(), Objects::nonNull, + Class::getSuperclass); } - private void checkClassLevelAnnotation(ClassInfo classInfo) { - classInfo.getAnnotationInfo() + private void checkClassLevelAnnotation(Class browserCallable, + Class exposedAnnotation) { + Arrays.stream(browserCallable.getAnnotations()) .forEach(annotationInfo -> throwIfAnnotationIsAclAnnotation( - annotationInfo.getName(), classInfo)); + annotationInfo.annotationType().getName(), + browserCallable, exposedAnnotation)); } - private void checkMethodLevelAnnotation(ClassInfo classInfo) { - for (Method method : classInfo.loadClass().getMethods()) { + private void checkMethodLevelAnnotation(Class browserCallable, + Class exposedAnnotation) { + for (Method method : browserCallable.getMethods()) { var annotations = method.getDeclaredAnnotations(); for (Annotation annotation : annotations) { throwIfAnnotationIsAclAnnotation( - annotation.annotationType().getName(), classInfo); + annotation.annotationType().getName(), browserCallable, + exposedAnnotation); } } } private void throwIfAnnotationIsAclAnnotation(String annotationName, - ClassInfo classInfo) { - var endpointExposedAnnotation = config - .getEndpointExposedAnnotationName(); - + Class browserCallable, Class exposedAnnotation) { if (ACL_ANNOTATIONS.contains(annotationName)) { throw new ParserException(String.format( ENDPOINT_EXPOSED_AND_ACL_ANNOTATIONS_ERROR_TEMPLATE, - classInfo.getName(), endpointExposedAnnotation, - annotationName, endpointExposedAnnotation)); + browserCallable.getName(), exposedAnnotation.getName(), + annotationName, exposedAnnotation.getName())); } } @@ -390,7 +351,7 @@ private void throwIfAnnotationIsAclAnnotation(String annotationName, * * @return configuration object. */ - @Nonnull + @NonNull public Config getConfig() { return config; } @@ -414,9 +375,9 @@ public Config getConfig() { * The parser for the OpenAPI definition * @return this (for method chaining). */ - @Nonnull - public Parser openAPISource(@Nonnull String source, - @Nonnull OpenAPIFileType type) { + @NonNull + public Parser openAPISource(@NonNull String source, + @NonNull OpenAPIFileType type) { config.openAPI = parseOpenAPIFile(Objects.requireNonNull(source), Objects.requireNonNull(type), config.openAPI); @@ -435,8 +396,8 @@ public Parser openAPISource(@Nonnull String source, * a collection of parser plugins. * @return this (for method chaining). */ - @Nonnull - public Parser plugins(@Nonnull Plugin... plugins) { + @NonNull + public Parser plugins(@NonNull Plugin... plugins) { return plugins(Arrays.asList(plugins)); } @@ -451,8 +412,8 @@ public Parser plugins(@Nonnull Plugin... plugins) { * a collection of parser plugins. * @return this (for method chaining). */ - @Nonnull - public Parser plugins(@Nonnull Collection plugins) { + @NonNull + public Parser plugins(@NonNull Collection plugins) { config.plugins.clear(); config.plugins.addAll(Objects.requireNonNull(plugins)); return this; @@ -465,32 +426,22 @@ public Parser plugins(@Nonnull Collection plugins) { public static final class Config { private final List plugins = new ArrayList<>(); private Set classPathElements; - private String endpointAnnotationName; - private String endpointExposedAnnotationName; - private Collection exposedPackages; + private List> endpointAnnotations = List + .of(); + private List> endpointExposedAnnotations = List + .of(); private OpenAPI openAPI; - private ClassLoader classLoader; private Config(OpenAPI openAPI) { this.openAPI = openAPI; } - /** - * Gets the class loader for reflection in the parser. - * - * @return the class loader - */ - @Nonnull - public ClassLoader getClassLoader() { - return classLoader; - } - /** * Gets the collection of classpath elements. * * @return the collection of classpath elements. */ - @Nonnull + @NonNull public Set getClassPathElements() { return classPathElements; } @@ -500,9 +451,9 @@ public Set getClassPathElements() { * * @return the annotation name. */ - @Nonnull - public String getEndpointAnnotationName() { - return endpointAnnotationName; + @NonNull + public List> getEndpointAnnotations() { + return endpointAnnotations; } /** @@ -510,14 +461,9 @@ public String getEndpointAnnotationName() { * * @return the annotation name. */ - @Nonnull - public String getEndpointExposedAnnotationName() { - return endpointExposedAnnotationName; - } - - @Nonnull - public Collection getExposedPackages() { - return exposedPackages; + @NonNull + public List> getEndpointExposedAnnotations() { + return endpointExposedAnnotations; } /** @@ -528,7 +474,7 @@ public Collection getExposedPackages() { * * @return OpenAPI object. */ - @Nonnull + @NonNull public OpenAPI getOpenAPI() { return openAPI; } @@ -538,7 +484,7 @@ public OpenAPI getOpenAPI() { * * @return the collection of parser plugins. */ - @Nonnull + @NonNull public Collection getPlugins() { return plugins; } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/Plugin.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/Plugin.java index 81c5ed933f..3fbf77d5a6 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/Plugin.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/Plugin.java @@ -3,7 +3,7 @@ import java.util.Collection; import java.util.Collections; -import jakarta.annotation.Nonnull; +import org.jspecify.annotations.NonNull; public interface Plugin { @@ -19,14 +19,14 @@ default Collection> getRequiredPlugins() { return Collections.emptyList(); } - @Nonnull - default Node resolve(@Nonnull Node node, - @Nonnull NodePath parentPath) { + @NonNull + default Node resolve(@NonNull Node node, + @NonNull NodePath parentPath) { return node; } - @Nonnull - NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies); + @NonNull + NodeDependencies scan(@NonNull NodeDependencies nodeDependencies); void setStorage(SharedStorage storage); } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/PluginExecutor.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/PluginExecutor.java index fa7440d788..3380d6e89f 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/PluginExecutor.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/PluginExecutor.java @@ -11,7 +11,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -25,7 +25,7 @@ public final class PluginExecutor { private final RootNode rootNode; private final Map, NodeScanResult> scanResults = new HashMap<>(); - public PluginExecutor(@Nonnull Plugin plugin, @Nonnull RootNode rootNode) { + public PluginExecutor(@NonNull Plugin plugin, @NonNull RootNode rootNode) { this.plugin = Objects.requireNonNull(plugin); this.rootNode = Objects.requireNonNull(rootNode); } @@ -62,7 +62,7 @@ private void enqueueExitFirst(NodePath path) { queue.addFirst(new ExitTask(path)); } - @Nonnull + @NonNull private NodeScanResult scanNodeDependencies(Node node) { return scanResults.computeIfAbsent(node, n -> new NodeScanResult(plugin.scan(new NodeDependencies(n, @@ -70,7 +70,7 @@ private NodeScanResult scanNodeDependencies(Node node) { } private class EnterTask extends Task { - public EnterTask(@Nonnull NodePath path) { + public EnterTask(@NonNull NodePath path) { super(path); } @@ -96,7 +96,7 @@ void execute() { } private class ExitTask extends Task { - public ExitTask(@Nonnull NodePath path) { + public ExitTask(@NonNull NodePath path) { super(path); } @@ -110,7 +110,7 @@ private static class NodeScanResult { private final Node node; private final List> relatedNodes; - public NodeScanResult(@Nonnull NodeDependencies nodeDependencies) { + public NodeScanResult(@NonNull NodeDependencies nodeDependencies) { Objects.requireNonNull(nodeDependencies); this.node = nodeDependencies.getNode(); this.childNodes = nodeDependencies.getChildNodes() @@ -119,17 +119,17 @@ public NodeScanResult(@Nonnull NodeDependencies nodeDependencies) { .collect(Collectors.toList()); } - @Nonnull + @NonNull public List> getChildNodes() { return childNodes; } - @Nonnull + @NonNull public Node getNode() { return node; } - @Nonnull + @NonNull public List> getRelatedNodes() { return relatedNodes; } @@ -138,7 +138,7 @@ public NodeScanResult(@Nonnull NodeDependencies nodeDependencies) { private static abstract class Task { private final NodePath path; - public Task(@Nonnull NodePath path) { + public Task(@NonNull NodePath path) { this.path = Objects.requireNonNull(path); } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/RootNode.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/RootNode.java index 1876b6ee3d..fee77a0ad8 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/RootNode.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/RootNode.java @@ -1,11 +1,13 @@ package com.vaadin.hilla.parser.core; -import javax.annotation.Nonnull; +import java.util.List; + +import org.jspecify.annotations.NonNull; import io.swagger.v3.oas.models.OpenAPI; -public final class RootNode extends AbstractNode { - RootNode(@Nonnull ScanResult source, @Nonnull OpenAPI target) { +public final class RootNode extends AbstractNode>, OpenAPI> { + RootNode(@NonNull List> source, @NonNull OpenAPI target) { super(source, target); } } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/ScanResult.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/ScanResult.java deleted file mode 100644 index b009590471..0000000000 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/core/ScanResult.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.vaadin.hilla.parser.core; - -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import io.github.classgraph.ClassInfo; - -public class ScanResult { - private final io.github.classgraph.ScanResult result; - - public ScanResult(io.github.classgraph.ScanResult result) { - this.result = result; - } - - public io.github.classgraph.ScanResult get() { - return result; - } - - public List> getClassesWithAnnotation(String... annotations) { - Stream c = Stream.of(annotations) - .flatMap(annotation -> result - .getClassesWithAnnotation(annotation).stream()); - return c.map(ClassInfo::loadClass).toList(); - } -} diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/AnnotatedAbstractModel.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/AnnotatedAbstractModel.java index fdd1e50463..d54399bdf3 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/AnnotatedAbstractModel.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/AnnotatedAbstractModel.java @@ -6,7 +6,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import io.github.classgraph.AnnotationInfo; @@ -14,7 +14,7 @@ public abstract class AnnotatedAbstractModel implements AnnotatedModel { private List annotations; protected static List processAnnotations( - @Nonnull Annotation[] annotations) { + @NonNull Annotation[] annotations) { return Arrays.stream(annotations).map(AnnotationInfoModel::of) .collect(Collectors.toList()); } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/AnnotationInfoModel.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/AnnotationInfoModel.java index 0f505c9bdb..5cc227f85b 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/AnnotationInfoModel.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/AnnotationInfoModel.java @@ -5,7 +5,7 @@ import java.util.Optional; import java.util.Set; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import io.github.classgraph.AnnotationInfo; @@ -14,11 +14,11 @@ public abstract class AnnotationInfoModel implements Model, NamedModel { private Set parameters; @Deprecated - public static AnnotationInfoModel of(@Nonnull AnnotationInfo origin) { + public static AnnotationInfoModel of(@NonNull AnnotationInfo origin) { return new AnnotationInfoSourceModel(Objects.requireNonNull(origin)); } - public static AnnotationInfoModel of(@Nonnull Annotation origin) { + public static AnnotationInfoModel of(@NonNull Annotation origin) { return new AnnotationInfoReflectionModel( Objects.requireNonNull(origin)); } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/AnnotationParameterEnumValueModel.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/AnnotationParameterEnumValueModel.java index 7cb2c3a965..44a579bf35 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/AnnotationParameterEnumValueModel.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/AnnotationParameterEnumValueModel.java @@ -2,7 +2,7 @@ import java.util.Objects; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import io.github.classgraph.AnnotationEnumValue; @@ -11,13 +11,13 @@ public abstract class AnnotationParameterEnumValueModel implements Model { @Deprecated public static AnnotationParameterEnumValueModel of( - @Nonnull AnnotationEnumValue origin) { + @NonNull AnnotationEnumValue origin) { return new AnnotationParameterEnumValueSourceModel( Objects.requireNonNull(origin)); } public static AnnotationParameterEnumValueModel of( - @Nonnull Enum origin) { + @NonNull Enum origin) { return new AnnotationParameterEnumValueReflectionModel( Objects.requireNonNull(origin)); } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/AnnotationParameterModel.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/AnnotationParameterModel.java index 295ba112f8..0c30e297b1 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/AnnotationParameterModel.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/AnnotationParameterModel.java @@ -2,28 +2,28 @@ import java.util.Objects; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import io.github.classgraph.AnnotationParameterValue; public abstract class AnnotationParameterModel implements Model, NamedModel { private Object value; - public static AnnotationParameterModel of(@Nonnull String name, - @Nonnull Object value, boolean isDefault) { + public static AnnotationParameterModel of(@NonNull String name, + @NonNull Object value, boolean isDefault) { return of(new ReflectionOrigin<>(Objects.requireNonNull(name), Objects.requireNonNull(value), isDefault)); } public static AnnotationParameterModel of( - @Nonnull ReflectionOrigin origin) { + @NonNull ReflectionOrigin origin) { return new AnnotationParameterReflectionModel<>( Objects.requireNonNull(origin)); } @Deprecated public static AnnotationParameterModel of( - @Nonnull AnnotationParameterValue origin) { + @NonNull AnnotationParameterValue origin) { return new AnnotationParameterSourceModel( Objects.requireNonNull(origin)); } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/ArraySignatureModel.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/ArraySignatureModel.java index 7ba50abf6c..f373eca272 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/ArraySignatureModel.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/ArraySignatureModel.java @@ -3,7 +3,7 @@ import java.lang.reflect.AnnotatedArrayType; import java.util.Objects; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import io.github.classgraph.ArrayTypeSignature; @@ -12,11 +12,11 @@ public abstract class ArraySignatureModel extends AnnotatedAbstractModel private SignatureModel nestedType; @Deprecated - public static ArraySignatureModel of(@Nonnull ArrayTypeSignature origin) { + public static ArraySignatureModel of(@NonNull ArrayTypeSignature origin) { return new ArraySignatureSourceModel(Objects.requireNonNull(origin)); } - public static ArraySignatureModel of(@Nonnull AnnotatedArrayType origin) { + public static ArraySignatureModel of(@NonNull AnnotatedArrayType origin) { return new ArraySignatureReflectionModel( Objects.requireNonNull(origin)); } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/BaseSignatureModel.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/BaseSignatureModel.java index f8c09c8ecb..580b0c2c5f 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/BaseSignatureModel.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/BaseSignatureModel.java @@ -3,22 +3,22 @@ import java.lang.reflect.AnnotatedType; import java.util.Objects; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import io.github.classgraph.BaseTypeSignature; public abstract class BaseSignatureModel extends AnnotatedAbstractModel implements SignatureModel { @Deprecated - public static BaseSignatureModel of(@Nonnull BaseTypeSignature origin) { + public static BaseSignatureModel of(@NonNull BaseTypeSignature origin) { return new BaseSignatureSourceModel(Objects.requireNonNull(origin)); } - public static BaseSignatureModel of(@Nonnull AnnotatedType origin) { + public static BaseSignatureModel of(@NonNull AnnotatedType origin) { return new BaseSignatureReflectionModel(Objects.requireNonNull(origin)); } - public static BaseSignatureModel of(@Nonnull Class origin) { + public static BaseSignatureModel of(@NonNull Class origin) { return new BaseSignatureReflectionModel.Bare( Objects.requireNonNull(origin)); } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/ClassInfoModel.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/ClassInfoModel.java index 010634729c..3df04af3dd 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/ClassInfoModel.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/ClassInfoModel.java @@ -6,6 +6,8 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; +import java.time.OffsetDateTime; +import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; @@ -15,7 +17,7 @@ import java.util.Optional; import java.util.function.BiPredicate; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import io.github.classgraph.ClassInfo; @@ -27,7 +29,8 @@ public abstract class ClassInfoModel extends AnnotatedAbstractModel private static final Class[] DATE_CLASSES = { Date.class, LocalDate.class }; private static final Class[] DATE_TIME_CLASSES = { LocalDateTime.class, - Instant.class, LocalTime.class }; + Instant.class, LocalTime.class, OffsetDateTime.class, + ZonedDateTime.class }; private List fields; private List innerClasses; private List interfaces; @@ -206,11 +209,11 @@ public static boolean isNonJDKClass(AnnotatedType cls) { } @Deprecated - public static ClassInfoModel of(@Nonnull ClassInfo origin) { + public static ClassInfoModel of(@NonNull ClassInfo origin) { return new ClassInfoSourceModel(Objects.requireNonNull(origin)); } - public static ClassInfoModel of(@Nonnull Class origin) { + public static ClassInfoModel of(@NonNull Class origin) { return new ClassInfoReflectionModel(Objects.requireNonNull(origin)); } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/ClassRefSignatureArtificialModel.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/ClassRefSignatureArtificialModel.java index d992e54246..546e966f4e 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/ClassRefSignatureArtificialModel.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/ClassRefSignatureArtificialModel.java @@ -4,7 +4,7 @@ import java.util.Objects; import java.util.Optional; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; /** * An artificial ClassRefSignatureModel implementation. @@ -14,9 +14,9 @@ final class ClassRefSignatureArtificialModel extends ClassRefSignatureModel { private final ClassInfoModel classInfo; private final List typeArguments; - ClassRefSignatureArtificialModel(@Nonnull ClassInfoModel classInfo, - @Nonnull List typeArguments, - @Nonnull List annotations) { + ClassRefSignatureArtificialModel(@NonNull ClassInfoModel classInfo, + @NonNull List typeArguments, + @NonNull List annotations) { this.classInfo = Objects.requireNonNull(classInfo); this.typeArguments = Objects.requireNonNull(typeArguments); this.annotations = Objects.requireNonNull(annotations); diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/ClassRefSignatureModel.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/ClassRefSignatureModel.java index 093cc69d27..88f340036a 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/ClassRefSignatureModel.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/ClassRefSignatureModel.java @@ -7,7 +7,7 @@ import java.util.Objects; import java.util.Optional; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import io.github.classgraph.ClassInfo; import io.github.classgraph.ClassRefTypeSignature; @@ -80,18 +80,18 @@ public static boolean is(ClassRefTypeSignature actor, String target) { @Deprecated public static ClassRefSignatureModel of( - @Nonnull ClassRefTypeSignature origin) { + @NonNull ClassRefTypeSignature origin) { return Objects.requireNonNull(origin).getSuffixes().size() > 0 ? new ClassRefSignatureSourceModel.Suffixed(origin) : new ClassRefSignatureSourceModel.Regular(origin); } - public static ClassRefSignatureModel of(@Nonnull Class origin) { + public static ClassRefSignatureModel of(@NonNull Class origin) { return new ClassRefSignatureReflectionModel.Bare( Objects.requireNonNull(origin)); } - public static ClassRefSignatureModel of(@Nonnull AnnotatedType origin) { + public static ClassRefSignatureModel of(@NonNull AnnotatedType origin) { return ClassRefSignatureReflectionModel.Annotated .of(Objects.requireNonNull(origin)); } @@ -110,9 +110,9 @@ public static ClassRefSignatureModel of(@Nonnull AnnotatedType origin) { * @deprecated */ @Deprecated - public static ClassRefSignatureModel of(@Nonnull ClassInfoModel classInfo, - @Nonnull List typeArguments, - @Nonnull List annotations) { + public static ClassRefSignatureModel of(@NonNull ClassInfoModel classInfo, + @NonNull List typeArguments, + @NonNull List annotations) { return new ClassRefSignatureArtificialModel(classInfo, typeArguments, annotations); } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/FieldInfoModel.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/FieldInfoModel.java index 4234421554..e3f3dc8646 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/FieldInfoModel.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/FieldInfoModel.java @@ -1,6 +1,6 @@ package com.vaadin.hilla.parser.models; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import java.lang.reflect.Field; import java.util.Objects; @@ -13,11 +13,11 @@ public abstract class FieldInfoModel extends AnnotatedAbstractModel private SignatureModel type; @Deprecated - public static FieldInfoModel of(@Nonnull FieldInfo origin) { + public static FieldInfoModel of(@NonNull FieldInfo origin) { return new FieldInfoSourceModel(Objects.requireNonNull(origin)); } - public static FieldInfoModel of(@Nonnull Field origin) { + public static FieldInfoModel of(@NonNull Field origin) { return new FieldInfoReflectionModel(Objects.requireNonNull(origin)); } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/MethodInfoModel.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/MethodInfoModel.java index 93fb59bc0d..10f8e75af6 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/MethodInfoModel.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/MethodInfoModel.java @@ -7,7 +7,7 @@ import java.util.List; import java.util.Objects; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import io.github.classgraph.MethodInfo; @@ -21,11 +21,11 @@ public abstract class MethodInfoModel extends AnnotatedAbstractModel private List typeParameters; @Deprecated - public static MethodInfoModel of(@Nonnull MethodInfo origin) { + public static MethodInfoModel of(@NonNull MethodInfo origin) { return new MethodInfoSourceModel(Objects.requireNonNull(origin)); } - public static MethodInfoModel of(@Nonnull Executable origin) { + public static MethodInfoModel of(@NonNull Executable origin) { return Objects.requireNonNull(origin) instanceof Constructor ? new MethodInfoReflectionModel.Constructor( (Constructor) origin) diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/MethodParameterInfoModel.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/MethodParameterInfoModel.java index 39163533d2..90401c0d8f 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/MethodParameterInfoModel.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/MethodParameterInfoModel.java @@ -3,7 +3,7 @@ import java.lang.reflect.Parameter; import java.util.Objects; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import io.github.classgraph.MethodParameterInfo; @@ -15,12 +15,12 @@ public abstract class MethodParameterInfoModel extends AnnotatedAbstractModel @Deprecated public static MethodParameterInfoModel of( - @Nonnull MethodParameterInfo origin) { + @NonNull MethodParameterInfo origin) { return new MethodParameterInfoSourceModel( Objects.requireNonNull(origin)); } - public static MethodParameterInfoModel of(@Nonnull Parameter origin) { + public static MethodParameterInfoModel of(@NonNull Parameter origin) { return new MethodParameterInfoReflectionModel( Objects.requireNonNull(origin)); } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/SignatureModel.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/SignatureModel.java index e6459997a5..b39f7dafe8 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/SignatureModel.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/SignatureModel.java @@ -8,7 +8,7 @@ import java.lang.reflect.AnnotatedWildcardType; import java.lang.reflect.TypeVariable; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import io.github.classgraph.ArrayTypeSignature; import io.github.classgraph.BaseTypeSignature; @@ -21,7 +21,7 @@ public interface SignatureModel extends Model, SpecializedModel, AnnotatedModel { @Deprecated - static SignatureModel of(@Nonnull HierarchicalTypeSignature signature) { + static SignatureModel of(@NonNull HierarchicalTypeSignature signature) { if (signature instanceof BaseTypeSignature) { return BaseSignatureModel.of((BaseTypeSignature) signature); } else if (signature instanceof ArrayTypeSignature) { @@ -37,7 +37,7 @@ static SignatureModel of(@Nonnull HierarchicalTypeSignature signature) { } } - static SignatureModel of(@Nonnull AnnotatedElement signature) { + static SignatureModel of(@NonNull AnnotatedElement signature) { if (signature instanceof AnnotatedParameterizedType) { return ClassRefSignatureModel .of((AnnotatedParameterizedType) signature); diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/TypeArgumentModel.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/TypeArgumentModel.java index 4dd4f78bd0..d307c98475 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/TypeArgumentModel.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/TypeArgumentModel.java @@ -4,7 +4,7 @@ import java.util.List; import java.util.Objects; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import io.github.classgraph.TypeArgument; @@ -13,11 +13,11 @@ public abstract class TypeArgumentModel extends AnnotatedAbstractModel private List associatedTypes; @Deprecated - public static TypeArgumentModel of(@Nonnull TypeArgument origin) { + public static TypeArgumentModel of(@NonNull TypeArgument origin) { return new TypeArgumentSourceModel(Objects.requireNonNull(origin)); } - public static TypeArgumentModel of(@Nonnull AnnotatedType origin) { + public static TypeArgumentModel of(@NonNull AnnotatedType origin) { return new TypeArgumentReflectionModel(Objects.requireNonNull(origin)); } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/TypeParameterModel.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/TypeParameterModel.java index ea6bca9d29..81c512000d 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/TypeParameterModel.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/TypeParameterModel.java @@ -4,7 +4,7 @@ import java.util.List; import java.util.Objects; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import io.github.classgraph.TypeParameter; @@ -13,11 +13,11 @@ public abstract class TypeParameterModel extends AnnotatedAbstractModel private List bounds; @Deprecated - public static TypeParameterModel of(@Nonnull TypeParameter origin) { + public static TypeParameterModel of(@NonNull TypeParameter origin) { return new TypeParameterSourceModel(Objects.requireNonNull(origin)); } - public static TypeParameterModel of(@Nonnull TypeVariable origin) { + public static TypeParameterModel of(@NonNull TypeVariable origin) { return new TypeParameterReflectionModel(Objects.requireNonNull(origin)); } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/TypeParameterSourceModel.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/TypeParameterSourceModel.java index 46dfbfe5f7..69690a6136 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/TypeParameterSourceModel.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/TypeParameterSourceModel.java @@ -4,7 +4,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.utils.Streams; @@ -45,7 +45,7 @@ protected List prepareBounds() { .distinct().collect(Collectors.toList()); } - @Nonnull + @NonNull private SignatureModel getClassBoundSignature() { // FIXME: param class bound is sometimes null and sometimes Object. // Possibly a bug in ClassGraph. Use Object to align with reflection. diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/TypeVariableModel.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/TypeVariableModel.java index 84934d90cc..f2ae6b48d1 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/TypeVariableModel.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/TypeVariableModel.java @@ -3,7 +3,7 @@ import java.lang.reflect.AnnotatedTypeVariable; import java.util.Objects; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import io.github.classgraph.TypeVariableSignature; @@ -12,11 +12,11 @@ public abstract class TypeVariableModel extends AnnotatedAbstractModel private TypeParameterModel typeParameter; @Deprecated - public static TypeVariableModel of(@Nonnull TypeVariableSignature origin) { + public static TypeVariableModel of(@NonNull TypeVariableSignature origin) { return new TypeVariableSourceModel(Objects.requireNonNull(origin)); } - public static TypeVariableModel of(@Nonnull AnnotatedTypeVariable origin) { + public static TypeVariableModel of(@NonNull AnnotatedTypeVariable origin) { return new TypeVariableReflectionModel(Objects.requireNonNull(origin)); } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/jackson/JacksonPropertyModel.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/jackson/JacksonPropertyModel.java index d1bceaa401..0614c5812c 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/jackson/JacksonPropertyModel.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/hilla/parser/models/jackson/JacksonPropertyModel.java @@ -21,7 +21,7 @@ import com.vaadin.hilla.parser.models.ReflectionModel; import com.vaadin.hilla.parser.models.SignatureModel; -import jakarta.annotation.Nonnull; +import org.jspecify.annotations.NonNull; public final class JacksonPropertyModel extends JacksonModel @@ -39,7 +39,7 @@ private JacksonPropertyModel(BeanPropertyDefinition origin) { } public static JacksonPropertyModel of( - @Nonnull BeanPropertyDefinition origin) { + @NonNull BeanPropertyDefinition origin) { return new JacksonPropertyModel(Objects.requireNonNull(origin)); } diff --git a/packages/java/parser-jvm-core/src/main/java/module-info.java b/packages/java/parser-jvm-core/src/main/java/module-info.java index f8dc6003fb..acf1f5276b 100644 --- a/packages/java/parser-jvm-core/src/main/java/module-info.java +++ b/packages/java/parser-jvm-core/src/main/java/module-info.java @@ -5,7 +5,7 @@ requires io.github.classgraph; requires io.swagger.v3.core; requires io.swagger.v3.oas.models; - requires jsr305; + requires org.jspecify; requires jakarta.annotation; requires org.slf4j; diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/ParserConfigTests.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/ParserConfigTests.java index 71573d7f1a..96259eb387 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/ParserConfigTests.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/ParserConfigTests.java @@ -6,6 +6,11 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.IOException; +import java.lang.annotation.Annotation; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.net.URISyntaxException; import java.nio.file.Path; import java.util.ArrayList; @@ -13,7 +18,7 @@ import java.util.Set; import java.util.function.Consumer; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -26,33 +31,47 @@ import io.swagger.v3.oas.models.servers.Server; public class ParserConfigTests { + @Target(ElementType.TYPE) + @Retention(RetentionPolicy.RUNTIME) + public @interface BrowserCallable { + } + + @Target(ElementType.TYPE) + @Retention(RetentionPolicy.RUNTIME) + public @interface Endpoint { + } + + @Target(ElementType.TYPE) + @Retention(RetentionPolicy.RUNTIME) + public @interface EndpointExposed { + } + private final ResourceLoader resourceLoader = new ResourceLoader( getClass()); private Set defaultClassPathElements; - private String defaultEndpointAnnotationName; - private String defaultEndpointExposedAnnotationName; + private List> defaultEndpointAnnotations; + private List> defaultEndpointExposedAnnotations; private OpenAPI defaultOpenAPI; private Parser parser; private Path targetDir; @BeforeEach public void setup() throws URISyntaxException { - defaultEndpointAnnotationName = "com.vaadin.hilla.Endpoint"; + defaultEndpointAnnotations = List.of(BrowserCallable.class, + Endpoint.class); targetDir = resourceLoader.findTargetDirPath(); defaultClassPathElements = Set.of(targetDir.toString()); - defaultEndpointExposedAnnotationName = "com.vaadin.hilla.EndpointExposed"; + defaultEndpointExposedAnnotations = List.of(EndpointExposed.class); defaultOpenAPI = new OpenAPI() .info(new Info().title("Hilla Application").version("1.0.0")) .servers(List .of(new Server().url("http://localhost:8080/connect") .description("Hilla Backend"))) .paths(new Paths()); - parser = new Parser().classLoader(getClass().getClassLoader()) - .classPath(defaultClassPathElements) - .endpointAnnotation(defaultEndpointAnnotationName) - .endpointExposedAnnotation( - defaultEndpointExposedAnnotationName); + parser = new Parser().classPath(defaultClassPathElements) + .endpointAnnotations(defaultEndpointAnnotations) + .endpointExposedAnnotations(defaultEndpointExposedAnnotations); } @Test @@ -105,7 +124,8 @@ public void should_AllowAdjustingOpenAPI() { @Test public void should_AllowPreservingAlreadySetProperties() { var config = parser.classPath(List.of("somepath"), false) - .endpointAnnotation("com.example.Endpoint", false).getConfig(); + .endpointAnnotations(List.of(Endpoint.class), false) + .getConfig(); assertEquals(defaultClassPathElements, config.getClassPathElements()); } @@ -115,10 +135,10 @@ public void should_CreateConfigWithDefaultParameters() { var config = parser.getConfig(); assertEquals(defaultClassPathElements, config.getClassPathElements()); - assertEquals(defaultEndpointAnnotationName, - config.getEndpointAnnotationName()); - assertEquals(defaultEndpointExposedAnnotationName, - config.getEndpointExposedAnnotationName()); + assertEquals(defaultEndpointAnnotations, + config.getEndpointAnnotations()); + assertEquals(defaultEndpointExposedAnnotations, + config.getEndpointExposedAnnotations()); assertEquals(defaultOpenAPI, config.getOpenAPI()); assertEquals(List.of(), new ArrayList<>(config.getPlugins())); } @@ -135,31 +155,20 @@ public void should_ParseYAMLOpenAPISource() testOpenAPISourceFile("openapi-base.yml", OpenAPIFileType.YAML); } - @Test - public void should_ThrowError_When_ClassLoaderIsNotSet() { - var e = assertThrows(NullPointerException.class, - () -> new Parser().classPath(defaultClassPathElements) - .endpointAnnotation(defaultEndpointAnnotationName) - .execute()); - assertEquals("[JVM Parser] classLoader is not provided.", - e.getMessage()); - } - @Test public void should_ThrowError_When_ClassPathIsNotSet() { var e = assertThrows(NullPointerException.class, - () -> new Parser().classLoader(getClass().getClassLoader()) - .endpointAnnotation(defaultEndpointAnnotationName) - .execute()); + () -> new Parser() + .endpointAnnotations(defaultEndpointAnnotations) + .execute(List.of())); assertEquals("[JVM Parser] classPath is not provided.", e.getMessage()); } @Test - public void should_ThrowError_When_EndpointAnnotationNameIsNotSet() { - var e = assertThrows(NullPointerException.class, - () -> new Parser().classLoader(getClass().getClassLoader()) - .classPath(defaultClassPathElements).execute()); - assertEquals("[JVM Parser] endpointAnnotationName is not provided.", + public void should_ThrowError_When_EndpointAnnotationsIsNotSet() { + var e = assertThrows(IllegalArgumentException.class, () -> new Parser() + .classPath(defaultClassPathElements).execute(List.of())); + assertEquals("[JVM Parser] endpoint annotations are not provided.", e.getMessage()); } @@ -194,10 +203,10 @@ public void enter(NodePath nodePath) { public void exit(NodePath nodePath) { } - @Nonnull + @NonNull @Override public NodeDependencies scan( - @Nonnull NodeDependencies nodeDependencies) { + @NonNull NodeDependencies nodeDependencies) { return nodeDependencies; } } @@ -214,10 +223,10 @@ public void enter(NodePath nodePath) { public void exit(NodePath nodePath) { } - @Nonnull + @NonNull @Override public NodeDependencies scan( - @Nonnull NodeDependencies nodeDependencies) { + @NonNull NodeDependencies nodeDependencies) { return nodeDependencies; } } @@ -237,10 +246,10 @@ public void enter(NodePath nodePath) { public void exit(NodePath nodePath) { } - @Nonnull + @NonNull @Override public NodeDependencies scan( - @Nonnull NodeDependencies nodeDependencies) { + @NonNull NodeDependencies nodeDependencies) { return nodeDependencies; } } diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/AddPlugin.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/AddPlugin.java index c649827b36..5bc6686c46 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/AddPlugin.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/AddPlugin.java @@ -7,7 +7,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractPlugin; import com.vaadin.hilla.parser.core.NodeDependencies; @@ -30,17 +30,14 @@ public void enter(NodePath nodePath) { public void exit(NodePath nodePath) { } - @Nonnull + @NonNull @Override - public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { + public NodeDependencies scan(@NonNull NodeDependencies nodeDependencies) { var node = nodeDependencies.getNode(); if (node instanceof RootNode) { var rootNode = (RootNode) node; - var endpoints = rootNode.getSource() - .getClassesWithAnnotation(getStorage().getParserConfig() - .getEndpointAnnotationName()) - .stream().map(ClassInfoModel::of) - .collect(Collectors.toList()); + var endpoints = rootNode.getSource().stream() + .map(ClassInfoModel::of).collect(Collectors.toList()); return nodeDependencies .appendChildNodes(endpoints.stream().map(EndpointNode::of)) .appendRelatedNodes(endpoints.stream() diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/BasicTests.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/BasicTests.java index cbe801c631..5275ca0694 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/BasicTests.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/BasicTests.java @@ -15,31 +15,28 @@ public class BasicTests { private static final List STEPS = new LinkedList<>(); static { - STEPS.add("-> Root(ScanResult)"); - STEPS.add("-> Root(ScanResult)/Endpoint(BasicEndpoint)"); - STEPS.add("-> Root(ScanResult)/Endpoint(BasicEndpoint)/Field(foo)"); - STEPS.add("<- Root(ScanResult)/Endpoint(BasicEndpoint)/Field(foo)"); - STEPS.add( - "-> Root(ScanResult)/Endpoint(BasicEndpoint)/Field(fieldFoo)"); - STEPS.add( - "<- Root(ScanResult)/Endpoint(BasicEndpoint)/Field(fieldFoo)"); - STEPS.add( - "-> Root(ScanResult)/Endpoint(BasicEndpoint)/Field(fieldBar)"); - STEPS.add( - "<- Root(ScanResult)/Endpoint(BasicEndpoint)/Field(fieldBar)"); - STEPS.add("<- Root(ScanResult)/Endpoint(BasicEndpoint)"); - STEPS.add("-> Root(ScanResult)/Entity(Sample)"); - STEPS.add("-> Root(ScanResult)/Entity(Sample)/Method(methodFoo)"); - STEPS.add("<- Root(ScanResult)/Entity(Sample)/Method(methodFoo)"); - STEPS.add("-> Root(ScanResult)/Entity(Sample)/Method(methodBar)"); - STEPS.add("<- Root(ScanResult)/Entity(Sample)/Method(methodBar)"); - STEPS.add("<- Root(ScanResult)/Entity(Sample)"); - STEPS.add("<- Root(ScanResult)"); + STEPS.add("-> Root(List)"); + STEPS.add("-> Root(List)/Endpoint(BasicEndpoint)"); + STEPS.add("-> Root(List)/Endpoint(BasicEndpoint)/Field(foo)"); + STEPS.add("<- Root(List)/Endpoint(BasicEndpoint)/Field(foo)"); + STEPS.add("-> Root(List)/Endpoint(BasicEndpoint)/Field(fieldFoo)"); + STEPS.add("<- Root(List)/Endpoint(BasicEndpoint)/Field(fieldFoo)"); + STEPS.add("-> Root(List)/Endpoint(BasicEndpoint)/Field(fieldBar)"); + STEPS.add("<- Root(List)/Endpoint(BasicEndpoint)/Field(fieldBar)"); + STEPS.add("<- Root(List)/Endpoint(BasicEndpoint)"); + STEPS.add("-> Root(List)/Entity(Sample)"); + STEPS.add("-> Root(List)/Entity(Sample)/Method(methodFoo)"); + STEPS.add("<- Root(List)/Entity(Sample)/Method(methodFoo)"); + STEPS.add("-> Root(List)/Entity(Sample)/Method(methodBar)"); + STEPS.add("<- Root(List)/Entity(Sample)/Method(methodBar)"); + STEPS.add("<- Root(List)/Entity(Sample)"); + STEPS.add("<- Root(List)"); } private final List classPath; private final ResourceLoader resourceLoader = new ResourceLoader( getClass()); + private final List> endpoints = List.of(BasicEndpoint.class); { try { @@ -51,21 +48,25 @@ public class BasicTests { @Test public void should_TraverseInConsistentOrder() { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) - .classPath(classPath) - .endpointAnnotation(Endpoint.class.getName()) - .addPlugin(new BasicPlugin()).execute(); + var openAPI = new Parser().classPath(classPath) + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) + .addPlugin(new BasicPlugin()).execute(endpoints); + // The list of endpoints seems to be serialized as "List12". The + // replacement tries to accommodate for similar representations. assertEquals(String.join("\n", STEPS), - openAPI.getExtensions().get(BasicPlugin.FOOTSTEPS_STORAGE_KEY)); + ((String) openAPI.getExtensions() + .get(BasicPlugin.FOOTSTEPS_STORAGE_KEY)) + .replaceAll("List\\w*", "List")); } @Test public void should_UpdateNodesAndCollectNames() { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) - .classPath(classPath) - .endpointAnnotation(Endpoint.class.getName()) - .addPlugin(new BasicPlugin()).execute(); + var openAPI = new Parser().classPath(classPath) + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) + .addPlugin(new BasicPlugin()).execute(endpoints); assertEquals(String.join(", ", List.of("FieldInfoModel foo", "FieldInfoModel fieldFoo", diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/FinalizePlugin.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/FinalizePlugin.java index fdde4dece3..b764fd4b06 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/FinalizePlugin.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/FinalizePlugin.java @@ -3,7 +3,7 @@ import java.util.ArrayList; import java.util.List; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractPlugin; import com.vaadin.hilla.parser.core.NodeDependencies; @@ -45,9 +45,9 @@ public void exit(NodePath nodePath) { } } - @Nonnull + @NonNull @Override - public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { + public NodeDependencies scan(@NonNull NodeDependencies nodeDependencies) { return nodeDependencies; } } diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/RemovePlugin.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/RemovePlugin.java index a943bb893d..c3d0afca11 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/RemovePlugin.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/RemovePlugin.java @@ -2,7 +2,7 @@ import java.util.stream.Stream; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractPlugin; import com.vaadin.hilla.parser.core.Node; @@ -22,9 +22,9 @@ public void exit(NodePath nodePath) { } - @Nonnull + @NonNull @Override - public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { + public NodeDependencies scan(@NonNull NodeDependencies nodeDependencies) { return nodeDependencies.processRelatedNodes(this::removeBazEntity); } diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/ReplacePlugin.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/ReplacePlugin.java index 9406c94491..60dceda0cd 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/ReplacePlugin.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/basic/ReplacePlugin.java @@ -2,7 +2,7 @@ import java.util.stream.Stream; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractPlugin; import com.vaadin.hilla.parser.core.Node; @@ -25,9 +25,9 @@ public void exit(NodePath nodePath) { } - @Nonnull + @NonNull @Override - public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { + public NodeDependencies scan(@NonNull NodeDependencies nodeDependencies) { var node = nodeDependencies.getNode(); if (node instanceof EndpointNode) { return nodeDependencies.processChildNodes(this::removeBarMethod) @@ -37,7 +37,7 @@ public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { } } - @Nonnull + @NonNull private Stream> getReplacementFields() { try { return Stream @@ -49,9 +49,9 @@ public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { } } - @Nonnull + @NonNull private Stream> removeBarMethod( - @Nonnull Stream> nodes) { + @NonNull Stream> nodes) { return nodes.filter(node -> !((node instanceof MethodNode) && ((MethodNode) node).getSource().getName().equals("bar"))); } diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/DependencyEntityThree.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/DependencyEntityThree.java index 67db62038b..e53d14edd3 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/DependencyEntityThree.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/DependencyEntityThree.java @@ -1,11 +1,11 @@ package com.vaadin.hilla.parser.core.dependency; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; public class DependencyEntityThree { private String foo3 = "foo3"; - @Nonnull + @NonNull public String getFoo3() { return foo3; } diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/DependencyEntityTwo.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/DependencyEntityTwo.java index 8573d29bcc..daa03fb196 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/DependencyEntityTwo.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/DependencyEntityTwo.java @@ -1,11 +1,11 @@ package com.vaadin.hilla.parser.core.dependency; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; public class DependencyEntityTwo { public DependencyEntityOne foo2; - @Nonnull + @NonNull public DependencyEntityOne circular() { return foo2; } diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/DependencyPlugin.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/DependencyPlugin.java index 5836b55ed1..b4eabd81b2 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/DependencyPlugin.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/DependencyPlugin.java @@ -7,7 +7,7 @@ import java.util.Optional; import java.util.stream.Stream; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractPlugin; import com.vaadin.hilla.parser.core.NodeDependencies; @@ -63,15 +63,13 @@ public void exit(NodePath nodePath) { } } - @Nonnull + @NonNull @Override - public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { + public NodeDependencies scan(@NonNull NodeDependencies nodeDependencies) { var node = nodeDependencies.getNode(); if (node instanceof RootNode) { var rootNode = (RootNode) node; return nodeDependencies.appendChildNodes(rootNode.getSource() - .getClassesWithAnnotation(getStorage().getParserConfig() - .getEndpointAnnotationName()) .stream().map(ClassInfoModel::of).map(EndpointNode::of)); } else if ((node instanceof EndpointNode)) { var cls = (ClassInfoModel) node.getSource(); diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/DependencyTests.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/DependencyTests.java index 39146ad837..323cdb728c 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/DependencyTests.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/DependencyTests.java @@ -18,6 +18,8 @@ public class DependencyTests { private static final List classPath; private static final ResourceLoader resourceLoader = new ResourceLoader( DependencyTests.class); + private static final List> endpoints = List + .of(DependencyEndpoint.class); private static OpenAPI openApi; static { @@ -30,11 +32,10 @@ public class DependencyTests { @BeforeAll public static void setUp() { - openApi = new Parser() - .classLoader(DependencyTests.class.getClassLoader()) - .classPath(classPath) - .endpointAnnotation(Endpoint.class.getName()) - .addPlugin(new DependencyPlugin()).execute(); + openApi = new Parser().classPath(classPath) + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) + .addPlugin(new DependencyPlugin()).execute(endpoints); } @Test diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/PluginDependencyEntity.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/PluginDependencyEntity.java index a1b047d1af..bd4200b5c0 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/PluginDependencyEntity.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/dependency/PluginDependencyEntity.java @@ -1,11 +1,11 @@ package com.vaadin.hilla.parser.core.dependency; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; public class PluginDependencyEntity { private String pluginDependencyField = "foo"; - @Nonnull + @NonNull public String getPluginDependencyField() { return pluginDependencyField; } diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/security/classlevel/EndpointExposedAndSecurityAnnotationTest.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/security/classlevel/EndpointExposedAndSecurityAnnotationTest.java index 8ac1e0bc11..1d205a04cd 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/security/classlevel/EndpointExposedAndSecurityAnnotationTest.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/security/classlevel/EndpointExposedAndSecurityAnnotationTest.java @@ -19,6 +19,7 @@ public class EndpointExposedAndSecurityAnnotationTest { private final List classPath; private final ResourceLoader resourceLoader = new ResourceLoader( getClass()); + private final List> endpoints = List.of(SomeEndpoint.class); { try { @@ -30,13 +31,12 @@ public class EndpointExposedAndSecurityAnnotationTest { @Test public void throws_when_parentEndpointClass_annotatedWithSecurityAnnotations() { - var exception = assertThrows(ParserException.class, () -> new Parser() - .classLoader(getClass().getClassLoader()).classPath(classPath) - .exposedPackages(Set - .of("com.vaadin.hilla.parser.core.security.classlevel")) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) - .execute()); + var exception = assertThrows(ParserException.class, + () -> new Parser().classPath(classPath) + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations( + List.of(EndpointExposed.class)) + .execute(endpoints)); assertTrue(exception.getMessage().startsWith( "Class `com.vaadin.hilla.parser.core.security.classlevel.ParentEndpoint` is annotated with `com.vaadin.hilla.parser.core.security.EndpointExposed` and `jakarta.annotation.security.RolesAllowed` annotation.")); diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/security/methodlevel/EndpointExposedMethodAndSecurityAnnotationTest.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/security/methodlevel/EndpointExposedMethodAndSecurityAnnotationTest.java index 1b78ced2a9..816a90157b 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/security/methodlevel/EndpointExposedMethodAndSecurityAnnotationTest.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/core/security/methodlevel/EndpointExposedMethodAndSecurityAnnotationTest.java @@ -19,6 +19,7 @@ public class EndpointExposedMethodAndSecurityAnnotationTest { private final List classPath; private final ResourceLoader resourceLoader = new ResourceLoader( getClass()); + private final List> endpoints = List.of(AnotherEndpoint.class); { try { @@ -30,13 +31,12 @@ public class EndpointExposedMethodAndSecurityAnnotationTest { @Test public void throws_when_parentEndpointMethod_annotatedWithSecurityAnnotations() { - var exception = assertThrows(ParserException.class, () -> new Parser() - .classLoader(getClass().getClassLoader()).classPath(classPath) - .exposedPackages(Set.of( - "com.vaadin.hilla.parser.core.security.methodlevel")) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) - .execute()); + var exception = assertThrows(ParserException.class, + () -> new Parser().classPath(classPath) + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations( + List.of(EndpointExposed.class)) + .execute(endpoints)); assertTrue(exception.getMessage().startsWith( "Class `com.vaadin.hilla.parser.core.security.methodlevel.ParentEndpoint` is annotated with `com.vaadin.hilla.parser.core.security.EndpointExposed` and `jakarta.annotation.security.RolesAllowed` annotation.")); diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/models/ClassRefSignatureModelTests.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/models/ClassRefSignatureModelTests.java index 526e59793a..5050a0f9fa 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/models/ClassRefSignatureModelTests.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/models/ClassRefSignatureModelTests.java @@ -20,7 +20,9 @@ import java.lang.reflect.ParameterizedType; import java.math.BigDecimal; import java.math.BigInteger; +import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.OffsetDateTime; import java.util.Date; import java.util.List; import java.util.Map; @@ -389,8 +391,12 @@ static final class Specialized implements ArgumentsProvider { "isInteger", "isClassRef", "isJDKClass"), entry(Date.class.getName(), "isDate", "isClassRef", "isJDKClass"), + entry(LocalDate.class.getName(), "isDate", + "isClassRef", "isJDKClass"), entry(LocalDateTime.class.getName(), "isDateTime", "isClassRef", "isJDKClass"), + entry(OffsetDateTime.class.getName(), "isDateTime", + "isClassRef", "isJDKClass"), entry(Map.class.getName(), "isMap", "isClassRef", "isJDKClass"), entry(Object.class.getName(), "isNativeObject", diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/EndpointNode.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/EndpointNode.java index 8dc02a8524..53c81a0a4e 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/EndpointNode.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/EndpointNode.java @@ -1,18 +1,18 @@ package com.vaadin.hilla.parser.test.nodes; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractNode; import com.vaadin.hilla.parser.models.ClassInfoModel; import io.swagger.v3.oas.models.tags.Tag; public final class EndpointNode extends AbstractNode { - private EndpointNode(@Nonnull ClassInfoModel value, @Nonnull Tag schema) { + private EndpointNode(@NonNull ClassInfoModel value, @NonNull Tag schema) { super(value, schema); } - @Nonnull - public static EndpointNode of(@Nonnull ClassInfoModel cls) { + @NonNull + public static EndpointNode of(@NonNull ClassInfoModel cls) { return new EndpointNode(cls, new Tag()); } } diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/EntityNode.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/EntityNode.java index bfc2fd8643..8052ff74b9 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/EntityNode.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/EntityNode.java @@ -1,6 +1,6 @@ package com.vaadin.hilla.parser.test.nodes; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractNode; import com.vaadin.hilla.parser.models.ClassInfoModel; @@ -8,13 +8,13 @@ import io.swagger.v3.oas.models.media.Schema; public final class EntityNode extends AbstractNode> { - private EntityNode(@Nonnull ClassInfoModel source, - @Nonnull ObjectSchema target) { + private EntityNode(@NonNull ClassInfoModel source, + @NonNull ObjectSchema target) { super(source, target); } - @Nonnull - static public EntityNode of(@Nonnull ClassInfoModel model) { + @NonNull + static public EntityNode of(@NonNull ClassInfoModel model) { return new EntityNode(model, new ObjectSchema()); } } diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/FieldNode.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/FieldNode.java index 7749238439..111074866b 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/FieldNode.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/FieldNode.java @@ -1,17 +1,17 @@ package com.vaadin.hilla.parser.test.nodes; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractNode; import com.vaadin.hilla.parser.models.FieldInfoModel; public final class FieldNode extends AbstractNode { - private FieldNode(@Nonnull FieldInfoModel source, @Nonnull String target) { + private FieldNode(@NonNull FieldInfoModel source, @NonNull String target) { super(source, target); } - @Nonnull - static public FieldNode of(@Nonnull FieldInfoModel source) { + @NonNull + static public FieldNode of(@NonNull FieldInfoModel source) { return new FieldNode(source, ""); } } diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/MethodNode.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/MethodNode.java index 57b2d67785..be51d3fe4c 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/MethodNode.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/MethodNode.java @@ -1,19 +1,19 @@ package com.vaadin.hilla.parser.test.nodes; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractNode; import com.vaadin.hilla.parser.models.MethodInfoModel; import io.swagger.v3.oas.models.PathItem; public final class MethodNode extends AbstractNode { - private MethodNode(@Nonnull MethodInfoModel source, - @Nonnull PathItem target) { + private MethodNode(@NonNull MethodInfoModel source, + @NonNull PathItem target) { super(source, target); } - @Nonnull - static public MethodNode of(@Nonnull MethodInfoModel model) { + @NonNull + static public MethodNode of(@NonNull MethodInfoModel model) { return new MethodNode(model, new PathItem()); } } diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/MethodParameterNode.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/MethodParameterNode.java index f38aef4203..e77220733d 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/MethodParameterNode.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/MethodParameterNode.java @@ -1,20 +1,20 @@ package com.vaadin.hilla.parser.test.nodes; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractNode; import com.vaadin.hilla.parser.models.MethodParameterInfoModel; public final class MethodParameterNode extends AbstractNode { - private MethodParameterNode(@Nonnull MethodParameterInfoModel source, + private MethodParameterNode(@NonNull MethodParameterInfoModel source, String target) { super(source, target); } - @Nonnull + @NonNull static public MethodParameterNode of( - @Nonnull MethodParameterInfoModel source, @Nonnull String target) { + @NonNull MethodParameterInfoModel source, @NonNull String target) { return new MethodParameterNode(source, target); } } diff --git a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/TypeSignatureNode.java b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/TypeSignatureNode.java index a978428bf0..7564174639 100644 --- a/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/TypeSignatureNode.java +++ b/packages/java/parser-jvm-core/src/test/java/com/vaadin/hilla/parser/test/nodes/TypeSignatureNode.java @@ -1,6 +1,6 @@ package com.vaadin.hilla.parser.test.nodes; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractNode; import com.vaadin.hilla.parser.models.SignatureModel; @@ -8,13 +8,13 @@ public final class TypeSignatureNode extends AbstractNode> { - private TypeSignatureNode(@Nonnull SignatureModel source, - @Nonnull Schema target) { + private TypeSignatureNode(@NonNull SignatureModel source, + @NonNull Schema target) { super(source, target); } - @Nonnull - static public TypeSignatureNode of(@Nonnull SignatureModel source) { + @NonNull + static public TypeSignatureNode of(@NonNull SignatureModel source) { return new TypeSignatureNode(source, new Schema<>()); } } diff --git a/packages/java/parser-jvm-plugin-backbone/pom.xml b/packages/java/parser-jvm-plugin-backbone/pom.xml index 4bf0c65736..0ed996e1cb 100644 --- a/packages/java/parser-jvm-plugin-backbone/pom.xml +++ b/packages/java/parser-jvm-plugin-backbone/pom.xml @@ -7,7 +7,7 @@ com.vaadin hilla-project - 24.5-SNAPSHOT + 24.7-SNAPSHOT ../../../pom.xml @@ -32,8 +32,8 @@ test - com.google.code.findbugs - jsr305 + org.jspecify + jspecify org.junit.jupiter diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/EndpointExposedPlugin.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/EndpointExposedPlugin.java index cbfdf386db..2c094f2590 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/EndpointExposedPlugin.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/EndpointExposedPlugin.java @@ -1,17 +1,16 @@ package com.vaadin.hilla.parser.plugins.backbone; +import java.lang.annotation.Annotation; import java.util.stream.Stream; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractPlugin; import com.vaadin.hilla.parser.core.Node; import com.vaadin.hilla.parser.core.NodeDependencies; import com.vaadin.hilla.parser.core.NodePath; -import com.vaadin.hilla.parser.models.AnnotationInfoModel; import com.vaadin.hilla.parser.models.ClassInfoModel; import com.vaadin.hilla.parser.models.ClassRefSignatureModel; -import com.vaadin.hilla.parser.models.MethodInfoModel; import com.vaadin.hilla.parser.models.SignatureModel; import com.vaadin.hilla.parser.models.TypeArgumentModel; import com.vaadin.hilla.parser.models.TypeParameterModel; @@ -33,10 +32,10 @@ public void enter(NodePath nodePath) { public void exit(NodePath nodePath) { } - @Nonnull + @NonNull @Override - public Node resolve(@Nonnull Node node, - @Nonnull NodePath parentPath) { + public Node resolve(@NonNull Node node, + @NonNull NodePath parentPath) { if (node instanceof MethodNode && parentPath.getNode() instanceof EndpointExposedNode) { return MethodNode.of(((MethodNode) node).getSource()); @@ -54,9 +53,9 @@ public void exit(NodePath nodePath) { (TypeParameterModel) signature, parentPath)); } - @Nonnull + @NonNull @Override - public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { + public NodeDependencies scan(@NonNull NodeDependencies nodeDependencies) { var node = nodeDependencies.getNode(); if (node instanceof EndpointNode || node instanceof EndpointExposedNode @@ -92,16 +91,24 @@ public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { */ private Node createEndpointHierarchyClassNode( ClassInfoModel classInfo) { - var endpointExposedAnnotationName = getStorage().getParserConfig() - .getEndpointExposedAnnotationName(); + var endpointExposedAnnotations = getStorage().getParserConfig() + .getEndpointExposedAnnotations(); var exposed = classInfo.getAnnotations().stream() - .map(AnnotationInfoModel::getName) - .anyMatch(endpointExposedAnnotationName::equals); + .map(annInfo -> ((Annotation) annInfo.get()).annotationType()) + .anyMatch(endpointExposedAnnotations::contains) + || alwaysExpose(classInfo); var classInfoNode = exposed ? EndpointExposedNode.of(classInfo) : EndpointNonExposedNode.of(classInfo); return classInfoNode; } + private boolean alwaysExpose(ClassInfoModel classInfo) { + return classInfo + .is("com.vaadin.flow.spring.data.jpa.CrudRepositoryService") + || classInfo.is( + "com.vaadin.flow.spring.data.jpa.ListRepositoryService"); + } + /** * Replaces generic type parameters used in {@code @EndpointExposed} with * their arguments defined in type signatures of endpoint class hierarchy diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/EndpointPlugin.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/EndpointPlugin.java index f0c86d529c..22e5d5357a 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/EndpointPlugin.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/EndpointPlugin.java @@ -1,11 +1,10 @@ package com.vaadin.hilla.parser.plugins.backbone; +import java.lang.annotation.Annotation; import java.util.Collection; import java.util.Optional; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.models.AnnotationInfoModel; import org.slf4j.Logger; @@ -60,17 +59,13 @@ public void exit(NodePath nodePath) { } } - @Nonnull + @NonNull @Override - public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { + public NodeDependencies scan(@NonNull NodeDependencies nodeDependencies) { if (nodeDependencies.getNode() instanceof RootNode) { var rootNode = (RootNode) nodeDependencies.getNode(); - var endpointAnnotationName = getStorage().getParserConfig() - .getEndpointAnnotationName(); - var endpoints = rootNode.getSource() - .getClassesWithAnnotation(endpointAnnotationName, - "com.vaadin.hilla.BrowserCallable") - .stream().map(ClassInfoModel::of).toList(); + var endpoints = rootNode.getSource().stream() + .map(ClassInfoModel::of).toList(); checkIfJavaCompilerParametersFlagIsEnabled(endpoints); return nodeDependencies.appendChildNodes( endpoints.stream().filter(ClassInfoModel::isNonJDKClass) @@ -80,11 +75,11 @@ public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { } private String getEndpointName(ClassInfoModel endpointCls) { - var endpointAnnotationName = getStorage().getParserConfig() - .getEndpointAnnotationName(); + var endpointAnnotations = getStorage().getParserConfig() + .getEndpointAnnotations(); var endpointAnnotation = endpointCls.getAnnotations().stream() - .filter(annotation -> annotation.getName() - .equals(endpointAnnotationName)) + .filter(annotation -> endpointAnnotations.contains( + ((Annotation) annotation.get()).annotationType())) .findFirst(); return endpointAnnotation.flatMap(this::getEndpointAnnotationValue) .filter(name -> !name.isEmpty()) diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/EntityPlugin.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/EntityPlugin.java index 9283f55394..2dc3e2ef5e 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/EntityPlugin.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/EntityPlugin.java @@ -1,9 +1,11 @@ package com.vaadin.hilla.parser.plugins.backbone; +import java.util.Objects; +import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractPlugin; import com.vaadin.hilla.parser.core.NodeDependencies; @@ -12,6 +14,8 @@ import com.vaadin.hilla.parser.models.ClassInfoModel; import com.vaadin.hilla.parser.models.ClassRefSignatureModel; import com.vaadin.hilla.parser.models.FieldInfoModel; +import com.vaadin.hilla.parser.models.SpecializedModel; +import com.vaadin.hilla.parser.models.TypeParameterModel; import com.vaadin.hilla.parser.plugins.backbone.nodes.EntityNode; import com.vaadin.hilla.parser.plugins.backbone.nodes.TypedNode; @@ -28,8 +32,21 @@ public void enter(NodePath nodePath) { if (nodePath.getNode() instanceof EntityNode) { var entityNode = (EntityNode) nodePath.getNode(); var cls = entityNode.getSource(); - entityNode.setTarget( - cls.isEnum() ? enumSchema(cls) : new ObjectSchema()); + Schema schema = cls.isEnum() ? enumSchema(cls) + : new ObjectSchema(); + entityNode.setTarget(schema); + + // Create an array of schemas for the type parameters + var generics = entityNode.getSource().getTypeParameters().stream() + .filter(tp -> tp.getBounds().stream() + .filter(Objects::nonNull) + .noneMatch(Predicate + .not(SpecializedModel::isNativeObject))) + .map(TypeParameterModel::getName).toList(); + + if (!generics.isEmpty()) { + schema.addExtension("x-type-parameters", generics); + } } } @@ -46,9 +63,9 @@ public void exit(NodePath nodePath) { } } - @Nonnull + @NonNull @Override - public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { + public NodeDependencies scan(@NonNull NodeDependencies nodeDependencies) { if (!(nodeDependencies.getNode() instanceof TypedNode)) { return nodeDependencies; } diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/JsonValuePlugin.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/JsonValuePlugin.java index b65be6fb22..e75847ffaa 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/JsonValuePlugin.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/JsonValuePlugin.java @@ -8,7 +8,8 @@ import com.vaadin.hilla.parser.core.NodePath; import com.vaadin.hilla.parser.models.*; import com.vaadin.hilla.parser.plugins.backbone.nodes.TypeSignatureNode; -import jakarta.annotation.Nonnull; +import com.vaadin.hilla.parser.plugins.backbone.nodes.TypedNode; +import org.jspecify.annotations.NonNull; import java.lang.reflect.Method; import java.util.Arrays; @@ -33,27 +34,27 @@ public void enter(NodePath nodePath) { public void exit(NodePath nodePath) { } - @Nonnull + @NonNull @Override - public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { + public NodeDependencies scan(@NonNull NodeDependencies nodeDependencies) { return nodeDependencies; } - @Nonnull + @NonNull @Override - public Node resolve(@Nonnull Node node, - @Nonnull NodePath parentPath) { - if (node instanceof TypeSignatureNode typeSignatureNode) { - if (typeSignatureNode - .getSource() instanceof ClassRefSignatureModel classRefSignatureModel) { + public Node resolve(@NonNull Node node, + @NonNull NodePath parentPath) { + if (node instanceof TypedNode typedNode) { + if (typedNode + .getType() instanceof ClassRefSignatureModel classRefSignatureModel) { var cls = (Class) classRefSignatureModel.getClassInfo() .get(); // Check if the class has the annotations which qualify for a // value type. If so, replace the type with the corresponding // value type. - Optional valueNode = getValueType(cls) + Optional> valueNode = getValueType(cls) .map(SignatureModel::of).map(TypeSignatureNode::of); - return valueNode.orElse(typeSignatureNode); + return valueNode.orElse(node); } } @@ -68,9 +69,10 @@ private Optional> getValueType(Class cls) { private Optional> findValueType(Class cls) { // First of all, we check that the `@JsonValue` annotation is // used on a method of the class. - var jsonValue = Arrays.stream(cls.getMethods()) + Stream> candidates = Arrays.stream(cls.getMethods()) .filter(method -> method.isAnnotationPresent(JsonValue.class)) - .map(Method::getReturnType).findAny(); + .map(Method::getReturnType); + var jsonValue = candidates.findAny(); // Then we check that the class has a `@JsonCreator` annotation // on a method or on a constructor. This is a basic check, we diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/MethodParameterPlugin.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/MethodParameterPlugin.java index ef9dbd9bf9..d0aa28b050 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/MethodParameterPlugin.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/MethodParameterPlugin.java @@ -4,7 +4,7 @@ import java.util.Optional; import java.util.stream.Stream; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractPlugin; import com.vaadin.hilla.parser.core.Node; @@ -39,9 +39,9 @@ public void enter(NodePath nodePath) { public void exit(NodePath nodePath) { } - @Nonnull + @NonNull @Override - public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { + public NodeDependencies scan(@NonNull NodeDependencies nodeDependencies) { if (nodeDependencies.getNode() instanceof MethodNode) { var methodNode = (MethodNode) nodeDependencies.getNode(); return nodeDependencies diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/MethodPlugin.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/MethodPlugin.java index 727f96f348..732887b5cd 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/MethodPlugin.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/MethodPlugin.java @@ -2,7 +2,7 @@ import java.util.Optional; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractPlugin; import com.vaadin.hilla.parser.core.Node; @@ -72,9 +72,9 @@ public void exit(NodePath nodePath) { endpointNode.getSource().getName()); } - @Nonnull + @NonNull @Override - public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { + public NodeDependencies scan(@NonNull NodeDependencies nodeDependencies) { var node = nodeDependencies.getNode(); if (node instanceof EndpointNode || node instanceof EndpointExposedNode) { diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/PropertyPlugin.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/PropertyPlugin.java index fa4eced256..fe41aef879 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/PropertyPlugin.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/PropertyPlugin.java @@ -1,12 +1,13 @@ package com.vaadin.hilla.parser.plugins.backbone; import java.lang.reflect.InvocationTargetException; -import java.util.Comparator; import java.util.HashMap; import java.util.Objects; import java.util.Set; import java.util.stream.Stream; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.BeanDescription; import com.fasterxml.jackson.databind.MapperFeature; import com.fasterxml.jackson.databind.SerializationConfig; @@ -23,12 +24,17 @@ import com.vaadin.hilla.parser.plugins.backbone.nodes.EntityNode; import com.vaadin.hilla.parser.plugins.backbone.nodes.PropertyNode; -import jakarta.annotation.Nonnull; +import org.jspecify.annotations.NonNull; public final class PropertyPlugin extends AbstractPlugin { private SerializationConfig serializationConfig = new JacksonObjectMapperFactory.Json() - .build().getSerializationConfig(); + .build() + .setVisibility(PropertyAccessor.SETTER, + JsonAutoDetect.Visibility.PUBLIC_ONLY) + .setVisibility(PropertyAccessor.GETTER, + JsonAutoDetect.Visibility.PUBLIC_ONLY) + .getSerializationConfig(); @Override public void enter(NodePath nodePath) { @@ -42,9 +48,9 @@ public void enter(NodePath nodePath) { public void exit(NodePath nodePath) { } - @Nonnull + @NonNull @Override - public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { + public NodeDependencies scan(@NonNull NodeDependencies nodeDependencies) { if (!(nodeDependencies.getNode() instanceof EntityNode)) { return nodeDependencies; } @@ -73,7 +79,7 @@ public void setConfiguration(PluginConfiguration configuration) { } private Stream collectProperties( - @Nonnull ClassInfoModel model) { + @NonNull ClassInfoModel model) { var cls = Objects.requireNonNull(model).get(); if (!(cls instanceof Class)) { @@ -135,6 +141,7 @@ private class PropertyProcessor { public Stream stream() { var properties = description.findProperties().stream() .map(JacksonPropertyModel::of); + properties = filterPrivateProperties(properties); properties = filterSuperClassProperties(properties); properties = filterPropertiesWithIgnoredTypes(properties); @@ -210,6 +217,12 @@ private Stream filterSetterlessGetters( || property.isExplicitlyIncluded()); } + private Stream filterPrivateProperties( + Stream properties) { + return properties.filter( + property -> !property.getAssociatedTypes().isEmpty()); + } + private Stream filterSuperClassProperties( Stream properties) { return properties.filter(property -> property.getOwner() diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/SchemaProcessor.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/SchemaProcessor.java index 73cb8139e9..4f6443b458 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/SchemaProcessor.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/SchemaProcessor.java @@ -8,6 +8,8 @@ import com.vaadin.hilla.parser.models.ClassRefSignatureModel; import com.vaadin.hilla.parser.models.SignatureModel; +import com.vaadin.hilla.parser.models.TypeParameterModel; +import com.vaadin.hilla.parser.models.TypeVariableModel; import io.swagger.v3.oas.models.media.ArraySchema; import io.swagger.v3.oas.models.media.BooleanSchema; import io.swagger.v3.oas.models.media.ComposedSchema; @@ -22,9 +24,20 @@ final class SchemaProcessor { private final SignatureModel type; - - public SchemaProcessor(SignatureModel type) { + private final boolean shouldHandleGenerics; + + /** + * Creates a new configured instance. + * + * @param type + * the type to process + * @param shouldHandleGenerics + * indicates if this processor must deal with generic type + * variables and parameters + */ + public SchemaProcessor(SignatureModel type, boolean shouldHandleGenerics) { this.type = type; + this.shouldHandleGenerics = shouldHandleGenerics; } private static > T nullify(T schema, @@ -55,6 +68,10 @@ public Schema process() { result = dateTimeSchema(); } else if (type.isClassRef()) { result = refSchema(); + } else if (shouldHandleGenerics && type.isTypeVariable()) { + result = typeVariableSchema(); + } else if (shouldHandleGenerics && type.isTypeParameter()) { + result = typeParameterSchema(); } else { result = anySchema(); } @@ -135,4 +152,18 @@ private Schema refSchema() { private Schema stringSchema() { return nullify(new StringSchema(), !type.isPrimitive()); } + + private Schema typeVariableSchema() { + var typeVarModel = (TypeVariableModel) type; + var schema = nullify(new ObjectSchema(), true); + schema.addExtension("x-type-variable", typeVarModel.getName()); + return schema; + } + + private Schema typeParameterSchema() { + var typeParamModel = (TypeParameterModel) type; + var schema = nullify(new ObjectSchema(), true); + schema.addExtension("x-type-variable", typeParamModel.getName()); + return schema; + } } diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/TypeSignaturePlugin.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/TypeSignaturePlugin.java index f510423ae0..4283167efb 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/TypeSignaturePlugin.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/TypeSignaturePlugin.java @@ -9,11 +9,12 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractPlugin; import com.vaadin.hilla.parser.core.NodeDependencies; import com.vaadin.hilla.parser.core.NodePath; +import com.vaadin.hilla.parser.core.RootNode; import com.vaadin.hilla.parser.models.ArraySignatureModel; import com.vaadin.hilla.parser.models.ClassRefSignatureModel; import com.vaadin.hilla.parser.models.ReflectionSignatureModel; @@ -45,11 +46,41 @@ public final class TypeSignaturePlugin public void enter(NodePath nodePath) { if (nodePath.getNode() instanceof TypedNode) { var typedNode = (TypedNode) nodePath.getNode(); - typedNode.setTarget( - new SchemaProcessor(typedNode.getType()).process()); + var schema = new SchemaProcessor(typedNode.getType(), + // Only deal with generics in entities: endpoint methods are + // not allowed to emit generic type parameters and arguments + isInEntity(nodePath)).process(); + + // Prepare a schema for type arguments if the current node is a + // class reference and if its type arguments are not processed + // differently + if (typedNode.getType() instanceof ClassRefSignatureModel) { + var signature = ((ClassRefSignatureModel) typedNode.getType()); + + if (!(signature.isIterable() || signature.isMap() + || signature.isOptional() + || signature.getTypeArguments().isEmpty())) { + schema.addExtension("x-type-arguments", + new ComposedSchema()); + } + } + + typedNode.setTarget(schema); } } + // Checks if the current node is inside an entity + private boolean isInEntity(NodePath nodePath) { + for (var np = nodePath; !(np.getNode() instanceof RootNode); np = np + .getParentPath()) { + if (np.getNode() instanceof EntityNode) { + return true; + } + } + + return false; + } + @Override public void exit(NodePath nodePath) { if (!(nodePath.getNode() instanceof TypedNode)) { @@ -82,9 +113,9 @@ public void exit(NodePath nodePath) { } } - @Nonnull + @NonNull @Override - public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { + public NodeDependencies scan(@NonNull NodeDependencies nodeDependencies) { var node = nodeDependencies.getNode(); if (node instanceof MethodNode) { return scanMethodNode((MethodNode) node, nodeDependencies); @@ -127,6 +158,11 @@ private void attachSchemaToNestingParentSignature(Schema schema, ((ArraySchema) parentSchema).setItems(schema); } else if (parentSchema instanceof MapSchema) { parentSchema.additionalProperties(schema); + } else if (parentSchema.getExtensions() != null && parentSchema + .getExtensions().get("x-type-arguments") != null) { + // The nested schema is added to the type arguments of the parent + ((ComposedSchema) parentSchema.getExtensions() + .get("x-type-arguments")).addAllOfItem(schema); } else { // The nested schema replaces parent for type argument, type // parameter, type variable, and optional signatures @@ -219,6 +255,9 @@ private List getReferredTypes(SignatureModel signature) { } } else if (signature.isTypeVariable()) { items = List.of(((TypeVariableModel) signature).resolve()); + } else if (signature.isClassRef()) { + items = ((ClassRefSignatureModel) signature).getTypeArguments() + .stream().map(SignatureModel.class::cast).toList(); } return items; @@ -300,8 +339,14 @@ private NodeDependencies scanTypeSignature(TypeSignatureNode node, NodeDependencies nodeDependencies) { var signature = node.getSource(); var referredTypes = getReferredTypes(signature); - return nodeDependencies.appendChildNodes( - referredTypes.stream().map(TypeSignatureNode::of)); + + for (var i = 0; i < referredTypes.size(); i++) { + var referredType = referredTypes.get(i); + nodeDependencies = nodeDependencies.appendChildNodes( + Stream.of(TypeSignatureNode.of(referredType, i))); + } + + return nodeDependencies; } private String signatureToTypeString(SignatureModel type) { diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/CompositeTypeSignatureNode.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/CompositeTypeSignatureNode.java index 9e9b151ae6..6d9fb100a2 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/CompositeTypeSignatureNode.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/CompositeTypeSignatureNode.java @@ -1,6 +1,6 @@ package com.vaadin.hilla.parser.plugins.backbone.nodes; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import java.util.Collection; import java.util.List; @@ -18,20 +18,20 @@ public final class CompositeTypeSignatureNode extends private final List annotations; - private CompositeTypeSignatureNode(@Nonnull List source, - @Nonnull Schema target, List annotations) { + private CompositeTypeSignatureNode(@NonNull List source, + @NonNull Schema target, List annotations) { super(source, target); this.annotations = annotations; } - private CompositeTypeSignatureNode(@Nonnull List source, - @Nonnull Schema target) { + private CompositeTypeSignatureNode(@NonNull List source, + @NonNull Schema target) { this(source, target, extractAnnotations(source)); } - @Nonnull + @NonNull static public CompositeTypeSignatureNode of( - @Nonnull List source) { + @NonNull List source) { return new CompositeTypeSignatureNode(source, new Schema<>()); } @@ -47,7 +47,7 @@ public SignatureModel getType() { @Override public TypedNode processType( - @Nonnull UnaryOperator typeProcessor) { + @NonNull UnaryOperator typeProcessor) { var processedTypes = getSource().stream().map(typeProcessor) .collect(Collectors.toList()); if (processedTypes.equals(getSource())) { diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EndpointExposedNode.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EndpointExposedNode.java index 720168f291..c950bb6946 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EndpointExposedNode.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EndpointExposedNode.java @@ -1,18 +1,18 @@ package com.vaadin.hilla.parser.plugins.backbone.nodes; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractNode; import com.vaadin.hilla.parser.models.ClassInfoModel; public final class EndpointExposedNode extends AbstractNode { - private EndpointExposedNode(@Nonnull ClassInfoModel classInfo) { + private EndpointExposedNode(@NonNull ClassInfoModel classInfo) { super(classInfo, null); } - @Nonnull - public static EndpointExposedNode of(@Nonnull ClassInfoModel classInfo) { + @NonNull + public static EndpointExposedNode of(@NonNull ClassInfoModel classInfo) { return new EndpointExposedNode(classInfo); } } diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EndpointNode.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EndpointNode.java index b1e6c7b790..9bdb88f564 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EndpointNode.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EndpointNode.java @@ -1,18 +1,18 @@ package com.vaadin.hilla.parser.plugins.backbone.nodes; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractNode; import com.vaadin.hilla.parser.models.ClassInfoModel; import io.swagger.v3.oas.models.tags.Tag; public final class EndpointNode extends AbstractNode { - private EndpointNode(@Nonnull ClassInfoModel value, @Nonnull Tag schema) { + private EndpointNode(@NonNull ClassInfoModel value, @NonNull Tag schema) { super(value, schema); } - @Nonnull - public static EndpointNode of(@Nonnull ClassInfoModel cls) { + @NonNull + public static EndpointNode of(@NonNull ClassInfoModel cls) { return new EndpointNode(cls, new Tag()); } } diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EndpointNonExposedNode.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EndpointNonExposedNode.java index 573bf1cc54..660983bd89 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EndpointNonExposedNode.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EndpointNonExposedNode.java @@ -1,18 +1,18 @@ package com.vaadin.hilla.parser.plugins.backbone.nodes; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractNode; import com.vaadin.hilla.parser.models.ClassInfoModel; public final class EndpointNonExposedNode extends AbstractNode { - private EndpointNonExposedNode(@Nonnull ClassInfoModel classInfo) { + private EndpointNonExposedNode(@NonNull ClassInfoModel classInfo) { super(classInfo, null); } - @Nonnull - public static EndpointNonExposedNode of(@Nonnull ClassInfoModel classInfo) { + @NonNull + public static EndpointNonExposedNode of(@NonNull ClassInfoModel classInfo) { return new EndpointNonExposedNode(classInfo); } } diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EndpointSignatureNode.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EndpointSignatureNode.java index 0dee8be2f3..10bab84236 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EndpointSignatureNode.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EndpointSignatureNode.java @@ -1,18 +1,18 @@ package com.vaadin.hilla.parser.plugins.backbone.nodes; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractNode; import com.vaadin.hilla.parser.models.SignatureModel; public final class EndpointSignatureNode extends AbstractNode { - private EndpointSignatureNode(@Nonnull SignatureModel source) { + private EndpointSignatureNode(@NonNull SignatureModel source) { super(source, null); } - @Nonnull - static public EndpointSignatureNode of(@Nonnull SignatureModel source) { + @NonNull + static public EndpointSignatureNode of(@NonNull SignatureModel source) { return new EndpointSignatureNode(source); } } diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EntityNode.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EntityNode.java index 893ef4467e..6368a7e1ab 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EntityNode.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/EntityNode.java @@ -1,6 +1,6 @@ package com.vaadin.hilla.parser.plugins.backbone.nodes; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractNode; import com.vaadin.hilla.parser.models.ClassInfoModel; @@ -8,13 +8,13 @@ import io.swagger.v3.oas.models.media.Schema; public final class EntityNode extends AbstractNode> { - private EntityNode(@Nonnull ClassInfoModel source, - @Nonnull ObjectSchema target) { + private EntityNode(@NonNull ClassInfoModel source, + @NonNull ObjectSchema target) { super(source, target); } - @Nonnull - static public EntityNode of(@Nonnull ClassInfoModel model) { + @NonNull + static public EntityNode of(@NonNull ClassInfoModel model) { return new EntityNode(model, new ObjectSchema()); } } diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/MethodNode.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/MethodNode.java index 44ac2dc348..e4eba903da 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/MethodNode.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/MethodNode.java @@ -1,19 +1,19 @@ package com.vaadin.hilla.parser.plugins.backbone.nodes; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractNode; import com.vaadin.hilla.parser.models.MethodInfoModel; import io.swagger.v3.oas.models.PathItem; public final class MethodNode extends AbstractNode { - private MethodNode(@Nonnull MethodInfoModel source, - @Nonnull PathItem target) { + private MethodNode(@NonNull MethodInfoModel source, + @NonNull PathItem target) { super(source, target); } - @Nonnull - static public MethodNode of(@Nonnull MethodInfoModel model) { + @NonNull + static public MethodNode of(@NonNull MethodInfoModel model) { return new MethodNode(model, new PathItem()); } } diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/MethodParameterNode.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/MethodParameterNode.java index fee5262856..332ab9b2b3 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/MethodParameterNode.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/MethodParameterNode.java @@ -1,20 +1,20 @@ package com.vaadin.hilla.parser.plugins.backbone.nodes; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractNode; import com.vaadin.hilla.parser.models.MethodParameterInfoModel; public final class MethodParameterNode extends AbstractNode { - private MethodParameterNode(@Nonnull MethodParameterInfoModel source, + private MethodParameterNode(@NonNull MethodParameterInfoModel source, String target) { super(source, target); } - @Nonnull + @NonNull static public MethodParameterNode of( - @Nonnull MethodParameterInfoModel source, @Nonnull String target) { + @NonNull MethodParameterInfoModel source, @NonNull String target) { return new MethodParameterNode(source, target); } } diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/PropertyNode.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/PropertyNode.java index fa6b0a40b1..eedaf61a06 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/PropertyNode.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/PropertyNode.java @@ -1,19 +1,19 @@ package com.vaadin.hilla.parser.plugins.backbone.nodes; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractNode; import com.vaadin.hilla.parser.models.jackson.JacksonPropertyModel; public final class PropertyNode extends AbstractNode { - private PropertyNode(@Nonnull JacksonPropertyModel source, - @Nonnull String target) { + private PropertyNode(@NonNull JacksonPropertyModel source, + @NonNull String target) { super(source, target); } - @Nonnull - static public PropertyNode of(@Nonnull JacksonPropertyModel source) { + @NonNull + static public PropertyNode of(@NonNull JacksonPropertyModel source) { return new PropertyNode(source, ""); } } diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/TypeSignatureNode.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/TypeSignatureNode.java index cad666acab..77eab83509 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/TypeSignatureNode.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/TypeSignatureNode.java @@ -1,6 +1,7 @@ package com.vaadin.hilla.parser.plugins.backbone.nodes; import java.util.List; +import java.util.Objects; import java.util.function.UnaryOperator; import com.vaadin.hilla.parser.core.AbstractNode; @@ -8,20 +9,23 @@ import com.vaadin.hilla.parser.models.SignatureModel; import io.swagger.v3.oas.models.media.Schema; -import jakarta.annotation.Nonnull; +import org.jspecify.annotations.NonNull; public final class TypeSignatureNode extends AbstractNode> implements TypedNode { private final List annotations; + private final Integer position; private TypeSignatureNode(SignatureModel source, Schema target, - List annotations) { + List annotations, Integer position) { super(source, target); this.annotations = annotations; + this.position = position; } - private TypeSignatureNode(SignatureModel source, Schema target) { - this(source, target, source.getAnnotations()); + private TypeSignatureNode(SignatureModel source, Schema target, + Integer position) { + this(source, target, source.getAnnotations(), position); } public List getAnnotations() { @@ -40,11 +44,45 @@ public TypedNode processType(UnaryOperator typeProcessor) { } return new TypeSignatureNode(typeProcessor.apply(getSource()), - getTarget(), annotations); + getTarget(), annotations, position); + } + + @NonNull + static public TypeSignatureNode of(@NonNull SignatureModel source) { + return new TypeSignatureNode(source, new Schema<>(), null); + } + + @NonNull + static public TypeSignatureNode of(@NonNull SignatureModel source, + int position) { + return new TypeSignatureNode(source, new Schema<>(), position); + } + + @Override + public boolean equals(Object o) { + boolean eq = super.equals(o); + + if (eq) { + var other = (TypeSignatureNode) o; + eq = Objects.equals(position, other.position); + } + + return eq; + } + + @Override + public int hashCode() { + return super.hashCode() ^ Objects.hashCode(position); } - @Nonnull - static public TypeSignatureNode of(@Nonnull SignatureModel source) { - return new TypeSignatureNode(source, new Schema<>()); + @Override + public String toString() { + var str = super.toString(); + + if (position != null) { + str += "[" + position + "]"; + } + + return str; } } diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/TypedNode.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/TypedNode.java index 5d9080c3c2..6e2facbaac 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/TypedNode.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/hilla/parser/plugins/backbone/nodes/TypedNode.java @@ -5,16 +5,16 @@ import com.vaadin.hilla.parser.models.SignatureModel; import io.swagger.v3.oas.models.media.Schema; -import jakarta.annotation.Nonnull; +import org.jspecify.annotations.NonNull; public interface TypedNode extends AnnotatedNode { - @Nonnull + @NonNull SignatureModel getType(); Schema getTarget(); void setTarget(Schema target); - @Nonnull - TypedNode processType(@Nonnull UnaryOperator typeProcessor); + @NonNull + TypedNode processType(@NonNull UnaryOperator typeProcessor); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/module-info.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/module-info.java index 1b08aff1c1..1ac6d6d295 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/module-info.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/module-info.java @@ -2,7 +2,7 @@ requires io.swagger.v3.core; requires io.swagger.v3.oas.models; requires io.github.classgraph; - requires jsr305; + requires org.jspecify; requires com.fasterxml.jackson.databind; requires com.vaadin.hilla.parser.utils; requires transitive com.vaadin.hilla.parser.core; diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/bare/BareTypeTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/bare/BareTypeTest.java index 47640d98ae..a88090ed1a 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/bare/BareTypeTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/bare/BareTypeTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -16,10 +17,11 @@ public class BareTypeTest { @Test public void should_CorrectlyResolveBareTypes() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .addPlugin(new BackbonePlugin()).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .addPlugin(new BackbonePlugin()) + .execute(List.of(BareTypeEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/complexhierarchy/ComplexHierarchyTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/complexhierarchy/ComplexHierarchyTest.java index e8d40ff661..dc1dfbbb36 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/complexhierarchy/ComplexHierarchyTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/complexhierarchy/ComplexHierarchyTest.java @@ -2,8 +2,10 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; +import com.vaadin.hilla.parser.plugins.backbone.complexhierarchy.models.ComplexHierarchyGrandParentEndpoint; import org.junit.jupiter.api.Test; import com.vaadin.hilla.parser.core.Parser; @@ -16,11 +18,13 @@ public class ComplexHierarchyTest { @Test public void should_GenerateParentModel_When_UsingChildModel() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) - .addPlugin(new BackbonePlugin()).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) + .addPlugin(new BackbonePlugin()) + .execute(List.of(ComplexHierarchyEndpoint.class, + ComplexHierarchyGrandParentEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/complextype/ComplexTypeTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/complextype/ComplexTypeTest.java index cdf9b16fa7..6c6e7d184a 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/complextype/ComplexTypeTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/complextype/ComplexTypeTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -16,10 +17,11 @@ public class ComplexTypeTest { @Test public void should_CorrectlyHandleComplexTypes() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .addPlugin(new BackbonePlugin()).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .addPlugin(new BackbonePlugin()) + .execute(List.of(ComplexTypeEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/config/CustomConfigTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/config/CustomConfigTest.java index 4c456d5b71..801ee74a5b 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/config/CustomConfigTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/config/CustomConfigTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -24,10 +25,11 @@ public void should_CorrectlyHandleComplexTypes() var backbonePlugin = new BackbonePlugin(); backbonePlugin.setConfiguration(pluginConfig); - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .addPlugin(backbonePlugin).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .addPlugin(backbonePlugin) + .execute(List.of(CustomConfigEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/customname/CustomNameTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/customname/CustomNameTest.java index 57b04308a8..3ade446508 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/customname/CustomNameTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/customname/CustomNameTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import com.vaadin.hilla.parser.core.Parser; @@ -15,10 +16,12 @@ public class CustomNameTest { @Test public void should_UseCustomEndpointNames_WhenGivenInAnnotation() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .addPlugin(new BackbonePlugin()).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .addPlugin(new BackbonePlugin()) + .execute(List.of(CustomExplicitValueEndpoint.class, + CustomNameEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/datetime/DateTimeEndpoint.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/datetime/DateTimeEndpoint.java index 4a949b9b25..447fde1256 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/datetime/DateTimeEndpoint.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/datetime/DateTimeEndpoint.java @@ -4,6 +4,8 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; +import java.time.OffsetDateTime; +import java.time.ZonedDateTime; import java.util.Date; import java.util.List; import java.util.Map; @@ -46,4 +48,12 @@ public Map echoMapInstant( public static class CustomDate extends Date { } + + public OffsetDateTime echoOffsetDateTime(OffsetDateTime offsetDateTime) { + return offsetDateTime; + } + + public ZonedDateTime echoZonedDateTime(ZonedDateTime zonedDateTime) { + return zonedDateTime; + } } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/datetime/DateTimeTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/datetime/DateTimeTest.java index af9edf8528..89117590ab 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/datetime/DateTimeTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/datetime/DateTimeTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -16,10 +17,11 @@ public class DateTimeTest { @Test public void should_GenerateStringType_When_ReferringToDateTimeTypes() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .addPlugin(new BackbonePlugin()).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .addPlugin(new BackbonePlugin()) + .execute(List.of(DateTimeEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/enumtype/EnumTypeTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/enumtype/EnumTypeTest.java index 267901144f..94bf1dfbc3 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/enumtype/EnumTypeTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/enumtype/EnumTypeTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -16,10 +17,11 @@ public class EnumTypeTest { @Test public void should_GenerateStringType_When_ReferringToEnumTypes() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .addPlugin(new BackbonePlugin()).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .addPlugin(new BackbonePlugin()) + .execute(List.of(EnumTypeEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/exposed/ExposedTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/exposed/ExposedTest.java index 1166521aea..7ea1d9bd4c 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/exposed/ExposedTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/exposed/ExposedTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -16,11 +17,12 @@ public class ExposedTest { @Test public void should_CorrectlyHandleEndpointExposedAnnotation() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) - .addPlugin(new BackbonePlugin()).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) + .addPlugin(new BackbonePlugin()) + .execute(List.of(ExposedEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/generics/GenericsBareEntityEndpoint.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/generics/GenericsBareEntityEndpoint.java new file mode 100644 index 0000000000..fd75a2e20b --- /dev/null +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/generics/GenericsBareEntityEndpoint.java @@ -0,0 +1,34 @@ +package com.vaadin.hilla.parser.plugins.backbone.generics; + +import java.util.List; + +@Endpoint +public class GenericsBareEntityEndpoint { + public GenericsBareRefEntity getBareReference( + GenericsBareRefEntity ref) { + return ref; + } + + public record GenericsBareEntity(String bareEntityProperty) { + } + + public GenericsBareRefEntity getBareEntity( + GenericsBareRefEntity ref) { + return ref; + } + + public GenericsBareRefEntity> getBareEntityList( + GenericsBareRefEntity> ref) { + return ref; + } + + public record GenericsRecord( + T1 first, T2 second) + { + } + + public GenericsRecord getRecord( + GenericsRecord record) { + return record; + } +} diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/generics/GenericsBareRefEntity.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/generics/GenericsBareRefEntity.java index b95183a1a0..61484c6ea6 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/generics/GenericsBareRefEntity.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/generics/GenericsBareRefEntity.java @@ -2,8 +2,13 @@ public class GenericsBareRefEntity { private T bareGenericTypeProperty; + private GenericsBareRefEntity bareRefEntityProperty; public T getBareGenericTypeProperty() { return bareGenericTypeProperty; } + + public GenericsBareRefEntity getBareRefEntityProperty() { + return bareRefEntityProperty; + } } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/generics/GenericsTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/generics/GenericsTest.java index df392e676c..a2319fb417 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/generics/GenericsTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/generics/GenericsTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -16,11 +17,17 @@ public class GenericsTest { @Test public void should_ParseGenericTypes() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) - .addPlugin(new BackbonePlugin()).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) + .addPlugin(new BackbonePlugin()) + .execute(List.of(GenericsBareEndpoint.class, + GenericsBareEntityEndpoint.class, + GenericsExtendedEndpoint.class, + GenericsMethodsEndpoint.class, + GenericsRefEndpoint.class, + ImplementInterfaceEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/genericsuperclassmethods/GenericSuperClassMethodsTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/genericsuperclassmethods/GenericSuperClassMethodsTest.java index 61109e2852..73d07cc928 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/genericsuperclassmethods/GenericSuperClassMethodsTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/genericsuperclassmethods/GenericSuperClassMethodsTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import com.vaadin.hilla.parser.core.Parser; @@ -15,11 +16,13 @@ public class GenericSuperClassMethodsTest { @Test public void should_CorrectlyHandleSuperClassMethods() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) - .addPlugin(new BackbonePlugin()).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) + .addPlugin(new BackbonePlugin()) + .execute(List.of(GenericSuperClassLong.class, + GenericSuperClassString.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/iterable/IterableTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/iterable/IterableTest.java index aa28116b6d..9e2e4c9d9a 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/iterable/IterableTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/iterable/IterableTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -16,10 +17,11 @@ public class IterableTest { @Test public void should_GenerateStringType_When_ReferringToEnumTypes() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .addPlugin(new BackbonePlugin()).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .addPlugin(new BackbonePlugin()) + .execute(List.of(IterableEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/jackson/JacksonTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/jackson/JacksonTest.java index 858ec61cf9..2c69e945d9 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/jackson/JacksonTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/jackson/JacksonTest.java @@ -25,10 +25,11 @@ public void should_CorrectlyIgnoreFieldsBasedOnJSONAnnotations() Assumptions.assumeTrue(fieldsReturnedInDefinedOrder(), "This test is skipped on JDKs that do not return declared methods in the file order"); - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .addPlugin(new BackbonePlugin()).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .addPlugin(new BackbonePlugin()) + .execute(List.of(JacksonEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/jsonvalue/JsonValueTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/jsonvalue/JsonValueTest.java index f7151846af..004d3ee63a 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/jsonvalue/JsonValueTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/jsonvalue/JsonValueTest.java @@ -7,6 +7,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; public class JsonValueTest { @@ -15,10 +16,11 @@ public class JsonValueTest { @Test public void should_CorrectlyMapJsonValue() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .addPlugin(new BackbonePlugin()).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .addPlugin(new BackbonePlugin()) + .execute(List.of(JsonValueEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/jsonvaluenojsoncreator/JsonValueNoJsonCreatorTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/jsonvaluenojsoncreator/JsonValueNoJsonCreatorTest.java index f66b0c801a..9172981f2d 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/jsonvaluenojsoncreator/JsonValueNoJsonCreatorTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/jsonvaluenojsoncreator/JsonValueNoJsonCreatorTest.java @@ -6,6 +6,7 @@ import com.vaadin.hilla.parser.plugins.backbone.test.helpers.TestHelper; import org.junit.jupiter.api.Test; +import java.util.List; import java.util.Set; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -16,10 +17,10 @@ public class JsonValueNoJsonCreatorTest { @Test public void should_ThrowExceptionWhenOnlyJsonValueIsUsed() { assertThrows(MalformedValueTypeException.class, () -> { - new Parser().classLoader(getClass().getClassLoader()) - .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .addPlugin(new BackbonePlugin()).execute(); + new Parser().classPath(Set.of(helper.getTargetDir().toString())) + .endpointAnnotations(List.of(Endpoint.class)) + .addPlugin(new BackbonePlugin()) + .execute(List.of(JsonValueNoJsonCreatorEndpoint.class)); }); } } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/multiendpoints/MultiEndpointsTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/multiendpoints/MultiEndpointsTest.java index 57553d1f53..7f908e30b8 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/multiendpoints/MultiEndpointsTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/multiendpoints/MultiEndpointsTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -16,10 +17,13 @@ public class MultiEndpointsTest { @Test public void should_UseAppropriateSchema_When_SimpleTypesAreUsed() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .addPlugin(new BackbonePlugin()).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .addPlugin(new BackbonePlugin()) + .execute(List.of(MultiEndpointsBarEndpoint.class, + MultiEndpointsBazEndpoint.class, + MultiEndpointsFooEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/shadowedname/ShadowedNameTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/shadowedname/ShadowedNameTest.java index b4112d8e38..d5c3d0e8b9 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/shadowedname/ShadowedNameTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/shadowedname/ShadowedNameTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -16,10 +17,11 @@ public class ShadowedNameTest { @Test public void should_DistinguishBetweenUserAndBuiltinTypes_When_TheyHaveSameName() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .addPlugin(new BackbonePlugin()).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .addPlugin(new BackbonePlugin()) + .execute(List.of(ShadowedNameEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/simpletype/SimpleTypeEndpoint.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/simpletype/SimpleTypeEndpoint.java index 261d138c6f..d031653151 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/simpletype/SimpleTypeEndpoint.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/simpletype/SimpleTypeEndpoint.java @@ -88,4 +88,12 @@ public Short getShortWrapper() { public String getString() { return "test"; }; + + protected String getProtectedValue() { + return "protected"; + } + + protected void setProtectedValue(String protectedValue) { + // ignore + } } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/simpletype/SimpleTypeTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/simpletype/SimpleTypeTest.java index 94e8cb6d71..9a584c004e 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/simpletype/SimpleTypeTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/simpletype/SimpleTypeTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -16,10 +17,11 @@ public class SimpleTypeTest { @Test public void should_UseAppropriateSchema_When_SimpleTypesAreUsed() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .addPlugin(new BackbonePlugin()).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .addPlugin(new BackbonePlugin()) + .execute(List.of(SimpleTypeEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/superclassmethods/PagedData.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/superclassmethods/PagedData.java index 8311db6697..b22af3dafd 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/superclassmethods/PagedData.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/superclassmethods/PagedData.java @@ -20,10 +20,12 @@ import java.util.List; import java.util.Map; +import org.jspecify.annotations.NonNull; + @EndpointExposed public interface PagedData { - default List<@Nonnull T> getNonNullablePage(int pageSize, int pageNumber, - Map parameters) { + default List<@NonNull T> getNonNullablePage(int pageSize, int pageNumber, + Map parameters) { return Collections.emptyList(); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/superclassmethods/SuperClassMethodsTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/superclassmethods/SuperClassMethodsTest.java index ae8ee5b079..110b25d971 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/superclassmethods/SuperClassMethodsTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/superclassmethods/SuperClassMethodsTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -16,11 +17,12 @@ public class SuperClassMethodsTest { @Test public void should_CorrectlyHandleSuperClassMethods() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) - .addPlugin(new BackbonePlugin()).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) + .addPlugin(new BackbonePlugin()) + .execute(List.of(PersonEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/transients/TransientTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/transients/TransientTest.java index 5704f0b4fa..b984a90ec0 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/transients/TransientTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/transients/TransientTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -16,10 +17,11 @@ public class TransientTest { @Test public void should_CorrectlyHandleTransients() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .addPlugin(new BackbonePlugin()).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .addPlugin(new BackbonePlugin()) + .execute(List.of(TransientEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/wildcard/WildcardTypeTest.java b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/wildcard/WildcardTypeTest.java index 2a2b2b9075..9d2298a8e9 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/wildcard/WildcardTypeTest.java +++ b/packages/java/parser-jvm-plugin-backbone/src/test/java/com/vaadin/hilla/parser/plugins/backbone/wildcard/WildcardTypeTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -16,10 +17,11 @@ public class WildcardTypeTest { @Test public void should_CorrectlyResolveWildcardTypes() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .addPlugin(new BackbonePlugin()).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .addPlugin(new BackbonePlugin()) + .execute(List.of(WildcardTypeEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/resources/com/vaadin/hilla/parser/plugins/backbone/datetime/openapi.json b/packages/java/parser-jvm-plugin-backbone/src/test/resources/com/vaadin/hilla/parser/plugins/backbone/datetime/openapi.json index 507b2f9556..49f1374755 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/resources/com/vaadin/hilla/parser/plugins/backbone/datetime/openapi.json +++ b/packages/java/parser-jvm-plugin-backbone/src/test/resources/com/vaadin/hilla/parser/plugins/backbone/datetime/openapi.json @@ -1,35 +1,37 @@ { - "openapi": "3.0.1", - "info": { - "title": "Hilla Application", - "version": "1.0.0" + "openapi" : "3.0.1", + "info" : { + "title" : "Hilla Application", + "version" : "1.0.0" }, - "servers": [ + "servers" : [ { - "url": "http://localhost:8080/connect", - "description": "Hilla Backend" + "url" : "http://localhost:8080/connect", + "description" : "Hilla Backend" } ], - "tags": [ + "tags" : [ { - "name": "DateTimeEndpoint", - "x-class-name": "com.vaadin.hilla.parser.plugins.backbone.datetime.DateTimeEndpoint" + "name" : "DateTimeEndpoint", + "x-class-name" : "com.vaadin.hilla.parser.plugins.backbone.datetime.DateTimeEndpoint" } ], - "paths": { - "/DateTimeEndpoint/echoCustomDate": { - "post": { - "tags": ["DateTimeEndpoint"], - "operationId": "DateTimeEndpoint_echoCustomDate_POST", - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string", - "format": "date", - "nullable": true + "paths" : { + "/DateTimeEndpoint/echoCustomDate" : { + "post" : { + "tags" : [ + "DateTimeEndpoint" + ], + "operationId" : "DateTimeEndpoint_echoCustomDate_POST", + "responses" : { + "200" : { + "description" : "", + "content" : { + "application/json" : { + "schema" : { + "type" : "string", + "format" : "date", + "nullable" : true } } } @@ -37,35 +39,37 @@ } } }, - "/DateTimeEndpoint/echoDate": { - "post": { - "tags": ["DateTimeEndpoint"], - "operationId": "DateTimeEndpoint_echoDate_POST", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date", - "nullable": true + "/DateTimeEndpoint/echoDate" : { + "post" : { + "tags" : [ + "DateTimeEndpoint" + ], + "operationId" : "DateTimeEndpoint_echoDate_POST", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "date" : { + "type" : "string", + "format" : "date", + "nullable" : true } } } } } }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string", - "format": "date", - "nullable": true + "responses" : { + "200" : { + "description" : "", + "content" : { + "application/json" : { + "schema" : { + "type" : "string", + "format" : "date", + "nullable" : true } } } @@ -73,35 +77,37 @@ } } }, - "/DateTimeEndpoint/echoInstant": { - "post": { - "tags": ["DateTimeEndpoint"], - "operationId": "DateTimeEndpoint_echoInstant_POST", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "instant": { - "type": "string", - "format": "date-time", - "nullable": true + "/DateTimeEndpoint/echoInstant" : { + "post" : { + "tags" : [ + "DateTimeEndpoint" + ], + "operationId" : "DateTimeEndpoint_echoInstant_POST", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "instant" : { + "type" : "string", + "format" : "date-time", + "nullable" : true } } } } } }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string", - "format": "date-time", - "nullable": true + "responses" : { + "200" : { + "description" : "", + "content" : { + "application/json" : { + "schema" : { + "type" : "string", + "format" : "date-time", + "nullable" : true } } } @@ -109,23 +115,25 @@ } } }, - "/DateTimeEndpoint/echoListLocalDateTime": { - "post": { - "tags": ["DateTimeEndpoint"], - "operationId": "DateTimeEndpoint_echoListLocalDateTime_POST", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "localDateTimeList": { - "type": "array", - "nullable": true, - "items": { - "type": "string", - "format": "date-time", - "nullable": true + "/DateTimeEndpoint/echoListLocalDateTime" : { + "post" : { + "tags" : [ + "DateTimeEndpoint" + ], + "operationId" : "DateTimeEndpoint_echoListLocalDateTime_POST", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "localDateTimeList" : { + "type" : "array", + "nullable" : true, + "items" : { + "type" : "string", + "format" : "date-time", + "nullable" : true } } } @@ -133,18 +141,18 @@ } } }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "nullable": true, - "items": { - "type": "string", - "format": "date-time", - "nullable": true + "responses" : { + "200" : { + "description" : "", + "content" : { + "application/json" : { + "schema" : { + "type" : "array", + "nullable" : true, + "items" : { + "type" : "string", + "format" : "date-time", + "nullable" : true } } } @@ -153,35 +161,37 @@ } } }, - "/DateTimeEndpoint/echoLocalDate": { - "post": { - "tags": ["DateTimeEndpoint"], - "operationId": "DateTimeEndpoint_echoLocalDate_POST", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "localDate": { - "type": "string", - "format": "date", - "nullable": true + "/DateTimeEndpoint/echoLocalDate" : { + "post" : { + "tags" : [ + "DateTimeEndpoint" + ], + "operationId" : "DateTimeEndpoint_echoLocalDate_POST", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "localDate" : { + "type" : "string", + "format" : "date", + "nullable" : true } } } } } }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string", - "format": "date", - "nullable": true + "responses" : { + "200" : { + "description" : "", + "content" : { + "application/json" : { + "schema" : { + "type" : "string", + "format" : "date", + "nullable" : true } } } @@ -189,35 +199,37 @@ } } }, - "/DateTimeEndpoint/echoLocalDateTime": { - "post": { - "tags": ["DateTimeEndpoint"], - "operationId": "DateTimeEndpoint_echoLocalDateTime_POST", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "localDateTime": { - "type": "string", - "format": "date-time", - "nullable": true + "/DateTimeEndpoint/echoLocalDateTime" : { + "post" : { + "tags" : [ + "DateTimeEndpoint" + ], + "operationId" : "DateTimeEndpoint_echoLocalDateTime_POST", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "localDateTime" : { + "type" : "string", + "format" : "date-time", + "nullable" : true } } } } } }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string", - "format": "date-time", - "nullable": true + "responses" : { + "200" : { + "description" : "", + "content" : { + "application/json" : { + "schema" : { + "type" : "string", + "format" : "date-time", + "nullable" : true } } } @@ -225,35 +237,37 @@ } } }, - "/DateTimeEndpoint/echoLocalTime": { - "post": { - "tags": ["DateTimeEndpoint"], - "operationId": "DateTimeEndpoint_echoLocalTime_POST", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "localTime": { - "type": "string", - "format": "date-time", - "nullable": true + "/DateTimeEndpoint/echoLocalTime" : { + "post" : { + "tags" : [ + "DateTimeEndpoint" + ], + "operationId" : "DateTimeEndpoint_echoLocalTime_POST", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "localTime" : { + "type" : "string", + "format" : "date-time", + "nullable" : true } } } } } }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string", - "format": "date-time", - "nullable": true + "responses" : { + "200" : { + "description" : "", + "content" : { + "application/json" : { + "schema" : { + "type" : "string", + "format" : "date-time", + "nullable" : true } } } @@ -261,43 +275,121 @@ } } }, - "/DateTimeEndpoint/echoMapInstant": { - "post": { - "tags": ["DateTimeEndpoint"], - "operationId": "DateTimeEndpoint_echoMapInstant_POST", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mapInstant": { - "type": "object", - "additionalProperties": { - "type": "string", - "format": "date-time", - "nullable": true + "/DateTimeEndpoint/echoMapInstant" : { + "post" : { + "tags" : [ + "DateTimeEndpoint" + ], + "operationId" : "DateTimeEndpoint_echoMapInstant_POST", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "mapInstant" : { + "type" : "object", + "additionalProperties" : { + "type" : "string", + "format" : "date-time", + "nullable" : true }, - "nullable": true + "nullable" : true } } } } } }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": { - "type": "string", - "format": "date-time", - "nullable": true + "responses" : { + "200" : { + "description" : "", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "additionalProperties" : { + "type" : "string", + "format" : "date-time", + "nullable" : true }, - "nullable": true + "nullable" : true + } + } + } + } + } + } + }, + "/DateTimeEndpoint/echoOffsetDateTime" : { + "post" : { + "tags" : [ + "DateTimeEndpoint" + ], + "operationId" : "DateTimeEndpoint_echoOffsetDateTime_POST", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "offsetDateTime" : { + "type" : "string", + "format" : "date-time", + "nullable" : true + } + } + } + } + } + }, + "responses" : { + "200" : { + "description" : "", + "content" : { + "application/json" : { + "schema" : { + "type" : "string", + "format" : "date-time", + "nullable" : true + } + } + } + } + } + } + }, + "/DateTimeEndpoint/echoZonedDateTime" : { + "post" : { + "tags" : [ + "DateTimeEndpoint" + ], + "operationId" : "DateTimeEndpoint_echoZonedDateTime_POST", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "zonedDateTime" : { + "type" : "string", + "format" : "date-time", + "nullable" : true + } + } + } + } + } + }, + "responses" : { + "200" : { + "description" : "", + "content" : { + "application/json" : { + "schema" : { + "type" : "string", + "format" : "date-time", + "nullable" : true } } } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/resources/com/vaadin/hilla/parser/plugins/backbone/generics/openapi.json b/packages/java/parser-jvm-plugin-backbone/src/test/resources/com/vaadin/hilla/parser/plugins/backbone/generics/openapi.json index 7be3ba85d1..2fe86e2226 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/resources/com/vaadin/hilla/parser/plugins/backbone/generics/openapi.json +++ b/packages/java/parser-jvm-plugin-backbone/src/test/resources/com/vaadin/hilla/parser/plugins/backbone/generics/openapi.json @@ -15,6 +15,10 @@ "name": "GenericsBareEndpoint", "x-class-name": "com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareEndpoint" }, + { + "name": "GenericsBareEntityEndpoint", + "x-class-name": "com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareEntityEndpoint" + }, { "name": "GenericsExtendedEndpoint", "x-class-name": "com.vaadin.hilla.parser.plugins.backbone.generics.GenericsExtendedEndpoint" @@ -65,6 +69,264 @@ } } }, + "/GenericsBareEntityEndpoint/getBareEntity": { + "post": { + "tags": ["GenericsBareEntityEndpoint"], + "operationId": "GenericsBareEntityEndpoint_getBareEntity_POST", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ref": { + "nullable": true, + "anyOf": [ + { + "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareRefEntity" + } + ], + "x-type-arguments": { + "allOf": [ + { + "nullable": true, + "anyOf": [ + { + "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareEntityEndpoint$GenericsBareEntity" + } + ] + } + ] + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "nullable": true, + "anyOf": [ + { + "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareRefEntity" + } + ], + "x-type-arguments": { + "allOf": [ + { + "nullable": true, + "anyOf": [ + { + "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareEntityEndpoint$GenericsBareEntity" + } + ] + } + ] + } + } + } + } + } + } + } + }, + "/GenericsBareEntityEndpoint/getBareEntityList": { + "post": { + "tags": ["GenericsBareEntityEndpoint"], + "operationId": "GenericsBareEntityEndpoint_getBareEntityList_POST", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ref": { + "nullable": true, + "anyOf": [ + { + "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareRefEntity" + } + ], + "x-type-arguments": { + "allOf": [ + { + "type": "array", + "nullable": true, + "items": { + "type": "number", + "format": "float", + "nullable": true + } + } + ] + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "nullable": true, + "anyOf": [ + { + "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareRefEntity" + } + ], + "x-type-arguments": { + "allOf": [ + { + "type": "array", + "nullable": true, + "items": { + "type": "number", + "format": "float", + "nullable": true + } + } + ] + } + } + } + } + } + } + } + }, + "/GenericsBareEntityEndpoint/getBareReference": { + "post": { + "tags": ["GenericsBareEntityEndpoint"], + "operationId": "GenericsBareEntityEndpoint_getBareReference_POST", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ref": { + "nullable": true, + "anyOf": [ + { + "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareRefEntity" + } + ], + "x-type-arguments": { + "allOf": [ + { + "type": "string", + "nullable": true + } + ] + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "nullable": true, + "anyOf": [ + { + "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareRefEntity" + } + ], + "x-type-arguments": { + "allOf": [ + { + "type": "string", + "nullable": true + } + ] + } + } + } + } + } + } + } + }, + "/GenericsBareEntityEndpoint/getRecord": { + "post": { + "tags": ["GenericsBareEntityEndpoint"], + "operationId": "GenericsBareEntityEndpoint_getRecord_POST", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "record": { + "nullable": true, + "anyOf": [ + { + "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareEntityEndpoint$GenericsRecord" + } + ], + "x-type-arguments": { + "allOf": [ + { + "type": "string", + "nullable": true + }, + { + "type": "string", + "nullable": true + } + ] + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "nullable": true, + "anyOf": [ + { + "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareEntityEndpoint$GenericsRecord" + } + ], + "x-type-arguments": { + "allOf": [ + { + "type": "string", + "nullable": true + }, + { + "type": "string", + "nullable": true + } + ] + } + } + } + } + } + } + } + }, "/GenericsExtendedEndpoint/getMap": { "post": { "tags": ["GenericsExtendedEndpoint"], @@ -163,7 +425,15 @@ { "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareRefEntity" } - ] + ], + "x-type-arguments": { + "allOf": [ + { + "type": "string", + "nullable": true + } + ] + } } } } @@ -181,7 +451,15 @@ { "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareRefEntity" } - ] + ], + "x-type-arguments": { + "allOf": [ + { + "type": "string", + "nullable": true + } + ] + } } } } @@ -237,7 +515,15 @@ { "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareRefEntity" } - ] + ], + "x-type-arguments": { + "allOf": [ + { + "type": "string", + "nullable": true + } + ] + } } } } @@ -255,7 +541,15 @@ { "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareRefEntity" } - ] + ], + "x-type-arguments": { + "allOf": [ + { + "type": "string", + "nullable": true + } + ] + } } } } @@ -279,7 +573,27 @@ { "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsExtendedRefEntity" } - ] + ], + "x-type-arguments": { + "allOf": [ + { + "nullable": true, + "anyOf": [ + { + "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareRefEntity" + } + ], + "x-type-arguments": { + "allOf": [ + { + "type": "string", + "nullable": true + } + ] + } + } + ] + } } } } @@ -297,7 +611,27 @@ { "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsExtendedRefEntity" } - ] + ], + "x-type-arguments": { + "allOf": [ + { + "nullable": true, + "anyOf": [ + { + "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareRefEntity" + } + ], + "x-type-arguments": { + "allOf": [ + { + "type": "string", + "nullable": true + } + ] + } + } + ] + } } } } @@ -438,10 +772,60 @@ "type": "object", "properties": { "bareGenericTypeProperty": { - "type": "object" + "type": "object", + "nullable": true, + "x-type-variable": "T" + }, + "bareRefEntityProperty": { + "nullable": true, + "anyOf": [ + { + "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareRefEntity" + } + ], + "x-type-arguments": { + "allOf": [ + { + "type": "object", + "nullable": true, + "x-type-variable": "T" + } + ] + } + } + }, + "x-type-parameters": [ + "T" + ] + }, + "com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareEntityEndpoint$GenericsBareEntity": { + "type": "object", + "properties": { + "bareEntityProperty": { + "type": "string", + "nullable": true } } }, + "com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareEntityEndpoint$GenericsRecord": { + "type": "object", + "properties": { + "first": { + "type": "object", + "nullable": true, + "x-type-variable": "T1" + }, + "second": { + "type": "object", + "nullable": true, + "x-type-variable": "T2" + } + }, + "x-type-parameters": [ + "T1", + "T2" + ] + }, "com.vaadin.hilla.parser.plugins.backbone.generics.GenericsExtendedRefEntity": { "type": "object", "properties": { @@ -451,11 +835,19 @@ { "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.generics.GenericsBareRefEntity" } - ] + ], + "x-type-arguments": { + "allOf": [ + { + "type": "string", + "nullable": true + } + ] + } } } }, - "com.vaadin.hilla.parser.plugins.backbone.generics.ConcreteType" : { + "com.vaadin.hilla.parser.plugins.backbone.generics.ConcreteType": { "type": "object" } } diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/resources/com/vaadin/hilla/parser/plugins/backbone/shadowedname/openapi.json b/packages/java/parser-jvm-plugin-backbone/src/test/resources/com/vaadin/hilla/parser/plugins/backbone/shadowedname/openapi.json index f91f6d6a05..674721fc3c 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/resources/com/vaadin/hilla/parser/plugins/backbone/shadowedname/openapi.json +++ b/packages/java/parser-jvm-plugin-backbone/src/test/resources/com/vaadin/hilla/parser/plugins/backbone/shadowedname/openapi.json @@ -93,7 +93,15 @@ { "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.backbone.shadowedname.subpackage.Collection" } - ] + ], + "x-type-arguments" : { + "allOf" : [ + { + "type" : "string", + "nullable" : true + } + ] + } } } } @@ -128,14 +136,19 @@ "type": "array", "nullable": true, "items": { - "type": "object" + "type": "object", + "nullable" : true, + "x-type-variable" : "T" } }, "name": { "type": "string", "nullable": true } - } + }, + "x-type-parameters" : [ + "T" + ] } } } diff --git a/packages/java/parser-jvm-plugin-model/pom.xml b/packages/java/parser-jvm-plugin-model/pom.xml index af783a4bb6..bd82c4bb6f 100644 --- a/packages/java/parser-jvm-plugin-model/pom.xml +++ b/packages/java/parser-jvm-plugin-model/pom.xml @@ -7,7 +7,7 @@ com.vaadin hilla-project - 24.5-SNAPSHOT + 24.7-SNAPSHOT ../../../pom.xml @@ -21,8 +21,8 @@ - com.google.code.findbugs - jsr305 + org.jspecify + jspecify io.github.classgraph diff --git a/packages/java/parser-jvm-plugin-model/src/main/java/com/vaadin/hilla/parser/plugins/model/Annotation.java b/packages/java/parser-jvm-plugin-model/src/main/java/com/vaadin/hilla/parser/plugins/model/Annotation.java index 677d34e5d5..aa7ce970a6 100644 --- a/packages/java/parser-jvm-plugin-model/src/main/java/com/vaadin/hilla/parser/plugins/model/Annotation.java +++ b/packages/java/parser-jvm-plugin-model/src/main/java/com/vaadin/hilla/parser/plugins/model/Annotation.java @@ -1,13 +1,13 @@ package com.vaadin.hilla.parser.plugins.model; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import java.util.Map; public final class Annotation { private final Map attributes; private final String name; - public Annotation(@Nonnull String name, Map attributes) { + public Annotation(@NonNull String name, Map attributes) { this.name = name; this.attributes = attributes; } @@ -16,7 +16,7 @@ public Map getAttributes() { return attributes; } - @Nonnull + @NonNull public String getName() { return name; } diff --git a/packages/java/parser-jvm-plugin-model/src/main/java/com/vaadin/hilla/parser/plugins/model/ModelPlugin.java b/packages/java/parser-jvm-plugin-model/src/main/java/com/vaadin/hilla/parser/plugins/model/ModelPlugin.java index 8716aa68c1..07880d524a 100644 --- a/packages/java/parser-jvm-plugin-model/src/main/java/com/vaadin/hilla/parser/plugins/model/ModelPlugin.java +++ b/packages/java/parser-jvm-plugin-model/src/main/java/com/vaadin/hilla/parser/plugins/model/ModelPlugin.java @@ -7,7 +7,7 @@ import java.util.function.Predicate; import java.util.stream.Collectors; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractPlugin; import com.vaadin.hilla.parser.core.NodeDependencies; @@ -111,9 +111,9 @@ public Collection> getRequiredPlugins() { return List.of(BackbonePlugin.class); } - @Nonnull + @NonNull @Override - public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { + public NodeDependencies scan(@NonNull NodeDependencies nodeDependencies) { return nodeDependencies; } diff --git a/packages/java/parser-jvm-plugin-model/src/main/java/com/vaadin/hilla/parser/plugins/model/ValidationConstraint.java b/packages/java/parser-jvm-plugin-model/src/main/java/com/vaadin/hilla/parser/plugins/model/ValidationConstraint.java index d662e4561d..c0339a661f 100644 --- a/packages/java/parser-jvm-plugin-model/src/main/java/com/vaadin/hilla/parser/plugins/model/ValidationConstraint.java +++ b/packages/java/parser-jvm-plugin-model/src/main/java/com/vaadin/hilla/parser/plugins/model/ValidationConstraint.java @@ -2,13 +2,13 @@ import java.util.Map; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; public final class ValidationConstraint { private final Map attributes; private final String simpleName; - public ValidationConstraint(@Nonnull String simpleName, + public ValidationConstraint(@NonNull String simpleName, Map attributes) { this.simpleName = simpleName; this.attributes = attributes; @@ -18,7 +18,7 @@ public Map getAttributes() { return attributes; } - @Nonnull + @NonNull public String getSimpleName() { return simpleName; } diff --git a/packages/java/parser-jvm-plugin-model/src/main/java/module-info.java b/packages/java/parser-jvm-plugin-model/src/main/java/module-info.java index 5ba2bf9792..569edf5d3f 100644 --- a/packages/java/parser-jvm-plugin-model/src/main/java/module-info.java +++ b/packages/java/parser-jvm-plugin-model/src/main/java/module-info.java @@ -4,7 +4,7 @@ requires com.vaadin.hilla.parser.plugins.backbone; requires com.vaadin.hilla.parser.utils; requires jakarta.annotation; - requires jsr305; + requires org.jspecify; requires io.github.classgraph; requires io.swagger.v3.oas.models; diff --git a/packages/java/parser-jvm-plugin-model/src/test/java/com/vaadin/hilla/parser/plugins/model/annotations/AnnotationsTest.java b/packages/java/parser-jvm-plugin-model/src/test/java/com/vaadin/hilla/parser/plugins/model/annotations/AnnotationsTest.java index 08ca9d1fe1..dc3fe22dbd 100644 --- a/packages/java/parser-jvm-plugin-model/src/test/java/com/vaadin/hilla/parser/plugins/model/annotations/AnnotationsTest.java +++ b/packages/java/parser-jvm-plugin-model/src/test/java/com/vaadin/hilla/parser/plugins/model/annotations/AnnotationsTest.java @@ -10,6 +10,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; public class AnnotationsTest { @@ -18,14 +19,12 @@ public class AnnotationsTest { @Test public void should_GenerateAnnotations() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) - .exposedPackages(Set.of( - "com.vaadin.hilla.parser.plugins.model.annotations")) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) .addPlugin(new BackbonePlugin()).addPlugin(new ModelPlugin()) - .execute(); + .execute(List.of(AnnotationsEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-model/src/test/java/com/vaadin/hilla/parser/plugins/model/javatypes/JavaTypeTest.java b/packages/java/parser-jvm-plugin-model/src/test/java/com/vaadin/hilla/parser/plugins/model/javatypes/JavaTypeTest.java index 230f4f3ebd..71527b42ef 100644 --- a/packages/java/parser-jvm-plugin-model/src/test/java/com/vaadin/hilla/parser/plugins/model/javatypes/JavaTypeTest.java +++ b/packages/java/parser-jvm-plugin-model/src/test/java/com/vaadin/hilla/parser/plugins/model/javatypes/JavaTypeTest.java @@ -10,6 +10,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; public class JavaTypeTest { @@ -18,14 +19,12 @@ public class JavaTypeTest { @Test public void should_GenerateAnnotations() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) - .exposedPackages(Set - .of("com.vaadin.hilla.parser.plugins.model.javatypes")) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) .addPlugin(new BackbonePlugin()).addPlugin(new ModelPlugin()) - .execute(); + .execute(List.of(JavaTypeEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-model/src/test/java/com/vaadin/hilla/parser/plugins/model/validation/ValidationTest.java b/packages/java/parser-jvm-plugin-model/src/test/java/com/vaadin/hilla/parser/plugins/model/validation/ValidationTest.java index 7f8eb8628d..f64be6983e 100644 --- a/packages/java/parser-jvm-plugin-model/src/test/java/com/vaadin/hilla/parser/plugins/model/validation/ValidationTest.java +++ b/packages/java/parser-jvm-plugin-model/src/test/java/com/vaadin/hilla/parser/plugins/model/validation/ValidationTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import com.vaadin.hilla.parser.plugins.model.Endpoint; @@ -19,14 +20,12 @@ public class ValidationTest { @Test public void should_GenerateValidations() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) - .exposedPackages(Set - .of("com.vaadin.hilla.parser.plugins.model.validation")) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) .addPlugin(new BackbonePlugin()).addPlugin(new ModelPlugin()) - .execute(); + .execute(List.of(ValidationEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-model/src/test/resources/com/vaadin/hilla/parser/plugins/model/validation/openapi.json b/packages/java/parser-jvm-plugin-model/src/test/resources/com/vaadin/hilla/parser/plugins/model/validation/openapi.json index 8ee942efd8..b28ea718cb 100644 --- a/packages/java/parser-jvm-plugin-model/src/test/resources/com/vaadin/hilla/parser/plugins/model/validation/openapi.json +++ b/packages/java/parser-jvm-plugin-model/src/test/resources/com/vaadin/hilla/parser/plugins/model/validation/openapi.json @@ -71,11 +71,11 @@ "format": "double", "x-validation-constraints": [ { + "simpleName": "DecimalMax", "attributes": { "inclusive": false, "value": "0.01" - }, - "simpleName": "DecimalMax" + } } ], "x-java-type": "double" @@ -85,10 +85,10 @@ "format": "double", "x-validation-constraints": [ { + "simpleName": "DecimalMin", "attributes": { "value": "0.01" - }, - "simpleName": "DecimalMin" + } } ], "x-java-type": "double" @@ -98,11 +98,11 @@ "nullable": true, "x-validation-constraints": [ { + "simpleName": "Digits", "attributes": { "integer": 5, "fraction": 2 - }, - "simpleName": "Digits" + } } ], "x-java-type": "java.lang.String" @@ -112,10 +112,10 @@ "nullable": true, "x-validation-constraints": [ { + "simpleName": "Email", "attributes": { "message": "foo" - }, - "simpleName": "Email" + } } ], "x-java-type": "java.lang.String" @@ -162,10 +162,10 @@ "nullable": true, "x-validation-constraints": [ { + "simpleName": "Max", "attributes": { "value": 2 - }, - "simpleName": "Max" + } } ], "x-java-type": "java.lang.Integer" @@ -176,11 +176,11 @@ "nullable": true, "x-validation-constraints": [ { + "simpleName": "Min", "attributes": { "message": "foo", "value": 1 - }, - "simpleName": "Min" + } } ], "x-java-type": "java.lang.Integer" @@ -267,10 +267,10 @@ "nullable": true, "x-validation-constraints": [ { + "simpleName": "Pattern", "attributes": { "regexp": "\\d+\\..+" - }, - "simpleName": "Pattern" + } } ], "x-java-type": "java.lang.String" @@ -310,10 +310,10 @@ "nullable": true, "x-validation-constraints": [ { + "simpleName": "Size", "attributes": { "min": 1 - }, - "simpleName": "Size" + } } ], "x-java-type": "java.lang.String" diff --git a/packages/java/parser-jvm-plugin-nonnull/pom.xml b/packages/java/parser-jvm-plugin-nonnull/pom.xml index 9faf0893eb..a32c74ee01 100644 --- a/packages/java/parser-jvm-plugin-nonnull/pom.xml +++ b/packages/java/parser-jvm-plugin-nonnull/pom.xml @@ -7,7 +7,7 @@ com.vaadin hilla-project - 24.5-SNAPSHOT + 24.7-SNAPSHOT ../../../pom.xml @@ -26,8 +26,8 @@ ${project.version} - com.google.code.findbugs - jsr305 + org.jspecify + jspecify io.github.classgraph @@ -54,5 +54,15 @@ ${project.version} test + + jakarta.persistence + jakarta.persistence-api + test + + + org.springframework + spring-core + test + diff --git a/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/hilla/parser/plugins/nonnull/AnnotationMatcher.java b/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/hilla/parser/plugins/nonnull/AnnotationMatcher.java index 16bc9f09a0..8702ca7f50 100644 --- a/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/hilla/parser/plugins/nonnull/AnnotationMatcher.java +++ b/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/hilla/parser/plugins/nonnull/AnnotationMatcher.java @@ -2,7 +2,7 @@ import java.util.Objects; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; /** * Describes annotations that make class members and their signatures nullable @@ -16,7 +16,7 @@ public final class AnnotationMatcher { public AnnotationMatcher() { } - public AnnotationMatcher(@Nonnull String name, boolean makesNullable, + public AnnotationMatcher(@NonNull String name, boolean makesNullable, int score) { this.name = Objects.requireNonNull(name); this.makesNullable = makesNullable; diff --git a/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/hilla/parser/plugins/nonnull/NonnullPlugin.java b/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/hilla/parser/plugins/nonnull/NonnullPlugin.java index a91061f2db..84c5903287 100644 --- a/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/hilla/parser/plugins/nonnull/NonnullPlugin.java +++ b/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/hilla/parser/plugins/nonnull/NonnullPlugin.java @@ -10,7 +10,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.vaadin.hilla.parser.core.AbstractPlugin; import com.vaadin.hilla.parser.core.NodeDependencies; @@ -20,6 +20,7 @@ import com.vaadin.hilla.parser.models.AnnotatedModel; import com.vaadin.hilla.parser.models.AnnotationInfoModel; import com.vaadin.hilla.parser.models.ClassInfoModel; +import com.vaadin.hilla.parser.models.ClassRefSignatureModel; import com.vaadin.hilla.parser.models.PackageInfoModel; import com.vaadin.hilla.parser.models.SpecializedModel; import com.vaadin.hilla.parser.plugins.backbone.BackbonePlugin; @@ -74,32 +75,71 @@ public void exit(NodePath nodePath) { annotations = considerAscendantAnnotations(annotations, nodePath); - annotations - .map(annotation -> annotationsMap - .get(annotation.getName())) - .filter(Objects::nonNull) - .max(Comparator - .comparingInt(AnnotationMatcher::getScore)) - .map(AnnotationMatcher::doesMakeNullable) - .ifPresent(nullable -> schema - .setNullable(nullable ? true : null)); + computeNullabilityFromAnnotations(annotations).ifPresent( + nullable -> schema.setNullable(nullable ? true : null)); + + // For type arguments, it is necessary to apply the same + // processing + if (nodeSource instanceof ClassRefSignatureModel) { + var args = ((ClassRefSignatureModel) nodeSource) + .getTypeArguments(); + + if (!args.isEmpty()) { + Optional.ofNullable(schema.getExtensions()) + .map(ext -> ext.get("x-type-arguments")) + .map(ext -> (Schema) ext) + .map(Schema::getAllOf).ifPresent(schemas -> { + if (schemas.size() != args.size()) { + throw new IllegalStateException( + "Number of parameters mismatch for " + + nodePath); + } + + var nullables = args.stream() + .map(param -> Stream.concat( + getPackageAnnotationsStream( + nodePath), + param.getAnnotations() + .stream())) + .map(this::computeNullabilityFromAnnotations) + .toList(); + + for (var i = 0; i < nullables.size(); i++) { + var sch = schemas.get(i); + nullables.get(i).ifPresent( + nullable -> sch.setNullable( + nullable ? true + : null)); + } + }); + } + } } } } + private Optional computeNullabilityFromAnnotations( + Stream annotations) { + return annotations + .map(annotation -> annotationsMap.get(annotation.getName())) + .filter(Objects::nonNull) + .max(Comparator.comparingInt(AnnotationMatcher::getScore)) + .map(AnnotationMatcher::doesMakeNullable); + } + @Override public Collection> getRequiredPlugins() { return List.of(BackbonePlugin.class); } - @Nonnull + @NonNull @Override - public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { + public NodeDependencies scan(@NonNull NodeDependencies nodeDependencies) { return nodeDependencies; } @Override - public void setConfiguration(@Nonnull PluginConfiguration configuration) { + public void setConfiguration(@NonNull PluginConfiguration configuration) { super.setConfiguration(configuration); this.annotationsMap = mapByName( new NonnullPluginConfig.Processor(getConfiguration()) diff --git a/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/hilla/parser/plugins/nonnull/NonnullPluginConfig.java b/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/hilla/parser/plugins/nonnull/NonnullPluginConfig.java index 50a2530a09..46b54f0f49 100644 --- a/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/hilla/parser/plugins/nonnull/NonnullPluginConfig.java +++ b/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/hilla/parser/plugins/nonnull/NonnullPluginConfig.java @@ -47,6 +47,11 @@ static class Processor extends ConfigList.Processor { // Package-level annotations have low score new AnnotationMatcher("org.springframework.lang.NonNullApi", false, 10), + // Id and Version annotation usually mark nullable fields for + // CRUD operations. + // Low score allows other annotations to override them. + new AnnotationMatcher("jakarta.persistence.Id", true, 20), + new AnnotationMatcher("jakarta.persistence.Version", true, 20), // Nullable-like annotations get a higher score. This should // only matter when they are used in conjunction with // package-level annotations @@ -57,6 +62,8 @@ static class Processor extends ConfigList.Processor { new AnnotationMatcher("org.eclipse.jdt.annotation.Nullable", true, 20), new AnnotationMatcher("com.vaadin.hilla.Nullable", true, 20), + new AnnotationMatcher("org.jspecify.annotations.Nullable", true, + 20), // Nonnull-like annotations have the highest score for // compatibility with the old generator new AnnotationMatcher("jakarta.annotation.Nonnull", false, 30), @@ -67,7 +74,9 @@ static class Processor extends ConfigList.Processor { new AnnotationMatcher("androidx.annotation.NonNull", false, 30), new AnnotationMatcher("org.eclipse.jdt.annotation.NonNull", false, 30), - new AnnotationMatcher("com.vaadin.hilla.Nonnull", false, 30)); + new AnnotationMatcher("com.vaadin.hilla.Nonnull", false, 30), + new AnnotationMatcher("org.jspecify.annotations.NonNull", false, + 30)); public Processor(NonnullPluginConfig config) { super(config, defaults); diff --git a/packages/java/parser-jvm-plugin-nonnull/src/main/java/module-info.java b/packages/java/parser-jvm-plugin-nonnull/src/main/java/module-info.java index 79fb603c70..1d9b6df516 100644 --- a/packages/java/parser-jvm-plugin-nonnull/src/main/java/module-info.java +++ b/packages/java/parser-jvm-plugin-nonnull/src/main/java/module-info.java @@ -2,7 +2,7 @@ requires com.fasterxml.jackson.databind; requires com.vaadin.hilla.parser.plugins.backbone; requires com.vaadin.hilla.parser.utils; - requires jsr305; + requires org.jspecify; requires jakarta.annotation; requires io.swagger.v3.oas.models; requires io.github.classgraph; diff --git a/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/basic/BasicEndpoint.java b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/basic/BasicEndpoint.java index 5e28daf6d5..698e3dd800 100644 --- a/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/basic/BasicEndpoint.java +++ b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/basic/BasicEndpoint.java @@ -12,14 +12,14 @@ public class BasicEndpoint { return map; } - @javax.annotation.Nonnull + @org.jspecify.annotations.NonNull public List<@Nonnull String> mixedAnnotations(@Nonnull String parameter) { return List.of(parameter); } - @javax.annotation.Nonnull + @org.jspecify.annotations.NonNull public String nonTypeAnnotation( - @javax.annotation.Nonnull String nonTypeParameter) { + @org.jspecify.annotations.NonNull String nonTypeParameter) { return nonTypeParameter; } @@ -59,10 +59,10 @@ public NonNullableFieldModel nonNullableFieldModel( } public static class ExtendedNonNullableModel extends NonNullableModel { - @javax.annotation.Nonnull + @org.jspecify.annotations.NonNull public List<@Nonnull String> mixedAnnotations; - @javax.annotation.Nonnull + @org.jspecify.annotations.NonNull public String nonTypeAnnotation; } diff --git a/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/basic/BasicTest.java b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/basic/BasicTest.java index 1d936ab789..6686c3abf9 100644 --- a/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/basic/BasicTest.java +++ b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/basic/BasicTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Assertions; @@ -25,11 +26,12 @@ public void should_ApplyNonNullAnnotation() .of(new AnnotationMatcher(Nonnull.class.getName(), false, 0)), null)); - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) - .addPlugin(new BackbonePlugin()).addPlugin(plugin).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) + .addPlugin(new BackbonePlugin()).addPlugin(plugin) + .execute(List.of(BasicEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/extended/ExtendedTest.java b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/extended/ExtendedTest.java index d2cbf19add..dff84d2764 100644 --- a/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/extended/ExtendedTest.java +++ b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/extended/ExtendedTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -24,11 +25,12 @@ public void should_ApplyNonNullAnnotation() .of(new AnnotationMatcher(Nonnull.class.getName(), false, 0)), null)); - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) - .addPlugin(new BackbonePlugin()).addPlugin(plugin).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) + .addPlugin(new BackbonePlugin()).addPlugin(plugin) + .execute(List.of(ExtendedEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nonnullapi/NonNullApiEndpoint.java b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nonnullapi/NonNullApiEndpoint.java index 7d6153a55e..bd1a59af9b 100644 --- a/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nonnullapi/NonNullApiEndpoint.java +++ b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nonnullapi/NonNullApiEndpoint.java @@ -47,4 +47,17 @@ public Optional optionalMethod(Optional opt) { public SubPackageDependency subPackageMethod(SubPackageDependency entity) { return entity; } + + public static class Generic { + public T genericField; + } + + public Generic genericMethod(Generic generic) { + return generic; + } + + public Generic<@NullableSignature String> genericNullableMethod( + Generic<@NullableSignature String> generic) { + return generic; + } } diff --git a/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nonnullapi/NonNullApiTest.java b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nonnullapi/NonNullApiTest.java index be5399e54e..282c45248a 100644 --- a/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nonnullapi/NonNullApiTest.java +++ b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nonnullapi/NonNullApiTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -30,11 +31,12 @@ public void should_ApplyNonNullApiAnnotation() 20)), null)); - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) - .addPlugin(new BackbonePlugin()).addPlugin(plugin).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) + .addPlugin(new BackbonePlugin()).addPlugin(plugin) + .execute(List.of(NonNullApiEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/Endpoint.java b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nullable/Endpoint.java similarity index 79% rename from packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/Endpoint.java rename to packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nullable/Endpoint.java index 9166eac0ca..e5eab005f8 100644 --- a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/Endpoint.java +++ b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nullable/Endpoint.java @@ -1,4 +1,4 @@ -package com.vaadin.hilla.internal; +package com.vaadin.hilla.parser.plugins.nonnull.nullable; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; @@ -8,5 +8,4 @@ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface Endpoint { - String value() default ""; } diff --git a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/EndpointExposed.java b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nullable/EndpointExposed.java similarity index 81% rename from packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/EndpointExposed.java rename to packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nullable/EndpointExposed.java index 803c8b93df..0ed232996c 100644 --- a/packages/java/engine-runtime/src/test/java/com/vaadin/hilla/internal/EndpointExposed.java +++ b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nullable/EndpointExposed.java @@ -1,4 +1,4 @@ -package com.vaadin.hilla.internal; +package com.vaadin.hilla.parser.plugins.nonnull.nullable; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nullable/NullableEndpoint.java b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nullable/NullableEndpoint.java new file mode 100644 index 0000000000..a3ab8aed6c --- /dev/null +++ b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nullable/NullableEndpoint.java @@ -0,0 +1,20 @@ +package com.vaadin.hilla.parser.plugins.nonnull.nullable; + +import jakarta.persistence.Id; +import jakarta.persistence.Version; + +@Endpoint +public class NullableEndpoint { + + public NullableFieldModel nullableFieldModel( + NullableFieldModel nullableFieldModel) { + return nullableFieldModel; + } + + public static class NullableFieldModel { + @Id + public String id; + @Version + public Long version; + } +} diff --git a/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nullable/NullableTest.java b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nullable/NullableTest.java new file mode 100644 index 0000000000..0129fdbed0 --- /dev/null +++ b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nullable/NullableTest.java @@ -0,0 +1,51 @@ +package com.vaadin.hilla.parser.plugins.nonnull.nullable; + +import com.vaadin.hilla.parser.core.Parser; +import com.vaadin.hilla.parser.plugins.backbone.BackbonePlugin; +import com.vaadin.hilla.parser.plugins.nonnull.AnnotationMatcher; +import com.vaadin.hilla.parser.plugins.nonnull.NonnullPlugin; +import com.vaadin.hilla.parser.plugins.nonnull.NonnullPluginConfig; +import com.vaadin.hilla.parser.plugins.nonnull.nullable.nonNullApi.NullableNonNullEndpoint; +import com.vaadin.hilla.parser.plugins.nonnull.test.helpers.TestHelper; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.io.IOException; +import java.net.URISyntaxException; +import java.util.List; +import java.util.Set; + +public class NullableTest { + private final TestHelper helper = new TestHelper(getClass()); + + @Test + public void should_ApplyNullableAnnotation() + throws IOException, URISyntaxException { + var plugin = new NonnullPlugin(); + plugin.setConfiguration(new NonnullPluginConfig()); + + var openAPI = new Parser() + .classPath(Set.of(helper.getTargetDir().toString())) + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) + .addPlugin(new BackbonePlugin()).addPlugin(plugin) + .execute(List.of(NullableEndpoint.class, + NullableNonNullEndpoint.class)); + + helper.executeParserWithConfig(openAPI); + } + + @Test + public void annotationMatcher_shouldHaveDefaultConstructorAndSetter() { + // to enable maven initialize instances of AnnotationMatcher from + // pom.xml configurations, properly, it should have the default + // constructor and setter methods: + AnnotationMatcher annotationMatcher = new AnnotationMatcher(); + annotationMatcher.setName("name"); + annotationMatcher.setScore(100); + annotationMatcher.setMakesNullable(true); + Assertions.assertEquals("name", annotationMatcher.getName()); + Assertions.assertEquals(100, annotationMatcher.getScore()); + Assertions.assertTrue(annotationMatcher.doesMakeNullable()); + } +} diff --git a/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nullable/nonNullApi/NullableNonNullEndpoint.java b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nullable/nonNullApi/NullableNonNullEndpoint.java new file mode 100644 index 0000000000..edd5342c0d --- /dev/null +++ b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nullable/nonNullApi/NullableNonNullEndpoint.java @@ -0,0 +1,26 @@ +package com.vaadin.hilla.parser.plugins.nonnull.nullable.nonNullApi; + +import com.vaadin.hilla.parser.plugins.nonnull.nullable.Endpoint; +import jakarta.annotation.Nonnull; +import jakarta.persistence.Id; +import jakarta.persistence.Version; + +@Endpoint +public class NullableNonNullEndpoint { + + public NullableNonNullFieldModel nullableNonNullFieldModel( + NullableNonNullFieldModel nullableNonNullFieldModel) { + return nullableNonNullFieldModel; + } + + public static class NullableNonNullFieldModel { + public String required; + @Id + public String id; + @Version + public Long version; + @Version + @Nonnull + public Long notNullVersion; + } +} diff --git a/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nullable/nonNullApi/package-info.java b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nullable/nonNullApi/package-info.java new file mode 100644 index 0000000000..1f8562e6e5 --- /dev/null +++ b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/nullable/nonNullApi/package-info.java @@ -0,0 +1,4 @@ +@NonNullApi +package com.vaadin.hilla.parser.plugins.nonnull.nullable.nonNullApi; + +import org.springframework.lang.NonNullApi; diff --git a/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/superclassmethods/SuperClassMethodsTest.java b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/superclassmethods/SuperClassMethodsTest.java index b8c51dc5de..c6a6c43dd7 100644 --- a/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/superclassmethods/SuperClassMethodsTest.java +++ b/packages/java/parser-jvm-plugin-nonnull/src/test/java/com/vaadin/hilla/parser/plugins/nonnull/superclassmethods/SuperClassMethodsTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -24,11 +25,12 @@ public void should_CorrectlyHandleSuperClassMethods() .of(new AnnotationMatcher(Nonnull.class.getName(), false, 0)), null)); - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) - .addPlugin(new BackbonePlugin()).addPlugin(plugin).execute(); + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) + .addPlugin(new BackbonePlugin()).addPlugin(plugin) + .execute(List.of(PersonEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-nonnull/src/test/resources/com/vaadin/hilla/parser/plugins/nonnull/nonnullapi/openapi.json b/packages/java/parser-jvm-plugin-nonnull/src/test/resources/com/vaadin/hilla/parser/plugins/nonnull/nonnullapi/openapi.json index f74b693566..4b34c197f6 100644 --- a/packages/java/parser-jvm-plugin-nonnull/src/test/resources/com/vaadin/hilla/parser/plugins/nonnull/nonnullapi/openapi.json +++ b/packages/java/parser-jvm-plugin-nonnull/src/test/resources/com/vaadin/hilla/parser/plugins/nonnull/nonnullapi/openapi.json @@ -53,6 +53,116 @@ } } }, + "/NonNullApiEndpoint/genericMethod": { + "post": { + "tags": ["NonNullApiEndpoint"], + "operationId": "NonNullApiEndpoint_genericMethod_POST", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "generic": { + "anyOf": [ + { + "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.nonnull.nonnullapi.NonNullApiEndpoint$Generic" + } + ], + "x-type-arguments": { + "allOf": [ + { + "type": "string" + } + ] + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.nonnull.nonnullapi.NonNullApiEndpoint$Generic" + } + ], + "x-type-arguments": { + "allOf": [ + { + "type": "string" + } + ] + } + } + } + } + } + } + } + }, + "/NonNullApiEndpoint/genericNullableMethod": { + "post": { + "tags": ["NonNullApiEndpoint"], + "operationId": "NonNullApiEndpoint_genericNullableMethod_POST", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "generic": { + "anyOf": [ + { + "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.nonnull.nonnullapi.NonNullApiEndpoint$Generic" + } + ], + "x-type-arguments": { + "allOf": [ + { + "type": "string", + "nullable": true + } + ] + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "$ref": "#/components/schemas/com.vaadin.hilla.parser.plugins.nonnull.nonnullapi.NonNullApiEndpoint$Generic" + } + ], + "x-type-arguments": { + "allOf": [ + { + "type": "string", + "nullable": true + } + ] + } + } + } + } + } + } + } + }, "/NonNullApiEndpoint/nestedSignatureMethod": { "post": { "tags": ["NonNullApiEndpoint"], @@ -323,6 +433,18 @@ } } }, + "com.vaadin.hilla.parser.plugins.nonnull.nonnullapi.NonNullApiEndpoint$Generic": { + "type": "object", + "properties": { + "genericField": { + "type": "object", + "x-type-variable": "T" + } + }, + "x-type-parameters": [ + "T" + ] + }, "com.vaadin.hilla.parser.plugins.nonnull.nonnullapi.subpackage.SubPackageDependency": { "type": "object", "properties": { diff --git a/packages/java/parser-jvm-plugin-nonnull/src/test/resources/com/vaadin/hilla/parser/plugins/nonnull/nullable/openapi.json b/packages/java/parser-jvm-plugin-nonnull/src/test/resources/com/vaadin/hilla/parser/plugins/nonnull/nullable/openapi.json new file mode 100644 index 0000000000..07336d76d8 --- /dev/null +++ b/packages/java/parser-jvm-plugin-nonnull/src/test/resources/com/vaadin/hilla/parser/plugins/nonnull/nullable/openapi.json @@ -0,0 +1,150 @@ +{ + "openapi" : "3.0.1", + "info" : { + "title" : "Hilla Application", + "version" : "1.0.0" + }, + "servers" : [ + { + "url" : "http://localhost:8080/connect", + "description" : "Hilla Backend" + } + ], + "tags" : [ + { + "name" : "NullableEndpoint", + "x-class-name" : "com.vaadin.hilla.parser.plugins.nonnull.nullable.NullableEndpoint" + }, + { + "name" : "NullableNonNullEndpoint", + "x-class-name" : "com.vaadin.hilla.parser.plugins.nonnull.nullable.nonNullApi.NullableNonNullEndpoint" + } + ], + "paths" : { + "/NullableEndpoint/nullableFieldModel" : { + "post" : { + "tags" : [ + "NullableEndpoint" + ], + "operationId" : "NullableEndpoint_nullableFieldModel_POST", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "nullableFieldModel" : { + "nullable" : true, + "anyOf" : [ + { + "$ref" : "#/components/schemas/com.vaadin.hilla.parser.plugins.nonnull.nullable.NullableEndpoint$NullableFieldModel" + } + ] + } + } + } + } + } + }, + "responses" : { + "200" : { + "description" : "", + "content" : { + "application/json" : { + "schema" : { + "nullable" : true, + "anyOf" : [ + { + "$ref" : "#/components/schemas/com.vaadin.hilla.parser.plugins.nonnull.nullable.NullableEndpoint$NullableFieldModel" + } + ] + } + } + } + } + } + } + }, + "/NullableNonNullEndpoint/nullableNonNullFieldModel" : { + "post" : { + "tags" : [ + "NullableNonNullEndpoint" + ], + "operationId" : "NullableNonNullEndpoint_nullableNonNullFieldModel_POST", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "nullableNonNullFieldModel" : { + "anyOf" : [ + { + "$ref" : "#/components/schemas/com.vaadin.hilla.parser.plugins.nonnull.nullable.nonNullApi.NullableNonNullEndpoint$NullableNonNullFieldModel" + } + ] + } + } + } + } + } + }, + "responses" : { + "200" : { + "description" : "", + "content" : { + "application/json" : { + "schema" : { + "anyOf" : [ + { + "$ref" : "#/components/schemas/com.vaadin.hilla.parser.plugins.nonnull.nullable.nonNullApi.NullableNonNullEndpoint$NullableNonNullFieldModel" + } + ] + } + } + } + } + } + } + } + }, + "components" : { + "schemas" : { + "com.vaadin.hilla.parser.plugins.nonnull.nullable.NullableEndpoint$NullableFieldModel" : { + "type" : "object", + "properties" : { + "id" : { + "type" : "string", + "nullable" : true + }, + "version" : { + "type" : "integer", + "format" : "int64", + "nullable" : true + } + } + }, + "com.vaadin.hilla.parser.plugins.nonnull.nullable.nonNullApi.NullableNonNullEndpoint$NullableNonNullFieldModel" : { + "type" : "object", + "properties" : { + "required" : { + "type" : "string" + }, + "id" : { + "type" : "string", + "nullable" : true + }, + "version" : { + "type" : "integer", + "format" : "int64", + "nullable" : true + }, + "notNullVersion" : { + "type" : "integer", + "format" : "int64" + } + } + } + } + } +} diff --git a/packages/java/parser-jvm-plugin-subtypes/pom.xml b/packages/java/parser-jvm-plugin-subtypes/pom.xml index 2aeab6b63e..8ed6586c62 100644 --- a/packages/java/parser-jvm-plugin-subtypes/pom.xml +++ b/packages/java/parser-jvm-plugin-subtypes/pom.xml @@ -7,7 +7,7 @@ com.vaadin hilla-project - 24.5-SNAPSHOT + 24.7-SNAPSHOT ../../../pom.xml @@ -26,8 +26,8 @@ ${project.version} - com.google.code.findbugs - jsr305 + org.jspecify + jspecify io.github.classgraph diff --git a/packages/java/parser-jvm-plugin-subtypes/src/main/java/com/vaadin/hilla/parser/plugins/subtypes/SubTypesPlugin.java b/packages/java/parser-jvm-plugin-subtypes/src/main/java/com/vaadin/hilla/parser/plugins/subtypes/SubTypesPlugin.java index f1eaf13873..4ad9adbe3a 100644 --- a/packages/java/parser-jvm-plugin-subtypes/src/main/java/com/vaadin/hilla/parser/plugins/subtypes/SubTypesPlugin.java +++ b/packages/java/parser-jvm-plugin-subtypes/src/main/java/com/vaadin/hilla/parser/plugins/subtypes/SubTypesPlugin.java @@ -21,7 +21,7 @@ import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.media.StringSchema; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -97,9 +97,9 @@ public Collection> getRequiredPlugins() { return List.of(BackbonePlugin.class); } - @Nonnull + @NonNull @Override - public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { + public NodeDependencies scan(@NonNull NodeDependencies nodeDependencies) { if (!(nodeDependencies.getNode() instanceof TypedNode)) { return nodeDependencies; } @@ -142,13 +142,13 @@ private static Stream getJsonSubTypes(Class cls) { */ public static class UnionNode extends AbstractNode> { - private UnionNode(@Nonnull ClassInfoModel source, - @Nonnull ObjectSchema target) { + private UnionNode(@NonNull ClassInfoModel source, + @NonNull ObjectSchema target) { super(source, target); } - @Nonnull - static public UnionNode of(@Nonnull ClassInfoModel model) { + @NonNull + static public UnionNode of(@NonNull ClassInfoModel model) { return new UnionNode(model, new ObjectSchema()); } } diff --git a/packages/java/parser-jvm-plugin-subtypes/src/main/java/module-info.java b/packages/java/parser-jvm-plugin-subtypes/src/main/java/module-info.java index 2982aed1cf..f46af1dd80 100644 --- a/packages/java/parser-jvm-plugin-subtypes/src/main/java/module-info.java +++ b/packages/java/parser-jvm-plugin-subtypes/src/main/java/module-info.java @@ -2,7 +2,7 @@ requires com.fasterxml.jackson.databind; requires com.vaadin.hilla.parser.plugins.backbone; requires com.vaadin.hilla.parser.utils; - requires jsr305; + requires org.jspecify; requires jakarta.annotation; requires io.swagger.v3.oas.models; requires io.github.classgraph; diff --git a/packages/java/parser-jvm-plugin-subtypes/src/test/java/com/vaadin/hilla/parser/plugins/subtypes/SubTypesMethodsTest.java b/packages/java/parser-jvm-plugin-subtypes/src/test/java/com/vaadin/hilla/parser/plugins/subtypes/SubTypesMethodsTest.java index ceb3d6478e..2d0bd6e7c1 100644 --- a/packages/java/parser-jvm-plugin-subtypes/src/test/java/com/vaadin/hilla/parser/plugins/subtypes/SubTypesMethodsTest.java +++ b/packages/java/parser-jvm-plugin-subtypes/src/test/java/com/vaadin/hilla/parser/plugins/subtypes/SubTypesMethodsTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -16,12 +17,12 @@ public class SubTypesMethodsTest { @Test public void should_CorrectlyHandleSuperClassMethods() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) .addPlugin(new BackbonePlugin()).addPlugin(new SubTypesPlugin()) - .execute(); + .execute(List.of(SubTypesEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-transfertypes/pom.xml b/packages/java/parser-jvm-plugin-transfertypes/pom.xml index 07320328a1..1184e499a2 100644 --- a/packages/java/parser-jvm-plugin-transfertypes/pom.xml +++ b/packages/java/parser-jvm-plugin-transfertypes/pom.xml @@ -7,7 +7,7 @@ com.vaadin hilla-project - 24.5-SNAPSHOT + 24.7-SNAPSHOT ../../../pom.xml @@ -26,8 +26,8 @@ ${project.version} - com.google.code.findbugs - jsr305 + org.jspecify + jspecify io.github.classgraph diff --git a/packages/java/parser-jvm-plugin-transfertypes/src/main/java/com/vaadin/hilla/parser/plugins/transfertypes/TransferTypesPlugin.java b/packages/java/parser-jvm-plugin-transfertypes/src/main/java/com/vaadin/hilla/parser/plugins/transfertypes/TransferTypesPlugin.java index 51bde133e6..1bb43420c9 100644 --- a/packages/java/parser-jvm-plugin-transfertypes/src/main/java/com/vaadin/hilla/parser/plugins/transfertypes/TransferTypesPlugin.java +++ b/packages/java/parser-jvm-plugin-transfertypes/src/main/java/com/vaadin/hilla/parser/plugins/transfertypes/TransferTypesPlugin.java @@ -7,9 +7,11 @@ import java.util.UUID; import java.util.stream.Stream; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.vaadin.hilla.mappedtypes.Order; import com.vaadin.hilla.mappedtypes.Pageable; import com.vaadin.hilla.mappedtypes.Sort; @@ -44,6 +46,8 @@ public final class TransferTypesPlugin classMap.put("com.vaadin.hilla.EndpointSubscription", EndpointSubscription.class); classMap.put(JsonNode.class.getName(), Object.class); + classMap.put(ObjectNode.class.getName(), Object.class); + classMap.put(ArrayNode.class.getName(), List.class); } public TransferTypesPlugin() { @@ -63,9 +67,9 @@ public Collection> getRequiredPlugins() { return List.of(BackbonePlugin.class); } - @Nonnull + @NonNull @Override - public NodeDependencies scan(@Nonnull NodeDependencies nodeDependencies) { + public NodeDependencies scan(@NonNull NodeDependencies nodeDependencies) { return nodeDependencies.processChildNodes(this::processNodes) .processRelatedNodes(this::processNodes); } diff --git a/packages/java/parser-jvm-plugin-transfertypes/src/main/java/module-info.java b/packages/java/parser-jvm-plugin-transfertypes/src/main/java/module-info.java index 7ba23a325c..88f1f04d2d 100644 --- a/packages/java/parser-jvm-plugin-transfertypes/src/main/java/module-info.java +++ b/packages/java/parser-jvm-plugin-transfertypes/src/main/java/module-info.java @@ -4,7 +4,7 @@ requires com.vaadin.hilla.parser.plugins.backbone; requires com.vaadin.hilla.parser.utils; requires com.vaadin.hilla.runtime.transfertypes; - requires jsr305; + requires org.jspecify; requires jakarta.annotation; requires io.swagger.v3.oas.models; requires io.github.classgraph; diff --git a/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/jsonnode/JsonNodeEndpoint.java b/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/jsonnode/JsonNodeEndpoint.java index 3d4149fcf8..f614adfd42 100644 --- a/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/jsonnode/JsonNodeEndpoint.java +++ b/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/jsonnode/JsonNodeEndpoint.java @@ -1,10 +1,20 @@ package com.vaadin.hilla.parser.plugins.transfertypes.jsonnode; import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; @Endpoint public class JsonNodeEndpoint { - public JsonNode echo(JsonNode node) { + public JsonNode jsonNode(JsonNode node) { + return node; + } + + public ObjectNode objectNode(ObjectNode node) { + return node; + } + + public ArrayNode arrayNode(ArrayNode node) { return node; } } diff --git a/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/jsonnode/JsonNodeTest.java b/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/jsonnode/JsonNodeTest.java index 48949b0f90..708fddac4b 100644 --- a/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/jsonnode/JsonNodeTest.java +++ b/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/jsonnode/JsonNodeTest.java @@ -8,6 +8,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; public class JsonNodeTest { @@ -16,11 +17,12 @@ public class JsonNodeTest { @Test public void should_ReplaceJsonNodeClassWithObject() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) + .endpointAnnotations(List.of(Endpoint.class)) .addPlugin(new BackbonePlugin()) - .addPlugin(new TransferTypesPlugin()).execute(); + .addPlugin(new TransferTypesPlugin()) + .execute(List.of(JsonNodeEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/jsonnode/Nonnull.java b/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/jsonnode/Nonnull.java new file mode 100644 index 0000000000..006adf9022 --- /dev/null +++ b/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/jsonnode/Nonnull.java @@ -0,0 +1,11 @@ +package com.vaadin.hilla.parser.plugins.transfertypes.jsonnode; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target({ ElementType.TYPE_USE }) +public @interface Nonnull { +} diff --git a/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/jsonnode/Nullable.java b/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/jsonnode/Nullable.java new file mode 100644 index 0000000000..efb7f9dcf7 --- /dev/null +++ b/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/jsonnode/Nullable.java @@ -0,0 +1,11 @@ +package com.vaadin.hilla.parser.plugins.transfertypes.jsonnode; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target({ ElementType.TYPE_USE }) +public @interface Nullable { +} diff --git a/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/pageable/bare/BarePageableTest.java b/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/pageable/bare/BarePageableTest.java index 19276436f8..c034a54c8c 100644 --- a/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/pageable/bare/BarePageableTest.java +++ b/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/pageable/bare/BarePageableTest.java @@ -3,6 +3,7 @@ import java.io.File; import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import org.junit.jupiter.api.Test; import org.springframework.data.domain.Pageable; @@ -14,18 +15,20 @@ public class BarePageableTest { private final TestHelper helper = new TestHelper(getClass()); + private final List> endpoints = List + .of(BarePageableEndpoint.class); @Test public void should_ConsiderInternalDependenciesForReplacedEntities() throws IOException, URISyntaxException { var classpath = helper.getExtendedClassPath(Pageable.class); - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(classpath.split(File.pathSeparator)) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) .addPlugin(new BackbonePlugin()) - .addPlugin(new TransferTypesPlugin()).execute(); + .addPlugin(new TransferTypesPlugin()).execute(endpoints); helper.executeParserWithConfig(openAPI); } @@ -35,12 +38,12 @@ public void should_CorrectlyResolveReplacedDependencies() throws IOException, URISyntaxException { var classpath = helper.getExtendedClassPath(Pageable.class); - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(classpath.split(File.pathSeparator)) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) .addPlugin(new BackbonePlugin()) - .addPlugin(new TransferTypesPlugin()).execute(); + .addPlugin(new TransferTypesPlugin()).execute(endpoints); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/pageable/basic/PageableTest.java b/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/pageable/basic/PageableTest.java index 11d09a3a32..422acd3547 100644 --- a/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/pageable/basic/PageableTest.java +++ b/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/pageable/basic/PageableTest.java @@ -3,6 +3,7 @@ import java.io.File; import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import org.junit.jupiter.api.Test; import org.springframework.data.domain.Pageable; @@ -14,18 +15,19 @@ public class PageableTest { private final TestHelper helper = new TestHelper(getClass()); + private final List> endpoints = List.of(PageableEndpoint.class); @Test public void should_CorrectlyResolveReplacedDependencies() throws IOException, URISyntaxException { var classpath = helper.getExtendedClassPath(Pageable.class); - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(classpath.split(File.pathSeparator)) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) .addPlugin(new BackbonePlugin()) - .addPlugin(new TransferTypesPlugin()).execute(); + .addPlugin(new TransferTypesPlugin()).execute(endpoints); helper.executeParserWithConfig(openAPI); } @@ -35,12 +37,12 @@ public void should_ReplaceSpringClassesWithSubstitutes() throws IOException, URISyntaxException { var classpath = helper.getExtendedClassPath(Pageable.class); - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(classpath.split(File.pathSeparator)) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) .addPlugin(new BackbonePlugin()) - .addPlugin(new TransferTypesPlugin()).execute(); + .addPlugin(new TransferTypesPlugin()).execute(endpoints); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/push/PushTypeTest.java b/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/push/PushTypeTest.java index 75fa00bd14..911c6323ee 100644 --- a/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/push/PushTypeTest.java +++ b/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/push/PushTypeTest.java @@ -3,6 +3,7 @@ import java.io.File; import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import org.junit.jupiter.api.Test; @@ -22,12 +23,13 @@ public void should_ReplacePushTypes() var classpath = helper.getExtendedClassPath(Flux.class, EndpointSubscription.class); - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(classpath.split(File.pathSeparator)) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) .addPlugin(new BackbonePlugin()) - .addPlugin(new TransferTypesPlugin()).execute(); + .addPlugin(new TransferTypesPlugin()) + .execute(List.of(OtherEndpoint.class, PushTypeEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/uuid/UUIDTest.java b/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/uuid/UUIDTest.java index a30c815cfa..76f2601aa9 100644 --- a/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/uuid/UUIDTest.java +++ b/packages/java/parser-jvm-plugin-transfertypes/src/test/java/com/vaadin/hilla/parser/plugins/transfertypes/uuid/UUIDTest.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -17,12 +18,13 @@ public class UUIDTest { @Test public void should_ReplaceUUIDClassWithString() throws IOException, URISyntaxException { - var openAPI = new Parser().classLoader(getClass().getClassLoader()) + var openAPI = new Parser() .classPath(Set.of(helper.getTargetDir().toString())) - .endpointAnnotation(Endpoint.class.getName()) - .endpointExposedAnnotation(EndpointExposed.class.getName()) + .endpointAnnotations(List.of(Endpoint.class)) + .endpointExposedAnnotations(List.of(EndpointExposed.class)) .addPlugin(new BackbonePlugin()) - .addPlugin(new TransferTypesPlugin()).execute(); + .addPlugin(new TransferTypesPlugin()) + .execute(List.of(UUIDEndpoint.class)); helper.executeParserWithConfig(openAPI); } diff --git a/packages/java/parser-jvm-plugin-transfertypes/src/test/resources/com/vaadin/hilla/parser/plugins/transfertypes/jsonnode/openapi.json b/packages/java/parser-jvm-plugin-transfertypes/src/test/resources/com/vaadin/hilla/parser/plugins/transfertypes/jsonnode/openapi.json index 097592ea73..c8b8d5e1ca 100644 --- a/packages/java/parser-jvm-plugin-transfertypes/src/test/resources/com/vaadin/hilla/parser/plugins/transfertypes/jsonnode/openapi.json +++ b/packages/java/parser-jvm-plugin-transfertypes/src/test/resources/com/vaadin/hilla/parser/plugins/transfertypes/jsonnode/openapi.json @@ -17,12 +17,82 @@ } ], "paths" : { - "/JsonNodeEndpoint/echo" : { + "/JsonNodeEndpoint/arrayNode" : { "post" : { "tags" : [ "JsonNodeEndpoint" ], - "operationId" : "JsonNodeEndpoint_echo_POST", + "operationId" : "JsonNodeEndpoint_arrayNode_POST", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "node" : { + "type" : "array", + "nullable" : true + } + } + } + } + } + }, + "responses" : { + "200" : { + "description" : "", + "content" : { + "application/json" : { + "schema" : { + "type" : "array", + "nullable" : true + } + } + } + } + } + } + }, + "/JsonNodeEndpoint/jsonNode" : { + "post" : { + "tags" : [ + "JsonNodeEndpoint" + ], + "operationId" : "JsonNodeEndpoint_jsonNode_POST", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "node" : { + "type" : "object" + } + } + } + } + } + }, + "responses" : { + "200" : { + "description" : "", + "content" : { + "application/json" : { + "schema" : { + "type" : "object" + } + } + } + } + } + } + }, + "/JsonNodeEndpoint/objectNode" : { + "post" : { + "tags" : [ + "JsonNodeEndpoint" + ], + "operationId" : "JsonNodeEndpoint_objectNode_POST", "requestBody" : { "content" : { "application/json" : { diff --git a/packages/java/parser-jvm-test-utils/pom.xml b/packages/java/parser-jvm-test-utils/pom.xml index c39e1a4388..760a363eff 100644 --- a/packages/java/parser-jvm-test-utils/pom.xml +++ b/packages/java/parser-jvm-test-utils/pom.xml @@ -7,7 +7,7 @@ com.vaadin hilla-project - 24.5-SNAPSHOT + 24.7-SNAPSHOT ../../../pom.xml @@ -25,8 +25,8 @@ junit-jupiter - com.google.code.findbugs - jsr305 + org.jspecify + jspecify com.fasterxml.jackson.core diff --git a/packages/java/parser-jvm-test-utils/src/main/java/com/vaadin/hilla/parser/testutils/TestEngineConfigurationPathResolver.java b/packages/java/parser-jvm-test-utils/src/main/java/com/vaadin/hilla/parser/testutils/TestEngineConfigurationPathResolver.java index 5e85e32cd8..5f42126f96 100644 --- a/packages/java/parser-jvm-test-utils/src/main/java/com/vaadin/hilla/parser/testutils/TestEngineConfigurationPathResolver.java +++ b/packages/java/parser-jvm-test-utils/src/main/java/com/vaadin/hilla/parser/testutils/TestEngineConfigurationPathResolver.java @@ -8,7 +8,7 @@ import java.util.Objects; import java.util.stream.Collectors; -import javax.annotation.Nonnull; +import org.jspecify.annotations.NonNull; /** * A converter for relative paths of @@ -24,7 +24,7 @@ public final class TestEngineConfigurationPathResolver { private static final String CLASS_NAME = "com.vaadin.hilla.engine.EngineConfiguration"; private static final String CLASS_PATH_FIELD_NAME = "classPath"; - public static T resolve(@Nonnull T obj, @Nonnull Path baseDir) + public static T resolve(@NonNull T obj, @NonNull Path baseDir) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException { Objects.requireNonNull(baseDir); diff --git a/packages/java/parser-jvm-test-utils/src/main/java/module-info.java b/packages/java/parser-jvm-test-utils/src/main/java/module-info.java index a76571807b..3ee96f8ba0 100644 --- a/packages/java/parser-jvm-test-utils/src/main/java/module-info.java +++ b/packages/java/parser-jvm-test-utils/src/main/java/module-info.java @@ -1,7 +1,7 @@ module com.vaadin.hilla.parser.testutils { requires com.fasterxml.jackson.databind; requires com.vaadin.hilla.parser.utils; - requires jsr305; + requires org.jspecify; requires io.swagger.v3.oas.models; requires io.swagger.v3.core; requires org.junit.jupiter.api; diff --git a/packages/java/parser-jvm-utils/pom.xml b/packages/java/parser-jvm-utils/pom.xml index 67bb357df7..ba8289e873 100644 --- a/packages/java/parser-jvm-utils/pom.xml +++ b/packages/java/parser-jvm-utils/pom.xml @@ -6,7 +6,7 @@ com.vaadin hilla-project - 24.5-SNAPSHOT + 24.7-SNAPSHOT ../../../pom.xml @@ -20,8 +20,8 @@ - com.google.code.findbugs - jsr305 + org.jspecify + jspecify io.swagger.core.v3 diff --git a/packages/java/parser-jvm-utils/src/main/java/com/vaadin/hilla/parser/utils/JsonPrinter.java b/packages/java/parser-jvm-utils/src/main/java/com/vaadin/hilla/parser/utils/JsonPrinter.java index 5ad7275544..366858ea02 100644 --- a/packages/java/parser-jvm-utils/src/main/java/com/vaadin/hilla/parser/utils/JsonPrinter.java +++ b/packages/java/parser-jvm-utils/src/main/java/com/vaadin/hilla/parser/utils/JsonPrinter.java @@ -13,6 +13,7 @@ public final class JsonPrinter { private final Pretty pretty; public JsonPrinter() { + mapper.findAndRegisterModules(); // Putting the `pretty` initialization here allows preserving correct // class initialization sequence. pretty = new Pretty(); diff --git a/packages/java/parser-jvm-utils/src/main/java/module-info.java b/packages/java/parser-jvm-utils/src/main/java/module-info.java index 981a614850..2a466ce335 100644 --- a/packages/java/parser-jvm-utils/src/main/java/module-info.java +++ b/packages/java/parser-jvm-utils/src/main/java/module-info.java @@ -1,5 +1,5 @@ module com.vaadin.hilla.parser.utils { - requires jsr305; + requires org.jspecify; requires com.fasterxml.jackson.core; requires com.fasterxml.jackson.databind; requires io.swagger.v3.core; diff --git a/packages/java/runtime-plugin-transfertypes/pom.xml b/packages/java/runtime-plugin-transfertypes/pom.xml index 200b376c9c..a809f24376 100644 --- a/packages/java/runtime-plugin-transfertypes/pom.xml +++ b/packages/java/runtime-plugin-transfertypes/pom.xml @@ -7,7 +7,7 @@ com.vaadin hilla-project - 24.5-SNAPSHOT + 24.7-SNAPSHOT ../../../pom.xml @@ -21,8 +21,8 @@ - com.google.code.findbugs - jsr305 + org.jspecify + jspecify org.junit.jupiter diff --git a/packages/java/runtime-plugin-transfertypes/src/main/java/com/vaadin/hilla/mappedtypes/Order.java b/packages/java/runtime-plugin-transfertypes/src/main/java/com/vaadin/hilla/mappedtypes/Order.java index 16038ae2e1..970df64587 100644 --- a/packages/java/runtime-plugin-transfertypes/src/main/java/com/vaadin/hilla/mappedtypes/Order.java +++ b/packages/java/runtime-plugin-transfertypes/src/main/java/com/vaadin/hilla/mappedtypes/Order.java @@ -15,7 +15,7 @@ */ package com.vaadin.hilla.mappedtypes; -import jakarta.annotation.Nonnull; +import org.jspecify.annotations.NonNull; import jakarta.validation.constraints.NotBlank; import org.springframework.data.domain.Sort.Direction; @@ -25,9 +25,9 @@ * A DTO for {@code org.springframework.data.domain.Sort.Order}. */ public class Order { - @Nonnull + @NonNull private Direction direction; - @Nonnull + @NonNull @NotBlank private String property; private boolean ignoreCase; diff --git a/packages/java/runtime-plugin-transfertypes/src/main/java/com/vaadin/hilla/mappedtypes/Pageable.java b/packages/java/runtime-plugin-transfertypes/src/main/java/com/vaadin/hilla/mappedtypes/Pageable.java index 7a672601a7..fb68bc3550 100644 --- a/packages/java/runtime-plugin-transfertypes/src/main/java/com/vaadin/hilla/mappedtypes/Pageable.java +++ b/packages/java/runtime-plugin-transfertypes/src/main/java/com/vaadin/hilla/mappedtypes/Pageable.java @@ -15,7 +15,7 @@ */ package com.vaadin.hilla.mappedtypes; -import jakarta.annotation.Nonnull; +import org.jspecify.annotations.NonNull; /** * A DTO for {@code org.springframework.data.domain.Pageable}. @@ -23,7 +23,7 @@ public class Pageable { private int pageNumber; private int pageSize; - @Nonnull + @NonNull private Sort sort = new Sort(); public int getPageNumber() { diff --git a/packages/java/runtime-plugin-transfertypes/src/main/java/com/vaadin/hilla/mappedtypes/Sort.java b/packages/java/runtime-plugin-transfertypes/src/main/java/com/vaadin/hilla/mappedtypes/Sort.java index 7777d03a85..500a366870 100644 --- a/packages/java/runtime-plugin-transfertypes/src/main/java/com/vaadin/hilla/mappedtypes/Sort.java +++ b/packages/java/runtime-plugin-transfertypes/src/main/java/com/vaadin/hilla/mappedtypes/Sort.java @@ -18,13 +18,13 @@ import java.util.ArrayList; import java.util.List; -import jakarta.annotation.Nonnull; +import org.jspecify.annotations.NonNull; /** * A DTO for {@code org.springframework.data.domain.Sort}. */ public class Sort { - @Nonnull + @NonNull private List orders = new ArrayList<>(); public List getOrders() { diff --git a/packages/java/runtime-plugin-transfertypes/src/main/java/module-info.java b/packages/java/runtime-plugin-transfertypes/src/main/java/module-info.java index ff362e56d5..2af194a285 100644 --- a/packages/java/runtime-plugin-transfertypes/src/main/java/module-info.java +++ b/packages/java/runtime-plugin-transfertypes/src/main/java/module-info.java @@ -1,5 +1,5 @@ module com.vaadin.hilla.runtime.transfertypes { - requires jsr305; + requires org.jspecify; requires spring.data.commons; requires jakarta.validation; requires jakarta.annotation; diff --git a/packages/java/tests/csrf-context/package-lock.json b/packages/java/tests/csrf-context/package-lock.json index 71dd865a02..5256f33924 100644 --- a/packages/java/tests/csrf-context/package-lock.json +++ b/packages/java/tests/csrf-context/package-lock.json @@ -1,30 +1,30 @@ { - "name": "no-name", + "name": "csrf-context", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "no-name", "license": "UNLICENSED", "dependencies": { - "@polymer/polymer": "3.5.1", + "@polymer/polymer": "3.5.2", "@vaadin/common-frontend": "0.0.19", "@vaadin/hilla-frontend": "file:../../../ts/frontend", "@vaadin/hilla-lit-form": "file:../../../ts/lit-form", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/icons": "24.5.0-alpha3", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/router": "1.7.5", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/icons": "24.7.0-alpha4", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/router": "2.0.0", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "construct-style-sheets-polyfill": "3.1.0", - "lit": "3.1.4" + "lit": "3.2.1" }, "devDependencies": { - "@babel/preset-react": "7.24.7", - "@rollup/plugin-replace": "5.0.7", - "@rollup/pluginutils": "5.1.0", + "@babel/preset-react": "7.26.3", + "@preact/signals-react-transform": "0.5.1", + "@rollup/plugin-replace": "6.0.2", + "@rollup/pluginutils": "5.1.4", "@vaadin/hilla-generator-cli": "file:../../../ts/generator-cli", "@vaadin/hilla-generator-core": "file:../../../ts/generator-core", "@vaadin/hilla-generator-plugin-backbone": "file:../../../ts/generator-plugin-backbone", @@ -32,21 +32,22 @@ "@vaadin/hilla-generator-plugin-client": "file:../../../ts/generator-plugin-client", "@vaadin/hilla-generator-plugin-model": "file:../../../ts/generator-plugin-model", "@vaadin/hilla-generator-plugin-push": "file:../../../ts/generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "file:../../../ts/generator-plugin-signals", "@vaadin/hilla-generator-plugin-subtypes": "file:../../../ts/generator-plugin-subtypes", "@vaadin/hilla-generator-utils": "file:../../../ts/generator-utils", - "@vitejs/plugin-react": "4.3.1", - "async": "3.2.5", - "glob": "10.4.1", + "@vitejs/plugin-react": "4.3.4", + "async": "3.2.6", + "glob": "11.0.0", "rollup-plugin-brotli": "3.1.0", - "rollup-plugin-visualizer": "5.12.0", + "rollup-plugin-visualizer": "5.13.1", "strip-css-comments": "5.0.0", "transform-ast": "2.4.4", - "typescript": "5.4.5", - "vite": "5.3.1", - "vite-plugin-checker": "0.6.4", - "workbox-build": "7.1.1", - "workbox-core": "7.1.0", - "workbox-precaching": "7.1.0" + "typescript": "5.7.3", + "vite": "6.0.6", + "vite-plugin-checker": "0.8.0", + "workbox-build": "7.3.0", + "workbox-core": "7.3.0", + "workbox-precaching": "7.3.0" } }, "../../../../ts/generator-cli": { @@ -75,7 +76,7 @@ }, "../../../ts/frontend": { "name": "@vaadin/hilla-frontend", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { "@vaadin/common-frontend": "^0.0.19", @@ -83,22 +84,22 @@ "js-cookie": "^3.0.5" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@open-wc/testing": "^3.2.0", - "@types/atmosphere.js": "^2.1.4", - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/js-cookie": "^3.0.4", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", + "@open-wc/testing": "^3.2.2", + "@types/atmosphere.js": "^2.1.6", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/js-cookie": "^3.0.6", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", "fetch-mock": "^9.11.0", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { "lit": "^3.0.0" @@ -106,69 +107,69 @@ }, "../../../ts/generator-cli": { "name": "@vaadin/hilla-generator-cli", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "get-stdin": "^9.0.0", - "meow": "^12.1.1" + "meow": "^13.2.0" }, "bin": { "tsgen": "bin/index.js" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "chai-as-promised": "^7.1.1", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-as-promised": "^7.1.2", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2" } }, "../../../ts/generator-core": { "name": "@vaadin/hilla-generator-core", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { "@apidevtools/swagger-parser": "^10.1.0", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "meow": "^12.1.1", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "meow": "^13.2.0", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" @@ -176,247 +177,281 @@ }, "../../../ts/generator-plugin-backbone": { "name": "@vaadin/hilla-generator-plugin-backbone", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2" } }, "../../../ts/generator-plugin-barrel": { "name": "@vaadin/hilla-generator-plugin-barrel", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "typescript": "5.3.2" + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2" } }, "../../../ts/generator-plugin-client": { "name": "@vaadin/hilla-generator-plugin-client", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "typescript": "5.3.2" + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2" } }, "../../../ts/generator-plugin-model": { "name": "@vaadin/hilla-generator-plugin-model", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "@vaadin/hilla-lit-form": "24.5.0-alpha2" } }, "../../../ts/generator-plugin-push": { "name": "@vaadin/hilla-generator-plugin-push", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" + } + }, + "../../../ts/generator-plugin-signals": { + "name": "@vaadin/hilla-generator-plugin-signals", + "version": "24.7.0-alpha5", + "dev": true, + "license": "Apache 2.0", + "dependencies": { + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "fast-deep-equal": "^3.1.3", + "iterator-helpers-polyfill": "^3.0.1", + "openapi-types": "^12.1.3", + "typescript": "5.7.2" }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2" + "devDependencies": { + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", + "copyfiles": "^2.4.1", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "type-fest": "^4.30.2" + }, + "engines": { + "node": ">= 16.13" } }, "../../../ts/generator-plugin-subtypes": { "name": "@vaadin/hilla-generator-plugin-subtypes", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2" } }, "../../../ts/generator-utils": { "name": "@vaadin/hilla-generator-utils", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "pino": "^8.15.1", - "pino-pretty": "^10.2.0", - "typescript": "5.3.2" + "pino": "^9.5.0", + "pino-pretty": "^10.3.1", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-like": "^1.1.3", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" @@ -450,24 +485,24 @@ }, "../../../ts/lit-form": { "name": "@vaadin/hilla-lit-form", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "validator": "^13.11.0" + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "validator": "^13.12.0" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@types/chai": "^4.3.6", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-dom": "^1.11.0", - "sinon": "^16.0.0", + "@types/chai": "^4.3.20", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-dom": "^1.12.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { "lit": "^3.0.0" @@ -487,12 +522,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -500,30 +536,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", - "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz", - "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.6", - "@babel/generator": "^7.24.6", - "@babel/helper-compilation-targets": "^7.24.6", - "@babel/helper-module-transforms": "^7.24.6", - "@babel/helpers": "^7.24.6", - "@babel/parser": "^7.24.6", - "@babel/template": "^7.24.6", - "@babel/traverse": "^7.24.6", - "@babel/types": "^7.24.6", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -544,29 +580,6 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -577,15 +590,16 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "dev": true, "dependencies": { - "@babel/types": "^7.24.7", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" @@ -605,25 +619,13 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/generator/node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -643,14 +645,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", - "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.24.6", - "@babel/helper-validator-option": "^7.24.6", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -782,29 +784,6 @@ "@babel/core": "^7.4.0-0" } }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -876,29 +855,27 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", - "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-module-imports": "^7.24.6", - "@babel/helper-simple-access": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -920,9 +897,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -959,12 +936,13 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", - "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", "dev": true, "dependencies": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -995,27 +973,27 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -1037,76 +1015,26 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.6.tgz", - "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "dependencies": { - "@babel/template": "^7.24.6", - "@babel/types": "^7.24.6" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "@babel/types": "^7.26.0" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -1485,12 +1413,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1981,12 +1909,12 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", - "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1996,16 +1924,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz", - "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2015,12 +1943,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", - "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", "dev": true, "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.24.7" + "@babel/plugin-transform-react-jsx": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2030,12 +1958,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.6.tgz", - "integrity": "sha512-FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2045,12 +1973,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.6.tgz", - "integrity": "sha512-BQTBCXmFRreU3oTUXcGKuPOfXAGb1liNY4AvvFKsOBAJ89RKcTsIrSsnMYkj59fNa66OFKnSa4AJZfy5Y4B9WA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2060,13 +1988,13 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", - "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2337,17 +2265,17 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", - "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", + "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-transform-react-display-name": "^7.24.7", - "@babel/plugin-transform-react-jsx": "^7.24.7", - "@babel/plugin-transform-react-jsx-development": "^7.24.7", - "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-react-display-name": "^7.25.9", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/plugin-transform-react-jsx-development": "^7.25.9", + "@babel/plugin-transform-react-pure-annotations": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2375,33 +2303,30 @@ "dev": true }, "node_modules/@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2409,23 +2334,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -2435,401 +2343,442 @@ "node": ">=4" } }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/types/node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "cpu": [ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@isaacs/cliui": { @@ -2837,6 +2786,7 @@ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2850,10 +2800,11 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2866,6 +2817,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -2948,9 +2900,9 @@ } }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", - "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", + "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==" }, "node_modules/@lit/reactive-element": { "version": "2.0.4", @@ -3000,22 +2952,63 @@ "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==" }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "node_modules/@polymer/polymer": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.2.tgz", + "integrity": "sha512-fWwImY/UH4bb2534DVSaX+Azs2yKg8slkMBHOyGeU2kKx7Xmxp6Lee0jP8p6B3d7c1gFUPB2Z976dTUtX81pQA==", + "dependencies": { + "@webcomponents/shadycss": "^1.9.1" + } + }, + "node_modules/@preact/signals-core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.8.0.tgz", + "integrity": "sha512-OBvUsRZqNmjzCZXWLxkZfhcgT+Fk8DDcT/8vD6a1xhDemodyy87UJRJfASMuSD8FaAIeGgGm85ydXhm7lr4fyA==", "dev": true, - "optional": true, - "engines": { - "node": ">=14" + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" } }, - "node_modules/@polymer/polymer": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.1.tgz", - "integrity": "sha512-JlAHuy+1qIC6hL1ojEUfIVD58fzTpJAoCxFwV5yr0mYTXV1H8bz5zy0+rC963Cgr9iNXQ4T9ncSjC2fkF9BQfw==", + "node_modules/@preact/signals-react": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@preact/signals-react/-/signals-react-3.0.0.tgz", + "integrity": "sha512-lCG3HIH5NlpQscVKQ5b+hgmRKorra/BcjMdEloMoa+/eLYmve06j3tFetN+nedDSpIHtSb3FFX0y3wUg/Nuxyw==", + "dev": true, + "license": "MIT", "dependencies": { - "@webcomponents/shadycss": "^1.9.1" + "@preact/signals-core": "^1.7.0", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + }, + "peerDependencies": { + "react": "^16.14.0 || 17.x || 18.x || 19.x" + } + }, + "node_modules/@preact/signals-react-transform": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@preact/signals-react-transform/-/signals-react-transform-0.5.1.tgz", + "integrity": "sha512-/w1rgu7i/qDk8dhDj+6AVVVJ+b1W11YkP3vfPPPyrn1tDCPb8orYwETa3JCvYxMtJBHbvIYEjhXvZ8Ab2cWC8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@preact/signals-react": "^3.0.0", + "debug": "^4.3.4", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "react": "^16.14.0 || 17.x || 18.x || 19.x" } }, "node_modules/@rollup/plugin-babel": { @@ -3090,10 +3083,11 @@ } }, "node_modules/@rollup/plugin-replace": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz", - "integrity": "sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.2.tgz", + "integrity": "sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "magic-string": "^0.30.3" @@ -3145,14 +3139,15 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "picomatch": "^4.0.2" }, "engines": { "node": ">=14.0.0" @@ -3172,10 +3167,22 @@ "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", "dev": true }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz", + "integrity": "sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==", "cpu": [ "arm" ], @@ -3186,48 +3193,87 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.0.tgz", + "integrity": "sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz", + "integrity": "sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.0.tgz", + "integrity": "sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.0.tgz", + "integrity": "sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==", "cpu": [ "arm64" ], "dev": true, "optional": true, "os": [ - "android" + "freebsd" ] }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.0.tgz", + "integrity": "sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==", "cpu": [ - "arm64" + "x64" ], "dev": true, "optional": true, "os": [ - "darwin" + "freebsd" ] }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.0.tgz", + "integrity": "sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==", "cpu": [ - "x64" + "arm" ], "dev": true, "optional": true, "os": [ - "darwin" + "linux" ] }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.0.tgz", + "integrity": "sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==", "cpu": [ "arm" ], @@ -3238,9 +3284,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.0.tgz", + "integrity": "sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==", "cpu": [ "arm64" ], @@ -3251,9 +3297,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.0.tgz", + "integrity": "sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==", "cpu": [ "arm64" ], @@ -3263,10 +3309,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.0.tgz", + "integrity": "sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.0.tgz", + "integrity": "sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==", "cpu": [ "riscv64" ], @@ -3276,10 +3335,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.0.tgz", + "integrity": "sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.0.tgz", + "integrity": "sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==", "cpu": [ "x64" ], @@ -3290,9 +3362,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.0.tgz", + "integrity": "sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==", "cpu": [ "x64" ], @@ -3303,9 +3375,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.0.tgz", + "integrity": "sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==", "cpu": [ "arm64" ], @@ -3316,9 +3388,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.0.tgz", + "integrity": "sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==", "cpu": [ "ia32" ], @@ -3329,9 +3401,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.0.tgz", + "integrity": "sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==", "cpu": [ "x64" ], @@ -3439,13 +3511,14 @@ "integrity": "sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==" }, "node_modules/@vaadin/a11y-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.5.0-alpha3.tgz", - "integrity": "sha512-hJN/e1FbzwkT6b3QEma04UHX0B8q8KlwGmIfnJG19FPb/UynuzSoaZguMljT/YvpiBgBFZT+Fem6WliprwU3wg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.7.0-alpha4.tgz", + "integrity": "sha512-s1sdmb5rX8i6bxCPl6AyzV+6n32ym0u1bMcJwrhYoXm9qK0wnNz0hsTt9r9wNuZRjxpbGmuRd2rpLh6twAbuDA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", "lit": "^3.0.0" } }, @@ -3461,9 +3534,10 @@ } }, "node_modules/@vaadin/component-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.5.0-alpha3.tgz", - "integrity": "sha512-3OAScmXraCAihHCJ62ZNEy9LsMpeWh2/KnPN4tsot1piHtMSnH7r4SFKC/4iNjQsuecou5TmDXuMACFcrlbouA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.7.0-alpha4.tgz", + "integrity": "sha512-oAnXewVRiCa43n7NTeQhof6sd1ib9AQ/wZEVeKESx+/To0cSZEWzdq7uClLYnpw6ah5kVXdGQDozEHkc+o+tEQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", @@ -3504,6 +3578,10 @@ "resolved": "../../../ts/generator-plugin-push", "link": true }, + "node_modules/@vaadin/hilla-generator-plugin-signals": { + "resolved": "../../../ts/generator-plugin-signals", + "link": true + }, "node_modules/@vaadin/hilla-generator-plugin-subtypes": { "resolved": "../../../ts/generator-plugin-subtypes", "link": true @@ -3517,90 +3595,119 @@ "link": true }, "node_modules/@vaadin/icon": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.5.0-alpha3.tgz", - "integrity": "sha512-CUVOeGF+kJ/lE3r/pJuShGTvfQyApFGoephomig4HQ3NJupazAANLnRXAconLAod/RPUWVKhLGqD33SnPKyp7A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.7.0-alpha4.tgz", + "integrity": "sha512-ELyn24AgdCRk9sOWnHbJqb4G8Gj2xr2YuC87dSKCg0E2mpAzxgA0xIObPO2DjWTzhprRy2XWsbkklzJFLKv1ag==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/icons": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.5.0-alpha3.tgz", - "integrity": "sha512-LZjQrwgw34HILPhSXpvabVQiEZzEDeeePFIdkIaxcjqC6bc2JjAecA0rPh2sci6mqCTed7ap9mZPxlitDi/uBQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.7.0-alpha4.tgz", + "integrity": "sha512-b2C00K2zkxg8dOsKSvWjBO/gVfSx96uQilksTZBOI3GXi1+UTqc5DzzYrOOH+Y0XqcqU7ynqqmkRTeyWJSiSSw==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/icon": "24.5.0-alpha3" + "@vaadin/icon": "24.7.0-alpha4" + } + }, + "node_modules/@vaadin/lit-renderer": { + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.7.0-alpha4.tgz", + "integrity": "sha512-jsgSnG3RoG0XX9k02cA0lqYw4KctzkW+hzq8+rAE1zLIJs4CQpe0jUzu1cGVy1bgJlPguvYVbQAitPc3+hFn/w==", + "license": "Apache-2.0", + "dependencies": { + "lit": "^3.0.0" } }, "node_modules/@vaadin/overlay": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.5.0-alpha3.tgz", - "integrity": "sha512-zH72InlWhwkBqdUMoIbHPXUajHapTVTwebZgddqE9FjBxRyfSF2062jrHcX6dFR4tNlspbem6z/EeWk4BWxBQw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.7.0-alpha4.tgz", + "integrity": "sha512-z2eHVojBg7o0vQWRhLPy2jfhuhTWrjnvOdw3FmkUnw8jy11Qqf/Pz0hMvy7cWE2d6ThLMjAnTzjlnRX/8y7U0w==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/polymer-legacy-adapter": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.5.0-alpha3.tgz", - "integrity": "sha512-W9yXABgFVqyIvMaHXewyqn4Tg3HiVEhDYbW8it9YZVnu9ej5msYXzyowZf/Lt4RQM9ogp9hx+deXR9W+297ivg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.7.0-alpha4.tgz", + "integrity": "sha512-+CvDzDA1a+9f877179k5ilVLq40e8HUSzvzGgiZDyrW1txmSRRdbQq5rX/qjHDjBXORqLLJGbkDRQmS2Y455yg==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/popover": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.5.0-alpha3.tgz", - "integrity": "sha512-niIKAipighHRoxcdteoptEu+JjyXT5TQhXagypI0hp0Sme7ZwQBnxlh+JdfKN/OV6hGrMt411wZntnc7bnVl7Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.7.0-alpha4.tgz", + "integrity": "sha512-KwhcnwrJoKjkVeScRF5RvBjBO8pS68Sgxd801qUj+X6bSBgtAAxMTS+yyQDUTVbAFmyr/pl2p8xE2mX5Hdi0ZQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/router": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-1.7.5.tgz", - "integrity": "sha512-uRN3vd1ihgd596bF/NMZqpgxau0nlvIc0/JDd1EwStFNbZID/xIVse5LXdQhIyUKLmSl4T0GeCQK505xerWX0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-2.0.0.tgz", + "integrity": "sha512-IjOlzuUsrVhfBId+ypcdDLM3+GZHo64DUlkr8IjFe04A4kMvt0zVFIpPH03X52/tMiwyYOF0Sw6p53DXkWiZcA==", "dependencies": { - "@vaadin/vaadin-usage-statistics": "^2.1.0", - "path-to-regexp": "2.4.0" + "@vaadin/vaadin-usage-statistics": "^2.1.2", + "path-to-regexp": "^6.3.0", + "type-fest": "^4.26.1" + } + }, + "node_modules/@vaadin/router/node_modules/type-fest": { + "version": "4.26.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", + "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@vaadin/tooltip": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.5.0-alpha3.tgz", - "integrity": "sha512-q5K9g3dCp/P8ED1/twharFiSGk1Zf09mApNdxyFl/wYduLxVnDG2h0WfE4rEl9Ix6h8N5NVmJ6Vl48UAZ5vgYQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.7.0-alpha4.tgz", + "integrity": "sha512-6Eb8kaZTpPCF6fptSAXlpYHO5HBDQiTMCbDtLX4cA0ov0rpaJ9YljVaZYYHyVF5lDDPhEfTGUq+f9MhMmIpW0w==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/popover": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/popover": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/vaadin-development-mode-detector": { @@ -3609,30 +3716,33 @@ "integrity": "sha512-N6a5nLT/ytEUlpPo+nvdCKIGoyNjPsj3rzPGvGYK8x9Ceg76OTe1xI/GtN71mRW9e2HUScR0kCNOkl1Z63YDjw==" }, "node_modules/@vaadin/vaadin-lumo-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-9zswr9ZNP6L7+VLCpD8yKKrlRzEC5gKJtfSRVhXqZwJ7x5Na1LVpJDzhDoKlqEcyPCsL/mcRllYAkT20hj0+8Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-L+rF8XYF+7hisu48wZK8MDjbwVMTmEteZsoTk1uyY6oCXyJEvBup1WwN2I0fFRlvSHMKnHNWDOuHmIfevK0uKQ==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "node_modules/@vaadin/vaadin-material-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-6CYxTPmT0ZU64H3wwzeDOrVF87wyU8CtLWLXNhXNkB+DSO44pCLML5kg1LwRRqnixY95x26LY+iSSITUSD8Pmw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-8fcm8oLtaI3BHewsP2d07YcIHw3GgFfFp83IHIoTG7MlaeJvAqvs2aPMcszLJ4s3WCLZnvsSkdwbgjdE0oYbhw==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "node_modules/@vaadin/vaadin-themable-mixin": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.5.0-alpha3.tgz", - "integrity": "sha512-gm/Adnsms4nUYONQPBDK91bPE7lfHFb27dBo31io7QAm5Cr+lBTd2U/Ce8eyK5+MialbabyZ2YQCgF3l2l8xWg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.7.0-alpha4.tgz", + "integrity": "sha512-x8Shc4t2WTV/2UtsXY8+n6KDYMvVaq0ZfNdldNkthfZjVfpCgioyZAtB6hZbEirvY6a5RRSQKcr12k2lrKDbTQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "lit": "^3.0.0" @@ -3651,14 +3761,14 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", - "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", "dev": true, "dependencies": { - "@babel/core": "^7.24.5", - "@babel/plugin-transform-react-jsx-self": "^7.24.5", - "@babel/plugin-transform-react-jsx-source": "^7.24.1", + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", "@types/babel__core": "^7.20.5", "react-refresh": "^0.14.2" }, @@ -3666,7 +3776,7 @@ "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" } }, "node_modules/@webcomponents/shadycss": { @@ -3776,9 +3886,9 @@ } }, "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "dev": true }, "node_modules/at-least-node": { @@ -3891,9 +4001,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", "dev": true, "funding": [ { @@ -3910,10 +4020,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -3984,9 +4094,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001572", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz", - "integrity": "sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==", + "version": "1.0.30001667", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", + "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", "dev": true, "funding": [ { @@ -4084,24 +4194,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/cliui/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cliui/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -4152,19 +4244,24 @@ } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" }, "node_modules/common-tags": { "version": "1.8.2", @@ -4247,6 +4344,23 @@ "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", "dev": true }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", @@ -4325,7 +4439,8 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ejs": { "version": "3.1.8", @@ -4343,16 +4458,17 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.616", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz", - "integrity": "sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==", + "version": "1.5.33", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.33.tgz", + "integrity": "sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==", "dev": true }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/error-ex": { "version": "1.3.2", @@ -4420,47 +4536,50 @@ } }, "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "engines": { "node": ">=6" @@ -4736,22 +4855,24 @@ } }, "node_modules/glob": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", "minipass": "^7.1.2", - "path-scurry": "^1.11.1" + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4774,20 +4895,22 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/glob/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4843,15 +4966,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/has-property-descriptors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", @@ -5271,21 +5385,19 @@ "dev": true }, "node_modules/jackspeak": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", - "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=14" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/jake": { @@ -5337,24 +5449,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jake/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/jake/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -5382,6 +5476,18 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -5464,29 +5570,29 @@ "peer": true }, "node_modules/lit": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.4.tgz", - "integrity": "sha512-q6qKnKXHy2g1kjBaNfcoLlgbI3+aSOZ9Q4tiGa9bGYXq5RBXxkVTqTIVmP2VWMp29L4GyvCFm8ZQ2o56eUAMyA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz", + "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==", "dependencies": { "@lit/reactive-element": "^2.0.4", - "lit-element": "^4.0.4", - "lit-html": "^3.1.2" + "lit-element": "^4.1.0", + "lit-html": "^3.2.0" } }, "node_modules/lit-element": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", - "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz", + "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==", "dependencies": { "@lit-labs/ssr-dom-shim": "^1.2.0", "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.1.2" + "lit-html": "^3.2.0" } }, "node_modules/lit-html": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", - "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz", + "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==", "dependencies": { "@types/trusted-types": "^2.0.2" } @@ -5673,10 +5779,17 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "node_modules/mutexify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz", @@ -5703,9 +5816,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true, "funding": [ { @@ -5721,9 +5834,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, "node_modules/normalize-package-data": { @@ -5868,6 +5981,12 @@ "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -5924,39 +6043,41 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", "dev": true, + "license": "ISC", "engines": { - "node": "14 || >=16.14" + "node": "20 || >=22" } }, "node_modules/path-to-regexp": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.4.0.tgz", - "integrity": "sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==" }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, "node_modules/picomatch": { @@ -5972,9 +6093,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, "funding": [ { @@ -5992,8 +6113,8 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -6075,6 +6196,17 @@ "safe-buffer": "^5.1.0" } }, + "node_modules/react": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", @@ -6307,13 +6439,14 @@ } }, "node_modules/rollup-plugin-visualizer": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz", - "integrity": "sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==", + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.13.1.tgz", + "integrity": "sha512-vMg8i6BprL8aFm9DKvL2c8AwS8324EgymYQo9o6E26wgVvwMhsJxS37aNL6ZsU7X9iAcMYwdME7gItLfG5fwJg==", "dev": true, + "license": "MIT", "dependencies": { "open": "^8.4.0", - "picomatch": "^2.3.1", + "picomatch": "^4.0.2", "source-map": "^0.7.4", "yargs": "^17.5.1" }, @@ -6321,17 +6454,34 @@ "rollup-plugin-visualizer": "dist/bin/cli.js" }, "engines": { - "node": ">=14" + "node": ">=18" }, "peerDependencies": { + "rolldown": "1.x", "rollup": "2.x || 3.x || 4.x" }, "peerDependenciesMeta": { + "rolldown": { + "optional": true + }, "rollup": { "optional": true } } }, + "node_modules/rollup-plugin-visualizer/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/rollup-plugin-visualizer/node_modules/source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -6457,9 +6607,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -6516,6 +6666,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -6534,6 +6685,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -6548,6 +6700,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6556,13 +6709,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -6571,10 +6726,11 @@ } }, "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -6587,6 +6743,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -6676,6 +6833,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -6688,6 +6846,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6948,10 +7107,11 @@ } }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -7055,9 +7215,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "funding": [ { @@ -7074,8 +7234,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -7093,6 +7253,16 @@ "punycode": "^2.1.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -7106,20 +7276,21 @@ } }, "node_modules/vite": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", - "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.6.tgz", + "integrity": "sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==", "dev": true, + "license": "MIT", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.38", - "rollup": "^4.13.0" + "esbuild": "^0.24.2", + "postcss": "^8.4.49", + "rollup": "^4.23.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -7128,18 +7299,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", - "terser": "^5.4.0" + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -7149,6 +7327,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -7157,13 +7338,19 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, "node_modules/vite-plugin-checker": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.6.4.tgz", - "integrity": "sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.8.0.tgz", + "integrity": "sha512-UA5uzOGm97UvZRTdZHiQVYFnd86AVn8EVaD4L3PoVzxH+IZSfaAw14WGFwX9QS23UW3lV/5bVKZn6l0w+q9P0g==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", @@ -7174,7 +7361,6 @@ "fast-glob": "^3.2.7", "fs-extra": "^11.1.0", "npm-run-path": "^4.0.1", - "semver": "^7.5.0", "strip-ansi": "^6.0.0", "tiny-invariant": "^1.1.0", "vscode-languageclient": "^7.0.0", @@ -7186,6 +7372,7 @@ "node": ">=14.16" }, "peerDependencies": { + "@biomejs/biome": ">=1.7", "eslint": ">=7", "meow": "^9.0.0", "optionator": "^0.9.1", @@ -7194,9 +7381,12 @@ "vite": ">=2.0.0", "vls": "*", "vti": "*", - "vue-tsc": ">=1.3.9" + "vue-tsc": "~2.1.6" }, "peerDependenciesMeta": { + "@biomejs/biome": { + "optional": true + }, "eslint": { "optional": true }, @@ -7263,24 +7453,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/vite-plugin-checker/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/vite-plugin-checker/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/vite-plugin-checker/node_modules/commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", @@ -7338,18 +7510,18 @@ } }, "node_modules/vite/node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, "node_modules/vite/node_modules/rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.0.tgz", + "integrity": "sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==", "dev": true, "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -7359,19 +7531,24 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", + "@rollup/rollup-android-arm-eabi": "4.28.0", + "@rollup/rollup-android-arm64": "4.28.0", + "@rollup/rollup-darwin-arm64": "4.28.0", + "@rollup/rollup-darwin-x64": "4.28.0", + "@rollup/rollup-freebsd-arm64": "4.28.0", + "@rollup/rollup-freebsd-x64": "4.28.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.28.0", + "@rollup/rollup-linux-arm-musleabihf": "4.28.0", + "@rollup/rollup-linux-arm64-gnu": "4.28.0", + "@rollup/rollup-linux-arm64-musl": "4.28.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.28.0", + "@rollup/rollup-linux-riscv64-gnu": "4.28.0", + "@rollup/rollup-linux-s390x-gnu": "4.28.0", + "@rollup/rollup-linux-x64-gnu": "4.28.0", + "@rollup/rollup-linux-x64-musl": "4.28.0", + "@rollup/rollup-win32-arm64-msvc": "4.28.0", + "@rollup/rollup-win32-ia32-msvc": "4.28.0", + "@rollup/rollup-win32-x64-msvc": "4.28.0", "fsevents": "~2.3.2" } }, @@ -7487,28 +7664,28 @@ } }, "node_modules/workbox-background-sync": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.1.0.tgz", - "integrity": "sha512-rMbgrzueVWDFcEq1610YyDW71z0oAXLfdRHRQcKw4SGihkfOK0JUEvqWHFwA6rJ+6TClnMIn7KQI5PNN1XQXwQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.3.0.tgz", + "integrity": "sha512-PCSk3eK7Mxeuyatb22pcSx9dlgWNv3+M8PqPaYDokks8Y5/FX4soaOqj3yhAZr5k6Q5JWTOMYgaJBpbw11G9Eg==", "dev": true, "dependencies": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-broadcast-update": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.1.0.tgz", - "integrity": "sha512-O36hIfhjej/c5ar95pO67k1GQw0/bw5tKP7CERNgK+JdxBANQhDmIuOXZTNvwb2IHBx9hj2kxvcDyRIh5nzOgQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.3.0.tgz", + "integrity": "sha512-T9/F5VEdJVhwmrIAE+E/kq5at2OY6+OXXgOWQevnubal6sO92Gjo24v6dCVwQiclAF5NS3hlmsifRrpQzZCdUA==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-build": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.1.1.tgz", - "integrity": "sha512-WdkVdC70VMpf5NBCtNbiwdSZeKVuhTEd5PV3mAwpTQCGAB5XbOny1P9egEgNdetv4srAMmMKjvBk4RD58LpooA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.3.0.tgz", + "integrity": "sha512-JGL6vZTPlxnlqZRhR/K/msqg3wKP+m0wfEUVosK7gsYzSgeIxvZLi1ViJJzVL7CEeI8r7rGFV973RiEqkP3lWQ==", "dev": true, "dependencies": { "@apideck/better-ajv-errors": "^0.3.1", @@ -7533,21 +7710,21 @@ "strip-comments": "^2.0.1", "tempy": "^0.6.0", "upath": "^1.2.0", - "workbox-background-sync": "7.1.0", - "workbox-broadcast-update": "7.1.0", - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-google-analytics": "7.1.0", - "workbox-navigation-preload": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-range-requests": "7.1.0", - "workbox-recipes": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0", - "workbox-streams": "7.1.0", - "workbox-sw": "7.1.0", - "workbox-window": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-broadcast-update": "7.3.0", + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-google-analytics": "7.3.0", + "workbox-navigation-preload": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-range-requests": "7.3.0", + "workbox-recipes": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0", + "workbox-streams": "7.3.0", + "workbox-sw": "7.3.0", + "workbox-window": "7.3.0" }, "engines": { "node": ">=16.0.0" @@ -7655,127 +7832,127 @@ } }, "node_modules/workbox-cacheable-response": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.1.0.tgz", - "integrity": "sha512-iwsLBll8Hvua3xCuBB9h92+/e0wdsmSVgR2ZlvcfjepZWwhd3osumQB3x9o7flj+FehtWM2VHbZn8UJeBXXo6Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.3.0.tgz", + "integrity": "sha512-eAFERIg6J2LuyELhLlmeRcJFa5e16Mj8kL2yCDbhWE+HUun9skRQrGIFVUagqWj4DMaaPSMWfAolM7XZZxNmxA==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-core": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.1.0.tgz", - "integrity": "sha512-5KB4KOY8rtL31nEF7BfvU7FMzKT4B5TkbYa2tzkS+Peqj0gayMT9SytSFtNzlrvMaWgv6y/yvP9C0IbpFjV30Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.3.0.tgz", + "integrity": "sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw==", "dev": true }, "node_modules/workbox-expiration": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.1.0.tgz", - "integrity": "sha512-m5DcMY+A63rJlPTbbBNtpJ20i3enkyOtSgYfv/l8h+D6YbbNiA0zKEkCUaMsdDlxggla1oOfRkyqTvl5Ni5KQQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.3.0.tgz", + "integrity": "sha512-lpnSSLp2BM+K6bgFCWc5bS1LR5pAwDWbcKt1iL87/eTSJRdLdAwGQznZE+1czLgn/X05YChsrEegTNxjM067vQ==", "dev": true, "dependencies": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-google-analytics": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.1.0.tgz", - "integrity": "sha512-FvE53kBQHfVTcZyczeBVRexhh7JTkyQ8HAvbVY6mXd2n2A7Oyz/9fIwnY406ZcDhvE4NFfKGjW56N4gBiqkrew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.3.0.tgz", + "integrity": "sha512-ii/tSfFdhjLHZ2BrYgFNTrb/yk04pw2hasgbM70jpZfLk0vdJAXgaiMAWsoE+wfJDNWoZmBYY0hMVI0v5wWDbg==", "dev": true, "dependencies": { - "workbox-background-sync": "7.1.0", - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "node_modules/workbox-navigation-preload": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.1.0.tgz", - "integrity": "sha512-4wyAbo0vNI/X0uWNJhCMKxnPanNyhybsReMGN9QUpaePLTiDpKxPqFxl4oUmBNddPwIXug01eTSLVIFXimRG/A==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.3.0.tgz", + "integrity": "sha512-fTJzogmFaTv4bShZ6aA7Bfj4Cewaq5rp30qcxl2iYM45YD79rKIhvzNHiFj1P+u5ZZldroqhASXwwoyusnr2cg==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-precaching": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.1.0.tgz", - "integrity": "sha512-LyxzQts+UEpgtmfnolo0hHdNjoB7EoRWcF7EDslt+lQGd0lW4iTvvSe3v5JiIckQSB5KTW5xiCqjFviRKPj1zA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.3.0.tgz", + "integrity": "sha512-ckp/3t0msgXclVAYaNndAGeAoWQUv7Rwc4fdhWL69CCAb2UHo3Cef0KIUctqfQj1p8h6aGyz3w8Cy3Ihq9OmIw==", "dev": true, "dependencies": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "node_modules/workbox-range-requests": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.1.0.tgz", - "integrity": "sha512-m7+O4EHolNs5yb/79CrnwPR/g/PRzMFYEdo01LqwixVnc/sbzNSvKz0d04OE3aMRel1CwAAZQheRsqGDwATgPQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.3.0.tgz", + "integrity": "sha512-EyFmM1KpDzzAouNF3+EWa15yDEenwxoeXu9bgxOEYnFfCxns7eAxA9WSSaVd8kujFFt3eIbShNqa4hLQNFvmVQ==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-recipes": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.1.0.tgz", - "integrity": "sha512-NRrk4ycFN9BHXJB6WrKiRX3W3w75YNrNrzSX9cEZgFB5ubeGoO8s/SDmOYVrFYp9HMw6sh1Pm3eAY/1gVS8YLg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.3.0.tgz", + "integrity": "sha512-BJro/MpuW35I/zjZQBcoxsctgeB+kyb2JAP5EB3EYzePg8wDGoQuUdyYQS+CheTb+GhqJeWmVs3QxLI8EBP1sg==", "dev": true, "dependencies": { - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "node_modules/workbox-routing": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.1.0.tgz", - "integrity": "sha512-oOYk+kLriUY2QyHkIilxUlVcFqwduLJB7oRZIENbqPGeBP/3TWHYNNdmGNhz1dvKuw7aqvJ7CQxn27/jprlTdg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.3.0.tgz", + "integrity": "sha512-ZUlysUVn5ZUzMOmQN3bqu+gK98vNfgX/gSTZ127izJg/pMMy4LryAthnYtjuqcjkN4HEAx1mdgxNiKJMZQM76A==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-strategies": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.1.0.tgz", - "integrity": "sha512-/UracPiGhUNehGjRm/tLUQ+9PtWmCbRufWtV0tNrALuf+HZ4F7cmObSEK+E4/Bx1p8Syx2tM+pkIrvtyetdlew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.3.0.tgz", + "integrity": "sha512-tmZydug+qzDFATwX7QiEL5Hdf7FrkhjaF9db1CbB39sDmEZJg3l9ayDvPxy8Y18C3Y66Nrr9kkN1f/RlkDgllg==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-streams": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.1.0.tgz", - "integrity": "sha512-WyHAVxRXBMfysM8ORwiZnI98wvGWTVAq/lOyBjf00pXFvG0mNaVz4Ji+u+fKa/mf1i2SnTfikoYKto4ihHeS6w==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.3.0.tgz", + "integrity": "sha512-SZnXucyg8x2Y61VGtDjKPO5EgPUG5NDn/v86WYHX+9ZqvAsGOytP0Jxp1bl663YUuMoXSAtsGLL+byHzEuMRpw==", "dev": true, "dependencies": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0" } }, "node_modules/workbox-sw": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.1.0.tgz", - "integrity": "sha512-Hml/9+/njUXBglv3dtZ9WBKHI235AQJyLBV1G7EFmh4/mUdSQuXui80RtjDeVRrXnm/6QWgRUEHG3/YBVbxtsA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.3.0.tgz", + "integrity": "sha512-aCUyoAZU9IZtH05mn0ACUpyHzPs0lMeJimAYkQkBsOWiqaJLgusfDCR+yllkPkFRxWpZKF8vSvgHYeG7LwhlmA==", "dev": true }, "node_modules/workbox-window": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.1.0.tgz", - "integrity": "sha512-ZHeROyqR+AS5UPzholQRDttLFqGMwP0Np8MKWAdyxsDETxq3qOAyXvqessc3GniohG6e0mAqSQyKOHmT8zPF7g==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.3.0.tgz", + "integrity": "sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==", "dev": true, "dependencies": { "@types/trusted-types": "^2.0.2", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/wrap-ansi": { @@ -7783,6 +7960,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -7801,6 +7979,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7818,6 +7997,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -7827,45 +8007,30 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7880,6 +8045,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -7888,10 +8054,11 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7904,6 +8071,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7916,6 +8084,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -8043,37 +8212,38 @@ } }, "@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "requires": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" } }, "@babel/compat-data": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", - "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "dev": true }, "@babel/core": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz", - "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "requires": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.6", - "@babel/generator": "^7.24.6", - "@babel/helper-compilation-targets": "^7.24.6", - "@babel/helper-module-transforms": "^7.24.6", - "@babel/helpers": "^7.24.6", - "@babel/parser": "^7.24.6", - "@babel/template": "^7.24.6", - "@babel/traverse": "^7.24.6", - "@babel/types": "^7.24.6", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -8087,21 +8257,6 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -8111,15 +8266,16 @@ } }, "@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "dev": true, "requires": { - "@babel/types": "^7.24.7", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "dependencies": { "@jridgewell/gen-mapping": { @@ -8132,22 +8288,16 @@ "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true } } }, "@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, "requires": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { @@ -8161,14 +8311,14 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", - "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.24.6", - "@babel/helper-validator-option": "^7.24.6", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -8274,21 +8424,6 @@ "semver": "^6.1.2" }, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -8344,26 +8479,24 @@ } }, "@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "requires": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" } }, "@babel/helper-module-transforms": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", - "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-module-imports": "^7.24.6", - "@babel/helper-simple-access": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" } }, "@babel/helper-optimise-call-expression": { @@ -8376,9 +8509,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true }, "@babel/helper-remap-async-to-generator": { @@ -8406,12 +8539,13 @@ } }, "@babel/helper-simple-access": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", - "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", "dev": true, "requires": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -8433,21 +8567,21 @@ } }, "@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true }, "@babel/helper-wrap-function": { @@ -8463,64 +8597,24 @@ } }, "@babel/helpers": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.6.tgz", - "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "requires": { - "@babel/template": "^7.24.6", - "@babel/types": "^7.24.6" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" } }, - "@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "@babel/types": "^7.26.0" } }, - "@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", - "dev": true - }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.17.12", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", @@ -8763,12 +8857,12 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -9084,62 +9178,62 @@ } }, "@babel/plugin-transform-react-display-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", - "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz", - "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", - "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", "dev": true, "requires": { - "@babel/plugin-transform-react-jsx": "^7.24.7" + "@babel/plugin-transform-react-jsx": "^7.25.9" } }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.6.tgz", - "integrity": "sha512-FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.6.tgz", - "integrity": "sha512-BQTBCXmFRreU3oTUXcGKuPOfXAGb1liNY4AvvFKsOBAJ89RKcTsIrSsnMYkj59fNa66OFKnSa4AJZfy5Y4B9WA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-transform-react-pure-annotations": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", - "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-transform-regenerator": { @@ -9342,17 +9436,17 @@ } }, "@babel/preset-react": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", - "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", + "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-transform-react-display-name": "^7.24.7", - "@babel/plugin-transform-react-jsx": "^7.24.7", - "@babel/plugin-transform-react-jsx-development": "^7.24.7", - "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-react-display-name": "^7.25.9", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/plugin-transform-react-jsx-development": "^7.25.9", + "@babel/plugin-transform-react-pure-annotations": "^7.25.9" } }, "@babel/runtime": { @@ -9373,234 +9467,221 @@ } }, "@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "requires": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" } }, "@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true } } }, "@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - } + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" } }, "@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "dev": true, "optional": true }, "@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "dev": true, "optional": true }, "@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "dev": true, "optional": true }, "@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "dev": true, "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "dev": true, "optional": true }, "@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "dev": true, "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "dev": true, "optional": true }, "@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "dev": true, "optional": true }, "@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "dev": true, "optional": true }, "@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "dev": true, "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "dev": true, "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "dev": true, "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "dev": true, "optional": true }, "@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "dev": true, "optional": true }, "@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", "dev": true, "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", "dev": true, "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "dev": true, "optional": true }, "@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "dev": true, "optional": true }, "@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "dev": true, "optional": true }, "@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "dev": true, "optional": true }, "@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "dev": true, "optional": true }, @@ -9619,9 +9700,9 @@ }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true }, "strip-ansi": { @@ -9697,9 +9778,9 @@ } }, "@lit-labs/ssr-dom-shim": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", - "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", + "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==" }, "@lit/reactive-element": { "version": "2.0.4", @@ -9740,21 +9821,43 @@ "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==" }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true - }, "@polymer/polymer": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.1.tgz", - "integrity": "sha512-JlAHuy+1qIC6hL1ojEUfIVD58fzTpJAoCxFwV5yr0mYTXV1H8bz5zy0+rC963Cgr9iNXQ4T9ncSjC2fkF9BQfw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.2.tgz", + "integrity": "sha512-fWwImY/UH4bb2534DVSaX+Azs2yKg8slkMBHOyGeU2kKx7Xmxp6Lee0jP8p6B3d7c1gFUPB2Z976dTUtX81pQA==", "requires": { "@webcomponents/shadycss": "^1.9.1" } }, + "@preact/signals-core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.8.0.tgz", + "integrity": "sha512-OBvUsRZqNmjzCZXWLxkZfhcgT+Fk8DDcT/8vD6a1xhDemodyy87UJRJfASMuSD8FaAIeGgGm85ydXhm7lr4fyA==", + "dev": true + }, + "@preact/signals-react": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@preact/signals-react/-/signals-react-3.0.0.tgz", + "integrity": "sha512-lCG3HIH5NlpQscVKQ5b+hgmRKorra/BcjMdEloMoa+/eLYmve06j3tFetN+nedDSpIHtSb3FFX0y3wUg/Nuxyw==", + "dev": true, + "requires": { + "@preact/signals-core": "^1.7.0", + "use-sync-external-store": "^1.2.0" + } + }, + "@preact/signals-react-transform": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@preact/signals-react-transform/-/signals-react-transform-0.5.1.tgz", + "integrity": "sha512-/w1rgu7i/qDk8dhDj+6AVVVJ+b1W11YkP3vfPPPyrn1tDCPb8orYwETa3JCvYxMtJBHbvIYEjhXvZ8Ab2cWC8g==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@preact/signals-react": "^3.0.0", + "debug": "^4.3.4", + "use-sync-external-store": "^1.2.0" + } + }, "@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -9799,9 +9902,9 @@ } }, "@rollup/plugin-replace": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz", - "integrity": "sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.2.tgz", + "integrity": "sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==", "dev": true, "requires": { "@rollup/pluginutils": "^5.0.1", @@ -9831,14 +9934,14 @@ } }, "@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "dev": true, "requires": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "picomatch": "^4.0.2" }, "dependencies": { "@types/estree": { @@ -9846,97 +9949,138 @@ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", "dev": true + }, + "picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true } } }, "@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz", + "integrity": "sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==", "dev": true, "optional": true }, "@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.0.tgz", + "integrity": "sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==", "dev": true, "optional": true }, "@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz", + "integrity": "sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==", "dev": true, "optional": true }, "@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.0.tgz", + "integrity": "sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-arm64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.0.tgz", + "integrity": "sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-x64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.0.tgz", + "integrity": "sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.0.tgz", + "integrity": "sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.0.tgz", + "integrity": "sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.0.tgz", + "integrity": "sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.0.tgz", + "integrity": "sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.0.tgz", + "integrity": "sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==", "dev": true, "optional": true }, "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.0.tgz", + "integrity": "sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.0.tgz", + "integrity": "sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.0.tgz", + "integrity": "sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.0.tgz", + "integrity": "sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==", "dev": true, "optional": true }, "@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.0.tgz", + "integrity": "sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==", "dev": true, "optional": true }, "@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.0.tgz", + "integrity": "sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==", "dev": true, "optional": true }, "@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.0.tgz", + "integrity": "sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==", "dev": true, "optional": true }, @@ -10038,14 +10182,14 @@ "integrity": "sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==" }, "@vaadin/a11y-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.5.0-alpha3.tgz", - "integrity": "sha512-hJN/e1FbzwkT6b3QEma04UHX0B8q8KlwGmIfnJG19FPb/UynuzSoaZguMljT/YvpiBgBFZT+Fem6WliprwU3wg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.7.0-alpha4.tgz", + "integrity": "sha512-s1sdmb5rX8i6bxCPl6AyzV+6n32ym0u1bMcJwrhYoXm9qK0wnNz0hsTt9r9wNuZRjxpbGmuRd2rpLh6twAbuDA==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", - "@vaadin/component-base": "24.5.0-alpha3", - "lit": "3.1.4" + "@polymer/polymer": "3.5.2", + "@vaadin/component-base": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/common-frontend": { @@ -10057,359 +10201,417 @@ } }, "@vaadin/component-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.5.0-alpha3.tgz", - "integrity": "sha512-3OAScmXraCAihHCJ62ZNEy9LsMpeWh2/KnPN4tsot1piHtMSnH7r4SFKC/4iNjQsuecou5TmDXuMACFcrlbouA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.7.0-alpha4.tgz", + "integrity": "sha512-oAnXewVRiCa43n7NTeQhof6sd1ib9AQ/wZEVeKESx+/To0cSZEWzdq7uClLYnpw6ah5kVXdGQDozEHkc+o+tEQ==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", + "@polymer/polymer": "3.5.2", "@vaadin/vaadin-development-mode-detector": "^2.0.0", "@vaadin/vaadin-usage-statistics": "^2.1.0", - "lit": "3.1.4" + "lit": "3.2.1" } }, "@vaadin/hilla-frontend": { "version": "file:../../../ts/frontend", "requires": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@open-wc/testing": "^3.2.0", - "@types/atmosphere.js": "^2.1.4", - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/js-cookie": "^3.0.4", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", + "@open-wc/testing": "^3.2.2", + "@types/atmosphere.js": "^2.1.6", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/js-cookie": "^3.0.6", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", "@vaadin/common-frontend": "^0.0.19", "atmosphere.js": "^3.1.3", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", "fetch-mock": "^9.11.0", "js-cookie": "^3.0.5", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-cli": { "version": "file:../../../ts/generator-cli", "requires": { - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "chai-as-promised": "^7.1.1", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-as-promised": "^7.1.2", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "get-stdin": "^9.0.0", - "meow": "^12.1.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "meow": "^13.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" } }, "@vaadin/hilla-generator-core": { "version": "file:../../../ts/generator-core", "requires": { "@apidevtools/swagger-parser": "^10.1.0", - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "meow": "^12.1.1", - "mocha": "^10.2.0", + "meow": "^13.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-backbone": { "version": "file:../../../ts/generator-plugin-backbone", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "fast-deep-equal": "^3.1.3", - "mocha": "^10.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-barrel": { "version": "file:../../../ts/generator-plugin-barrel", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-client": { "version": "file:../../../ts/generator-plugin-client", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-model": { "version": "file:../../../ts/generator-plugin-model", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "fast-deep-equal": "^3.1.3", - "mocha": "^10.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-push": { "version": "file:../../../ts/generator-plugin-push", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", + "copyfiles": "^2.4.1", + "fast-deep-equal": "^3.1.3", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "openapi-types": "^12.1.3", + "pino": "^9.5.0", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "type-fest": "^4.30.2", + "typescript": "5.7.2" + } + }, + "@vaadin/hilla-generator-plugin-signals": { + "version": "file:../../../ts/generator-plugin-signals", + "requires": { + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "fast-deep-equal": "^3.1.3", - "mocha": "^10.2.0", + "iterator-helpers-polyfill": "^3.0.1", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-subtypes": { "version": "file:../../../ts/generator-plugin-subtypes", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "fast-deep-equal": "^3.1.3", - "mocha": "^10.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-utils": { "version": "file:../../../ts/generator-utils", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-like": "^1.1.3", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "pino-pretty": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "pino-pretty": "^10.3.1", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-lit-form": { "version": "file:../../../ts/lit-form", "requires": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@types/chai": "^4.3.6", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "chai-dom": "^1.11.0", - "sinon": "^16.0.0", + "@types/chai": "^4.3.20", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "chai": "^5.1.2", + "chai-dom": "^1.12.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2", - "validator": "^13.11.0" + "typescript": "5.7.2", + "validator": "^13.12.0" } }, "@vaadin/icon": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.5.0-alpha3.tgz", - "integrity": "sha512-CUVOeGF+kJ/lE3r/pJuShGTvfQyApFGoephomig4HQ3NJupazAANLnRXAconLAod/RPUWVKhLGqD33SnPKyp7A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.7.0-alpha4.tgz", + "integrity": "sha512-ELyn24AgdCRk9sOWnHbJqb4G8Gj2xr2YuC87dSKCg0E2mpAzxgA0xIObPO2DjWTzhprRy2XWsbkklzJFLKv1ag==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "lit": "3.1.4" + "@polymer/polymer": "3.5.2", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/icons": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.5.0-alpha3.tgz", - "integrity": "sha512-LZjQrwgw34HILPhSXpvabVQiEZzEDeeePFIdkIaxcjqC6bc2JjAecA0rPh2sci6mqCTed7ap9mZPxlitDi/uBQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.7.0-alpha4.tgz", + "integrity": "sha512-b2C00K2zkxg8dOsKSvWjBO/gVfSx96uQilksTZBOI3GXi1+UTqc5DzzYrOOH+Y0XqcqU7ynqqmkRTeyWJSiSSw==", + "requires": { + "@polymer/polymer": "3.5.2", + "@vaadin/icon": "24.7.0-alpha4" + } + }, + "@vaadin/lit-renderer": { + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.7.0-alpha4.tgz", + "integrity": "sha512-jsgSnG3RoG0XX9k02cA0lqYw4KctzkW+hzq8+rAE1zLIJs4CQpe0jUzu1cGVy1bgJlPguvYVbQAitPc3+hFn/w==", "requires": { - "@polymer/polymer": "3.5.1", - "@vaadin/icon": "24.5.0-alpha3" + "lit": "3.2.1" } }, "@vaadin/overlay": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.5.0-alpha3.tgz", - "integrity": "sha512-zH72InlWhwkBqdUMoIbHPXUajHapTVTwebZgddqE9FjBxRyfSF2062jrHcX6dFR4tNlspbem6z/EeWk4BWxBQw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.7.0-alpha4.tgz", + "integrity": "sha512-z2eHVojBg7o0vQWRhLPy2jfhuhTWrjnvOdw3FmkUnw8jy11Qqf/Pz0hMvy7cWE2d6ThLMjAnTzjlnRX/8y7U0w==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "lit": "3.1.4" + "@polymer/polymer": "3.5.2", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/polymer-legacy-adapter": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.5.0-alpha3.tgz", - "integrity": "sha512-W9yXABgFVqyIvMaHXewyqn4Tg3HiVEhDYbW8it9YZVnu9ej5msYXzyowZf/Lt4RQM9ogp9hx+deXR9W+297ivg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.7.0-alpha4.tgz", + "integrity": "sha512-+CvDzDA1a+9f877179k5ilVLq40e8HUSzvzGgiZDyrW1txmSRRdbQq5rX/qjHDjBXORqLLJGbkDRQmS2Y455yg==", "requires": { - "@polymer/polymer": "3.5.1", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "lit": "3.1.4" + "@polymer/polymer": "3.5.2", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/popover": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.5.0-alpha3.tgz", - "integrity": "sha512-niIKAipighHRoxcdteoptEu+JjyXT5TQhXagypI0hp0Sme7ZwQBnxlh+JdfKN/OV6hGrMt411wZntnc7bnVl7Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.7.0-alpha4.tgz", + "integrity": "sha512-KwhcnwrJoKjkVeScRF5RvBjBO8pS68Sgxd801qUj+X6bSBgtAAxMTS+yyQDUTVbAFmyr/pl2p8xE2mX5Hdi0ZQ==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "lit": "3.1.4" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/router": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-1.7.5.tgz", - "integrity": "sha512-uRN3vd1ihgd596bF/NMZqpgxau0nlvIc0/JDd1EwStFNbZID/xIVse5LXdQhIyUKLmSl4T0GeCQK505xerWX0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-2.0.0.tgz", + "integrity": "sha512-IjOlzuUsrVhfBId+ypcdDLM3+GZHo64DUlkr8IjFe04A4kMvt0zVFIpPH03X52/tMiwyYOF0Sw6p53DXkWiZcA==", "requires": { - "@vaadin/vaadin-usage-statistics": "^2.1.0", - "path-to-regexp": "2.4.0" + "@vaadin/vaadin-usage-statistics": "^2.1.2", + "path-to-regexp": "^6.3.0", + "type-fest": "^4.26.1" + }, + "dependencies": { + "type-fest": { + "version": "4.26.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", + "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==" + } } }, "@vaadin/tooltip": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.5.0-alpha3.tgz", - "integrity": "sha512-q5K9g3dCp/P8ED1/twharFiSGk1Zf09mApNdxyFl/wYduLxVnDG2h0WfE4rEl9Ix6h8N5NVmJ6Vl48UAZ5vgYQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.7.0-alpha4.tgz", + "integrity": "sha512-6Eb8kaZTpPCF6fptSAXlpYHO5HBDQiTMCbDtLX4cA0ov0rpaJ9YljVaZYYHyVF5lDDPhEfTGUq+f9MhMmIpW0w==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/popover": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@polymer/polymer": "3.5.2", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/popover": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/vaadin-development-mode-detector": { @@ -10418,33 +10620,33 @@ "integrity": "sha512-N6a5nLT/ytEUlpPo+nvdCKIGoyNjPsj3rzPGvGYK8x9Ceg76OTe1xI/GtN71mRW9e2HUScR0kCNOkl1Z63YDjw==" }, "@vaadin/vaadin-lumo-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-9zswr9ZNP6L7+VLCpD8yKKrlRzEC5gKJtfSRVhXqZwJ7x5Na1LVpJDzhDoKlqEcyPCsL/mcRllYAkT20hj0+8Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-L+rF8XYF+7hisu48wZK8MDjbwVMTmEteZsoTk1uyY6oCXyJEvBup1WwN2I0fFRlvSHMKnHNWDOuHmIfevK0uKQ==", "requires": { - "@polymer/polymer": "3.5.1", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@polymer/polymer": "3.5.2", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "@vaadin/vaadin-material-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-6CYxTPmT0ZU64H3wwzeDOrVF87wyU8CtLWLXNhXNkB+DSO44pCLML5kg1LwRRqnixY95x26LY+iSSITUSD8Pmw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-8fcm8oLtaI3BHewsP2d07YcIHw3GgFfFp83IHIoTG7MlaeJvAqvs2aPMcszLJ4s3WCLZnvsSkdwbgjdE0oYbhw==", "requires": { - "@polymer/polymer": "3.5.1", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@polymer/polymer": "3.5.2", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "@vaadin/vaadin-themable-mixin": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.5.0-alpha3.tgz", - "integrity": "sha512-gm/Adnsms4nUYONQPBDK91bPE7lfHFb27dBo31io7QAm5Cr+lBTd2U/Ce8eyK5+MialbabyZ2YQCgF3l2l8xWg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.7.0-alpha4.tgz", + "integrity": "sha512-x8Shc4t2WTV/2UtsXY8+n6KDYMvVaq0ZfNdldNkthfZjVfpCgioyZAtB6hZbEirvY6a5RRSQKcr12k2lrKDbTQ==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "lit": "3.1.4" + "lit": "3.2.1" } }, "@vaadin/vaadin-usage-statistics": { @@ -10456,14 +10658,14 @@ } }, "@vitejs/plugin-react": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", - "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", "dev": true, "requires": { - "@babel/core": "^7.24.5", - "@babel/plugin-transform-react-jsx-self": "^7.24.5", - "@babel/plugin-transform-react-jsx-source": "^7.24.1", + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", "@types/babel__core": "^7.20.5", "react-refresh": "^0.14.2" } @@ -10544,9 +10746,9 @@ "peer": true }, "async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "dev": true }, "at-least-node": { @@ -10640,15 +10842,15 @@ "dev": true }, "browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" } }, "buffer-from": { @@ -10695,9 +10897,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001572", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz", - "integrity": "sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==", + "version": "1.0.30001667", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", + "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", "dev": true }, "chalk": { @@ -10755,21 +10957,6 @@ "color-convert": "^2.0.1" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -10810,18 +10997,18 @@ } }, "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "common-tags": { @@ -10891,6 +11078,15 @@ "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", "dev": true }, + "debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", @@ -10959,9 +11155,9 @@ } }, "electron-to-chromium": { - "version": "1.4.616", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz", - "integrity": "sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==", + "version": "1.5.33", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.33.tgz", + "integrity": "sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==", "dev": true }, "emoji-regex": { @@ -11024,40 +11220,42 @@ } }, "esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "requires": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true }, "escape-string-regexp": { @@ -11273,16 +11471,17 @@ } }, "glob": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dev": true, "requires": { "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", "minipass": "^7.1.2", - "path-scurry": "^1.11.1" + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "dependencies": { "brace-expansion": { @@ -11295,9 +11494,9 @@ } }, "minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -11352,12 +11551,6 @@ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, "has-property-descriptors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", @@ -11645,13 +11838,12 @@ "dev": true }, "jackspeak": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", - "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", "dev": true, "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" + "@isaacs/cliui": "^8.0.2" } }, "jake": { @@ -11685,21 +11877,6 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -11723,6 +11900,12 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, + "jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true + }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -11788,29 +11971,29 @@ "peer": true }, "lit": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.4.tgz", - "integrity": "sha512-q6qKnKXHy2g1kjBaNfcoLlgbI3+aSOZ9Q4tiGa9bGYXq5RBXxkVTqTIVmP2VWMp29L4GyvCFm8ZQ2o56eUAMyA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz", + "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==", "requires": { "@lit/reactive-element": "^2.0.4", - "lit-element": "^4.0.4", - "lit-html": "^3.1.2" + "lit-element": "^4.1.0", + "lit-html": "^3.2.0" } }, "lit-element": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", - "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz", + "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==", "requires": { "@lit-labs/ssr-dom-shim": "^1.2.0", "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.1.2" + "lit-html": "^3.2.0" } }, "lit-html": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", - "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz", + "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==", "requires": { "@types/trusted-types": "^2.0.2" } @@ -11961,6 +12144,12 @@ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "mutexify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz", @@ -11983,15 +12172,15 @@ } }, "nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true }, "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, "normalize-package-data": { @@ -12097,6 +12286,12 @@ "optional": true, "peer": true }, + "package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -12138,32 +12333,32 @@ "dev": true }, "path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, "requires": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "dependencies": { "lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", "dev": true } } }, "path-to-regexp": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.4.0.tgz", - "integrity": "sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==" }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, "picomatch": { @@ -12173,14 +12368,14 @@ "dev": true }, "postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, "requires": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" } }, "pretty-bytes": { @@ -12230,6 +12425,13 @@ "safe-buffer": "^5.1.0" } }, + "react": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "dev": true, + "peer": true + }, "react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", @@ -12405,17 +12607,23 @@ "dev": true }, "rollup-plugin-visualizer": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz", - "integrity": "sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==", + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.13.1.tgz", + "integrity": "sha512-vMg8i6BprL8aFm9DKvL2c8AwS8324EgymYQo9o6E26wgVvwMhsJxS37aNL6ZsU7X9iAcMYwdME7gItLfG5fwJg==", "dev": true, "requires": { "open": "^8.4.0", - "picomatch": "^2.3.1", + "picomatch": "^4.0.2", "source-map": "^0.7.4", "yargs": "^17.5.1" }, "dependencies": { + "picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true + }, "source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -12502,9 +12710,9 @@ "dev": true }, "source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true }, "sourcemap-codec": { @@ -12565,9 +12773,9 @@ }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true }, "strip-ansi": { @@ -12874,9 +13082,9 @@ "dev": true }, "typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true }, "unbox-primitive": { @@ -12949,13 +13157,13 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" } }, "uri-js": { @@ -12967,6 +13175,13 @@ "punycode": "^2.1.0" } }, + "use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "dev": true, + "requires": {} + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -12980,52 +13195,57 @@ } }, "vite": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", - "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.6.tgz", + "integrity": "sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==", "dev": true, "requires": { - "esbuild": "^0.21.3", + "esbuild": "^0.24.2", "fsevents": "~2.3.3", - "postcss": "^8.4.38", - "rollup": "^4.13.0" + "postcss": "^8.4.49", + "rollup": "^4.23.0" }, "dependencies": { "@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, "rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.0.tgz", + "integrity": "sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==", "dev": true, "requires": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", - "@types/estree": "1.0.5", + "@rollup/rollup-android-arm-eabi": "4.28.0", + "@rollup/rollup-android-arm64": "4.28.0", + "@rollup/rollup-darwin-arm64": "4.28.0", + "@rollup/rollup-darwin-x64": "4.28.0", + "@rollup/rollup-freebsd-arm64": "4.28.0", + "@rollup/rollup-freebsd-x64": "4.28.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.28.0", + "@rollup/rollup-linux-arm-musleabihf": "4.28.0", + "@rollup/rollup-linux-arm64-gnu": "4.28.0", + "@rollup/rollup-linux-arm64-musl": "4.28.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.28.0", + "@rollup/rollup-linux-riscv64-gnu": "4.28.0", + "@rollup/rollup-linux-s390x-gnu": "4.28.0", + "@rollup/rollup-linux-x64-gnu": "4.28.0", + "@rollup/rollup-linux-x64-musl": "4.28.0", + "@rollup/rollup-win32-arm64-msvc": "4.28.0", + "@rollup/rollup-win32-ia32-msvc": "4.28.0", + "@rollup/rollup-win32-x64-msvc": "4.28.0", + "@types/estree": "1.0.6", "fsevents": "~2.3.2" } } } }, "vite-plugin-checker": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.6.4.tgz", - "integrity": "sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.8.0.tgz", + "integrity": "sha512-UA5uzOGm97UvZRTdZHiQVYFnd86AVn8EVaD4L3PoVzxH+IZSfaAw14WGFwX9QS23UW3lV/5bVKZn6l0w+q9P0g==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", @@ -13036,7 +13256,6 @@ "fast-glob": "^3.2.7", "fs-extra": "^11.1.0", "npm-run-path": "^4.0.1", - "semver": "^7.5.0", "strip-ansi": "^6.0.0", "tiny-invariant": "^1.1.0", "vscode-languageclient": "^7.0.0", @@ -13070,21 +13289,6 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", @@ -13222,28 +13426,28 @@ } }, "workbox-background-sync": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.1.0.tgz", - "integrity": "sha512-rMbgrzueVWDFcEq1610YyDW71z0oAXLfdRHRQcKw4SGihkfOK0JUEvqWHFwA6rJ+6TClnMIn7KQI5PNN1XQXwQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.3.0.tgz", + "integrity": "sha512-PCSk3eK7Mxeuyatb22pcSx9dlgWNv3+M8PqPaYDokks8Y5/FX4soaOqj3yhAZr5k6Q5JWTOMYgaJBpbw11G9Eg==", "dev": true, "requires": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-broadcast-update": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.1.0.tgz", - "integrity": "sha512-O36hIfhjej/c5ar95pO67k1GQw0/bw5tKP7CERNgK+JdxBANQhDmIuOXZTNvwb2IHBx9hj2kxvcDyRIh5nzOgQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.3.0.tgz", + "integrity": "sha512-T9/F5VEdJVhwmrIAE+E/kq5at2OY6+OXXgOWQevnubal6sO92Gjo24v6dCVwQiclAF5NS3hlmsifRrpQzZCdUA==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-build": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.1.1.tgz", - "integrity": "sha512-WdkVdC70VMpf5NBCtNbiwdSZeKVuhTEd5PV3mAwpTQCGAB5XbOny1P9egEgNdetv4srAMmMKjvBk4RD58LpooA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.3.0.tgz", + "integrity": "sha512-JGL6vZTPlxnlqZRhR/K/msqg3wKP+m0wfEUVosK7gsYzSgeIxvZLi1ViJJzVL7CEeI8r7rGFV973RiEqkP3lWQ==", "dev": true, "requires": { "@apideck/better-ajv-errors": "^0.3.1", @@ -13268,21 +13472,21 @@ "strip-comments": "^2.0.1", "tempy": "^0.6.0", "upath": "^1.2.0", - "workbox-background-sync": "7.1.0", - "workbox-broadcast-update": "7.1.0", - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-google-analytics": "7.1.0", - "workbox-navigation-preload": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-range-requests": "7.1.0", - "workbox-recipes": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0", - "workbox-streams": "7.1.0", - "workbox-sw": "7.1.0", - "workbox-window": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-broadcast-update": "7.3.0", + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-google-analytics": "7.3.0", + "workbox-navigation-preload": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-range-requests": "7.3.0", + "workbox-recipes": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0", + "workbox-streams": "7.3.0", + "workbox-sw": "7.3.0", + "workbox-window": "7.3.0" }, "dependencies": { "@apideck/better-ajv-errors": { @@ -13361,127 +13565,127 @@ } }, "workbox-cacheable-response": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.1.0.tgz", - "integrity": "sha512-iwsLBll8Hvua3xCuBB9h92+/e0wdsmSVgR2ZlvcfjepZWwhd3osumQB3x9o7flj+FehtWM2VHbZn8UJeBXXo6Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.3.0.tgz", + "integrity": "sha512-eAFERIg6J2LuyELhLlmeRcJFa5e16Mj8kL2yCDbhWE+HUun9skRQrGIFVUagqWj4DMaaPSMWfAolM7XZZxNmxA==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-core": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.1.0.tgz", - "integrity": "sha512-5KB4KOY8rtL31nEF7BfvU7FMzKT4B5TkbYa2tzkS+Peqj0gayMT9SytSFtNzlrvMaWgv6y/yvP9C0IbpFjV30Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.3.0.tgz", + "integrity": "sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw==", "dev": true }, "workbox-expiration": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.1.0.tgz", - "integrity": "sha512-m5DcMY+A63rJlPTbbBNtpJ20i3enkyOtSgYfv/l8h+D6YbbNiA0zKEkCUaMsdDlxggla1oOfRkyqTvl5Ni5KQQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.3.0.tgz", + "integrity": "sha512-lpnSSLp2BM+K6bgFCWc5bS1LR5pAwDWbcKt1iL87/eTSJRdLdAwGQznZE+1czLgn/X05YChsrEegTNxjM067vQ==", "dev": true, "requires": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-google-analytics": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.1.0.tgz", - "integrity": "sha512-FvE53kBQHfVTcZyczeBVRexhh7JTkyQ8HAvbVY6mXd2n2A7Oyz/9fIwnY406ZcDhvE4NFfKGjW56N4gBiqkrew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.3.0.tgz", + "integrity": "sha512-ii/tSfFdhjLHZ2BrYgFNTrb/yk04pw2hasgbM70jpZfLk0vdJAXgaiMAWsoE+wfJDNWoZmBYY0hMVI0v5wWDbg==", "dev": true, "requires": { - "workbox-background-sync": "7.1.0", - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "workbox-navigation-preload": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.1.0.tgz", - "integrity": "sha512-4wyAbo0vNI/X0uWNJhCMKxnPanNyhybsReMGN9QUpaePLTiDpKxPqFxl4oUmBNddPwIXug01eTSLVIFXimRG/A==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.3.0.tgz", + "integrity": "sha512-fTJzogmFaTv4bShZ6aA7Bfj4Cewaq5rp30qcxl2iYM45YD79rKIhvzNHiFj1P+u5ZZldroqhASXwwoyusnr2cg==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-precaching": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.1.0.tgz", - "integrity": "sha512-LyxzQts+UEpgtmfnolo0hHdNjoB7EoRWcF7EDslt+lQGd0lW4iTvvSe3v5JiIckQSB5KTW5xiCqjFviRKPj1zA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.3.0.tgz", + "integrity": "sha512-ckp/3t0msgXclVAYaNndAGeAoWQUv7Rwc4fdhWL69CCAb2UHo3Cef0KIUctqfQj1p8h6aGyz3w8Cy3Ihq9OmIw==", "dev": true, "requires": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "workbox-range-requests": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.1.0.tgz", - "integrity": "sha512-m7+O4EHolNs5yb/79CrnwPR/g/PRzMFYEdo01LqwixVnc/sbzNSvKz0d04OE3aMRel1CwAAZQheRsqGDwATgPQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.3.0.tgz", + "integrity": "sha512-EyFmM1KpDzzAouNF3+EWa15yDEenwxoeXu9bgxOEYnFfCxns7eAxA9WSSaVd8kujFFt3eIbShNqa4hLQNFvmVQ==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-recipes": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.1.0.tgz", - "integrity": "sha512-NRrk4ycFN9BHXJB6WrKiRX3W3w75YNrNrzSX9cEZgFB5ubeGoO8s/SDmOYVrFYp9HMw6sh1Pm3eAY/1gVS8YLg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.3.0.tgz", + "integrity": "sha512-BJro/MpuW35I/zjZQBcoxsctgeB+kyb2JAP5EB3EYzePg8wDGoQuUdyYQS+CheTb+GhqJeWmVs3QxLI8EBP1sg==", "dev": true, "requires": { - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "workbox-routing": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.1.0.tgz", - "integrity": "sha512-oOYk+kLriUY2QyHkIilxUlVcFqwduLJB7oRZIENbqPGeBP/3TWHYNNdmGNhz1dvKuw7aqvJ7CQxn27/jprlTdg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.3.0.tgz", + "integrity": "sha512-ZUlysUVn5ZUzMOmQN3bqu+gK98vNfgX/gSTZ127izJg/pMMy4LryAthnYtjuqcjkN4HEAx1mdgxNiKJMZQM76A==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-strategies": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.1.0.tgz", - "integrity": "sha512-/UracPiGhUNehGjRm/tLUQ+9PtWmCbRufWtV0tNrALuf+HZ4F7cmObSEK+E4/Bx1p8Syx2tM+pkIrvtyetdlew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.3.0.tgz", + "integrity": "sha512-tmZydug+qzDFATwX7QiEL5Hdf7FrkhjaF9db1CbB39sDmEZJg3l9ayDvPxy8Y18C3Y66Nrr9kkN1f/RlkDgllg==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-streams": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.1.0.tgz", - "integrity": "sha512-WyHAVxRXBMfysM8ORwiZnI98wvGWTVAq/lOyBjf00pXFvG0mNaVz4Ji+u+fKa/mf1i2SnTfikoYKto4ihHeS6w==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.3.0.tgz", + "integrity": "sha512-SZnXucyg8x2Y61VGtDjKPO5EgPUG5NDn/v86WYHX+9ZqvAsGOytP0Jxp1bl663YUuMoXSAtsGLL+byHzEuMRpw==", "dev": true, "requires": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0" } }, "workbox-sw": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.1.0.tgz", - "integrity": "sha512-Hml/9+/njUXBglv3dtZ9WBKHI235AQJyLBV1G7EFmh4/mUdSQuXui80RtjDeVRrXnm/6QWgRUEHG3/YBVbxtsA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.3.0.tgz", + "integrity": "sha512-aCUyoAZU9IZtH05mn0ACUpyHzPs0lMeJimAYkQkBsOWiqaJLgusfDCR+yllkPkFRxWpZKF8vSvgHYeG7LwhlmA==", "dev": true }, "workbox-window": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.1.0.tgz", - "integrity": "sha512-ZHeROyqR+AS5UPzholQRDttLFqGMwP0Np8MKWAdyxsDETxq3qOAyXvqessc3GniohG6e0mAqSQyKOHmT8zPF7g==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.3.0.tgz", + "integrity": "sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==", "dev": true, "requires": { "@types/trusted-types": "^2.0.2", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "wrap-ansi": { @@ -13496,9 +13700,9 @@ }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true }, "ansi-styles": { @@ -13544,21 +13748,6 @@ "color-convert": "^2.0.1" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", diff --git a/packages/java/tests/csrf-context/package.json b/packages/java/tests/csrf-context/package.json index bef89f5c42..5fbfde299c 100644 --- a/packages/java/tests/csrf-context/package.json +++ b/packages/java/tests/csrf-context/package.json @@ -1,26 +1,27 @@ { - "name": "no-name", + "private": true, "license": "UNLICENSED", "type": "module", "dependencies": { - "@polymer/polymer": "3.5.1", + "@polymer/polymer": "3.5.2", "@vaadin/common-frontend": "0.0.19", "@vaadin/hilla-frontend": "file:../../../ts/frontend", "@vaadin/hilla-lit-form": "file:../../../ts/lit-form", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/icons": "24.5.0-alpha3", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/router": "1.7.5", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/icons": "24.7.0-alpha4", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/router": "2.0.0", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "construct-style-sheets-polyfill": "3.1.0", - "lit": "3.1.4" + "lit": "3.2.1" }, "devDependencies": { - "@babel/preset-react": "7.24.7", - "@rollup/plugin-replace": "5.0.7", - "@rollup/pluginutils": "5.1.0", + "@babel/preset-react": "7.26.3", + "@preact/signals-react-transform": "0.5.1", + "@rollup/plugin-replace": "6.0.2", + "@rollup/pluginutils": "5.1.4", "@vaadin/hilla-generator-cli": "file:../../../ts/generator-cli", "@vaadin/hilla-generator-core": "file:../../../ts/generator-core", "@vaadin/hilla-generator-plugin-backbone": "file:../../../ts/generator-plugin-backbone", @@ -28,66 +29,69 @@ "@vaadin/hilla-generator-plugin-client": "file:../../../ts/generator-plugin-client", "@vaadin/hilla-generator-plugin-model": "file:../../../ts/generator-plugin-model", "@vaadin/hilla-generator-plugin-push": "file:../../../ts/generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "file:../../../ts/generator-plugin-signals", "@vaadin/hilla-generator-plugin-subtypes": "file:../../../ts/generator-plugin-subtypes", "@vaadin/hilla-generator-utils": "file:../../../ts/generator-utils", - "@vitejs/plugin-react": "4.3.1", - "async": "3.2.5", - "glob": "10.4.1", + "@vitejs/plugin-react": "4.3.4", + "async": "3.2.6", + "glob": "11.0.0", "rollup-plugin-brotli": "3.1.0", - "rollup-plugin-visualizer": "5.12.0", + "rollup-plugin-visualizer": "5.13.1", "strip-css-comments": "5.0.0", "transform-ast": "2.4.4", - "typescript": "5.4.5", - "vite": "5.3.1", - "vite-plugin-checker": "0.6.4", - "workbox-build": "7.1.1", - "workbox-core": "7.1.0", - "workbox-precaching": "7.1.0" + "typescript": "5.7.3", + "vite": "6.0.6", + "vite-plugin-checker": "0.8.0", + "workbox-build": "7.3.0", + "workbox-core": "7.3.0", + "workbox-precaching": "7.3.0" }, "vaadin": { "dependencies": { - "@polymer/polymer": "3.5.1", + "@polymer/polymer": "3.5.2", "@vaadin/common-frontend": "0.0.19", - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "@vaadin/hilla-lit-form": "24.5.0-alpha2", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/icons": "24.5.0-alpha3", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/router": "1.7.5", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/icons": "24.7.0-alpha4", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/router": "2.0.0", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "construct-style-sheets-polyfill": "3.1.0", - "lit": "3.1.4" + "lit": "3.2.1" }, "devDependencies": { - "@babel/preset-react": "7.24.7", - "@rollup/plugin-replace": "5.0.7", - "@rollup/pluginutils": "5.1.0", - "@vaadin/hilla-generator-cli": "24.5.0-alpha2", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-barrel": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-push": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-subtypes": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "@vitejs/plugin-react": "4.3.1", - "async": "3.2.5", - "glob": "10.4.1", + "@babel/preset-react": "7.26.3", + "@preact/signals-react-transform": "0.5.1", + "@rollup/plugin-replace": "6.0.2", + "@rollup/pluginutils": "5.1.4", + "@vaadin/hilla-generator-cli": "24.7.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-barrel": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-push": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-signals": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-subtypes": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vitejs/plugin-react": "4.3.4", + "async": "3.2.6", + "glob": "11.0.0", "rollup-plugin-brotli": "3.1.0", - "rollup-plugin-visualizer": "5.12.0", + "rollup-plugin-visualizer": "5.13.1", "strip-css-comments": "5.0.0", "transform-ast": "2.4.4", - "typescript": "5.4.5", - "vite": "5.3.1", - "vite-plugin-checker": "0.6.4", - "workbox-build": "7.1.1", - "workbox-core": "7.1.0", - "workbox-precaching": "7.1.0" + "typescript": "5.7.3", + "vite": "6.0.6", + "vite-plugin-checker": "0.8.0", + "workbox-build": "7.3.0", + "workbox-core": "7.3.0", + "workbox-precaching": "7.3.0" }, - "hash": "36fff5033d1fb0e976c6e4724a8dba7630893252b1d1ca7385732cc67570d5e9" + "hash": "f3dc0a3997aea0ffd83cedeabf6bd8a4535a6e2d19c510e9424209769bba1126" }, "overrides": { "@vaadin/common-frontend": "$@vaadin/common-frontend", @@ -102,6 +106,7 @@ "@vaadin/hilla-generator-plugin-client": "$@vaadin/hilla-generator-plugin-client", "@vaadin/hilla-generator-plugin-model": "$@vaadin/hilla-generator-plugin-model", "@vaadin/hilla-generator-plugin-push": "$@vaadin/hilla-generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "$@vaadin/hilla-generator-plugin-signals", "@vaadin/hilla-generator-utils": "$@vaadin/hilla-generator-utils", "@vaadin/router": "$@vaadin/router", "@vaadin/hilla-lit-form": "$@vaadin/hilla-lit-form", diff --git a/packages/java/tests/csrf-context/pom.xml b/packages/java/tests/csrf-context/pom.xml index 6c682443a1..4e07104e71 100644 --- a/packages/java/tests/csrf-context/pom.xml +++ b/packages/java/tests/csrf-context/pom.xml @@ -4,7 +4,7 @@ com.vaadin tests - 24.5-SNAPSHOT + 24.7-SNAPSHOT tests-csrf-context diff --git a/packages/java/tests/csrf/package-lock.json b/packages/java/tests/csrf/package-lock.json index 5b2437ee90..dec597b01e 100644 --- a/packages/java/tests/csrf/package-lock.json +++ b/packages/java/tests/csrf/package-lock.json @@ -1,30 +1,30 @@ { - "name": "no-name", + "name": "csrf", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "no-name", "license": "UNLICENSED", "dependencies": { - "@polymer/polymer": "3.5.1", + "@polymer/polymer": "3.5.2", "@vaadin/common-frontend": "0.0.19", "@vaadin/hilla-frontend": "file:../../../ts/frontend", "@vaadin/hilla-lit-form": "file:../../../ts/lit-form", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/icons": "24.5.0-alpha3", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/router": "1.7.5", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/icons": "24.7.0-alpha4", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/router": "2.0.0", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "construct-style-sheets-polyfill": "3.1.0", - "lit": "3.1.4" + "lit": "3.2.1" }, "devDependencies": { - "@babel/preset-react": "7.24.7", - "@rollup/plugin-replace": "5.0.7", - "@rollup/pluginutils": "5.1.0", + "@babel/preset-react": "7.26.3", + "@preact/signals-react-transform": "0.5.1", + "@rollup/plugin-replace": "6.0.2", + "@rollup/pluginutils": "5.1.4", "@vaadin/hilla-generator-cli": "file:../../../ts/generator-cli", "@vaadin/hilla-generator-core": "file:../../../ts/generator-core", "@vaadin/hilla-generator-plugin-backbone": "file:../../../ts/generator-plugin-backbone", @@ -32,21 +32,22 @@ "@vaadin/hilla-generator-plugin-client": "file:../../../ts/generator-plugin-client", "@vaadin/hilla-generator-plugin-model": "file:../../../ts/generator-plugin-model", "@vaadin/hilla-generator-plugin-push": "file:../../../ts/generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "file:../../../ts/generator-plugin-signals", "@vaadin/hilla-generator-plugin-subtypes": "file:../../../ts/generator-plugin-subtypes", "@vaadin/hilla-generator-utils": "file:../../../ts/generator-utils", - "@vitejs/plugin-react": "4.3.1", - "async": "3.2.5", - "glob": "10.4.1", + "@vitejs/plugin-react": "4.3.4", + "async": "3.2.6", + "glob": "11.0.0", "rollup-plugin-brotli": "3.1.0", - "rollup-plugin-visualizer": "5.12.0", + "rollup-plugin-visualizer": "5.13.1", "strip-css-comments": "5.0.0", "transform-ast": "2.4.4", - "typescript": "5.4.5", - "vite": "5.3.1", - "vite-plugin-checker": "0.6.4", - "workbox-build": "7.1.1", - "workbox-core": "7.1.0", - "workbox-precaching": "7.1.0" + "typescript": "5.7.3", + "vite": "6.0.6", + "vite-plugin-checker": "0.8.0", + "workbox-build": "7.3.0", + "workbox-core": "7.3.0", + "workbox-precaching": "7.3.0" } }, "../../../../ts/generator-cli": { @@ -75,7 +76,7 @@ }, "../../../ts/frontend": { "name": "@vaadin/hilla-frontend", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { "@vaadin/common-frontend": "^0.0.19", @@ -83,22 +84,22 @@ "js-cookie": "^3.0.5" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@open-wc/testing": "^3.2.0", - "@types/atmosphere.js": "^2.1.4", - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/js-cookie": "^3.0.4", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", + "@open-wc/testing": "^3.2.2", + "@types/atmosphere.js": "^2.1.6", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/js-cookie": "^3.0.6", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", "fetch-mock": "^9.11.0", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { "lit": "^3.0.0" @@ -106,69 +107,69 @@ }, "../../../ts/generator-cli": { "name": "@vaadin/hilla-generator-cli", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "get-stdin": "^9.0.0", - "meow": "^12.1.1" + "meow": "^13.2.0" }, "bin": { "tsgen": "bin/index.js" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "chai-as-promised": "^7.1.1", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-as-promised": "^7.1.2", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2" } }, "../../../ts/generator-core": { "name": "@vaadin/hilla-generator-core", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { "@apidevtools/swagger-parser": "^10.1.0", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "meow": "^12.1.1", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "meow": "^13.2.0", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" @@ -176,247 +177,281 @@ }, "../../../ts/generator-plugin-backbone": { "name": "@vaadin/hilla-generator-plugin-backbone", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2" } }, "../../../ts/generator-plugin-barrel": { "name": "@vaadin/hilla-generator-plugin-barrel", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "typescript": "5.3.2" + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2" } }, "../../../ts/generator-plugin-client": { "name": "@vaadin/hilla-generator-plugin-client", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "typescript": "5.3.2" + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2" } }, "../../../ts/generator-plugin-model": { "name": "@vaadin/hilla-generator-plugin-model", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "@vaadin/hilla-lit-form": "24.5.0-alpha2" } }, "../../../ts/generator-plugin-push": { "name": "@vaadin/hilla-generator-plugin-push", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" + } + }, + "../../../ts/generator-plugin-signals": { + "name": "@vaadin/hilla-generator-plugin-signals", + "version": "24.7.0-alpha5", + "dev": true, + "license": "Apache 2.0", + "dependencies": { + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "fast-deep-equal": "^3.1.3", + "iterator-helpers-polyfill": "^3.0.1", + "openapi-types": "^12.1.3", + "typescript": "5.7.2" }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2" + "devDependencies": { + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", + "copyfiles": "^2.4.1", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "type-fest": "^4.30.2" + }, + "engines": { + "node": ">= 16.13" } }, "../../../ts/generator-plugin-subtypes": { "name": "@vaadin/hilla-generator-plugin-subtypes", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2" } }, "../../../ts/generator-utils": { "name": "@vaadin/hilla-generator-utils", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "pino": "^8.15.1", - "pino-pretty": "^10.2.0", - "typescript": "5.3.2" + "pino": "^9.5.0", + "pino-pretty": "^10.3.1", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-like": "^1.1.3", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" @@ -450,24 +485,24 @@ }, "../../../ts/lit-form": { "name": "@vaadin/hilla-lit-form", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "validator": "^13.11.0" + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "validator": "^13.12.0" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@types/chai": "^4.3.6", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-dom": "^1.11.0", - "sinon": "^16.0.0", + "@types/chai": "^4.3.20", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-dom": "^1.12.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { "lit": "^3.0.0" @@ -487,12 +522,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -500,30 +536,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", - "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz", - "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.6", - "@babel/generator": "^7.24.6", - "@babel/helper-compilation-targets": "^7.24.6", - "@babel/helper-module-transforms": "^7.24.6", - "@babel/helpers": "^7.24.6", - "@babel/parser": "^7.24.6", - "@babel/template": "^7.24.6", - "@babel/traverse": "^7.24.6", - "@babel/types": "^7.24.6", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -544,23 +580,6 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/@babel/core/node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -573,12 +592,6 @@ "node": ">=6" } }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -589,15 +602,16 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "dev": true, "dependencies": { - "@babel/types": "^7.24.7", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" @@ -617,25 +631,13 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/generator/node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -655,14 +657,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", - "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.24.6", - "@babel/helper-validator-option": "^7.24.6", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -794,29 +796,6 @@ "@babel/core": "^7.4.0-0" } }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -888,29 +867,27 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", - "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-module-imports": "^7.24.6", - "@babel/helper-simple-access": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -932,9 +909,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -971,12 +948,13 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", - "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", "dev": true, "dependencies": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1007,27 +985,27 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -1049,76 +1027,26 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.6.tgz", - "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "dependencies": { - "@babel/template": "^7.24.6", - "@babel/types": "^7.24.6" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "@babel/types": "^7.26.0" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -1497,12 +1425,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1993,12 +1921,12 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", - "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2008,16 +1936,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz", - "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2027,12 +1955,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", - "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", "dev": true, "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.24.7" + "@babel/plugin-transform-react-jsx": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2042,12 +1970,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.6.tgz", - "integrity": "sha512-FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2057,12 +1985,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.6.tgz", - "integrity": "sha512-BQTBCXmFRreU3oTUXcGKuPOfXAGb1liNY4AvvFKsOBAJ89RKcTsIrSsnMYkj59fNa66OFKnSa4AJZfy5Y4B9WA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2072,13 +2000,13 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", - "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2349,17 +2277,17 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", - "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", + "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-transform-react-display-name": "^7.24.7", - "@babel/plugin-transform-react-jsx": "^7.24.7", - "@babel/plugin-transform-react-jsx-development": "^7.24.7", - "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-react-display-name": "^7.25.9", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/plugin-transform-react-jsx-development": "^7.25.9", + "@babel/plugin-transform-react-pure-annotations": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2387,33 +2315,30 @@ "dev": true }, "node_modules/@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2421,23 +2346,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -2447,401 +2355,442 @@ "node": ">=4" } }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/types/node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "cpu": [ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@isaacs/cliui": { @@ -2849,6 +2798,7 @@ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2862,10 +2812,11 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2878,6 +2829,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -2960,9 +2912,9 @@ } }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", - "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", + "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==" }, "node_modules/@lit/reactive-element": { "version": "2.0.4", @@ -3012,22 +2964,63 @@ "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==" }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "node_modules/@polymer/polymer": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.2.tgz", + "integrity": "sha512-fWwImY/UH4bb2534DVSaX+Azs2yKg8slkMBHOyGeU2kKx7Xmxp6Lee0jP8p6B3d7c1gFUPB2Z976dTUtX81pQA==", + "dependencies": { + "@webcomponents/shadycss": "^1.9.1" + } + }, + "node_modules/@preact/signals-core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.8.0.tgz", + "integrity": "sha512-OBvUsRZqNmjzCZXWLxkZfhcgT+Fk8DDcT/8vD6a1xhDemodyy87UJRJfASMuSD8FaAIeGgGm85ydXhm7lr4fyA==", "dev": true, - "optional": true, - "engines": { - "node": ">=14" + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" } }, - "node_modules/@polymer/polymer": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.1.tgz", - "integrity": "sha512-JlAHuy+1qIC6hL1ojEUfIVD58fzTpJAoCxFwV5yr0mYTXV1H8bz5zy0+rC963Cgr9iNXQ4T9ncSjC2fkF9BQfw==", + "node_modules/@preact/signals-react": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@preact/signals-react/-/signals-react-3.0.0.tgz", + "integrity": "sha512-lCG3HIH5NlpQscVKQ5b+hgmRKorra/BcjMdEloMoa+/eLYmve06j3tFetN+nedDSpIHtSb3FFX0y3wUg/Nuxyw==", + "dev": true, + "license": "MIT", "dependencies": { - "@webcomponents/shadycss": "^1.9.1" + "@preact/signals-core": "^1.7.0", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + }, + "peerDependencies": { + "react": "^16.14.0 || 17.x || 18.x || 19.x" + } + }, + "node_modules/@preact/signals-react-transform": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@preact/signals-react-transform/-/signals-react-transform-0.5.1.tgz", + "integrity": "sha512-/w1rgu7i/qDk8dhDj+6AVVVJ+b1W11YkP3vfPPPyrn1tDCPb8orYwETa3JCvYxMtJBHbvIYEjhXvZ8Ab2cWC8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@preact/signals-react": "^3.0.0", + "debug": "^4.3.4", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "react": "^16.14.0 || 17.x || 18.x || 19.x" } }, "node_modules/@rollup/plugin-babel": { @@ -3102,10 +3095,11 @@ } }, "node_modules/@rollup/plugin-replace": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz", - "integrity": "sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.2.tgz", + "integrity": "sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "magic-string": "^0.30.3" @@ -3157,14 +3151,15 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "picomatch": "^4.0.2" }, "engines": { "node": ">=14.0.0" @@ -3184,10 +3179,22 @@ "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", "dev": true }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz", + "integrity": "sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==", "cpu": [ "arm" ], @@ -3198,48 +3205,87 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.0.tgz", + "integrity": "sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz", + "integrity": "sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.0.tgz", + "integrity": "sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.0.tgz", + "integrity": "sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==", "cpu": [ "arm64" ], "dev": true, "optional": true, "os": [ - "android" + "freebsd" ] }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.0.tgz", + "integrity": "sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==", "cpu": [ - "arm64" + "x64" ], "dev": true, "optional": true, "os": [ - "darwin" + "freebsd" ] }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.0.tgz", + "integrity": "sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==", "cpu": [ - "x64" + "arm" ], "dev": true, "optional": true, "os": [ - "darwin" + "linux" ] }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.0.tgz", + "integrity": "sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==", "cpu": [ "arm" ], @@ -3250,9 +3296,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.0.tgz", + "integrity": "sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==", "cpu": [ "arm64" ], @@ -3263,9 +3309,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.0.tgz", + "integrity": "sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==", "cpu": [ "arm64" ], @@ -3275,10 +3321,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.0.tgz", + "integrity": "sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.0.tgz", + "integrity": "sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==", "cpu": [ "riscv64" ], @@ -3288,10 +3347,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.0.tgz", + "integrity": "sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.0.tgz", + "integrity": "sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==", "cpu": [ "x64" ], @@ -3302,9 +3374,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.0.tgz", + "integrity": "sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==", "cpu": [ "x64" ], @@ -3315,9 +3387,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.0.tgz", + "integrity": "sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==", "cpu": [ "arm64" ], @@ -3328,9 +3400,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.0.tgz", + "integrity": "sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==", "cpu": [ "ia32" ], @@ -3341,9 +3413,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.0.tgz", + "integrity": "sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==", "cpu": [ "x64" ], @@ -3435,13 +3507,14 @@ "integrity": "sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==" }, "node_modules/@vaadin/a11y-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.5.0-alpha3.tgz", - "integrity": "sha512-hJN/e1FbzwkT6b3QEma04UHX0B8q8KlwGmIfnJG19FPb/UynuzSoaZguMljT/YvpiBgBFZT+Fem6WliprwU3wg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.7.0-alpha4.tgz", + "integrity": "sha512-s1sdmb5rX8i6bxCPl6AyzV+6n32ym0u1bMcJwrhYoXm9qK0wnNz0hsTt9r9wNuZRjxpbGmuRd2rpLh6twAbuDA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", "lit": "^3.0.0" } }, @@ -3457,9 +3530,10 @@ } }, "node_modules/@vaadin/component-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.5.0-alpha3.tgz", - "integrity": "sha512-3OAScmXraCAihHCJ62ZNEy9LsMpeWh2/KnPN4tsot1piHtMSnH7r4SFKC/4iNjQsuecou5TmDXuMACFcrlbouA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.7.0-alpha4.tgz", + "integrity": "sha512-oAnXewVRiCa43n7NTeQhof6sd1ib9AQ/wZEVeKESx+/To0cSZEWzdq7uClLYnpw6ah5kVXdGQDozEHkc+o+tEQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", @@ -3500,6 +3574,10 @@ "resolved": "../../../ts/generator-plugin-push", "link": true }, + "node_modules/@vaadin/hilla-generator-plugin-signals": { + "resolved": "../../../ts/generator-plugin-signals", + "link": true + }, "node_modules/@vaadin/hilla-generator-plugin-subtypes": { "resolved": "../../../ts/generator-plugin-subtypes", "link": true @@ -3513,90 +3591,119 @@ "link": true }, "node_modules/@vaadin/icon": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.5.0-alpha3.tgz", - "integrity": "sha512-CUVOeGF+kJ/lE3r/pJuShGTvfQyApFGoephomig4HQ3NJupazAANLnRXAconLAod/RPUWVKhLGqD33SnPKyp7A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.7.0-alpha4.tgz", + "integrity": "sha512-ELyn24AgdCRk9sOWnHbJqb4G8Gj2xr2YuC87dSKCg0E2mpAzxgA0xIObPO2DjWTzhprRy2XWsbkklzJFLKv1ag==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/icons": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.5.0-alpha3.tgz", - "integrity": "sha512-LZjQrwgw34HILPhSXpvabVQiEZzEDeeePFIdkIaxcjqC6bc2JjAecA0rPh2sci6mqCTed7ap9mZPxlitDi/uBQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.7.0-alpha4.tgz", + "integrity": "sha512-b2C00K2zkxg8dOsKSvWjBO/gVfSx96uQilksTZBOI3GXi1+UTqc5DzzYrOOH+Y0XqcqU7ynqqmkRTeyWJSiSSw==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/icon": "24.5.0-alpha3" + "@vaadin/icon": "24.7.0-alpha4" + } + }, + "node_modules/@vaadin/lit-renderer": { + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.7.0-alpha4.tgz", + "integrity": "sha512-jsgSnG3RoG0XX9k02cA0lqYw4KctzkW+hzq8+rAE1zLIJs4CQpe0jUzu1cGVy1bgJlPguvYVbQAitPc3+hFn/w==", + "license": "Apache-2.0", + "dependencies": { + "lit": "^3.0.0" } }, "node_modules/@vaadin/overlay": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.5.0-alpha3.tgz", - "integrity": "sha512-zH72InlWhwkBqdUMoIbHPXUajHapTVTwebZgddqE9FjBxRyfSF2062jrHcX6dFR4tNlspbem6z/EeWk4BWxBQw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.7.0-alpha4.tgz", + "integrity": "sha512-z2eHVojBg7o0vQWRhLPy2jfhuhTWrjnvOdw3FmkUnw8jy11Qqf/Pz0hMvy7cWE2d6ThLMjAnTzjlnRX/8y7U0w==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/polymer-legacy-adapter": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.5.0-alpha3.tgz", - "integrity": "sha512-W9yXABgFVqyIvMaHXewyqn4Tg3HiVEhDYbW8it9YZVnu9ej5msYXzyowZf/Lt4RQM9ogp9hx+deXR9W+297ivg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.7.0-alpha4.tgz", + "integrity": "sha512-+CvDzDA1a+9f877179k5ilVLq40e8HUSzvzGgiZDyrW1txmSRRdbQq5rX/qjHDjBXORqLLJGbkDRQmS2Y455yg==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/popover": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.5.0-alpha3.tgz", - "integrity": "sha512-niIKAipighHRoxcdteoptEu+JjyXT5TQhXagypI0hp0Sme7ZwQBnxlh+JdfKN/OV6hGrMt411wZntnc7bnVl7Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.7.0-alpha4.tgz", + "integrity": "sha512-KwhcnwrJoKjkVeScRF5RvBjBO8pS68Sgxd801qUj+X6bSBgtAAxMTS+yyQDUTVbAFmyr/pl2p8xE2mX5Hdi0ZQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/router": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-1.7.5.tgz", - "integrity": "sha512-uRN3vd1ihgd596bF/NMZqpgxau0nlvIc0/JDd1EwStFNbZID/xIVse5LXdQhIyUKLmSl4T0GeCQK505xerWX0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-2.0.0.tgz", + "integrity": "sha512-IjOlzuUsrVhfBId+ypcdDLM3+GZHo64DUlkr8IjFe04A4kMvt0zVFIpPH03X52/tMiwyYOF0Sw6p53DXkWiZcA==", "dependencies": { - "@vaadin/vaadin-usage-statistics": "^2.1.0", - "path-to-regexp": "2.4.0" + "@vaadin/vaadin-usage-statistics": "^2.1.2", + "path-to-regexp": "^6.3.0", + "type-fest": "^4.26.1" + } + }, + "node_modules/@vaadin/router/node_modules/type-fest": { + "version": "4.26.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", + "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@vaadin/tooltip": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.5.0-alpha3.tgz", - "integrity": "sha512-q5K9g3dCp/P8ED1/twharFiSGk1Zf09mApNdxyFl/wYduLxVnDG2h0WfE4rEl9Ix6h8N5NVmJ6Vl48UAZ5vgYQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.7.0-alpha4.tgz", + "integrity": "sha512-6Eb8kaZTpPCF6fptSAXlpYHO5HBDQiTMCbDtLX4cA0ov0rpaJ9YljVaZYYHyVF5lDDPhEfTGUq+f9MhMmIpW0w==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/popover": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/popover": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/vaadin-development-mode-detector": { @@ -3605,30 +3712,33 @@ "integrity": "sha512-miirBQw10UHjKwRv29iZniXCo41cLg3wFotoyTeUZ2PTGIDk/fZVFr4Q4WVKZrp3D15878vz94nNQROSmPLjdg==" }, "node_modules/@vaadin/vaadin-lumo-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-9zswr9ZNP6L7+VLCpD8yKKrlRzEC5gKJtfSRVhXqZwJ7x5Na1LVpJDzhDoKlqEcyPCsL/mcRllYAkT20hj0+8Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-L+rF8XYF+7hisu48wZK8MDjbwVMTmEteZsoTk1uyY6oCXyJEvBup1WwN2I0fFRlvSHMKnHNWDOuHmIfevK0uKQ==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "node_modules/@vaadin/vaadin-material-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-6CYxTPmT0ZU64H3wwzeDOrVF87wyU8CtLWLXNhXNkB+DSO44pCLML5kg1LwRRqnixY95x26LY+iSSITUSD8Pmw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-8fcm8oLtaI3BHewsP2d07YcIHw3GgFfFp83IHIoTG7MlaeJvAqvs2aPMcszLJ4s3WCLZnvsSkdwbgjdE0oYbhw==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "node_modules/@vaadin/vaadin-themable-mixin": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.5.0-alpha3.tgz", - "integrity": "sha512-gm/Adnsms4nUYONQPBDK91bPE7lfHFb27dBo31io7QAm5Cr+lBTd2U/Ce8eyK5+MialbabyZ2YQCgF3l2l8xWg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.7.0-alpha4.tgz", + "integrity": "sha512-x8Shc4t2WTV/2UtsXY8+n6KDYMvVaq0ZfNdldNkthfZjVfpCgioyZAtB6hZbEirvY6a5RRSQKcr12k2lrKDbTQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "lit": "^3.0.0" @@ -3647,14 +3757,14 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", - "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", "dev": true, "dependencies": { - "@babel/core": "^7.24.5", - "@babel/plugin-transform-react-jsx-self": "^7.24.5", - "@babel/plugin-transform-react-jsx-source": "^7.24.1", + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", "@types/babel__core": "^7.20.5", "react-refresh": "^0.14.2" }, @@ -3662,7 +3772,7 @@ "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" } }, "node_modules/@webcomponents/shadycss": { @@ -3761,9 +3871,9 @@ } }, "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "dev": true }, "node_modules/at-least-node": { @@ -3876,9 +3986,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", "dev": true, "funding": [ { @@ -3895,10 +4005,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -3939,9 +4049,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001572", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz", - "integrity": "sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==", + "version": "1.0.30001667", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", + "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", "dev": true, "funding": [ { @@ -4039,24 +4149,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/cliui/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cliui/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -4107,19 +4199,24 @@ } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" }, "node_modules/common-tags": { "version": "1.8.2", @@ -4202,6 +4299,23 @@ "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", "dev": true }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -4240,7 +4354,8 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ejs": { "version": "3.1.8", @@ -4258,16 +4373,17 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.616", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz", - "integrity": "sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==", + "version": "1.5.33", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.33.tgz", + "integrity": "sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==", "dev": true }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/es-abstract": { "version": "1.20.1", @@ -4324,47 +4440,50 @@ } }, "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "engines": { "node": ">=6" @@ -4625,22 +4744,24 @@ } }, "node_modules/glob": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", "minipass": "^7.1.2", - "path-scurry": "^1.11.1" + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4663,20 +4784,22 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/glob/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4721,15 +4844,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/has-property-descriptors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", @@ -5105,21 +5219,19 @@ "dev": true }, "node_modules/jackspeak": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", - "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=14" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/jake": { @@ -5171,24 +5283,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jake/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/jake/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -5216,6 +5310,18 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", @@ -5265,29 +5371,29 @@ } }, "node_modules/lit": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.4.tgz", - "integrity": "sha512-q6qKnKXHy2g1kjBaNfcoLlgbI3+aSOZ9Q4tiGa9bGYXq5RBXxkVTqTIVmP2VWMp29L4GyvCFm8ZQ2o56eUAMyA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz", + "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==", "dependencies": { "@lit/reactive-element": "^2.0.4", - "lit-element": "^4.0.4", - "lit-html": "^3.1.2" + "lit-element": "^4.1.0", + "lit-html": "^3.2.0" } }, "node_modules/lit-element": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", - "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz", + "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==", "dependencies": { "@lit-labs/ssr-dom-shim": "^1.2.0", "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.1.2" + "lit-html": "^3.2.0" } }, "node_modules/lit-html": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", - "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz", + "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==", "dependencies": { "@types/trusted-types": "^2.0.2" } @@ -5366,10 +5472,17 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "node_modules/mutexify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz", @@ -5396,9 +5509,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true, "funding": [ { @@ -5414,9 +5527,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, "node_modules/normalize-path": { @@ -5502,6 +5615,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -5527,39 +5646,41 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", "dev": true, + "license": "ISC", "engines": { - "node": "14 || >=16.14" + "node": "20 || >=22" } }, "node_modules/path-to-regexp": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.4.0.tgz", - "integrity": "sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==" }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, "node_modules/picomatch": { @@ -5575,9 +5696,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, "funding": [ { @@ -5595,8 +5716,8 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -5667,6 +5788,17 @@ "safe-buffer": "^5.1.0" } }, + "node_modules/react": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", @@ -5793,13 +5925,14 @@ } }, "node_modules/rollup-plugin-visualizer": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz", - "integrity": "sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==", + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.13.1.tgz", + "integrity": "sha512-vMg8i6BprL8aFm9DKvL2c8AwS8324EgymYQo9o6E26wgVvwMhsJxS37aNL6ZsU7X9iAcMYwdME7gItLfG5fwJg==", "dev": true, + "license": "MIT", "dependencies": { "open": "^8.4.0", - "picomatch": "^2.3.1", + "picomatch": "^4.0.2", "source-map": "^0.7.4", "yargs": "^17.5.1" }, @@ -5807,17 +5940,34 @@ "rollup-plugin-visualizer": "dist/bin/cli.js" }, "engines": { - "node": ">=14" + "node": ">=18" }, "peerDependencies": { + "rolldown": "1.x", "rollup": "2.x || 3.x || 4.x" }, "peerDependenciesMeta": { + "rolldown": { + "optional": true + }, "rollup": { "optional": true } } }, + "node_modules/rollup-plugin-visualizer/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/rollup-plugin-visualizer/node_modules/source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -5943,9 +6093,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5962,6 +6112,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -5980,6 +6131,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5994,6 +6146,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6002,13 +6155,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -6017,10 +6172,11 @@ } }, "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -6033,6 +6189,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -6122,6 +6279,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -6134,6 +6292,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6369,10 +6528,11 @@ } }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -6476,9 +6636,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "funding": [ { @@ -6495,8 +6655,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -6514,21 +6674,32 @@ "punycode": "^2.1.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/vite": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", - "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.6.tgz", + "integrity": "sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==", "dev": true, + "license": "MIT", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.38", - "rollup": "^4.13.0" + "esbuild": "^0.24.2", + "postcss": "^8.4.49", + "rollup": "^4.23.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -6537,18 +6708,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", - "terser": "^5.4.0" + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -6558,6 +6736,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -6566,13 +6747,19 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, "node_modules/vite-plugin-checker": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.6.4.tgz", - "integrity": "sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.8.0.tgz", + "integrity": "sha512-UA5uzOGm97UvZRTdZHiQVYFnd86AVn8EVaD4L3PoVzxH+IZSfaAw14WGFwX9QS23UW3lV/5bVKZn6l0w+q9P0g==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", @@ -6583,7 +6770,6 @@ "fast-glob": "^3.2.7", "fs-extra": "^11.1.0", "npm-run-path": "^4.0.1", - "semver": "^7.5.0", "strip-ansi": "^6.0.0", "tiny-invariant": "^1.1.0", "vscode-languageclient": "^7.0.0", @@ -6595,6 +6781,7 @@ "node": ">=14.16" }, "peerDependencies": { + "@biomejs/biome": ">=1.7", "eslint": ">=7", "meow": "^9.0.0", "optionator": "^0.9.1", @@ -6603,9 +6790,12 @@ "vite": ">=2.0.0", "vls": "*", "vti": "*", - "vue-tsc": ">=1.3.9" + "vue-tsc": "~2.1.6" }, "peerDependenciesMeta": { + "@biomejs/biome": { + "optional": true + }, "eslint": { "optional": true }, @@ -6672,24 +6862,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/vite-plugin-checker/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/vite-plugin-checker/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/vite-plugin-checker/node_modules/commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", @@ -6747,18 +6919,18 @@ } }, "node_modules/vite/node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, "node_modules/vite/node_modules/rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.0.tgz", + "integrity": "sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==", "dev": true, "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -6768,19 +6940,24 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", + "@rollup/rollup-android-arm-eabi": "4.28.0", + "@rollup/rollup-android-arm64": "4.28.0", + "@rollup/rollup-darwin-arm64": "4.28.0", + "@rollup/rollup-darwin-x64": "4.28.0", + "@rollup/rollup-freebsd-arm64": "4.28.0", + "@rollup/rollup-freebsd-x64": "4.28.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.28.0", + "@rollup/rollup-linux-arm-musleabihf": "4.28.0", + "@rollup/rollup-linux-arm64-gnu": "4.28.0", + "@rollup/rollup-linux-arm64-musl": "4.28.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.28.0", + "@rollup/rollup-linux-riscv64-gnu": "4.28.0", + "@rollup/rollup-linux-s390x-gnu": "4.28.0", + "@rollup/rollup-linux-x64-gnu": "4.28.0", + "@rollup/rollup-linux-x64-musl": "4.28.0", + "@rollup/rollup-win32-arm64-msvc": "4.28.0", + "@rollup/rollup-win32-ia32-msvc": "4.28.0", + "@rollup/rollup-win32-x64-msvc": "4.28.0", "fsevents": "~2.3.2" } }, @@ -6957,28 +7134,28 @@ } }, "node_modules/workbox-background-sync": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.1.0.tgz", - "integrity": "sha512-rMbgrzueVWDFcEq1610YyDW71z0oAXLfdRHRQcKw4SGihkfOK0JUEvqWHFwA6rJ+6TClnMIn7KQI5PNN1XQXwQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.3.0.tgz", + "integrity": "sha512-PCSk3eK7Mxeuyatb22pcSx9dlgWNv3+M8PqPaYDokks8Y5/FX4soaOqj3yhAZr5k6Q5JWTOMYgaJBpbw11G9Eg==", "dev": true, "dependencies": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-broadcast-update": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.1.0.tgz", - "integrity": "sha512-O36hIfhjej/c5ar95pO67k1GQw0/bw5tKP7CERNgK+JdxBANQhDmIuOXZTNvwb2IHBx9hj2kxvcDyRIh5nzOgQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.3.0.tgz", + "integrity": "sha512-T9/F5VEdJVhwmrIAE+E/kq5at2OY6+OXXgOWQevnubal6sO92Gjo24v6dCVwQiclAF5NS3hlmsifRrpQzZCdUA==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-build": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.1.1.tgz", - "integrity": "sha512-WdkVdC70VMpf5NBCtNbiwdSZeKVuhTEd5PV3mAwpTQCGAB5XbOny1P9egEgNdetv4srAMmMKjvBk4RD58LpooA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.3.0.tgz", + "integrity": "sha512-JGL6vZTPlxnlqZRhR/K/msqg3wKP+m0wfEUVosK7gsYzSgeIxvZLi1ViJJzVL7CEeI8r7rGFV973RiEqkP3lWQ==", "dev": true, "dependencies": { "@apideck/better-ajv-errors": "^0.3.1", @@ -7003,21 +7180,21 @@ "strip-comments": "^2.0.1", "tempy": "^0.6.0", "upath": "^1.2.0", - "workbox-background-sync": "7.1.0", - "workbox-broadcast-update": "7.1.0", - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-google-analytics": "7.1.0", - "workbox-navigation-preload": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-range-requests": "7.1.0", - "workbox-recipes": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0", - "workbox-streams": "7.1.0", - "workbox-sw": "7.1.0", - "workbox-window": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-broadcast-update": "7.3.0", + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-google-analytics": "7.3.0", + "workbox-navigation-preload": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-range-requests": "7.3.0", + "workbox-recipes": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0", + "workbox-streams": "7.3.0", + "workbox-sw": "7.3.0", + "workbox-window": "7.3.0" }, "engines": { "node": ">=16.0.0" @@ -7131,127 +7308,127 @@ } }, "node_modules/workbox-cacheable-response": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.1.0.tgz", - "integrity": "sha512-iwsLBll8Hvua3xCuBB9h92+/e0wdsmSVgR2ZlvcfjepZWwhd3osumQB3x9o7flj+FehtWM2VHbZn8UJeBXXo6Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.3.0.tgz", + "integrity": "sha512-eAFERIg6J2LuyELhLlmeRcJFa5e16Mj8kL2yCDbhWE+HUun9skRQrGIFVUagqWj4DMaaPSMWfAolM7XZZxNmxA==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-core": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.1.0.tgz", - "integrity": "sha512-5KB4KOY8rtL31nEF7BfvU7FMzKT4B5TkbYa2tzkS+Peqj0gayMT9SytSFtNzlrvMaWgv6y/yvP9C0IbpFjV30Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.3.0.tgz", + "integrity": "sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw==", "dev": true }, "node_modules/workbox-expiration": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.1.0.tgz", - "integrity": "sha512-m5DcMY+A63rJlPTbbBNtpJ20i3enkyOtSgYfv/l8h+D6YbbNiA0zKEkCUaMsdDlxggla1oOfRkyqTvl5Ni5KQQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.3.0.tgz", + "integrity": "sha512-lpnSSLp2BM+K6bgFCWc5bS1LR5pAwDWbcKt1iL87/eTSJRdLdAwGQznZE+1czLgn/X05YChsrEegTNxjM067vQ==", "dev": true, "dependencies": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-google-analytics": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.1.0.tgz", - "integrity": "sha512-FvE53kBQHfVTcZyczeBVRexhh7JTkyQ8HAvbVY6mXd2n2A7Oyz/9fIwnY406ZcDhvE4NFfKGjW56N4gBiqkrew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.3.0.tgz", + "integrity": "sha512-ii/tSfFdhjLHZ2BrYgFNTrb/yk04pw2hasgbM70jpZfLk0vdJAXgaiMAWsoE+wfJDNWoZmBYY0hMVI0v5wWDbg==", "dev": true, "dependencies": { - "workbox-background-sync": "7.1.0", - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "node_modules/workbox-navigation-preload": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.1.0.tgz", - "integrity": "sha512-4wyAbo0vNI/X0uWNJhCMKxnPanNyhybsReMGN9QUpaePLTiDpKxPqFxl4oUmBNddPwIXug01eTSLVIFXimRG/A==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.3.0.tgz", + "integrity": "sha512-fTJzogmFaTv4bShZ6aA7Bfj4Cewaq5rp30qcxl2iYM45YD79rKIhvzNHiFj1P+u5ZZldroqhASXwwoyusnr2cg==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-precaching": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.1.0.tgz", - "integrity": "sha512-LyxzQts+UEpgtmfnolo0hHdNjoB7EoRWcF7EDslt+lQGd0lW4iTvvSe3v5JiIckQSB5KTW5xiCqjFviRKPj1zA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.3.0.tgz", + "integrity": "sha512-ckp/3t0msgXclVAYaNndAGeAoWQUv7Rwc4fdhWL69CCAb2UHo3Cef0KIUctqfQj1p8h6aGyz3w8Cy3Ihq9OmIw==", "dev": true, "dependencies": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "node_modules/workbox-range-requests": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.1.0.tgz", - "integrity": "sha512-m7+O4EHolNs5yb/79CrnwPR/g/PRzMFYEdo01LqwixVnc/sbzNSvKz0d04OE3aMRel1CwAAZQheRsqGDwATgPQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.3.0.tgz", + "integrity": "sha512-EyFmM1KpDzzAouNF3+EWa15yDEenwxoeXu9bgxOEYnFfCxns7eAxA9WSSaVd8kujFFt3eIbShNqa4hLQNFvmVQ==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-recipes": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.1.0.tgz", - "integrity": "sha512-NRrk4ycFN9BHXJB6WrKiRX3W3w75YNrNrzSX9cEZgFB5ubeGoO8s/SDmOYVrFYp9HMw6sh1Pm3eAY/1gVS8YLg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.3.0.tgz", + "integrity": "sha512-BJro/MpuW35I/zjZQBcoxsctgeB+kyb2JAP5EB3EYzePg8wDGoQuUdyYQS+CheTb+GhqJeWmVs3QxLI8EBP1sg==", "dev": true, "dependencies": { - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "node_modules/workbox-routing": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.1.0.tgz", - "integrity": "sha512-oOYk+kLriUY2QyHkIilxUlVcFqwduLJB7oRZIENbqPGeBP/3TWHYNNdmGNhz1dvKuw7aqvJ7CQxn27/jprlTdg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.3.0.tgz", + "integrity": "sha512-ZUlysUVn5ZUzMOmQN3bqu+gK98vNfgX/gSTZ127izJg/pMMy4LryAthnYtjuqcjkN4HEAx1mdgxNiKJMZQM76A==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-strategies": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.1.0.tgz", - "integrity": "sha512-/UracPiGhUNehGjRm/tLUQ+9PtWmCbRufWtV0tNrALuf+HZ4F7cmObSEK+E4/Bx1p8Syx2tM+pkIrvtyetdlew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.3.0.tgz", + "integrity": "sha512-tmZydug+qzDFATwX7QiEL5Hdf7FrkhjaF9db1CbB39sDmEZJg3l9ayDvPxy8Y18C3Y66Nrr9kkN1f/RlkDgllg==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-streams": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.1.0.tgz", - "integrity": "sha512-WyHAVxRXBMfysM8ORwiZnI98wvGWTVAq/lOyBjf00pXFvG0mNaVz4Ji+u+fKa/mf1i2SnTfikoYKto4ihHeS6w==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.3.0.tgz", + "integrity": "sha512-SZnXucyg8x2Y61VGtDjKPO5EgPUG5NDn/v86WYHX+9ZqvAsGOytP0Jxp1bl663YUuMoXSAtsGLL+byHzEuMRpw==", "dev": true, "dependencies": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0" } }, "node_modules/workbox-sw": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.1.0.tgz", - "integrity": "sha512-Hml/9+/njUXBglv3dtZ9WBKHI235AQJyLBV1G7EFmh4/mUdSQuXui80RtjDeVRrXnm/6QWgRUEHG3/YBVbxtsA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.3.0.tgz", + "integrity": "sha512-aCUyoAZU9IZtH05mn0ACUpyHzPs0lMeJimAYkQkBsOWiqaJLgusfDCR+yllkPkFRxWpZKF8vSvgHYeG7LwhlmA==", "dev": true }, "node_modules/workbox-window": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.1.0.tgz", - "integrity": "sha512-ZHeROyqR+AS5UPzholQRDttLFqGMwP0Np8MKWAdyxsDETxq3qOAyXvqessc3GniohG6e0mAqSQyKOHmT8zPF7g==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.3.0.tgz", + "integrity": "sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==", "dev": true, "dependencies": { "@types/trusted-types": "^2.0.2", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/wrap-ansi": { @@ -7259,6 +7436,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -7277,6 +7455,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7294,6 +7473,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -7301,47 +7481,32 @@ "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7356,6 +7521,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -7364,10 +7530,11 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7380,6 +7547,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7392,6 +7560,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -7519,37 +7688,38 @@ } }, "@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "requires": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" } }, "@babel/compat-data": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", - "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "dev": true }, "@babel/core": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz", - "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "requires": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.6", - "@babel/generator": "^7.24.6", - "@babel/helper-compilation-targets": "^7.24.6", - "@babel/helper-module-transforms": "^7.24.6", - "@babel/helpers": "^7.24.6", - "@babel/parser": "^7.24.6", - "@babel/template": "^7.24.6", - "@babel/traverse": "^7.24.6", - "@babel/types": "^7.24.6", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -7563,27 +7733,12 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, "json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -7593,15 +7748,16 @@ } }, "@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "dev": true, "requires": { - "@babel/types": "^7.24.7", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "dependencies": { "@jridgewell/gen-mapping": { @@ -7614,22 +7770,16 @@ "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true } } }, "@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, "requires": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { @@ -7643,14 +7793,14 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", - "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.24.6", - "@babel/helper-validator-option": "^7.24.6", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -7756,21 +7906,6 @@ "semver": "^6.1.2" }, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -7826,26 +7961,24 @@ } }, "@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "requires": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" } }, "@babel/helper-module-transforms": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", - "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-module-imports": "^7.24.6", - "@babel/helper-simple-access": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" } }, "@babel/helper-optimise-call-expression": { @@ -7858,9 +7991,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true }, "@babel/helper-remap-async-to-generator": { @@ -7888,12 +8021,13 @@ } }, "@babel/helper-simple-access": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", - "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", "dev": true, "requires": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -7915,21 +8049,21 @@ } }, "@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true }, "@babel/helper-wrap-function": { @@ -7945,64 +8079,24 @@ } }, "@babel/helpers": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.6.tgz", - "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "requires": { - "@babel/template": "^7.24.6", - "@babel/types": "^7.24.6" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" } }, - "@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "@babel/types": "^7.26.0" } }, - "@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", - "dev": true - }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.17.12", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", @@ -8245,12 +8339,12 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -8566,62 +8660,62 @@ } }, "@babel/plugin-transform-react-display-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", - "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz", - "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", - "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", "dev": true, "requires": { - "@babel/plugin-transform-react-jsx": "^7.24.7" + "@babel/plugin-transform-react-jsx": "^7.25.9" } }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.6.tgz", - "integrity": "sha512-FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.6.tgz", - "integrity": "sha512-BQTBCXmFRreU3oTUXcGKuPOfXAGb1liNY4AvvFKsOBAJ89RKcTsIrSsnMYkj59fNa66OFKnSa4AJZfy5Y4B9WA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-transform-react-pure-annotations": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", - "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-transform-regenerator": { @@ -8824,17 +8918,17 @@ } }, "@babel/preset-react": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", - "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", + "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-transform-react-display-name": "^7.24.7", - "@babel/plugin-transform-react-jsx": "^7.24.7", - "@babel/plugin-transform-react-jsx-development": "^7.24.7", - "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-react-display-name": "^7.25.9", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/plugin-transform-react-jsx-development": "^7.25.9", + "@babel/plugin-transform-react-pure-annotations": "^7.25.9" } }, "@babel/runtime": { @@ -8855,234 +8949,221 @@ } }, "@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "requires": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" } }, "@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true } } }, "@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - } + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" } }, "@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "dev": true, "optional": true }, "@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "dev": true, "optional": true }, "@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "dev": true, "optional": true }, "@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "dev": true, "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "dev": true, "optional": true }, "@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "dev": true, "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "dev": true, "optional": true }, "@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "dev": true, "optional": true }, "@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "dev": true, "optional": true }, "@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "dev": true, "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "dev": true, "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "dev": true, "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "dev": true, "optional": true }, "@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "dev": true, "optional": true }, "@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", "dev": true, "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", "dev": true, "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "dev": true, "optional": true }, "@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "dev": true, "optional": true }, "@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "dev": true, "optional": true }, "@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "dev": true, "optional": true }, "@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "dev": true, "optional": true }, @@ -9101,9 +9182,9 @@ }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true }, "strip-ansi": { @@ -9179,9 +9260,9 @@ } }, "@lit-labs/ssr-dom-shim": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", - "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", + "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==" }, "@lit/reactive-element": { "version": "2.0.4", @@ -9222,21 +9303,43 @@ "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==" }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true - }, "@polymer/polymer": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.1.tgz", - "integrity": "sha512-JlAHuy+1qIC6hL1ojEUfIVD58fzTpJAoCxFwV5yr0mYTXV1H8bz5zy0+rC963Cgr9iNXQ4T9ncSjC2fkF9BQfw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.2.tgz", + "integrity": "sha512-fWwImY/UH4bb2534DVSaX+Azs2yKg8slkMBHOyGeU2kKx7Xmxp6Lee0jP8p6B3d7c1gFUPB2Z976dTUtX81pQA==", "requires": { "@webcomponents/shadycss": "^1.9.1" } }, + "@preact/signals-core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.8.0.tgz", + "integrity": "sha512-OBvUsRZqNmjzCZXWLxkZfhcgT+Fk8DDcT/8vD6a1xhDemodyy87UJRJfASMuSD8FaAIeGgGm85ydXhm7lr4fyA==", + "dev": true + }, + "@preact/signals-react": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@preact/signals-react/-/signals-react-3.0.0.tgz", + "integrity": "sha512-lCG3HIH5NlpQscVKQ5b+hgmRKorra/BcjMdEloMoa+/eLYmve06j3tFetN+nedDSpIHtSb3FFX0y3wUg/Nuxyw==", + "dev": true, + "requires": { + "@preact/signals-core": "^1.7.0", + "use-sync-external-store": "^1.2.0" + } + }, + "@preact/signals-react-transform": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@preact/signals-react-transform/-/signals-react-transform-0.5.1.tgz", + "integrity": "sha512-/w1rgu7i/qDk8dhDj+6AVVVJ+b1W11YkP3vfPPPyrn1tDCPb8orYwETa3JCvYxMtJBHbvIYEjhXvZ8Ab2cWC8g==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@preact/signals-react": "^3.0.0", + "debug": "^4.3.4", + "use-sync-external-store": "^1.2.0" + } + }, "@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -9281,9 +9384,9 @@ } }, "@rollup/plugin-replace": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz", - "integrity": "sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.2.tgz", + "integrity": "sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==", "dev": true, "requires": { "@rollup/pluginutils": "^5.0.1", @@ -9313,14 +9416,14 @@ } }, "@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "dev": true, "requires": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "picomatch": "^4.0.2" }, "dependencies": { "@types/estree": { @@ -9328,97 +9431,138 @@ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", "dev": true + }, + "picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true } } }, "@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz", + "integrity": "sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==", "dev": true, "optional": true }, "@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.0.tgz", + "integrity": "sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==", "dev": true, "optional": true }, "@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz", + "integrity": "sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==", "dev": true, "optional": true }, "@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.0.tgz", + "integrity": "sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-arm64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.0.tgz", + "integrity": "sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-x64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.0.tgz", + "integrity": "sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.0.tgz", + "integrity": "sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.0.tgz", + "integrity": "sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.0.tgz", + "integrity": "sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.0.tgz", + "integrity": "sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.0.tgz", + "integrity": "sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==", "dev": true, "optional": true }, "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.0.tgz", + "integrity": "sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.0.tgz", + "integrity": "sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.0.tgz", + "integrity": "sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.0.tgz", + "integrity": "sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==", "dev": true, "optional": true }, "@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.0.tgz", + "integrity": "sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==", "dev": true, "optional": true }, "@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.0.tgz", + "integrity": "sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==", "dev": true, "optional": true }, "@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.0.tgz", + "integrity": "sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==", "dev": true, "optional": true }, @@ -9504,14 +9648,14 @@ "integrity": "sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==" }, "@vaadin/a11y-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.5.0-alpha3.tgz", - "integrity": "sha512-hJN/e1FbzwkT6b3QEma04UHX0B8q8KlwGmIfnJG19FPb/UynuzSoaZguMljT/YvpiBgBFZT+Fem6WliprwU3wg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.7.0-alpha4.tgz", + "integrity": "sha512-s1sdmb5rX8i6bxCPl6AyzV+6n32ym0u1bMcJwrhYoXm9qK0wnNz0hsTt9r9wNuZRjxpbGmuRd2rpLh6twAbuDA==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", - "@vaadin/component-base": "24.5.0-alpha3", - "lit": "3.1.4" + "@polymer/polymer": "3.5.2", + "@vaadin/component-base": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/common-frontend": { @@ -9523,359 +9667,417 @@ } }, "@vaadin/component-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.5.0-alpha3.tgz", - "integrity": "sha512-3OAScmXraCAihHCJ62ZNEy9LsMpeWh2/KnPN4tsot1piHtMSnH7r4SFKC/4iNjQsuecou5TmDXuMACFcrlbouA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.7.0-alpha4.tgz", + "integrity": "sha512-oAnXewVRiCa43n7NTeQhof6sd1ib9AQ/wZEVeKESx+/To0cSZEWzdq7uClLYnpw6ah5kVXdGQDozEHkc+o+tEQ==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", + "@polymer/polymer": "3.5.2", "@vaadin/vaadin-development-mode-detector": "^2.0.0", "@vaadin/vaadin-usage-statistics": "^2.1.0", - "lit": "3.1.4" + "lit": "3.2.1" } }, "@vaadin/hilla-frontend": { "version": "file:../../../ts/frontend", "requires": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@open-wc/testing": "^3.2.0", - "@types/atmosphere.js": "^2.1.4", - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/js-cookie": "^3.0.4", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", + "@open-wc/testing": "^3.2.2", + "@types/atmosphere.js": "^2.1.6", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/js-cookie": "^3.0.6", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", "@vaadin/common-frontend": "^0.0.19", "atmosphere.js": "^3.1.3", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", "fetch-mock": "^9.11.0", "js-cookie": "^3.0.5", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-cli": { "version": "file:../../../ts/generator-cli", "requires": { - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "chai-as-promised": "^7.1.1", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-as-promised": "^7.1.2", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "get-stdin": "^9.0.0", - "meow": "^12.1.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "meow": "^13.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" } }, "@vaadin/hilla-generator-core": { "version": "file:../../../ts/generator-core", "requires": { "@apidevtools/swagger-parser": "^10.1.0", - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "meow": "^12.1.1", - "mocha": "^10.2.0", + "meow": "^13.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-backbone": { "version": "file:../../../ts/generator-plugin-backbone", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "fast-deep-equal": "^3.1.3", - "mocha": "^10.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-barrel": { "version": "file:../../../ts/generator-plugin-barrel", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-client": { "version": "file:../../../ts/generator-plugin-client", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-model": { "version": "file:../../../ts/generator-plugin-model", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "fast-deep-equal": "^3.1.3", - "mocha": "^10.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-push": { "version": "file:../../../ts/generator-plugin-push", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", + "copyfiles": "^2.4.1", + "fast-deep-equal": "^3.1.3", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "openapi-types": "^12.1.3", + "pino": "^9.5.0", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "type-fest": "^4.30.2", + "typescript": "5.7.2" + } + }, + "@vaadin/hilla-generator-plugin-signals": { + "version": "file:../../../ts/generator-plugin-signals", + "requires": { + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "fast-deep-equal": "^3.1.3", - "mocha": "^10.2.0", + "iterator-helpers-polyfill": "^3.0.1", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-subtypes": { "version": "file:../../../ts/generator-plugin-subtypes", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "fast-deep-equal": "^3.1.3", - "mocha": "^10.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-utils": { "version": "file:../../../ts/generator-utils", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-like": "^1.1.3", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "pino-pretty": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "pino-pretty": "^10.3.1", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-lit-form": { "version": "file:../../../ts/lit-form", "requires": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@types/chai": "^4.3.6", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "chai-dom": "^1.11.0", - "sinon": "^16.0.0", + "@types/chai": "^4.3.20", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "chai": "^5.1.2", + "chai-dom": "^1.12.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2", - "validator": "^13.11.0" + "typescript": "5.7.2", + "validator": "^13.12.0" } }, "@vaadin/icon": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.5.0-alpha3.tgz", - "integrity": "sha512-CUVOeGF+kJ/lE3r/pJuShGTvfQyApFGoephomig4HQ3NJupazAANLnRXAconLAod/RPUWVKhLGqD33SnPKyp7A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.7.0-alpha4.tgz", + "integrity": "sha512-ELyn24AgdCRk9sOWnHbJqb4G8Gj2xr2YuC87dSKCg0E2mpAzxgA0xIObPO2DjWTzhprRy2XWsbkklzJFLKv1ag==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "lit": "3.1.4" + "@polymer/polymer": "3.5.2", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/icons": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.5.0-alpha3.tgz", - "integrity": "sha512-LZjQrwgw34HILPhSXpvabVQiEZzEDeeePFIdkIaxcjqC6bc2JjAecA0rPh2sci6mqCTed7ap9mZPxlitDi/uBQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.7.0-alpha4.tgz", + "integrity": "sha512-b2C00K2zkxg8dOsKSvWjBO/gVfSx96uQilksTZBOI3GXi1+UTqc5DzzYrOOH+Y0XqcqU7ynqqmkRTeyWJSiSSw==", + "requires": { + "@polymer/polymer": "3.5.2", + "@vaadin/icon": "24.7.0-alpha4" + } + }, + "@vaadin/lit-renderer": { + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.7.0-alpha4.tgz", + "integrity": "sha512-jsgSnG3RoG0XX9k02cA0lqYw4KctzkW+hzq8+rAE1zLIJs4CQpe0jUzu1cGVy1bgJlPguvYVbQAitPc3+hFn/w==", "requires": { - "@polymer/polymer": "3.5.1", - "@vaadin/icon": "24.5.0-alpha3" + "lit": "3.2.1" } }, "@vaadin/overlay": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.5.0-alpha3.tgz", - "integrity": "sha512-zH72InlWhwkBqdUMoIbHPXUajHapTVTwebZgddqE9FjBxRyfSF2062jrHcX6dFR4tNlspbem6z/EeWk4BWxBQw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.7.0-alpha4.tgz", + "integrity": "sha512-z2eHVojBg7o0vQWRhLPy2jfhuhTWrjnvOdw3FmkUnw8jy11Qqf/Pz0hMvy7cWE2d6ThLMjAnTzjlnRX/8y7U0w==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "lit": "3.1.4" + "@polymer/polymer": "3.5.2", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/polymer-legacy-adapter": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.5.0-alpha3.tgz", - "integrity": "sha512-W9yXABgFVqyIvMaHXewyqn4Tg3HiVEhDYbW8it9YZVnu9ej5msYXzyowZf/Lt4RQM9ogp9hx+deXR9W+297ivg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.7.0-alpha4.tgz", + "integrity": "sha512-+CvDzDA1a+9f877179k5ilVLq40e8HUSzvzGgiZDyrW1txmSRRdbQq5rX/qjHDjBXORqLLJGbkDRQmS2Y455yg==", "requires": { - "@polymer/polymer": "3.5.1", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "lit": "3.1.4" + "@polymer/polymer": "3.5.2", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/popover": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.5.0-alpha3.tgz", - "integrity": "sha512-niIKAipighHRoxcdteoptEu+JjyXT5TQhXagypI0hp0Sme7ZwQBnxlh+JdfKN/OV6hGrMt411wZntnc7bnVl7Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.7.0-alpha4.tgz", + "integrity": "sha512-KwhcnwrJoKjkVeScRF5RvBjBO8pS68Sgxd801qUj+X6bSBgtAAxMTS+yyQDUTVbAFmyr/pl2p8xE2mX5Hdi0ZQ==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "lit": "3.1.4" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/router": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-1.7.5.tgz", - "integrity": "sha512-uRN3vd1ihgd596bF/NMZqpgxau0nlvIc0/JDd1EwStFNbZID/xIVse5LXdQhIyUKLmSl4T0GeCQK505xerWX0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-2.0.0.tgz", + "integrity": "sha512-IjOlzuUsrVhfBId+ypcdDLM3+GZHo64DUlkr8IjFe04A4kMvt0zVFIpPH03X52/tMiwyYOF0Sw6p53DXkWiZcA==", "requires": { - "@vaadin/vaadin-usage-statistics": "^2.1.0", - "path-to-regexp": "2.4.0" + "@vaadin/vaadin-usage-statistics": "^2.1.2", + "path-to-regexp": "^6.3.0", + "type-fest": "^4.26.1" + }, + "dependencies": { + "type-fest": { + "version": "4.26.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", + "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==" + } } }, "@vaadin/tooltip": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.5.0-alpha3.tgz", - "integrity": "sha512-q5K9g3dCp/P8ED1/twharFiSGk1Zf09mApNdxyFl/wYduLxVnDG2h0WfE4rEl9Ix6h8N5NVmJ6Vl48UAZ5vgYQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.7.0-alpha4.tgz", + "integrity": "sha512-6Eb8kaZTpPCF6fptSAXlpYHO5HBDQiTMCbDtLX4cA0ov0rpaJ9YljVaZYYHyVF5lDDPhEfTGUq+f9MhMmIpW0w==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/popover": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@polymer/polymer": "3.5.2", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/popover": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/vaadin-development-mode-detector": { @@ -9884,33 +10086,33 @@ "integrity": "sha512-miirBQw10UHjKwRv29iZniXCo41cLg3wFotoyTeUZ2PTGIDk/fZVFr4Q4WVKZrp3D15878vz94nNQROSmPLjdg==" }, "@vaadin/vaadin-lumo-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-9zswr9ZNP6L7+VLCpD8yKKrlRzEC5gKJtfSRVhXqZwJ7x5Na1LVpJDzhDoKlqEcyPCsL/mcRllYAkT20hj0+8Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-L+rF8XYF+7hisu48wZK8MDjbwVMTmEteZsoTk1uyY6oCXyJEvBup1WwN2I0fFRlvSHMKnHNWDOuHmIfevK0uKQ==", "requires": { - "@polymer/polymer": "3.5.1", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@polymer/polymer": "3.5.2", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "@vaadin/vaadin-material-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-6CYxTPmT0ZU64H3wwzeDOrVF87wyU8CtLWLXNhXNkB+DSO44pCLML5kg1LwRRqnixY95x26LY+iSSITUSD8Pmw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-8fcm8oLtaI3BHewsP2d07YcIHw3GgFfFp83IHIoTG7MlaeJvAqvs2aPMcszLJ4s3WCLZnvsSkdwbgjdE0oYbhw==", "requires": { - "@polymer/polymer": "3.5.1", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@polymer/polymer": "3.5.2", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "@vaadin/vaadin-themable-mixin": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.5.0-alpha3.tgz", - "integrity": "sha512-gm/Adnsms4nUYONQPBDK91bPE7lfHFb27dBo31io7QAm5Cr+lBTd2U/Ce8eyK5+MialbabyZ2YQCgF3l2l8xWg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.7.0-alpha4.tgz", + "integrity": "sha512-x8Shc4t2WTV/2UtsXY8+n6KDYMvVaq0ZfNdldNkthfZjVfpCgioyZAtB6hZbEirvY6a5RRSQKcr12k2lrKDbTQ==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "lit": "3.1.4" + "lit": "3.2.1" } }, "@vaadin/vaadin-usage-statistics": { @@ -9922,14 +10124,14 @@ } }, "@vitejs/plugin-react": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", - "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", "dev": true, "requires": { - "@babel/core": "^7.24.5", - "@babel/plugin-transform-react-jsx-self": "^7.24.5", - "@babel/plugin-transform-react-jsx-source": "^7.24.1", + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", "@types/babel__core": "^7.20.5", "react-refresh": "^0.14.2" } @@ -10002,9 +10204,9 @@ } }, "async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "dev": true }, "at-least-node": { @@ -10098,15 +10300,15 @@ "dev": true }, "browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" } }, "buffer-from": { @@ -10132,9 +10334,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001572", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz", - "integrity": "sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==", + "version": "1.0.30001667", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", + "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", "dev": true }, "chalk": { @@ -10192,21 +10394,6 @@ "color-convert": "^2.0.1" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -10247,18 +10434,18 @@ } }, "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "common-tags": { @@ -10328,6 +10515,15 @@ "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", "dev": true }, + "debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, "deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -10366,9 +10562,9 @@ } }, "electron-to-chromium": { - "version": "1.4.616", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz", - "integrity": "sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==", + "version": "1.5.33", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.33.tgz", + "integrity": "sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==", "dev": true }, "emoji-regex": { @@ -10420,40 +10616,42 @@ } }, "esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "requires": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true }, "escape-string-regexp": { @@ -10657,16 +10855,17 @@ } }, "glob": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dev": true, "requires": { "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", "minipass": "^7.1.2", - "path-scurry": "^1.11.1" + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "dependencies": { "brace-expansion": { @@ -10679,9 +10878,9 @@ } }, "minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -10728,12 +10927,6 @@ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, "has-property-descriptors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", @@ -10986,13 +11179,12 @@ "dev": true }, "jackspeak": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", - "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", "dev": true, "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" + "@isaacs/cliui": "^8.0.2" } }, "jake": { @@ -11026,21 +11218,6 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -11064,6 +11241,12 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, + "jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true + }, "json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", @@ -11099,29 +11282,29 @@ "dev": true }, "lit": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.4.tgz", - "integrity": "sha512-q6qKnKXHy2g1kjBaNfcoLlgbI3+aSOZ9Q4tiGa9bGYXq5RBXxkVTqTIVmP2VWMp29L4GyvCFm8ZQ2o56eUAMyA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz", + "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==", "requires": { "@lit/reactive-element": "^2.0.4", - "lit-element": "^4.0.4", - "lit-html": "^3.1.2" + "lit-element": "^4.1.0", + "lit-html": "^3.2.0" } }, "lit-element": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", - "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz", + "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==", "requires": { "@lit-labs/ssr-dom-shim": "^1.2.0", "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.1.2" + "lit-html": "^3.2.0" } }, "lit-html": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", - "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz", + "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==", "requires": { "@types/trusted-types": "^2.0.2" } @@ -11192,6 +11375,12 @@ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "mutexify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz", @@ -11214,15 +11403,15 @@ } }, "nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true }, "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, "normalize-path": { @@ -11284,6 +11473,12 @@ "is-wsl": "^2.2.0" } }, + "package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -11303,32 +11498,32 @@ "dev": true }, "path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, "requires": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "dependencies": { "lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", "dev": true } } }, "path-to-regexp": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.4.0.tgz", - "integrity": "sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==" }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, "picomatch": { @@ -11338,14 +11533,14 @@ "dev": true }, "postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, "requires": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" } }, "pretty-bytes": { @@ -11387,6 +11582,13 @@ "safe-buffer": "^5.1.0" } }, + "react": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "dev": true, + "peer": true + }, "react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", @@ -11473,17 +11675,23 @@ "dev": true }, "rollup-plugin-visualizer": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz", - "integrity": "sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==", + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.13.1.tgz", + "integrity": "sha512-vMg8i6BprL8aFm9DKvL2c8AwS8324EgymYQo9o6E26wgVvwMhsJxS37aNL6ZsU7X9iAcMYwdME7gItLfG5fwJg==", "dev": true, "requires": { "open": "^8.4.0", - "picomatch": "^2.3.1", + "picomatch": "^4.0.2", "source-map": "^0.7.4", "yargs": "^17.5.1" }, "dependencies": { + "picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true + }, "source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -11570,9 +11778,9 @@ "dev": true }, "source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true }, "sourcemap-codec": { @@ -11593,9 +11801,9 @@ }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true }, "strip-ansi": { @@ -11883,9 +12091,9 @@ "dev": true }, "typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true }, "unbox-primitive": { @@ -11958,13 +12166,13 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" } }, "uri-js": { @@ -11976,53 +12184,65 @@ "punycode": "^2.1.0" } }, + "use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "dev": true, + "requires": {} + }, "vite": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", - "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.6.tgz", + "integrity": "sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==", "dev": true, "requires": { - "esbuild": "^0.21.3", + "esbuild": "^0.24.2", "fsevents": "~2.3.3", - "postcss": "^8.4.38", - "rollup": "^4.13.0" + "postcss": "^8.4.49", + "rollup": "^4.23.0" }, "dependencies": { "@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, "rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.0.tgz", + "integrity": "sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==", "dev": true, "requires": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", - "@types/estree": "1.0.5", + "@rollup/rollup-android-arm-eabi": "4.28.0", + "@rollup/rollup-android-arm64": "4.28.0", + "@rollup/rollup-darwin-arm64": "4.28.0", + "@rollup/rollup-darwin-x64": "4.28.0", + "@rollup/rollup-freebsd-arm64": "4.28.0", + "@rollup/rollup-freebsd-x64": "4.28.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.28.0", + "@rollup/rollup-linux-arm-musleabihf": "4.28.0", + "@rollup/rollup-linux-arm64-gnu": "4.28.0", + "@rollup/rollup-linux-arm64-musl": "4.28.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.28.0", + "@rollup/rollup-linux-riscv64-gnu": "4.28.0", + "@rollup/rollup-linux-s390x-gnu": "4.28.0", + "@rollup/rollup-linux-x64-gnu": "4.28.0", + "@rollup/rollup-linux-x64-musl": "4.28.0", + "@rollup/rollup-win32-arm64-msvc": "4.28.0", + "@rollup/rollup-win32-ia32-msvc": "4.28.0", + "@rollup/rollup-win32-x64-msvc": "4.28.0", + "@types/estree": "1.0.6", "fsevents": "~2.3.2" } } } }, "vite-plugin-checker": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.6.4.tgz", - "integrity": "sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.8.0.tgz", + "integrity": "sha512-UA5uzOGm97UvZRTdZHiQVYFnd86AVn8EVaD4L3PoVzxH+IZSfaAw14WGFwX9QS23UW3lV/5bVKZn6l0w+q9P0g==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", @@ -12033,7 +12253,6 @@ "fast-glob": "^3.2.7", "fs-extra": "^11.1.0", "npm-run-path": "^4.0.1", - "semver": "^7.5.0", "strip-ansi": "^6.0.0", "tiny-invariant": "^1.1.0", "vscode-languageclient": "^7.0.0", @@ -12067,21 +12286,6 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", @@ -12219,28 +12423,28 @@ } }, "workbox-background-sync": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.1.0.tgz", - "integrity": "sha512-rMbgrzueVWDFcEq1610YyDW71z0oAXLfdRHRQcKw4SGihkfOK0JUEvqWHFwA6rJ+6TClnMIn7KQI5PNN1XQXwQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.3.0.tgz", + "integrity": "sha512-PCSk3eK7Mxeuyatb22pcSx9dlgWNv3+M8PqPaYDokks8Y5/FX4soaOqj3yhAZr5k6Q5JWTOMYgaJBpbw11G9Eg==", "dev": true, "requires": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-broadcast-update": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.1.0.tgz", - "integrity": "sha512-O36hIfhjej/c5ar95pO67k1GQw0/bw5tKP7CERNgK+JdxBANQhDmIuOXZTNvwb2IHBx9hj2kxvcDyRIh5nzOgQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.3.0.tgz", + "integrity": "sha512-T9/F5VEdJVhwmrIAE+E/kq5at2OY6+OXXgOWQevnubal6sO92Gjo24v6dCVwQiclAF5NS3hlmsifRrpQzZCdUA==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-build": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.1.1.tgz", - "integrity": "sha512-WdkVdC70VMpf5NBCtNbiwdSZeKVuhTEd5PV3mAwpTQCGAB5XbOny1P9egEgNdetv4srAMmMKjvBk4RD58LpooA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.3.0.tgz", + "integrity": "sha512-JGL6vZTPlxnlqZRhR/K/msqg3wKP+m0wfEUVosK7gsYzSgeIxvZLi1ViJJzVL7CEeI8r7rGFV973RiEqkP3lWQ==", "dev": true, "requires": { "@apideck/better-ajv-errors": "^0.3.1", @@ -12265,21 +12469,21 @@ "strip-comments": "^2.0.1", "tempy": "^0.6.0", "upath": "^1.2.0", - "workbox-background-sync": "7.1.0", - "workbox-broadcast-update": "7.1.0", - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-google-analytics": "7.1.0", - "workbox-navigation-preload": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-range-requests": "7.1.0", - "workbox-recipes": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0", - "workbox-streams": "7.1.0", - "workbox-sw": "7.1.0", - "workbox-window": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-broadcast-update": "7.3.0", + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-google-analytics": "7.3.0", + "workbox-navigation-preload": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-range-requests": "7.3.0", + "workbox-recipes": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0", + "workbox-streams": "7.3.0", + "workbox-sw": "7.3.0", + "workbox-window": "7.3.0" }, "dependencies": { "@apideck/better-ajv-errors": { @@ -12364,127 +12568,127 @@ } }, "workbox-cacheable-response": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.1.0.tgz", - "integrity": "sha512-iwsLBll8Hvua3xCuBB9h92+/e0wdsmSVgR2ZlvcfjepZWwhd3osumQB3x9o7flj+FehtWM2VHbZn8UJeBXXo6Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.3.0.tgz", + "integrity": "sha512-eAFERIg6J2LuyELhLlmeRcJFa5e16Mj8kL2yCDbhWE+HUun9skRQrGIFVUagqWj4DMaaPSMWfAolM7XZZxNmxA==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-core": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.1.0.tgz", - "integrity": "sha512-5KB4KOY8rtL31nEF7BfvU7FMzKT4B5TkbYa2tzkS+Peqj0gayMT9SytSFtNzlrvMaWgv6y/yvP9C0IbpFjV30Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.3.0.tgz", + "integrity": "sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw==", "dev": true }, "workbox-expiration": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.1.0.tgz", - "integrity": "sha512-m5DcMY+A63rJlPTbbBNtpJ20i3enkyOtSgYfv/l8h+D6YbbNiA0zKEkCUaMsdDlxggla1oOfRkyqTvl5Ni5KQQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.3.0.tgz", + "integrity": "sha512-lpnSSLp2BM+K6bgFCWc5bS1LR5pAwDWbcKt1iL87/eTSJRdLdAwGQznZE+1czLgn/X05YChsrEegTNxjM067vQ==", "dev": true, "requires": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-google-analytics": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.1.0.tgz", - "integrity": "sha512-FvE53kBQHfVTcZyczeBVRexhh7JTkyQ8HAvbVY6mXd2n2A7Oyz/9fIwnY406ZcDhvE4NFfKGjW56N4gBiqkrew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.3.0.tgz", + "integrity": "sha512-ii/tSfFdhjLHZ2BrYgFNTrb/yk04pw2hasgbM70jpZfLk0vdJAXgaiMAWsoE+wfJDNWoZmBYY0hMVI0v5wWDbg==", "dev": true, "requires": { - "workbox-background-sync": "7.1.0", - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "workbox-navigation-preload": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.1.0.tgz", - "integrity": "sha512-4wyAbo0vNI/X0uWNJhCMKxnPanNyhybsReMGN9QUpaePLTiDpKxPqFxl4oUmBNddPwIXug01eTSLVIFXimRG/A==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.3.0.tgz", + "integrity": "sha512-fTJzogmFaTv4bShZ6aA7Bfj4Cewaq5rp30qcxl2iYM45YD79rKIhvzNHiFj1P+u5ZZldroqhASXwwoyusnr2cg==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-precaching": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.1.0.tgz", - "integrity": "sha512-LyxzQts+UEpgtmfnolo0hHdNjoB7EoRWcF7EDslt+lQGd0lW4iTvvSe3v5JiIckQSB5KTW5xiCqjFviRKPj1zA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.3.0.tgz", + "integrity": "sha512-ckp/3t0msgXclVAYaNndAGeAoWQUv7Rwc4fdhWL69CCAb2UHo3Cef0KIUctqfQj1p8h6aGyz3w8Cy3Ihq9OmIw==", "dev": true, "requires": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "workbox-range-requests": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.1.0.tgz", - "integrity": "sha512-m7+O4EHolNs5yb/79CrnwPR/g/PRzMFYEdo01LqwixVnc/sbzNSvKz0d04OE3aMRel1CwAAZQheRsqGDwATgPQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.3.0.tgz", + "integrity": "sha512-EyFmM1KpDzzAouNF3+EWa15yDEenwxoeXu9bgxOEYnFfCxns7eAxA9WSSaVd8kujFFt3eIbShNqa4hLQNFvmVQ==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-recipes": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.1.0.tgz", - "integrity": "sha512-NRrk4ycFN9BHXJB6WrKiRX3W3w75YNrNrzSX9cEZgFB5ubeGoO8s/SDmOYVrFYp9HMw6sh1Pm3eAY/1gVS8YLg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.3.0.tgz", + "integrity": "sha512-BJro/MpuW35I/zjZQBcoxsctgeB+kyb2JAP5EB3EYzePg8wDGoQuUdyYQS+CheTb+GhqJeWmVs3QxLI8EBP1sg==", "dev": true, "requires": { - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "workbox-routing": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.1.0.tgz", - "integrity": "sha512-oOYk+kLriUY2QyHkIilxUlVcFqwduLJB7oRZIENbqPGeBP/3TWHYNNdmGNhz1dvKuw7aqvJ7CQxn27/jprlTdg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.3.0.tgz", + "integrity": "sha512-ZUlysUVn5ZUzMOmQN3bqu+gK98vNfgX/gSTZ127izJg/pMMy4LryAthnYtjuqcjkN4HEAx1mdgxNiKJMZQM76A==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-strategies": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.1.0.tgz", - "integrity": "sha512-/UracPiGhUNehGjRm/tLUQ+9PtWmCbRufWtV0tNrALuf+HZ4F7cmObSEK+E4/Bx1p8Syx2tM+pkIrvtyetdlew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.3.0.tgz", + "integrity": "sha512-tmZydug+qzDFATwX7QiEL5Hdf7FrkhjaF9db1CbB39sDmEZJg3l9ayDvPxy8Y18C3Y66Nrr9kkN1f/RlkDgllg==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-streams": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.1.0.tgz", - "integrity": "sha512-WyHAVxRXBMfysM8ORwiZnI98wvGWTVAq/lOyBjf00pXFvG0mNaVz4Ji+u+fKa/mf1i2SnTfikoYKto4ihHeS6w==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.3.0.tgz", + "integrity": "sha512-SZnXucyg8x2Y61VGtDjKPO5EgPUG5NDn/v86WYHX+9ZqvAsGOytP0Jxp1bl663YUuMoXSAtsGLL+byHzEuMRpw==", "dev": true, "requires": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0" } }, "workbox-sw": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.1.0.tgz", - "integrity": "sha512-Hml/9+/njUXBglv3dtZ9WBKHI235AQJyLBV1G7EFmh4/mUdSQuXui80RtjDeVRrXnm/6QWgRUEHG3/YBVbxtsA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.3.0.tgz", + "integrity": "sha512-aCUyoAZU9IZtH05mn0ACUpyHzPs0lMeJimAYkQkBsOWiqaJLgusfDCR+yllkPkFRxWpZKF8vSvgHYeG7LwhlmA==", "dev": true }, "workbox-window": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.1.0.tgz", - "integrity": "sha512-ZHeROyqR+AS5UPzholQRDttLFqGMwP0Np8MKWAdyxsDETxq3qOAyXvqessc3GniohG6e0mAqSQyKOHmT8zPF7g==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.3.0.tgz", + "integrity": "sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==", "dev": true, "requires": { "@types/trusted-types": "^2.0.2", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "wrap-ansi": { @@ -12499,9 +12703,9 @@ }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true }, "ansi-styles": { @@ -12547,21 +12751,6 @@ "color-convert": "^2.0.1" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", diff --git a/packages/java/tests/csrf/package.json b/packages/java/tests/csrf/package.json index c24cdda599..d0b6feec3f 100644 --- a/packages/java/tests/csrf/package.json +++ b/packages/java/tests/csrf/package.json @@ -1,26 +1,27 @@ { - "name": "no-name", + "private": true, "license": "UNLICENSED", "type": "module", "dependencies": { - "@polymer/polymer": "3.5.1", + "@polymer/polymer": "3.5.2", "@vaadin/common-frontend": "0.0.19", "@vaadin/hilla-frontend": "file:../../../ts/frontend", "@vaadin/hilla-lit-form": "file:../../../ts/lit-form", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/icons": "24.5.0-alpha3", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/router": "1.7.5", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/icons": "24.7.0-alpha4", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/router": "2.0.0", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "construct-style-sheets-polyfill": "3.1.0", - "lit": "3.1.4" + "lit": "3.2.1" }, "devDependencies": { - "@babel/preset-react": "7.24.7", - "@rollup/plugin-replace": "5.0.7", - "@rollup/pluginutils": "5.1.0", + "@babel/preset-react": "7.26.3", + "@preact/signals-react-transform": "0.5.1", + "@rollup/plugin-replace": "6.0.2", + "@rollup/pluginutils": "5.1.4", "@vaadin/hilla-generator-cli": "file:../../../ts/generator-cli", "@vaadin/hilla-generator-core": "file:../../../ts/generator-core", "@vaadin/hilla-generator-plugin-backbone": "file:../../../ts/generator-plugin-backbone", @@ -28,66 +29,69 @@ "@vaadin/hilla-generator-plugin-client": "file:../../../ts/generator-plugin-client", "@vaadin/hilla-generator-plugin-model": "file:../../../ts/generator-plugin-model", "@vaadin/hilla-generator-plugin-push": "file:../../../ts/generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "file:../../../ts/generator-plugin-signals", "@vaadin/hilla-generator-plugin-subtypes": "file:../../../ts/generator-plugin-subtypes", "@vaadin/hilla-generator-utils": "file:../../../ts/generator-utils", - "@vitejs/plugin-react": "4.3.1", - "async": "3.2.5", - "glob": "10.4.1", + "@vitejs/plugin-react": "4.3.4", + "async": "3.2.6", + "glob": "11.0.0", "rollup-plugin-brotli": "3.1.0", - "rollup-plugin-visualizer": "5.12.0", + "rollup-plugin-visualizer": "5.13.1", "strip-css-comments": "5.0.0", "transform-ast": "2.4.4", - "typescript": "5.4.5", - "vite": "5.3.1", - "vite-plugin-checker": "0.6.4", - "workbox-build": "7.1.1", - "workbox-core": "7.1.0", - "workbox-precaching": "7.1.0" + "typescript": "5.7.3", + "vite": "6.0.6", + "vite-plugin-checker": "0.8.0", + "workbox-build": "7.3.0", + "workbox-core": "7.3.0", + "workbox-precaching": "7.3.0" }, "vaadin": { "dependencies": { - "@polymer/polymer": "3.5.1", + "@polymer/polymer": "3.5.2", "@vaadin/common-frontend": "0.0.19", - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "@vaadin/hilla-lit-form": "24.5.0-alpha2", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/icons": "24.5.0-alpha3", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/router": "1.7.5", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/icons": "24.7.0-alpha4", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/router": "2.0.0", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "construct-style-sheets-polyfill": "3.1.0", - "lit": "3.1.4" + "lit": "3.2.1" }, "devDependencies": { - "@babel/preset-react": "7.24.7", - "@rollup/plugin-replace": "5.0.7", - "@rollup/pluginutils": "5.1.0", - "@vaadin/hilla-generator-cli": "24.5.0-alpha2", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-barrel": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-push": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-subtypes": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "@vitejs/plugin-react": "4.3.1", - "async": "3.2.5", - "glob": "10.4.1", + "@babel/preset-react": "7.26.3", + "@preact/signals-react-transform": "0.5.1", + "@rollup/plugin-replace": "6.0.2", + "@rollup/pluginutils": "5.1.4", + "@vaadin/hilla-generator-cli": "24.7.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-barrel": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-push": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-signals": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-subtypes": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vitejs/plugin-react": "4.3.4", + "async": "3.2.6", + "glob": "11.0.0", "rollup-plugin-brotli": "3.1.0", - "rollup-plugin-visualizer": "5.12.0", + "rollup-plugin-visualizer": "5.13.1", "strip-css-comments": "5.0.0", "transform-ast": "2.4.4", - "typescript": "5.4.5", - "vite": "5.3.1", - "vite-plugin-checker": "0.6.4", - "workbox-build": "7.1.1", - "workbox-core": "7.1.0", - "workbox-precaching": "7.1.0" + "typescript": "5.7.3", + "vite": "6.0.6", + "vite-plugin-checker": "0.8.0", + "workbox-build": "7.3.0", + "workbox-core": "7.3.0", + "workbox-precaching": "7.3.0" }, - "hash": "36fff5033d1fb0e976c6e4724a8dba7630893252b1d1ca7385732cc67570d5e9" + "hash": "f3dc0a3997aea0ffd83cedeabf6bd8a4535a6e2d19c510e9424209769bba1126" }, "overrides": { "@vaadin/common-frontend": "$@vaadin/common-frontend", @@ -103,6 +107,7 @@ "@vaadin/hilla-generator-plugin-client": "$@vaadin/hilla-generator-plugin-client", "@vaadin/hilla-generator-plugin-model": "$@vaadin/hilla-generator-plugin-model", "@vaadin/hilla-generator-plugin-push": "$@vaadin/hilla-generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "$@vaadin/hilla-generator-plugin-signals", "@vaadin/hilla-generator-utils": "$@vaadin/hilla-generator-utils", "@vaadin/hilla-lit-form": "$@vaadin/hilla-lit-form", "@vaadin/icon": "$@vaadin/icon", diff --git a/packages/java/tests/csrf/pom.xml b/packages/java/tests/csrf/pom.xml index 094764532b..090acef9c6 100644 --- a/packages/java/tests/csrf/pom.xml +++ b/packages/java/tests/csrf/pom.xml @@ -6,7 +6,7 @@ com.vaadin tests - 24.5-SNAPSHOT + 24.7-SNAPSHOT tests-csrf diff --git a/packages/java/tests/gradle/single-module-tests/build.gradle b/packages/java/tests/gradle/single-module-tests/build.gradle index 4cfa4190cc..a44aa41846 100644 --- a/packages/java/tests/gradle/single-module-tests/build.gradle +++ b/packages/java/tests/gradle/single-module-tests/build.gradle @@ -1,15 +1,11 @@ plugins { - id 'org.springframework.boot' version '3.0.2' + id 'org.springframework.boot' version '3.3.6' id 'io.spring.dependency-management' version '1.0.15.RELEASE' id 'java' } apply plugin: 'com.vaadin.hilla' -hilla { - exposedPackagesToParser = ["com.vaadin.hilla.gradle.plugin.test"] -} - repositories { mavenLocal() mavenCentral() diff --git a/packages/java/tests/gradle/single-module-tests/frontend/App.tsx b/packages/java/tests/gradle/single-module-tests/frontend/App.tsx index 6b7546d1ed..b84dcf6ea7 100644 --- a/packages/java/tests/gradle/single-module-tests/frontend/App.tsx +++ b/packages/java/tests/gradle/single-module-tests/frontend/App.tsx @@ -1,5 +1,5 @@ import router from 'Frontend/routes.js'; -import { RouterProvider } from 'react-router-dom'; +import { RouterProvider } from 'react-router'; export default function App() { return ; diff --git a/packages/java/tests/gradle/single-module-tests/frontend/_views/MainLayout.tsx b/packages/java/tests/gradle/single-module-tests/frontend/_views/MainLayout.tsx index 9c7629fcf6..3b5fa36c6a 100644 --- a/packages/java/tests/gradle/single-module-tests/frontend/_views/MainLayout.tsx +++ b/packages/java/tests/gradle/single-module-tests/frontend/_views/MainLayout.tsx @@ -5,7 +5,7 @@ import { Scroller } from '@vaadin/react-components/Scroller.js'; import Placeholder from 'Frontend/components/placeholder/Placeholder.js'; import { MenuProps, routes, useViewMatches, ViewRouteObject } from 'Frontend/routes.js'; import { Suspense } from 'react'; -import { NavLink, Outlet } from 'react-router-dom'; +import { NavLink, Outlet } from 'react-router'; import css from './MainLayout.module.css'; type MenuRoute = ViewRouteObject & diff --git a/packages/java/tests/gradle/single-module-tests/frontend/routes.tsx b/packages/java/tests/gradle/single-module-tests/frontend/routes.tsx index 502d533321..7714b5e819 100644 --- a/packages/java/tests/gradle/single-module-tests/frontend/routes.tsx +++ b/packages/java/tests/gradle/single-module-tests/frontend/routes.tsx @@ -1,7 +1,7 @@ import HelloReactView from './_views/helloreact/HelloReactView.js'; import MainLayout from './_views/MainLayout.js'; import { lazy } from 'react'; -import { createBrowserRouter, IndexRouteObject, NonIndexRouteObject, useMatches } from 'react-router-dom'; +import { createBrowserRouter, IndexRouteObject, NonIndexRouteObject, useMatches } from 'react-router'; const AboutView = lazy(async () => import('./_views/about/AboutView.js')); export type MenuProps = Readonly<{ diff --git a/packages/java/tests/gradle/single-module-tests/gradle.properties b/packages/java/tests/gradle/single-module-tests/gradle.properties index 770672b0f5..4f1e2a7801 100644 --- a/packages/java/tests/gradle/single-module-tests/gradle.properties +++ b/packages/java/tests/gradle/single-module-tests/gradle.properties @@ -1,4 +1,4 @@ org.gradle.daemon=false -hillaVersion=24.5-SNAPSHOT -flowVersion=24.5-SNAPSHOT -vaadinComponentsVersion=24.4-SNAPSHOT +hillaVersion=24.7-SNAPSHOT +flowVersion=24.7-SNAPSHOT +vaadinComponentsVersion=24.7-SNAPSHOT diff --git a/packages/java/tests/gradle/single-module-tests/gradle/wrapper/gradle-wrapper.jar b/packages/java/tests/gradle/single-module-tests/gradle/wrapper/gradle-wrapper.jar index 41d9927a4d..e6441136f3 100644 Binary files a/packages/java/tests/gradle/single-module-tests/gradle/wrapper/gradle-wrapper.jar and b/packages/java/tests/gradle/single-module-tests/gradle/wrapper/gradle-wrapper.jar differ diff --git a/packages/java/tests/gradle/single-module-tests/gradle/wrapper/gradle-wrapper.properties b/packages/java/tests/gradle/single-module-tests/gradle/wrapper/gradle-wrapper.properties index a595206642..b82aa23a4f 100644 --- a/packages/java/tests/gradle/single-module-tests/gradle/wrapper/gradle-wrapper.properties +++ b/packages/java/tests/gradle/single-module-tests/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/packages/java/tests/gradle/single-module-tests/gradlew b/packages/java/tests/gradle/single-module-tests/gradlew index 1b6c787337..1aa94a4269 100755 --- a/packages/java/tests/gradle/single-module-tests/gradlew +++ b/packages/java/tests/gradle/single-module-tests/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -80,13 +80,11 @@ do esac done -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" +# This is normally unused +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -133,22 +131,29 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac case $MAX_FD in #( '' | soft) :;; #( *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -193,11 +198,15 @@ if "$cygwin" || "$msys" ; then done fi -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ @@ -205,6 +214,12 @@ set -- \ org.gradle.wrapper.GradleWrapperMain \ "$@" +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + # Use "xargs" to parse quoted args. # # With -n1 it outputs one arg per line, with the quotes and backslashes removed. diff --git a/packages/java/tests/gradle/single-module-tests/gradlew.bat b/packages/java/tests/gradle/single-module-tests/gradlew.bat index 107acd32c4..25da30dbde 100644 --- a/packages/java/tests/gradle/single-module-tests/gradlew.bat +++ b/packages/java/tests/gradle/single-module-tests/gradlew.bat @@ -14,7 +14,7 @@ @rem limitations under the License. @rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,7 +25,8 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -40,13 +41,13 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute +if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -56,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -75,13 +76,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/packages/java/tests/gradle/single-module-tests/package-lock.json b/packages/java/tests/gradle/single-module-tests/package-lock.json index 20a8a0efc8..1a7c4a5403 100644 --- a/packages/java/tests/gradle/single-module-tests/package-lock.json +++ b/packages/java/tests/gradle/single-module-tests/package-lock.json @@ -11,7 +11,7 @@ "@types/react": "18.2.50", "@types/react-dom": "18.2.18", "@vaadin-component-factory/vcf-nav": "1.1.0", - "@vaadin/bundles": "24.4.0-alpha14", + "@vaadin/bundles": "24.6.0-rc1", "@vaadin/common-frontend": "0.0.19", "@vaadin/hilla-frontend": "file:../../../../ts/frontend", "@vaadin/hilla-lit-form": "file:../../../../ts/lit-form", @@ -19,7 +19,7 @@ "@vaadin/hilla-react-crud": "file:../../../../ts/react-crud", "@vaadin/hilla-react-form": "file:../../../../ts/react-form", "@vaadin/hilla-react-signals": "file:../../../../ts/react-signals", - "@vaadin/react-components": "24.4.0-alpha14", + "@vaadin/react-components": "24.6.0-rc1", "@vaadin/router": "1.7.5", "classnames": "^2.3.2", "construct-style-sheets-polyfill": "3.1.0", @@ -62,7 +62,7 @@ }, "../../../../ts/frontend": { "name": "@vaadin/hilla-frontend", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache-2.0", "dependencies": { "@vaadin/common-frontend": "^0.0.19", @@ -93,11 +93,11 @@ }, "../../../../ts/generator-cli": { "name": "@vaadin/hilla-generator-cli", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "get-stdin": "^9.0.0", "meow": "^12.1.1" }, @@ -111,7 +111,7 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "chai-as-promised": "^7.1.1", @@ -128,17 +128,17 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha5" + "@vaadin/hilla-generator-core": "24.7.0-alpha0" } }, "../../../../ts/generator-core": { "name": "@vaadin/hilla-generator-core", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "dev": true, "license": "Apache 2.0", "dependencies": { "@apidevtools/swagger-parser": "^10.1.0", - "@vaadin/hilla-generator-utils": "24.4.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "meow": "^12.1.1", "openapi-types": "^12.1.3", "typescript": "5.3.2" @@ -165,11 +165,11 @@ }, "../../../../ts/generator-plugin-backbone": { "name": "@vaadin/hilla-generator-plugin-backbone", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "5.3.2" @@ -180,8 +180,8 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "concurrently": "^8.2.1", @@ -197,17 +197,17 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha5" + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0" } }, "../../../../ts/generator-plugin-barrel": { "name": "@vaadin/hilla-generator-plugin-barrel", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "typescript": "5.3.2" }, "devDependencies": { @@ -216,8 +216,8 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-backbone": "24.4.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "concurrently": "^8.2.1", @@ -233,17 +233,17 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-backbone": "24.4.0-alpha5" + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha0" } }, "../../../../ts/generator-plugin-client": { "name": "@vaadin/hilla-generator-plugin-client", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "typescript": "5.3.2" }, "devDependencies": { @@ -252,7 +252,7 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "concurrently": "^8.2.1", @@ -268,16 +268,16 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha5" + "@vaadin/hilla-generator-core": "24.7.0-alpha0" } }, "../../../../ts/generator-plugin-model": { "name": "@vaadin/hilla-generator-plugin-model", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "5.3.2" @@ -288,8 +288,8 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "concurrently": "^8.2.1", @@ -305,18 +305,18 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-backbone": "24.4.0-alpha5", - "@vaadin/hilla-lit-form": "24.4.0-alpha5" + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha0", + "@vaadin/hilla-lit-form": "24.7.0-alpha0" } }, "../../../../ts/generator-plugin-push": { "name": "@vaadin/hilla-generator-plugin-push", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "5.3.2" @@ -327,8 +327,8 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "concurrently": "^8.2.1", @@ -344,17 +344,17 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha5" + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0" } }, "../../../../ts/generator-plugin-subtypes": { "name": "@vaadin/hilla-generator-plugin-subtypes", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "5.3.2" @@ -365,9 +365,9 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-model": "24.4.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "concurrently": "^8.2.1", @@ -383,14 +383,14 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-model": "24.4.0-alpha5" + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha0" } }, "../../../../ts/generator-utils": { "name": "@vaadin/hilla-generator-utils", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "dev": true, "license": "Apache 2.0", "dependencies": { @@ -420,10 +420,10 @@ }, "../../../../ts/lit-form": { "name": "@vaadin/hilla-lit-form", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.4.0-alpha5", + "@vaadin/hilla-frontend": "24.7.0-alpha0", "validator": "^13.11.0" }, "devDependencies": { @@ -445,10 +445,10 @@ }, "../../../../ts/react-auth": { "name": "@vaadin/hilla-react-auth", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.4.0-alpha5" + "@vaadin/hilla-frontend": "24.7.0-alpha0" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -474,13 +474,13 @@ }, "../../../../ts/react-crud": { "name": "@vaadin/hilla-react-crud", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.4.0-alpha5", - "@vaadin/hilla-lit-form": "24.4.0-alpha5", - "@vaadin/hilla-react-form": "24.4.0-alpha5", - "@vaadin/react-components": "24.4.0-alpha14" + "@vaadin/hilla-frontend": "24.7.0-alpha0", + "@vaadin/hilla-lit-form": "24.7.0-alpha0", + "@vaadin/hilla-react-form": "24.7.0-alpha0", + "@vaadin/react-components": "24.6.0-rc1" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -507,10 +507,10 @@ }, "../../../../ts/react-form": { "name": "@vaadin/hilla-react-form", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-lit-form": "24.4.0-alpha5" + "@vaadin/hilla-lit-form": "24.7.0-alpha0" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -536,7 +536,7 @@ }, "../../../../ts/react-signals": { "name": "@vaadin/hilla-react-signals", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache-2.0", "dependencies": { "@preact/signals-react": "^2.0.0" @@ -3580,164 +3580,164 @@ } }, "node_modules/@vaadin/a11y-base": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.7.0-alpha0.tgz", "integrity": "sha512-h1waF6Um9ZoK3gNB4XtziK6pCJP3cgIQDY4ORatpzR1XqNIG3WVrrBV9FMmwqwFecy8NpGJinxadu5mUX5ZBOQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/accordion": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/accordion/-/accordion-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/accordion/-/accordion-24.7.0-alpha0.tgz", "integrity": "sha512-AwoVCBRnsOiQPcPQ8VXBmBVTqRvwQT/HjSqYNpPL6CVaPPjCGndJ3CndpHZfUub72rixLRu4P8am7DjcaeO23A==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/details": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/details": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/app-layout": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/app-layout/-/app-layout-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/app-layout/-/app-layout-24.7.0-alpha0.tgz", "integrity": "sha512-Q5caMhTU1r4kBRt0Jyr8u1oGUPMuuweXQSCZyRexKRmDteLDWoZoF3Fc5R5D19byg0eYyazfkiefnHpz34wQlA==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/avatar": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-24.7.0-alpha0.tgz", "integrity": "sha512-oPnYipWuVGBCEHsW1q4auXXNF1d5l/2KhgQlJSzJptJ/eD71a4STSrTyRN0etS1i7AM+M2AD+AU2OhqRyEC33g==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/tooltip": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/tooltip": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/avatar-group": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/avatar-group/-/avatar-group-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/avatar-group/-/avatar-group-24.7.0-alpha0.tgz", "integrity": "sha512-gebHLcaEZyqN7wDaEhEH7PbdPCd1ivcuJq2lgXiBU6MH1PbzilKeABCciK9iVmq2rzwSxe1k0P0wnd2+rtmhSw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/avatar": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/list-box": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/avatar": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/list-box": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/board": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/board/-/board-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/board/-/board-24.7.0-alpha0.tgz", "integrity": "sha512-ydox2XbWy3Ymn5rXjCC20Aeq8x3WjXwIRb38K0BRwKaCajhZ+1dpm33/DmmH4WXJslo75L3p8q6YgM2od0xDKA==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1" } }, "node_modules/@vaadin/bundles": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/bundles/-/bundles-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/bundles/-/bundles-24.7.0-alpha0.tgz", "integrity": "sha512-4J1TP+lYjnM6Nlaxd0L7qxIX80J9+GMCVpIyJnoTZ5YWbHy9qE4qqXkgoLaNE5y5gI5TyvUU1MRlL1xi8vXgow==", "peerDependencies": { "@open-wc/dedupe-mixin": "1.3.1", "@polymer/polymer": "3.5.1", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/accordion": "24.4.0-alpha14", - "@vaadin/app-layout": "24.4.0-alpha14", - "@vaadin/avatar": "24.4.0-alpha14", - "@vaadin/avatar-group": "24.4.0-alpha14", - "@vaadin/board": "24.4.0-alpha14", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/charts": "24.4.0-alpha14", - "@vaadin/checkbox": "24.4.0-alpha14", - "@vaadin/checkbox-group": "24.4.0-alpha14", - "@vaadin/combo-box": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/confirm-dialog": "24.4.0-alpha14", - "@vaadin/context-menu": "24.4.0-alpha14", - "@vaadin/cookie-consent": "24.4.0-alpha14", - "@vaadin/crud": "24.4.0-alpha14", - "@vaadin/custom-field": "24.4.0-alpha14", - "@vaadin/date-picker": "24.4.0-alpha14", - "@vaadin/date-time-picker": "24.4.0-alpha14", - "@vaadin/details": "24.4.0-alpha14", - "@vaadin/dialog": "24.4.0-alpha14", - "@vaadin/email-field": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/field-highlighter": "24.4.0-alpha14", - "@vaadin/form-layout": "24.4.0-alpha14", - "@vaadin/grid": "24.4.0-alpha14", - "@vaadin/grid-pro": "24.4.0-alpha14", - "@vaadin/horizontal-layout": "24.4.0-alpha14", - "@vaadin/icon": "24.4.0-alpha14", - "@vaadin/icons": "24.4.0-alpha14", - "@vaadin/input-container": "24.4.0-alpha14", - "@vaadin/integer-field": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/list-box": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/login": "24.4.0-alpha14", - "@vaadin/map": "24.4.0-alpha14", - "@vaadin/menu-bar": "24.4.0-alpha14", - "@vaadin/message-input": "24.4.0-alpha14", - "@vaadin/message-list": "24.4.0-alpha14", - "@vaadin/multi-select-combo-box": "24.4.0-alpha14", - "@vaadin/notification": "24.4.0-alpha14", - "@vaadin/number-field": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/password-field": "24.4.0-alpha14", - "@vaadin/polymer-legacy-adapter": "24.4.0-alpha14", - "@vaadin/progress-bar": "24.4.0-alpha14", - "@vaadin/radio-group": "24.4.0-alpha14", - "@vaadin/rich-text-editor": "24.4.0-alpha14", - "@vaadin/scroller": "24.4.0-alpha14", - "@vaadin/select": "24.4.0-alpha14", - "@vaadin/side-nav": "24.4.0-alpha14", - "@vaadin/split-layout": "24.4.0-alpha14", - "@vaadin/tabs": "24.4.0-alpha14", - "@vaadin/tabsheet": "24.4.0-alpha14", - "@vaadin/text-area": "24.4.0-alpha14", - "@vaadin/text-field": "24.4.0-alpha14", - "@vaadin/time-picker": "24.4.0-alpha14", - "@vaadin/tooltip": "24.4.0-alpha14", - "@vaadin/upload": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/accordion": "24.6.0-rc1", + "@vaadin/app-layout": "24.6.0-rc1", + "@vaadin/avatar": "24.6.0-rc1", + "@vaadin/avatar-group": "24.6.0-rc1", + "@vaadin/board": "24.6.0-rc1", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/charts": "24.6.0-rc1", + "@vaadin/checkbox": "24.6.0-rc1", + "@vaadin/checkbox-group": "24.6.0-rc1", + "@vaadin/combo-box": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/confirm-dialog": "24.6.0-rc1", + "@vaadin/context-menu": "24.6.0-rc1", + "@vaadin/cookie-consent": "24.6.0-rc1", + "@vaadin/crud": "24.6.0-rc1", + "@vaadin/custom-field": "24.6.0-rc1", + "@vaadin/date-picker": "24.6.0-rc1", + "@vaadin/date-time-picker": "24.6.0-rc1", + "@vaadin/details": "24.6.0-rc1", + "@vaadin/dialog": "24.6.0-rc1", + "@vaadin/email-field": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/field-highlighter": "24.6.0-rc1", + "@vaadin/form-layout": "24.6.0-rc1", + "@vaadin/grid": "24.6.0-rc1", + "@vaadin/grid-pro": "24.6.0-rc1", + "@vaadin/horizontal-layout": "24.6.0-rc1", + "@vaadin/icon": "24.6.0-rc1", + "@vaadin/icons": "24.6.0-rc1", + "@vaadin/input-container": "24.6.0-rc1", + "@vaadin/integer-field": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/list-box": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/login": "24.6.0-rc1", + "@vaadin/map": "24.6.0-rc1", + "@vaadin/menu-bar": "24.6.0-rc1", + "@vaadin/message-input": "24.6.0-rc1", + "@vaadin/message-list": "24.6.0-rc1", + "@vaadin/multi-select-combo-box": "24.6.0-rc1", + "@vaadin/notification": "24.6.0-rc1", + "@vaadin/number-field": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/password-field": "24.6.0-rc1", + "@vaadin/polymer-legacy-adapter": "24.6.0-rc1", + "@vaadin/progress-bar": "24.6.0-rc1", + "@vaadin/radio-group": "24.6.0-rc1", + "@vaadin/rich-text-editor": "24.6.0-rc1", + "@vaadin/scroller": "24.6.0-rc1", + "@vaadin/select": "24.6.0-rc1", + "@vaadin/side-nav": "24.6.0-rc1", + "@vaadin/split-layout": "24.6.0-rc1", + "@vaadin/tabs": "24.6.0-rc1", + "@vaadin/tabsheet": "24.6.0-rc1", + "@vaadin/text-area": "24.6.0-rc1", + "@vaadin/text-field": "24.6.0-rc1", + "@vaadin/time-picker": "24.6.0-rc1", + "@vaadin/tooltip": "24.6.0-rc1", + "@vaadin/upload": "24.6.0-rc1", "@vaadin/vaadin-development-mode-detector": "2.0.6", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "@vaadin/vaadin-usage-statistics": "2.1.2", - "@vaadin/vertical-layout": "24.4.0-alpha14", - "@vaadin/virtual-list": "24.4.0-alpha14", + "@vaadin/vertical-layout": "24.6.0-rc1", + "@vaadin/virtual-list": "24.6.0-rc1", "cookieconsent": "3.1.1", "highcharts": "9.2.2", "lit": "3.1.2", @@ -3971,81 +3971,81 @@ } }, "node_modules/@vaadin/button": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-24.7.0-alpha0.tgz", "integrity": "sha512-O5uKoAuYQ9wooOSE0bJDVg+ekSX1j109LYfgiA49XWhyWgtV/DkN8FqhnpJkEUBMdJMJDKuRDlWBlW7TvnUCmA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/charts": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/charts/-/charts-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/charts/-/charts-24.7.0-alpha0.tgz", "integrity": "sha512-zl/D60kkFKAVSY6gBrvZVp4hFezzBQJCfs0xqAXpH3RQ2SSqIom0m4HCRw56LChvb8o88ntHWqZyogcutmDFQA==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "highcharts": "9.2.2" } }, "node_modules/@vaadin/checkbox": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.7.0-alpha0.tgz", "integrity": "sha512-QhovEOJ2GMDGq+YpOXeqDH/QtLmnPLGHzV5jC1zMO3vs1fcai964tP75BvnX7t20rLd1ZpQTwfFyZ4jDwuFymA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/checkbox-group": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/checkbox-group/-/checkbox-group-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox-group/-/checkbox-group-24.7.0-alpha0.tgz", "integrity": "sha512-+LJtmk1/l5PhgQG5QWiCde8aHhPguLZ0eFc4nUclOAYj/FOeDTEI8hy03FXXX+w1SXxVtRUP1x9NY7OiJ93OrA==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/checkbox": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/checkbox": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/combo-box": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/combo-box/-/combo-box-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/combo-box/-/combo-box-24.7.0-alpha0.tgz", "integrity": "sha512-P64NaS3GXOzMDkwv6Husnaeo2b+U3gQQD2JSBMbBmWbxk/akRMULVa2A6cSllTIAbEIkLN72mhDvlMNZRAyVGw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/input-container": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/input-container": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/common-frontend": { @@ -4060,8 +4060,8 @@ } }, "node_modules/@vaadin/component-base": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.7.0-alpha0.tgz", "integrity": "sha512-Q0oWbwildWL68UOxHLE1PgbsTVrsTqMRV4WBWwBb8a4WaDllnpRMXMcDVh5MAcSUf9baROG6AC5Dp3ONh8r1UQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", @@ -4072,244 +4072,244 @@ } }, "node_modules/@vaadin/confirm-dialog": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/confirm-dialog/-/confirm-dialog-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/confirm-dialog/-/confirm-dialog-24.7.0-alpha0.tgz", "integrity": "sha512-29m9EqYStqBnbtGcqnZpCHpq/qlXuG/niUYJz1AefkFClUXF7o6zFLva7iG6RGA9ktrYFVkWjjZrR3P5s4ZiRA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/dialog": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/dialog": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/context-menu": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/context-menu/-/context-menu-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/context-menu/-/context-menu-24.7.0-alpha0.tgz", "integrity": "sha512-hNj96+27E3d/df3WGf1pMxAvNWktLUAvkYCYbHn84eQ0Pjxh5JMyIVohWUKUBE6uHXbmV9a3232J8OLUtlooMg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/list-box": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/list-box": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/cookie-consent": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/cookie-consent/-/cookie-consent-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/cookie-consent/-/cookie-consent-24.7.0-alpha0.tgz", "integrity": "sha512-3ZNPkh4TnhmA+1tzYijsQeg6UGyB7OxFQjuIdJIHEAzE2y3vXGjsqpXsM5VdWUP5Ck9hY5KZy8H/EQBy+McD7w==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", "cookieconsent": "^3.0.6" } }, "node_modules/@vaadin/crud": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/crud/-/crud-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/crud/-/crud-24.7.0-alpha0.tgz", "integrity": "sha512-EHEv8vHGHe2yXETOhWcDkOzKdqNmXVV9rUJ1ARumR75MrFQzyKYdisoeqs+THFBvH/c6p6hodka7WeNjuwMNyQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/confirm-dialog": "24.4.0-alpha14", - "@vaadin/dialog": "24.4.0-alpha14", - "@vaadin/form-layout": "24.4.0-alpha14", - "@vaadin/grid": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/text-field": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/confirm-dialog": "24.6.0-rc1", + "@vaadin/dialog": "24.6.0-rc1", + "@vaadin/form-layout": "24.6.0-rc1", + "@vaadin/grid": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/text-field": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/custom-field": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/custom-field/-/custom-field-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/custom-field/-/custom-field-24.7.0-alpha0.tgz", "integrity": "sha512-/Q388DxxPiPQTCJaEZ1bul07JoW27bMRBCo9zTDgL6UKK1tTqc2Lpe9cyVWK2P+n9jreqkNrEUiFMfD4gg6LOw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/date-picker": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/date-picker/-/date-picker-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/date-picker/-/date-picker-24.7.0-alpha0.tgz", "integrity": "sha512-zol61DP56fMGyJ8s1iCzJIyBq3cTKSYW+0AC/a8vgn/zNpnUYGxZFxMBN8g/ppok6r6nKE22Ac8+d+A2x0sNzg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.2.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/input-container": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/input-container": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/date-time-picker": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/date-time-picker/-/date-time-picker-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/date-time-picker/-/date-time-picker-24.7.0-alpha0.tgz", "integrity": "sha512-YvLafDwsmq3YuB06qMHb5rq0MWoMDb9ZboCJjM/ggMvGED81FqQtLtPXI0d61kY4kG3cJnnz/VccelJY54fXuQ==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/custom-field": "24.4.0-alpha14", - "@vaadin/date-picker": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/time-picker": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/custom-field": "24.6.0-rc1", + "@vaadin/date-picker": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/time-picker": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/details": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/details/-/details-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/details/-/details-24.7.0-alpha0.tgz", "integrity": "sha512-TeDYHJvalZk6qKApnbvZByEKo+XbWZDHVyZpLrUd9SwXSvywZwP5B/lL7FJCsCqj7tG91EhliY6udInpkejihA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/dialog": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/dialog/-/dialog-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/dialog/-/dialog-24.7.0-alpha0.tgz", "integrity": "sha512-0pyPQ9Un2q5OTt7lGawWjWs58svbIC4eRpE/R8UOTRIP++2XFrrTbC7l9jAudtN5rGyCTGEl+a1Ru7vAQdpNsQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/email-field": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/email-field/-/email-field-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/email-field/-/email-field-24.7.0-alpha0.tgz", "integrity": "sha512-DPSSTiJGKWgb+mFZKzSUcreYbAnZUmm+AiaW0JvYPKFvCAEfYTGXrVRBIzUxz0AVJJJbgB5gRL7KuoZ322g4WQ==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/text-field": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/text-field": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/field-base": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.7.0-alpha0.tgz", "integrity": "sha512-4lwKPrx6YNu1li0oaIsAtsBo9IFkSmhG7a38xtn2HDn4dPEltiViyuUGOzY2WY19RICUj6MtD7Bff3Cwl5W/MQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/field-highlighter": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/field-highlighter/-/field-highlighter-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/field-highlighter/-/field-highlighter-24.7.0-alpha0.tgz", "integrity": "sha512-33vee5dl/NQ2xyFrBebQcQeJCD9yt5KUjlXSp+qYNoUrDtk3s+TUoYV/FP31XegYpjIZ8JzpFLqsro+eo91b9g==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/form-layout": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/form-layout/-/form-layout-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/form-layout/-/form-layout-24.7.0-alpha0.tgz", "integrity": "sha512-LyJjVkcB5j2Hv7Ihn6ISEhq8d7ulBt712m9RQ5DvgFxqe1UeFgk7SEJdyTTpyGzYVQVLEPerXt8Mfl8Udeq8Dw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/grid": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.7.0-alpha0.tgz", "integrity": "sha512-Rm7Jzd7MlADYh3Q6RbncROGqbaZCRZfHVg+qgWwLdDySH4i+rTnPIW1fvS+16CULEz66dMSItX8C7gA7Ikt2gg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/checkbox": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/text-field": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/checkbox": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/text-field": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/grid-pro": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/grid-pro/-/grid-pro-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/grid-pro/-/grid-pro-24.7.0-alpha0.tgz", "integrity": "sha512-B+ztPTrGCQKWtGMqU/a3FwrMcRM/OPdba8kkuoSDHaBwvTZ9dncsV+wUnKN0shQtvCElpJ+IxRgzDzILzDQq+g==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/checkbox": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/grid": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/select": "24.4.0-alpha14", - "@vaadin/text-field": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/checkbox": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/grid": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/select": "24.6.0-rc1", + "@vaadin/text-field": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, @@ -4374,365 +4374,365 @@ "link": true }, "node_modules/@vaadin/horizontal-layout": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/horizontal-layout/-/horizontal-layout-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/horizontal-layout/-/horizontal-layout-24.7.0-alpha0.tgz", "integrity": "sha512-8CTPrcL5z3hSwTde2UMwkmuYylO+tCFSNrVf9LZHWkp3VqgezQ6uDukKSdzfBhx7BxSvy33Tpx6/RIGM+53Jtw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/icon": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.7.0-alpha0.tgz", "integrity": "sha512-09RnguzuXQl/c2MYMC/ZDMUwcHunr2O1Rv5DZF1/r8ODEZAzP/1B+h7tFDezenLGhAqPllBmgdGYdwW9QpSM4w==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/icons": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.7.0-alpha0.tgz", "integrity": "sha512-9ERLS7Dw0k7WnJ6SALGr1bpNa7mpZ3HgpGMUhYI8+dgNspEkyQW2c+oj4UDjfzh3n/6ruf23Ack/ZbHGTCiQHg==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/icon": "24.4.0-alpha14" + "@vaadin/icon": "24.6.0-rc1" } }, "node_modules/@vaadin/input-container": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.7.0-alpha0.tgz", "integrity": "sha512-a29AADGzxgJLnUH/oJeqqV3DUxj10/2qZ5VISnw0y15/sHyXfOXKh183enpncLsOU/E7LoMD6MPkjApuIpq+6w==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/integer-field": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/integer-field/-/integer-field-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/integer-field/-/integer-field-24.7.0-alpha0.tgz", "integrity": "sha512-Hendyyc8LJAP1RD2rNqVI+dyRmFYykrQzmemLDlk2gtVP/5OjvfOOLX5lKVhqTMnBQIcqPyZb5fGYNsivSWC5A==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/number-field": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14" + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/number-field": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1" } }, "node_modules/@vaadin/item": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-24.7.0-alpha0.tgz", "integrity": "sha512-4Am7qxECsxxEoQmgmk3SFsSMUjDwottMI7w0fJFJOieTlS6joNZvgqXVXDCmj4ZPG7gR0r8qr6+q5++TpbteFg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/list-box": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-24.7.0-alpha0.tgz", "integrity": "sha512-fS/5E//GH/mM3toOhk2fwx2MPkc+r/ANsjJ4P4hzn7s8/fJG63WGo/6PiyGIiHOG0H0vpQ3/RcoRG0jM6OIP0w==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/lit-renderer": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.7.0-alpha0.tgz", "integrity": "sha512-i/V5lJaw2vpJzDvg+ZU+yhBrdh72ihxigO9V0PcRvafx2/aI1SYvvyV8vb2cZpAX8NzHWRKr17viooOomeT6xQ==", "dependencies": { "lit": "^3.0.0" } }, "node_modules/@vaadin/login": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/login/-/login-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/login/-/login-24.7.0-alpha0.tgz", "integrity": "sha512-NCrBvdF7KwJr7H9JIvMrfURJPaeAYujquirlfUXa1asAGwEwSVAq6sBpg6Yay84JtHhtRBpjdeHmdulbb42JGQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/password-field": "24.4.0-alpha14", - "@vaadin/text-field": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/password-field": "24.6.0-rc1", + "@vaadin/text-field": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/map": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/map/-/map-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/map/-/map-24.7.0-alpha0.tgz", "integrity": "sha512-jdfC4Siy482yZ6/7miNNnYmWvWXcdlGTM1r7nELsjcRX6wlmTxa7tAlf97JhUHt75gtSEyEV6kVWbrpXwfmVOA==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "ol": "6.13.0" } }, "node_modules/@vaadin/menu-bar": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/menu-bar/-/menu-bar-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/menu-bar/-/menu-bar-24.7.0-alpha0.tgz", "integrity": "sha512-Bb8WkHjSGzLnyGIDWV1fMwA1wD6gtaDDjbe7Ef1nw/+7uLg1iEa8zCT/MekYrGmxEdXbqTukBFq0UAxSBmjoNw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/context-menu": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/list-box": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/context-menu": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/list-box": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/message-input": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/message-input/-/message-input-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/message-input/-/message-input-24.7.0-alpha0.tgz", "integrity": "sha512-+bBsY1/CTk7MGFNWCTJQYs/RLjAss0/ujv1r6SaT3cz52vU2W61mpX/wJ7tR00G0AwQfDPr1wCOPHU29eUWRdQ==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/text-area": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/text-area": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/message-list": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/message-list/-/message-list-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/message-list/-/message-list-24.7.0-alpha0.tgz", "integrity": "sha512-8NXNkHzKlxda5qJZ8lA3aHN4lgn+qldOb3NYBPa5L6Qzskdn1l58nr6xf50SUkb5TUHDrO4xKDS0K0wB/NEEJw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/avatar": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/avatar": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/multi-select-combo-box": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/multi-select-combo-box/-/multi-select-combo-box-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/multi-select-combo-box/-/multi-select-combo-box-24.7.0-alpha0.tgz", "integrity": "sha512-wDQ8zspzTAaqsu0LO0v6dJBxl+hE4kCs25jXALdr3rRgDIQRn01Xk2DG7Z3BYaQFRs/PFJgaV7EKGpRMAxCZ3Q==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/combo-box": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/input-container": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/combo-box": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/input-container": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/notification": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/notification/-/notification-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/notification/-/notification-24.7.0-alpha0.tgz", "integrity": "sha512-ulK0vK3C73iUQxKPB1xlgNxQXdBA28elHYQGnngHmGQK7Lys8yrF88/FJ+fBAiM4b9YEXrYqQjljYW1r5Euoiw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/number-field": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/number-field/-/number-field-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/number-field/-/number-field-24.7.0-alpha0.tgz", "integrity": "sha512-tJgV10Xw76CPFPb8hkQUiKpEatTSAqviKcfubUEsPCVJf6He0V9YvxiROTTPxpBNDIGP4KdaxCb014qtIcYteQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/input-container": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/input-container": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/overlay": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.7.0-alpha0.tgz", "integrity": "sha512-aLJDO1R949aPbFJ7O33VIfRRQkIMji4YGL3hMP7qo5RZfQEt+sRqquCKoN6qNilAAstmQ6SYFPj3NhFq+Emi1A==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/password-field": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-24.7.0-alpha0.tgz", "integrity": "sha512-m1aWOhZ+dY+ZKwjQ/xADwSi6ZDd0PF2TEvBoXYXipx0JqmcCOrZYN4KjHRLTYhZxNTBVZZ0xUqiWa6kvCM+v1w==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/text-field": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/text-field": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/progress-bar": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/progress-bar/-/progress-bar-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/progress-bar/-/progress-bar-24.7.0-alpha0.tgz", "integrity": "sha512-hRnFi14rmXt8QFSm66lRnxA5ztTwyZnktPIawdIgZYABvqX4Js+VdOJPZtUT8oH7LmwK9EKa8AV8Q2kE3S/xnw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/radio-group": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/radio-group/-/radio-group-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/radio-group/-/radio-group-24.7.0-alpha0.tgz", "integrity": "sha512-+4wWQAjAyrxhBTv5ZA2wL6XXgT0EAvWM97ywc9cTG4WCP11rYx7hSgPiwC157nEYkvDvvEmXBVmItsfPiA0rdA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/react-components": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/react-components/-/react-components-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/react-components/-/react-components-24.7.0-alpha0.tgz", "integrity": "sha512-RzMcNUBwOetOGA5/V8m4KvRRg+Dby5OzSAB/xj228AKPbilw+7Un4c9UuyaLWoSVTJ7NxEzDLSTqGLwimcCe7A==", "dependencies": { "@lit/react": "^1.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/accordion": "24.4.0-alpha14", - "@vaadin/app-layout": "24.4.0-alpha14", - "@vaadin/avatar": "24.4.0-alpha14", - "@vaadin/avatar-group": "24.4.0-alpha14", - "@vaadin/board": "24.4.0-alpha14", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/charts": "24.4.0-alpha14", - "@vaadin/checkbox": "24.4.0-alpha14", - "@vaadin/checkbox-group": "24.4.0-alpha14", - "@vaadin/combo-box": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/confirm-dialog": "24.4.0-alpha14", - "@vaadin/context-menu": "24.4.0-alpha14", - "@vaadin/cookie-consent": "24.4.0-alpha14", - "@vaadin/crud": "24.4.0-alpha14", - "@vaadin/custom-field": "24.4.0-alpha14", - "@vaadin/date-picker": "24.4.0-alpha14", - "@vaadin/date-time-picker": "24.4.0-alpha14", - "@vaadin/details": "24.4.0-alpha14", - "@vaadin/dialog": "24.4.0-alpha14", - "@vaadin/email-field": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/field-highlighter": "24.4.0-alpha14", - "@vaadin/form-layout": "24.4.0-alpha14", - "@vaadin/grid": "24.4.0-alpha14", - "@vaadin/grid-pro": "24.4.0-alpha14", - "@vaadin/horizontal-layout": "24.4.0-alpha14", - "@vaadin/icon": "24.4.0-alpha14", - "@vaadin/icons": "24.4.0-alpha14", - "@vaadin/input-container": "24.4.0-alpha14", - "@vaadin/integer-field": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/list-box": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/login": "24.4.0-alpha14", - "@vaadin/map": "24.4.0-alpha14", - "@vaadin/menu-bar": "24.4.0-alpha14", - "@vaadin/message-input": "24.4.0-alpha14", - "@vaadin/message-list": "24.4.0-alpha14", - "@vaadin/multi-select-combo-box": "24.4.0-alpha14", - "@vaadin/notification": "24.4.0-alpha14", - "@vaadin/number-field": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/password-field": "24.4.0-alpha14", - "@vaadin/progress-bar": "24.4.0-alpha14", - "@vaadin/radio-group": "24.4.0-alpha14", - "@vaadin/rich-text-editor": "24.4.0-alpha14", - "@vaadin/scroller": "24.4.0-alpha14", - "@vaadin/select": "24.4.0-alpha14", - "@vaadin/side-nav": "24.4.0-alpha14", - "@vaadin/split-layout": "24.4.0-alpha14", - "@vaadin/tabs": "24.4.0-alpha14", - "@vaadin/tabsheet": "24.4.0-alpha14", - "@vaadin/text-area": "24.4.0-alpha14", - "@vaadin/text-field": "24.4.0-alpha14", - "@vaadin/time-picker": "24.4.0-alpha14", - "@vaadin/tooltip": "24.4.0-alpha14", - "@vaadin/upload": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", - "@vaadin/vertical-layout": "24.4.0-alpha14", - "@vaadin/virtual-list": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/accordion": "24.6.0-rc1", + "@vaadin/app-layout": "24.6.0-rc1", + "@vaadin/avatar": "24.6.0-rc1", + "@vaadin/avatar-group": "24.6.0-rc1", + "@vaadin/board": "24.6.0-rc1", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/charts": "24.6.0-rc1", + "@vaadin/checkbox": "24.6.0-rc1", + "@vaadin/checkbox-group": "24.6.0-rc1", + "@vaadin/combo-box": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/confirm-dialog": "24.6.0-rc1", + "@vaadin/context-menu": "24.6.0-rc1", + "@vaadin/cookie-consent": "24.6.0-rc1", + "@vaadin/crud": "24.6.0-rc1", + "@vaadin/custom-field": "24.6.0-rc1", + "@vaadin/date-picker": "24.6.0-rc1", + "@vaadin/date-time-picker": "24.6.0-rc1", + "@vaadin/details": "24.6.0-rc1", + "@vaadin/dialog": "24.6.0-rc1", + "@vaadin/email-field": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/field-highlighter": "24.6.0-rc1", + "@vaadin/form-layout": "24.6.0-rc1", + "@vaadin/grid": "24.6.0-rc1", + "@vaadin/grid-pro": "24.6.0-rc1", + "@vaadin/horizontal-layout": "24.6.0-rc1", + "@vaadin/icon": "24.6.0-rc1", + "@vaadin/icons": "24.6.0-rc1", + "@vaadin/input-container": "24.6.0-rc1", + "@vaadin/integer-field": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/list-box": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/login": "24.6.0-rc1", + "@vaadin/map": "24.6.0-rc1", + "@vaadin/menu-bar": "24.6.0-rc1", + "@vaadin/message-input": "24.6.0-rc1", + "@vaadin/message-list": "24.6.0-rc1", + "@vaadin/multi-select-combo-box": "24.6.0-rc1", + "@vaadin/notification": "24.6.0-rc1", + "@vaadin/number-field": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/password-field": "24.6.0-rc1", + "@vaadin/progress-bar": "24.6.0-rc1", + "@vaadin/radio-group": "24.6.0-rc1", + "@vaadin/rich-text-editor": "24.6.0-rc1", + "@vaadin/scroller": "24.6.0-rc1", + "@vaadin/select": "24.6.0-rc1", + "@vaadin/side-nav": "24.6.0-rc1", + "@vaadin/split-layout": "24.6.0-rc1", + "@vaadin/tabs": "24.6.0-rc1", + "@vaadin/tabsheet": "24.6.0-rc1", + "@vaadin/text-area": "24.6.0-rc1", + "@vaadin/text-field": "24.6.0-rc1", + "@vaadin/time-picker": "24.6.0-rc1", + "@vaadin/tooltip": "24.6.0-rc1", + "@vaadin/upload": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", + "@vaadin/vertical-layout": "24.6.0-rc1", + "@vaadin/virtual-list": "24.6.0-rc1" }, "peerDependencies": { "@types/react": "^18.2.37", @@ -4750,20 +4750,20 @@ } }, "node_modules/@vaadin/rich-text-editor": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/rich-text-editor/-/rich-text-editor-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/rich-text-editor/-/rich-text-editor-24.7.0-alpha0.tgz", "integrity": "sha512-DOY3bTv9z0BeI/2tA2zpLqcFzu0Eb/3KuG64OkjWyR6JwQUt3cN3D3RuBcAY8Z1FyCAV7T/luqAHoaFkR8eRrg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/confirm-dialog": "24.4.0-alpha14", - "@vaadin/text-field": "24.4.0-alpha14", - "@vaadin/tooltip": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/confirm-dialog": "24.6.0-rc1", + "@vaadin/text-field": "24.6.0-rc1", + "@vaadin/tooltip": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, @@ -4777,178 +4777,178 @@ } }, "node_modules/@vaadin/scroller": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/scroller/-/scroller-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/scroller/-/scroller-24.7.0-alpha0.tgz", "integrity": "sha512-1fVeZoWjROCH1IlO9IUtv59uKCE8aykUWQZsalgvASJz8vWKcINDSjDbSv+d5bRBdhdLwC2lfySEZXWrMogE/w==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/select": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/select/-/select-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/select/-/select-24.7.0-alpha0.tgz", "integrity": "sha512-DwlRnuUi7NmLDA2hWYM3eZww6fJ/xqV2dr1+deLnjamzigYtMdkKP6ENN8ibiUsoCqIMNU2KggJtGUZChff3+A==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.2.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/input-container": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/list-box": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/input-container": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/list-box": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/side-nav": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/side-nav/-/side-nav-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/side-nav/-/side-nav-24.7.0-alpha0.tgz", "integrity": "sha512-74NXlzWks53w8HXGTqDjCVwA/S+nNPWueMgh/n6y083PRvKyfRqUpcVNXovFyo0JHmU0dBIen6Cd1Ams/Xig4A==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/split-layout": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/split-layout/-/split-layout-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/split-layout/-/split-layout-24.7.0-alpha0.tgz", "integrity": "sha512-TtxJXhsJaqc+psCyhyY3JiLOM54fH/mXudl+QNaMFTahUHNmujLV+AaW8L9xR+367xFao4brXDh6nc9y4H3L3w==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/tabs": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/tabs/-/tabs-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/tabs/-/tabs-24.7.0-alpha0.tgz", "integrity": "sha512-JFrWgDXXTNd0HF6EGEfHyCB+HVbcmYcrBUHtI2FGyZmPjJuwumLomBSF7K7ep1b/YYvDvwzRPhTrPWLw1ALCJQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/tabsheet": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/tabsheet/-/tabsheet-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/tabsheet/-/tabsheet-24.7.0-alpha0.tgz", "integrity": "sha512-PNh1CV8glqzhNd3jq2h62gjgfbJodaPJCotKjjV/5DTYENiWwGLAozcU0uSVE92zRGBRyi3efXBx63S+vz0Ulg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/scroller": "24.4.0-alpha14", - "@vaadin/tabs": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/scroller": "24.6.0-rc1", + "@vaadin/tabs": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/text-area": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/text-area/-/text-area-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/text-area/-/text-area-24.7.0-alpha0.tgz", "integrity": "sha512-fs0W6cWx0tuOIo1FhzgO/CYYUYbm5L9cVmJDspT1F/JrqzcXZ5MiSbXG6Fy49Mpg1rlA7Ey6pJDUAaB7Jj5Dew==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/input-container": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/input-container": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/text-field": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.7.0-alpha0.tgz", "integrity": "sha512-s6rlAzKUVEBeSFYDzLoSSKfAoPk9d/JzMEba28BZwUSqA+mXiYPmBGX1mLUcIYTz8Orq2Vn1S76V/1kqVIrxng==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/input-container": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/input-container": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/time-picker": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/time-picker/-/time-picker-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/time-picker/-/time-picker-24.7.0-alpha0.tgz", "integrity": "sha512-XLTXIIAi4B3pXYB8SdhSZ5drK4D6j9k+npqc4WE43b1RVAv5mQ+PeLH+oLyfC0mjSZYQ0Q8Hol+rG7IoCHWDcg==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/combo-box": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/input-container": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/combo-box": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/input-container": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/tooltip": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.7.0-alpha0.tgz", "integrity": "sha512-Tzy1rKVxn+DBoGxzngS/A3DApv5Qfrk5HKAoP07K5To0brgDHg9FUigRWuzUMl9BnyaJNWoxR6+fn+xfPqRepQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/upload": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/upload/-/upload-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/upload/-/upload-24.7.0-alpha0.tgz", "integrity": "sha512-Bnfbb9EEffaPpd3LA40I2L1tEHRGSgovAbgIeJH8ojX8EkKZEFNrWnPEW1HjgvJttAEiS10cSuOAv8GSS5aROA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/progress-bar": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/progress-bar": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, @@ -4958,29 +4958,29 @@ "integrity": "sha512-N6a5nLT/ytEUlpPo+nvdCKIGoyNjPsj3rzPGvGYK8x9Ceg76OTe1xI/GtN71mRW9e2HUScR0kCNOkl1Z63YDjw==" }, "node_modules/@vaadin/vaadin-lumo-styles": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.7.0-alpha0.tgz", "integrity": "sha512-QCmqwos8r1aqInkgjfsAIjRbzkLBwcW3+qSIr6t2xnqyjtkm6KIOG30fdHFoAoxlbsHMetpXp+Q+gjGCZKD8SQ==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/icon": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/icon": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/vaadin-material-styles": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.7.0-alpha0.tgz", "integrity": "sha512-nfUefLi/ik2tyP24arZ1e9ULy3QWTtI9V84udQ3BF9KKPgqEIR7fs1odPYGx60vLDi0JWh8sRf8L+zEmU3wNsw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/vaadin-themable-mixin": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.7.0-alpha0.tgz", "integrity": "sha512-mp73VeGiJcgTFHiHQtE2Dj3jwOutwPdYHqEL5m2GtlpiaVyKZzok4Zj3gTJS1kYhJaE3Q0B+LdSfgDTFhQbMGA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", @@ -5000,29 +5000,29 @@ } }, "node_modules/@vaadin/vertical-layout": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/vertical-layout/-/vertical-layout-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/vertical-layout/-/vertical-layout-24.7.0-alpha0.tgz", "integrity": "sha512-H1UbiLGn2GgquG3C4Zx53R9J7gRE76WaL0Bi822kKjl3/x2K4zF6aQ0SmQRGsh38n3JKND+R8X0NcKX3w3wsKw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/virtual-list": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/virtual-list/-/virtual-list-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/virtual-list/-/virtual-list-24.7.0-alpha0.tgz", "integrity": "sha512-Udi+298334TIRfQL+lxiR+tlJ8/jaTdXjo5h+nQYae7KzFCupsM8evnD/+BGqB2U0RzhYUxqN2D7SWuHfdZN5Q==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, diff --git a/packages/java/tests/gradle/single-module-tests/package.json b/packages/java/tests/gradle/single-module-tests/package.json index 837721b555..8ee6994390 100644 --- a/packages/java/tests/gradle/single-module-tests/package.json +++ b/packages/java/tests/gradle/single-module-tests/package.json @@ -1,11 +1,11 @@ { - "name": "no-name", + "private": true, "license": "UNLICENSED", "dependencies": { - "@vaadin/react-components": "24.4.0-alpha14", + "@vaadin/react-components": "24.6.0-rc1", "@polymer/polymer": "3.5.1", "@vaadin-component-factory/vcf-nav": "1.1.0", - "@vaadin/bundles": "24.4.0-alpha14", + "@vaadin/bundles": "24.6.0-rc1", "@vaadin/common-frontend": "0.0.19", "@vaadin/hilla-file-router": "file:../../../../ts/file-router", "@vaadin/hilla-frontend": "file:../../../../ts/frontend", @@ -21,9 +21,7 @@ "lit": "3.1.2", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-router-dom": "6.22.2", - "@types/react-dom": "18.2.18", - "@types/react": "18.2.50" + "react-router-dom": "6.22.2" }, "devDependencies": { "@lit-labs/react": "^1.1.0", @@ -38,6 +36,7 @@ "@vaadin/hilla-generator-plugin-client": "file:../../../../ts/generator-plugin-client", "@vaadin/hilla-generator-plugin-model": "file:../../../../ts/generator-plugin-model", "@vaadin/hilla-generator-plugin-push": "file:../../../../ts/generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "file:../../../../ts/generator-plugin-signals", "@vaadin/hilla-generator-plugin-subtypes": "file:../../../../ts/generator-plugin-subtypes", "@vaadin/hilla-generator-utils": "file:../../../../ts/generator-utils", "@vitejs/plugin-react": "4.2.1", @@ -71,6 +70,7 @@ "@vaadin/hilla-generator-plugin-model": "$@vaadin/hilla-generator-plugin-model", "@vaadin/hilla-generator-plugin-barrel": "$@vaadin/hilla-generator-plugin-barrel", "@vaadin/hilla-generator-plugin-push": "$@vaadin/hilla-generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "$@vaadin/hilla-generator-plugin-signals", "@vaadin/hilla-generator-core": "$@vaadin/hilla-generator-core", "@vaadin/hilla-generator-plugin-client": "$@vaadin/hilla-generator-plugin-client", "@vaadin/hilla-generator-utils": "$@vaadin/hilla-generator-utils", @@ -83,22 +83,23 @@ "vaadin": { "dependencies": { "@polymer/polymer": "3.5.1", - "@vaadin/bundles": "24.4.0-alpha14", + "@vaadin/bundles": "24.6.0-rc1", "@vaadin/common-frontend": "0.0.19", - "@vaadin/hilla-frontend": "24.4.0-alpha5", - "@vaadin/hilla-generator-cli": "24.4.0-alpha5", - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-backbone": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-barrel": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-model": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-push": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-subtypes": "24.4.0-alpha5", - "@vaadin/hilla-generator-utils": "24.4.0-alpha5", - "@vaadin/hilla-lit-form": "24.4.0-alpha5", - "@vaadin/hilla-react-auth": "24.4.0-alpha5", - "@vaadin/hilla-react-crud": "24.4.0-alpha5", - "@vaadin/hilla-react-form": "24.4.0-alpha5", + "@vaadin/hilla-frontend": "24.7.0-alpha0", + "@vaadin/hilla-generator-cli": "24.7.0-alpha0", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-barrel": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-push": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-signals": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-subtypes": "24.7.0-alpha0", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", + "@vaadin/hilla-lit-form": "24.7.0-alpha0", + "@vaadin/hilla-react-auth": "24.7.0-alpha0", + "@vaadin/hilla-react-crud": "24.7.0-alpha0", + "@vaadin/hilla-react-form": "24.7.0-alpha0", "@vaadin/router": "1.7.5", "construct-style-sheets-polyfill": "3.1.0", "lit": "3.1.2", diff --git a/packages/java/tests/gradle/single-module-tests/src/main/java/com/vaadin/hilla/gradle/plugin/test/endpoint/HelloReactEndpoint.java b/packages/java/tests/gradle/single-module-tests/src/main/java/com/vaadin/hilla/gradle/plugin/test/endpoint/HelloReactEndpoint.java index 6f4ef448db..be2d9c2cd7 100644 --- a/packages/java/tests/gradle/single-module-tests/src/main/java/com/vaadin/hilla/gradle/plugin/test/endpoint/HelloReactEndpoint.java +++ b/packages/java/tests/gradle/single-module-tests/src/main/java/com/vaadin/hilla/gradle/plugin/test/endpoint/HelloReactEndpoint.java @@ -1,15 +1,16 @@ package com.vaadin.hilla.gradle.plugin.test.endpoint; +import org.jspecify.annotations.NonNull; + import com.vaadin.flow.server.auth.AnonymousAllowed; import com.vaadin.hilla.Endpoint; -import com.vaadin.hilla.Nonnull; @Endpoint @AnonymousAllowed public class HelloReactEndpoint { - @Nonnull - public String sayHello(@Nonnull String name) { + @NonNull + public String sayHello(@NonNull String name) { if (name.isEmpty()) { return "Hello stranger"; } else { diff --git a/packages/java/tests/gradle/single-module-tests/src/test/java/com/vaadin/hilla/gradle/plugin/test/ProductionBuildFunctionalIT.java b/packages/java/tests/gradle/single-module-tests/src/test/java/com/vaadin/hilla/gradle/plugin/test/ProductionBuildFunctionalIT.java index d0260c14c0..4acc61eafc 100644 --- a/packages/java/tests/gradle/single-module-tests/src/test/java/com/vaadin/hilla/gradle/plugin/test/ProductionBuildFunctionalIT.java +++ b/packages/java/tests/gradle/single-module-tests/src/test/java/com/vaadin/hilla/gradle/plugin/test/ProductionBuildFunctionalIT.java @@ -68,7 +68,7 @@ public void runProductionBuild() { } catch (IOException e) { fail(e); } - runGradleCommand("--info -Pvaadin.productionMode=true build"); + runGradleCommand("--info --stacktrace -Pvaadin.productionMode=true build"); } private void runGradleCommand(String executable) { diff --git a/packages/java/tests/gradle/single-module/build.gradle b/packages/java/tests/gradle/single-module/build.gradle index 0f837eb46c..4f73584aa2 100644 --- a/packages/java/tests/gradle/single-module/build.gradle +++ b/packages/java/tests/gradle/single-module/build.gradle @@ -1,15 +1,11 @@ plugins { - id 'org.springframework.boot' version '3.0.2' + id 'org.springframework.boot' version '3.3.6' id 'io.spring.dependency-management' version '1.0.15.RELEASE' id 'java' } apply plugin: 'com.vaadin.hilla' -hilla { - exposedPackagesToParser = ["com.vaadin.hilla.gradle.plugin.test"] -} - repositories { mavenLocal() mavenCentral() diff --git a/packages/java/tests/gradle/single-module/gradle.properties b/packages/java/tests/gradle/single-module/gradle.properties index 770672b0f5..4f1e2a7801 100644 --- a/packages/java/tests/gradle/single-module/gradle.properties +++ b/packages/java/tests/gradle/single-module/gradle.properties @@ -1,4 +1,4 @@ org.gradle.daemon=false -hillaVersion=24.5-SNAPSHOT -flowVersion=24.5-SNAPSHOT -vaadinComponentsVersion=24.4-SNAPSHOT +hillaVersion=24.7-SNAPSHOT +flowVersion=24.7-SNAPSHOT +vaadinComponentsVersion=24.7-SNAPSHOT diff --git a/packages/java/tests/gradle/single-module/gradle/wrapper/gradle-wrapper.jar b/packages/java/tests/gradle/single-module/gradle/wrapper/gradle-wrapper.jar index 41d9927a4d..e6441136f3 100644 Binary files a/packages/java/tests/gradle/single-module/gradle/wrapper/gradle-wrapper.jar and b/packages/java/tests/gradle/single-module/gradle/wrapper/gradle-wrapper.jar differ diff --git a/packages/java/tests/gradle/single-module/gradle/wrapper/gradle-wrapper.properties b/packages/java/tests/gradle/single-module/gradle/wrapper/gradle-wrapper.properties index a595206642..b82aa23a4f 100644 --- a/packages/java/tests/gradle/single-module/gradle/wrapper/gradle-wrapper.properties +++ b/packages/java/tests/gradle/single-module/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/packages/java/tests/gradle/single-module/gradlew b/packages/java/tests/gradle/single-module/gradlew index 1b6c787337..1aa94a4269 100755 --- a/packages/java/tests/gradle/single-module/gradlew +++ b/packages/java/tests/gradle/single-module/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -80,13 +80,11 @@ do esac done -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" +# This is normally unused +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -133,22 +131,29 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac case $MAX_FD in #( '' | soft) :;; #( *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -193,11 +198,15 @@ if "$cygwin" || "$msys" ; then done fi -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ @@ -205,6 +214,12 @@ set -- \ org.gradle.wrapper.GradleWrapperMain \ "$@" +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + # Use "xargs" to parse quoted args. # # With -n1 it outputs one arg per line, with the quotes and backslashes removed. diff --git a/packages/java/tests/gradle/single-module/gradlew.bat b/packages/java/tests/gradle/single-module/gradlew.bat index 107acd32c4..25da30dbde 100644 --- a/packages/java/tests/gradle/single-module/gradlew.bat +++ b/packages/java/tests/gradle/single-module/gradlew.bat @@ -14,7 +14,7 @@ @rem limitations under the License. @rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,7 +25,8 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -40,13 +41,13 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute +if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -56,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -75,13 +76,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/packages/java/tests/gradle/single-module/package-lock.json b/packages/java/tests/gradle/single-module/package-lock.json index 6b441a44ba..02e24dc804 100644 --- a/packages/java/tests/gradle/single-module/package-lock.json +++ b/packages/java/tests/gradle/single-module/package-lock.json @@ -57,7 +57,7 @@ }, "../../../../ts/frontend": { "name": "@vaadin/hilla-frontend", - "version": "24.4.0-alpha8", + "version": "24.7.0-alpha0", "license": "Apache-2.0", "dependencies": { "@vaadin/common-frontend": "^0.0.19", @@ -88,11 +88,11 @@ }, "../../../../ts/generator-cli": { "name": "@vaadin/hilla-generator-cli", - "version": "24.4.0-alpha8", + "version": "24.7.0-alpha0", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha8", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "get-stdin": "^9.0.0", "meow": "^12.1.1" }, @@ -106,7 +106,7 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha8", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "chai-as-promised": "^7.1.1", @@ -123,17 +123,17 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha8" + "@vaadin/hilla-generator-core": "24.7.0-alpha0" } }, "../../../../ts/generator-core": { "name": "@vaadin/hilla-generator-core", - "version": "24.4.0-alpha8", + "version": "24.7.0-alpha0", "dev": true, "license": "Apache 2.0", "dependencies": { "@apidevtools/swagger-parser": "^10.1.0", - "@vaadin/hilla-generator-utils": "24.4.0-alpha8", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "meow": "^12.1.1", "openapi-types": "^12.1.3", "typescript": "5.3.2" @@ -160,11 +160,11 @@ }, "../../../../ts/generator-plugin-backbone": { "name": "@vaadin/hilla-generator-plugin-backbone", - "version": "24.4.0-alpha8", + "version": "24.7.0-alpha0", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha8", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "5.3.2" @@ -175,8 +175,8 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha8", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha8", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "concurrently": "^8.2.1", @@ -192,17 +192,17 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha8", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha8" + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0" } }, "../../../../ts/generator-plugin-barrel": { "name": "@vaadin/hilla-generator-plugin-barrel", - "version": "24.4.0-alpha8", + "version": "24.7.0-alpha0", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha8", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "typescript": "5.3.2" }, "devDependencies": { @@ -211,8 +211,8 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha8", - "@vaadin/hilla-generator-plugin-backbone": "24.4.0-alpha8", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "concurrently": "^8.2.1", @@ -228,17 +228,17 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha8", - "@vaadin/hilla-generator-plugin-backbone": "24.4.0-alpha8" + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha0" } }, "../../../../ts/generator-plugin-client": { "name": "@vaadin/hilla-generator-plugin-client", - "version": "24.4.0-alpha8", + "version": "24.7.0-alpha0", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha8", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "typescript": "5.3.2" }, "devDependencies": { @@ -247,7 +247,7 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha8", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "concurrently": "^8.2.1", @@ -263,16 +263,16 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha8" + "@vaadin/hilla-generator-core": "24.7.0-alpha0" } }, "../../../../ts/generator-plugin-model": { "name": "@vaadin/hilla-generator-plugin-model", - "version": "24.4.0-alpha8", + "version": "24.7.0-alpha0", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha8", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "5.3.2" @@ -283,8 +283,8 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha8", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha8", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "concurrently": "^8.2.1", @@ -300,18 +300,18 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha8", - "@vaadin/hilla-generator-plugin-backbone": "24.4.0-alpha8", - "@vaadin/hilla-lit-form": "24.4.0-alpha8" + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha0", + "@vaadin/hilla-lit-form": "24.7.0-alpha0" } }, "../../../../ts/generator-plugin-push": { "name": "@vaadin/hilla-generator-plugin-push", - "version": "24.4.0-alpha8", + "version": "24.7.0-alpha0", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha8", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "5.3.2" @@ -322,8 +322,8 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha8", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha8", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "concurrently": "^8.2.1", @@ -339,17 +339,17 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha8", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha8" + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0" } }, "../../../../ts/generator-plugin-subtypes": { "name": "@vaadin/hilla-generator-plugin-subtypes", - "version": "24.4.0-alpha8", + "version": "24.7.0-alpha0", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha8", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "5.3.2" @@ -360,9 +360,9 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha8", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha8", - "@vaadin/hilla-generator-plugin-model": "24.4.0-alpha8", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "concurrently": "^8.2.1", @@ -378,14 +378,14 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha8", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha8", - "@vaadin/hilla-generator-plugin-model": "24.4.0-alpha8" + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha0" } }, "../../../../ts/generator-utils": { "name": "@vaadin/hilla-generator-utils", - "version": "24.4.0-alpha8", + "version": "24.7.0-alpha0", "dev": true, "license": "Apache 2.0", "dependencies": { @@ -415,10 +415,10 @@ }, "../../../../ts/file-router": { "name": "@vaadin/hilla-file-router", - "version": "24.4.0-alpha8", + "version": "24.7.0-alpha0", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha8", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "react": "^18.2.0", "typescript": "5.3.2" }, @@ -446,10 +446,10 @@ }, "../../../../ts/lit-form": { "name": "@vaadin/hilla-lit-form", - "version": "24.4.0-alpha8", + "version": "24.7.0-alpha0", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.4.0-alpha8", + "@vaadin/hilla-frontend": "24.7.0-alpha0", "validator": "^13.11.0" }, "devDependencies": { @@ -471,10 +471,10 @@ }, "../../../../ts/react-auth": { "name": "@vaadin/hilla-react-auth", - "version": "24.4.0-alpha8", + "version": "24.7.0-alpha0", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.4.0-alpha8" + "@vaadin/hilla-frontend": "24.7.0-alpha0" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -500,13 +500,13 @@ }, "../../../../ts/react-crud": { "name": "@vaadin/hilla-react-crud", - "version": "24.4.0-alpha8", + "version": "24.7.0-alpha0", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.4.0-alpha8", - "@vaadin/hilla-lit-form": "24.4.0-alpha8", - "@vaadin/hilla-react-form": "24.4.0-alpha8", - "@vaadin/react-components": "24.4.0-alpha15" + "@vaadin/hilla-frontend": "24.7.0-alpha0", + "@vaadin/hilla-lit-form": "24.7.0-alpha0", + "@vaadin/hilla-react-form": "24.7.0-alpha0", + "@vaadin/react-components": "24.6.0-rc1" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -533,10 +533,10 @@ }, "../../../../ts/react-form": { "name": "@vaadin/hilla-react-form", - "version": "24.4.0-alpha8", + "version": "24.7.0-alpha0", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-lit-form": "24.4.0-alpha8" + "@vaadin/hilla-lit-form": "24.7.0-alpha0" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -562,7 +562,7 @@ }, "../../../../ts/react-signals": { "name": "@vaadin/hilla-react-signals", - "version": "24.4.0-alpha8", + "version": "24.7.0-alpha0", "license": "Apache-2.0", "dependencies": { "@preact/signals-react": "^2.0.0" diff --git a/packages/java/tests/gradle/single-module/package.json b/packages/java/tests/gradle/single-module/package.json index a809e71da1..74dcf09612 100644 --- a/packages/java/tests/gradle/single-module/package.json +++ b/packages/java/tests/gradle/single-module/package.json @@ -1,5 +1,5 @@ { - "name": "no-name", + "private": true, "license": "UNLICENSED", "type": "module", "dependencies": { @@ -35,6 +35,7 @@ "@vaadin/hilla-generator-plugin-client": "file:../../../../ts/generator-plugin-client", "@vaadin/hilla-generator-plugin-model": "file:../../../../ts/generator-plugin-model", "@vaadin/hilla-generator-plugin-push": "file:../../../../ts/generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "file:../../../../ts/generator-plugin-signals", "@vaadin/hilla-generator-plugin-subtypes": "file:../../../../ts/generator-plugin-subtypes", "@vaadin/hilla-generator-utils": "file:../../../../ts/generator-utils", "@vitejs/plugin-react": "4.2.1", @@ -64,6 +65,7 @@ "@vaadin/hilla-generator-plugin-model": "$@vaadin/hilla-generator-plugin-model", "@vaadin/hilla-generator-plugin-barrel": "$@vaadin/hilla-generator-plugin-barrel", "@vaadin/hilla-generator-plugin-push": "$@vaadin/hilla-generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "$@vaadin/hilla-generator-plugin-signals", "@vaadin/hilla-generator-core": "$@vaadin/hilla-generator-core", "@vaadin/hilla-generator-plugin-client": "$@vaadin/hilla-generator-plugin-client", "@vaadin/hilla-generator-utils": "$@vaadin/hilla-generator-utils", @@ -82,22 +84,23 @@ "dependencies": { "@polymer/polymer": "3.5.1", "@vaadin/common-frontend": "0.0.19", - "@vaadin/hilla-file-router": "24.4.0-alpha7", - "@vaadin/hilla-frontend": "24.4.0-alpha7", - "@vaadin/hilla-generator-cli": "24.4.0-alpha7", - "@vaadin/hilla-generator-core": "24.4.0-alpha7", - "@vaadin/hilla-generator-plugin-backbone": "24.4.0-alpha7", - "@vaadin/hilla-generator-plugin-barrel": "24.4.0-alpha7", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha7", - "@vaadin/hilla-generator-plugin-model": "24.4.0-alpha7", - "@vaadin/hilla-generator-plugin-push": "24.4.0-alpha7", - "@vaadin/hilla-generator-plugin-subtypes": "24.4.0-alpha7", - "@vaadin/hilla-generator-utils": "24.4.0-alpha7", - "@vaadin/hilla-lit-form": "24.4.0-alpha7", - "@vaadin/hilla-react-auth": "24.4.0-alpha7", - "@vaadin/hilla-react-crud": "24.4.0-alpha7", - "@vaadin/hilla-react-form": "24.4.0-alpha7", - "@vaadin/hilla-react-signals": "24.4.0-alpha7", + "@vaadin/hilla-file-router": "24.7.0-alpha0", + "@vaadin/hilla-frontend": "24.7.0-alpha0", + "@vaadin/hilla-generator-cli": "24.7.0-alpha0", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-barrel": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-push": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-signals": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-subtypes": "24.7.0-alpha0", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", + "@vaadin/hilla-lit-form": "24.7.0-alpha0", + "@vaadin/hilla-react-auth": "24.7.0-alpha0", + "@vaadin/hilla-react-crud": "24.7.0-alpha0", + "@vaadin/hilla-react-form": "24.7.0-alpha0", + "@vaadin/hilla-react-signals": "24.7.0-alpha0", "construct-style-sheets-polyfill": "3.1.0", "lit": "3.1.2", "react": "18.2.0", @@ -110,15 +113,15 @@ "@rollup/pluginutils": "5.1.0", "@types/react": "18.2.60", "@types/react-dom": "18.2.19", - "@vaadin/hilla-generator-cli": "24.4.0-alpha7", - "@vaadin/hilla-generator-core": "24.4.0-alpha7", - "@vaadin/hilla-generator-plugin-backbone": "24.4.0-alpha7", - "@vaadin/hilla-generator-plugin-barrel": "24.4.0-alpha7", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha7", - "@vaadin/hilla-generator-plugin-model": "24.4.0-alpha7", - "@vaadin/hilla-generator-plugin-push": "24.4.0-alpha7", - "@vaadin/hilla-generator-plugin-subtypes": "24.4.0-alpha7", - "@vaadin/hilla-generator-utils": "24.4.0-alpha7", + "@vaadin/hilla-generator-cli": "24.7.0-alpha0", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-barrel": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-push": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-subtypes": "24.7.0-alpha0", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "@vitejs/plugin-react": "4.2.1", "async": "3.2.5", "glob": "10.3.10", diff --git a/packages/java/tests/gradle/single-module/src/main/frontend/App.tsx b/packages/java/tests/gradle/single-module/src/main/frontend/App.tsx index 3aaf8e8ec7..265f231fb5 100644 --- a/packages/java/tests/gradle/single-module/src/main/frontend/App.tsx +++ b/packages/java/tests/gradle/single-module/src/main/frontend/App.tsx @@ -1,5 +1,5 @@ import router from './routes'; -import { RouterProvider } from 'react-router-dom'; +import { RouterProvider } from 'react-router'; export default function App() { return ; diff --git a/packages/java/tests/gradle/single-module/src/main/frontend/_views/MainLayout.tsx b/packages/java/tests/gradle/single-module/src/main/frontend/_views/MainLayout.tsx index 89e9a07721..70bf9e967f 100644 --- a/packages/java/tests/gradle/single-module/src/main/frontend/_views/MainLayout.tsx +++ b/packages/java/tests/gradle/single-module/src/main/frontend/_views/MainLayout.tsx @@ -5,7 +5,7 @@ import { Scroller } from '@vaadin/react-components/Scroller.js'; import Placeholder from '../components/placeholder/Placeholder'; import { MenuProps, routes, useViewMatches, ViewRouteObject } from '../routes'; import { Suspense } from 'react'; -import { NavLink, Outlet } from 'react-router-dom'; +import { NavLink, Outlet } from 'react-router'; import css from './MainLayout.module.css'; type MenuRoute = ViewRouteObject & diff --git a/packages/java/tests/gradle/single-module/src/main/frontend/routes.tsx b/packages/java/tests/gradle/single-module/src/main/frontend/routes.tsx index ded3e68db1..387b3f25e0 100644 --- a/packages/java/tests/gradle/single-module/src/main/frontend/routes.tsx +++ b/packages/java/tests/gradle/single-module/src/main/frontend/routes.tsx @@ -1,7 +1,7 @@ import HelloReactView from './_views/helloreact/HelloReactView'; import MainLayout from './_views/MainLayout'; import { lazy } from 'react'; -import { createBrowserRouter, IndexRouteObject, NonIndexRouteObject, useMatches } from 'react-router-dom'; +import { createBrowserRouter, IndexRouteObject, NonIndexRouteObject, useMatches } from 'react-router'; const AboutView = lazy(async () => import('./_views/about/AboutView')); export type MenuProps = Readonly<{ diff --git a/packages/java/tests/gradle/single-module/src/main/java/com/vaadin/hilla/gradle/plugin/test/endpoint/HelloReactEndpoint.java b/packages/java/tests/gradle/single-module/src/main/java/com/vaadin/hilla/gradle/plugin/test/endpoint/HelloReactEndpoint.java index 6f4ef448db..be2d9c2cd7 100644 --- a/packages/java/tests/gradle/single-module/src/main/java/com/vaadin/hilla/gradle/plugin/test/endpoint/HelloReactEndpoint.java +++ b/packages/java/tests/gradle/single-module/src/main/java/com/vaadin/hilla/gradle/plugin/test/endpoint/HelloReactEndpoint.java @@ -1,15 +1,16 @@ package com.vaadin.hilla.gradle.plugin.test.endpoint; +import org.jspecify.annotations.NonNull; + import com.vaadin.flow.server.auth.AnonymousAllowed; import com.vaadin.hilla.Endpoint; -import com.vaadin.hilla.Nonnull; @Endpoint @AnonymousAllowed public class HelloReactEndpoint { - @Nonnull - public String sayHello(@Nonnull String name) { + @NonNull + public String sayHello(@NonNull String name) { if (name.isEmpty()) { return "Hello stranger"; } else { diff --git a/packages/java/tests/pom.xml b/packages/java/tests/pom.xml index 9f7ddd81ee..5c493501f4 100644 --- a/packages/java/tests/pom.xml +++ b/packages/java/tests/pom.xml @@ -6,7 +6,7 @@ com.vaadin hilla-project - 24.5-SNAPSHOT + 24.7-SNAPSHOT ../../../pom.xml @@ -15,7 +15,7 @@ pom - 24.5-SNAPSHOT + 24.7-SNAPSHOT 11.0.20 diff --git a/packages/java/tests/spring/endpoints discovery/package-lock.json b/packages/java/tests/spring/endpoints discovery/package-lock.json index 4883315a12..9164230ff9 100644 --- a/packages/java/tests/spring/endpoints discovery/package-lock.json +++ b/packages/java/tests/spring/endpoints discovery/package-lock.json @@ -1,30 +1,30 @@ { - "name": "no-name", + "name": "endpoints discovery", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "no-name", "license": "UNLICENSED", "dependencies": { - "@polymer/polymer": "3.5.1", + "@polymer/polymer": "3.5.2", "@vaadin/common-frontend": "0.0.19", "@vaadin/hilla-frontend": "file:../../../../ts/frontend", "@vaadin/hilla-lit-form": "file:../../../../ts/lit-form", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/icons": "24.5.0-alpha3", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/router": "1.7.5", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/icons": "24.7.0-alpha4", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/router": "2.0.0", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "construct-style-sheets-polyfill": "3.1.0", - "lit": "3.1.4" + "lit": "3.2.1" }, "devDependencies": { - "@babel/preset-react": "7.24.7", - "@rollup/plugin-replace": "5.0.7", - "@rollup/pluginutils": "5.1.0", + "@babel/preset-react": "7.26.3", + "@preact/signals-react-transform": "0.5.1", + "@rollup/plugin-replace": "6.0.2", + "@rollup/pluginutils": "5.1.4", "@vaadin/hilla-generator-cli": "file:../../../../ts/generator-cli", "@vaadin/hilla-generator-core": "file:../../../../ts/generator-core", "@vaadin/hilla-generator-plugin-backbone": "file:../../../../ts/generator-plugin-backbone", @@ -32,26 +32,27 @@ "@vaadin/hilla-generator-plugin-client": "file:../../../../ts/generator-plugin-client", "@vaadin/hilla-generator-plugin-model": "file:../../../../ts/generator-plugin-model", "@vaadin/hilla-generator-plugin-push": "file:../../../../ts/generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "file:../../../../ts/generator-plugin-signals", "@vaadin/hilla-generator-plugin-subtypes": "file:../../../../ts/generator-plugin-subtypes", "@vaadin/hilla-generator-utils": "file:../../../../ts/generator-utils", - "@vitejs/plugin-react": "4.3.1", - "async": "3.2.5", - "glob": "10.4.1", + "@vitejs/plugin-react": "4.3.4", + "async": "3.2.6", + "glob": "11.0.0", "rollup-plugin-brotli": "3.1.0", - "rollup-plugin-visualizer": "5.12.0", + "rollup-plugin-visualizer": "5.13.1", "strip-css-comments": "5.0.0", "transform-ast": "2.4.4", - "typescript": "5.4.5", - "vite": "5.3.1", - "vite-plugin-checker": "0.6.4", - "workbox-build": "7.1.1", - "workbox-core": "7.1.0", - "workbox-precaching": "7.1.0" + "typescript": "5.7.3", + "vite": "6.0.6", + "vite-plugin-checker": "0.8.0", + "workbox-build": "7.3.0", + "workbox-core": "7.3.0", + "workbox-precaching": "7.3.0" } }, "../../../../ts/frontend": { "name": "@vaadin/hilla-frontend", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { "@vaadin/common-frontend": "^0.0.19", @@ -59,22 +60,22 @@ "js-cookie": "^3.0.5" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@open-wc/testing": "^3.2.0", - "@types/atmosphere.js": "^2.1.4", - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/js-cookie": "^3.0.4", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", + "@open-wc/testing": "^3.2.2", + "@types/atmosphere.js": "^2.1.6", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/js-cookie": "^3.0.6", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", "fetch-mock": "^9.11.0", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { "lit": "^3.0.0" @@ -82,69 +83,69 @@ }, "../../../../ts/generator-cli": { "name": "@vaadin/hilla-generator-cli", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "get-stdin": "^9.0.0", - "meow": "^12.1.1" + "meow": "^13.2.0" }, "bin": { "tsgen": "bin/index.js" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "chai-as-promised": "^7.1.1", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-as-promised": "^7.1.2", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2" } }, "../../../../ts/generator-core": { "name": "@vaadin/hilla-generator-core", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { "@apidevtools/swagger-parser": "^10.1.0", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "meow": "^12.1.1", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "meow": "^13.2.0", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" @@ -152,247 +153,281 @@ }, "../../../../ts/generator-plugin-backbone": { "name": "@vaadin/hilla-generator-plugin-backbone", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2" } }, "../../../../ts/generator-plugin-barrel": { "name": "@vaadin/hilla-generator-plugin-barrel", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "typescript": "5.3.2" + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2" } }, "../../../../ts/generator-plugin-client": { "name": "@vaadin/hilla-generator-plugin-client", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "typescript": "5.3.2" + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2" } }, "../../../../ts/generator-plugin-model": { "name": "@vaadin/hilla-generator-plugin-model", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "@vaadin/hilla-lit-form": "24.5.0-alpha2" } }, "../../../../ts/generator-plugin-push": { "name": "@vaadin/hilla-generator-plugin-push", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" + } + }, + "../../../../ts/generator-plugin-signals": { + "name": "@vaadin/hilla-generator-plugin-signals", + "version": "24.7.0-alpha5", + "dev": true, + "license": "Apache 2.0", + "dependencies": { + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "fast-deep-equal": "^3.1.3", + "iterator-helpers-polyfill": "^3.0.1", + "openapi-types": "^12.1.3", + "typescript": "5.7.2" }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2" + "devDependencies": { + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", + "copyfiles": "^2.4.1", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "type-fest": "^4.30.2" + }, + "engines": { + "node": ">= 16.13" } }, "../../../../ts/generator-plugin-subtypes": { "name": "@vaadin/hilla-generator-plugin-subtypes", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2" } }, "../../../../ts/generator-utils": { "name": "@vaadin/hilla-generator-utils", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "pino": "^8.15.1", - "pino-pretty": "^10.2.0", - "typescript": "5.3.2" + "pino": "^9.5.0", + "pino-pretty": "^10.3.1", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-like": "^1.1.3", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" @@ -404,7 +439,7 @@ "extraneous": true, "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.4.0", + "@vaadin/hilla-frontend": "24.7.0-alpha0", "validator": "^13.11.0" }, "devDependencies": { @@ -426,24 +461,24 @@ }, "../../../../ts/lit-form": { "name": "@vaadin/hilla-lit-form", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "validator": "^13.11.0" + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "validator": "^13.12.0" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@types/chai": "^4.3.6", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-dom": "^1.11.0", - "sinon": "^16.0.0", + "@types/chai": "^4.3.20", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-dom": "^1.12.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { "lit": "^3.0.0" @@ -451,11 +486,11 @@ }, "../../../../ts/react-auth": { "name": "@vaadin/hilla-react-auth", - "version": "24.4.0-alpha4", + "version": "24.7.0-alpha0", "extraneous": true, "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.4.0-alpha4" + "@vaadin/hilla-frontend": "24.7.0-alpha0" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -481,14 +516,14 @@ }, "../../../../ts/react-crud": { "name": "@vaadin/hilla-react-crud", - "version": "24.4.0-alpha4", + "version": "24.7.0-alpha0", "extraneous": true, "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.4.0-alpha4", - "@vaadin/hilla-lit-form": "24.4.0-alpha4", - "@vaadin/hilla-react-form": "24.4.0-alpha4", - "@vaadin/react-components": "24.4.0-alpha10" + "@vaadin/hilla-frontend": "24.7.0-alpha0", + "@vaadin/hilla-lit-form": "24.7.0-alpha0", + "@vaadin/hilla-react-form": "24.7.0-alpha0", + "@vaadin/react-components": "24.6.0-rc1" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -515,11 +550,11 @@ }, "../../../../ts/react-form": { "name": "@vaadin/hilla-react-form", - "version": "24.4.0-alpha4", + "version": "24.7.0-alpha0", "extraneous": true, "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-lit-form": "24.4.0-alpha4" + "@vaadin/hilla-lit-form": "24.7.0-alpha0" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -560,12 +595,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -573,30 +609,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", - "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz", - "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.6", - "@babel/generator": "^7.24.6", - "@babel/helper-compilation-targets": "^7.24.6", - "@babel/helper-module-transforms": "^7.24.6", - "@babel/helpers": "^7.24.6", - "@babel/parser": "^7.24.6", - "@babel/template": "^7.24.6", - "@babel/traverse": "^7.24.6", - "@babel/types": "^7.24.6", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -617,29 +653,6 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -650,15 +663,16 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "dev": true, "dependencies": { - "@babel/types": "^7.24.7", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" @@ -678,25 +692,13 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/generator/node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -716,14 +718,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", - "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.24.6", - "@babel/helper-validator-option": "^7.24.6", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -855,29 +857,6 @@ "@babel/core": "^7.4.0-0" } }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -949,29 +928,27 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", - "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-module-imports": "^7.24.6", - "@babel/helper-simple-access": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -993,9 +970,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -1032,12 +1009,13 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", - "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", "dev": true, "dependencies": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1068,27 +1046,27 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -1110,76 +1088,26 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.6.tgz", - "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.24.6", - "@babel/types": "^7.24.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "@babel/types": "^7.26.0" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -1558,12 +1486,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2054,12 +1982,12 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", - "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2069,16 +1997,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz", - "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2088,12 +2016,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", - "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", "dev": true, "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.24.7" + "@babel/plugin-transform-react-jsx": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2103,12 +2031,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.6.tgz", - "integrity": "sha512-FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2118,12 +2046,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.6.tgz", - "integrity": "sha512-BQTBCXmFRreU3oTUXcGKuPOfXAGb1liNY4AvvFKsOBAJ89RKcTsIrSsnMYkj59fNa66OFKnSa4AJZfy5Y4B9WA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2133,13 +2061,13 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", - "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2410,17 +2338,17 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", - "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", + "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-transform-react-display-name": "^7.24.7", - "@babel/plugin-transform-react-jsx": "^7.24.7", - "@babel/plugin-transform-react-jsx-development": "^7.24.7", - "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-react-display-name": "^7.25.9", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/plugin-transform-react-jsx-development": "^7.25.9", + "@babel/plugin-transform-react-pure-annotations": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2448,33 +2376,30 @@ "dev": true }, "node_modules/@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2482,23 +2407,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -2508,401 +2416,442 @@ "node": ">=4" } }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/types/node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "cpu": [ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@isaacs/cliui": { @@ -2910,6 +2859,7 @@ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2923,10 +2873,11 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2939,6 +2890,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -3021,9 +2973,9 @@ } }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", - "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", + "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==" }, "node_modules/@lit/reactive-element": { "version": "2.0.4", @@ -3073,22 +3025,63 @@ "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==" }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "node_modules/@polymer/polymer": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.2.tgz", + "integrity": "sha512-fWwImY/UH4bb2534DVSaX+Azs2yKg8slkMBHOyGeU2kKx7Xmxp6Lee0jP8p6B3d7c1gFUPB2Z976dTUtX81pQA==", + "dependencies": { + "@webcomponents/shadycss": "^1.9.1" + } + }, + "node_modules/@preact/signals-core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.8.0.tgz", + "integrity": "sha512-OBvUsRZqNmjzCZXWLxkZfhcgT+Fk8DDcT/8vD6a1xhDemodyy87UJRJfASMuSD8FaAIeGgGm85ydXhm7lr4fyA==", "dev": true, - "optional": true, - "engines": { - "node": ">=14" + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" } }, - "node_modules/@polymer/polymer": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.1.tgz", - "integrity": "sha512-JlAHuy+1qIC6hL1ojEUfIVD58fzTpJAoCxFwV5yr0mYTXV1H8bz5zy0+rC963Cgr9iNXQ4T9ncSjC2fkF9BQfw==", + "node_modules/@preact/signals-react": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@preact/signals-react/-/signals-react-3.0.0.tgz", + "integrity": "sha512-lCG3HIH5NlpQscVKQ5b+hgmRKorra/BcjMdEloMoa+/eLYmve06j3tFetN+nedDSpIHtSb3FFX0y3wUg/Nuxyw==", + "dev": true, + "license": "MIT", "dependencies": { - "@webcomponents/shadycss": "^1.9.1" + "@preact/signals-core": "^1.7.0", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + }, + "peerDependencies": { + "react": "^16.14.0 || 17.x || 18.x || 19.x" + } + }, + "node_modules/@preact/signals-react-transform": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@preact/signals-react-transform/-/signals-react-transform-0.5.1.tgz", + "integrity": "sha512-/w1rgu7i/qDk8dhDj+6AVVVJ+b1W11YkP3vfPPPyrn1tDCPb8orYwETa3JCvYxMtJBHbvIYEjhXvZ8Ab2cWC8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@preact/signals-react": "^3.0.0", + "debug": "^4.3.4", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "react": "^16.14.0 || 17.x || 18.x || 19.x" } }, "node_modules/@rollup/plugin-babel": { @@ -3163,10 +3156,11 @@ } }, "node_modules/@rollup/plugin-replace": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz", - "integrity": "sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.2.tgz", + "integrity": "sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "magic-string": "^0.30.3" @@ -3218,14 +3212,15 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "picomatch": "^4.0.2" }, "engines": { "node": ">=14.0.0" @@ -3245,10 +3240,22 @@ "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", "dev": true }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz", + "integrity": "sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==", "cpu": [ "arm" ], @@ -3259,9 +3266,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.0.tgz", + "integrity": "sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==", "cpu": [ "arm64" ], @@ -3272,9 +3279,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz", + "integrity": "sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==", "cpu": [ "arm64" ], @@ -3285,9 +3292,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.0.tgz", + "integrity": "sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==", "cpu": [ "x64" ], @@ -3297,10 +3304,49 @@ "darwin" ] }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.0.tgz", + "integrity": "sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.0.tgz", + "integrity": "sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.0.tgz", + "integrity": "sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.0.tgz", + "integrity": "sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==", "cpu": [ "arm" ], @@ -3311,9 +3357,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.0.tgz", + "integrity": "sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==", "cpu": [ "arm64" ], @@ -3324,9 +3370,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.0.tgz", + "integrity": "sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==", "cpu": [ "arm64" ], @@ -3336,10 +3382,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.0.tgz", + "integrity": "sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.0.tgz", + "integrity": "sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==", "cpu": [ "riscv64" ], @@ -3349,10 +3408,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.0.tgz", + "integrity": "sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.0.tgz", + "integrity": "sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==", "cpu": [ "x64" ], @@ -3363,9 +3435,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.0.tgz", + "integrity": "sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==", "cpu": [ "x64" ], @@ -3376,9 +3448,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.0.tgz", + "integrity": "sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==", "cpu": [ "arm64" ], @@ -3389,9 +3461,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.0.tgz", + "integrity": "sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==", "cpu": [ "ia32" ], @@ -3402,9 +3474,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.0.tgz", + "integrity": "sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==", "cpu": [ "x64" ], @@ -3512,13 +3584,14 @@ "integrity": "sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==" }, "node_modules/@vaadin/a11y-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.5.0-alpha3.tgz", - "integrity": "sha512-hJN/e1FbzwkT6b3QEma04UHX0B8q8KlwGmIfnJG19FPb/UynuzSoaZguMljT/YvpiBgBFZT+Fem6WliprwU3wg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.7.0-alpha4.tgz", + "integrity": "sha512-s1sdmb5rX8i6bxCPl6AyzV+6n32ym0u1bMcJwrhYoXm9qK0wnNz0hsTt9r9wNuZRjxpbGmuRd2rpLh6twAbuDA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", "lit": "^3.0.0" } }, @@ -3534,9 +3607,10 @@ } }, "node_modules/@vaadin/component-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.5.0-alpha3.tgz", - "integrity": "sha512-3OAScmXraCAihHCJ62ZNEy9LsMpeWh2/KnPN4tsot1piHtMSnH7r4SFKC/4iNjQsuecou5TmDXuMACFcrlbouA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.7.0-alpha4.tgz", + "integrity": "sha512-oAnXewVRiCa43n7NTeQhof6sd1ib9AQ/wZEVeKESx+/To0cSZEWzdq7uClLYnpw6ah5kVXdGQDozEHkc+o+tEQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", @@ -3577,6 +3651,10 @@ "resolved": "../../../../ts/generator-plugin-push", "link": true }, + "node_modules/@vaadin/hilla-generator-plugin-signals": { + "resolved": "../../../../ts/generator-plugin-signals", + "link": true + }, "node_modules/@vaadin/hilla-generator-plugin-subtypes": { "resolved": "../../../../ts/generator-plugin-subtypes", "link": true @@ -3590,90 +3668,119 @@ "link": true }, "node_modules/@vaadin/icon": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.5.0-alpha3.tgz", - "integrity": "sha512-CUVOeGF+kJ/lE3r/pJuShGTvfQyApFGoephomig4HQ3NJupazAANLnRXAconLAod/RPUWVKhLGqD33SnPKyp7A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.7.0-alpha4.tgz", + "integrity": "sha512-ELyn24AgdCRk9sOWnHbJqb4G8Gj2xr2YuC87dSKCg0E2mpAzxgA0xIObPO2DjWTzhprRy2XWsbkklzJFLKv1ag==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/icons": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.5.0-alpha3.tgz", - "integrity": "sha512-LZjQrwgw34HILPhSXpvabVQiEZzEDeeePFIdkIaxcjqC6bc2JjAecA0rPh2sci6mqCTed7ap9mZPxlitDi/uBQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.7.0-alpha4.tgz", + "integrity": "sha512-b2C00K2zkxg8dOsKSvWjBO/gVfSx96uQilksTZBOI3GXi1+UTqc5DzzYrOOH+Y0XqcqU7ynqqmkRTeyWJSiSSw==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/icon": "24.5.0-alpha3" + "@vaadin/icon": "24.7.0-alpha4" + } + }, + "node_modules/@vaadin/lit-renderer": { + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.7.0-alpha4.tgz", + "integrity": "sha512-jsgSnG3RoG0XX9k02cA0lqYw4KctzkW+hzq8+rAE1zLIJs4CQpe0jUzu1cGVy1bgJlPguvYVbQAitPc3+hFn/w==", + "license": "Apache-2.0", + "dependencies": { + "lit": "^3.0.0" } }, "node_modules/@vaadin/overlay": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.5.0-alpha3.tgz", - "integrity": "sha512-zH72InlWhwkBqdUMoIbHPXUajHapTVTwebZgddqE9FjBxRyfSF2062jrHcX6dFR4tNlspbem6z/EeWk4BWxBQw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.7.0-alpha4.tgz", + "integrity": "sha512-z2eHVojBg7o0vQWRhLPy2jfhuhTWrjnvOdw3FmkUnw8jy11Qqf/Pz0hMvy7cWE2d6ThLMjAnTzjlnRX/8y7U0w==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/polymer-legacy-adapter": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.5.0-alpha3.tgz", - "integrity": "sha512-W9yXABgFVqyIvMaHXewyqn4Tg3HiVEhDYbW8it9YZVnu9ej5msYXzyowZf/Lt4RQM9ogp9hx+deXR9W+297ivg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.7.0-alpha4.tgz", + "integrity": "sha512-+CvDzDA1a+9f877179k5ilVLq40e8HUSzvzGgiZDyrW1txmSRRdbQq5rX/qjHDjBXORqLLJGbkDRQmS2Y455yg==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/popover": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.5.0-alpha3.tgz", - "integrity": "sha512-niIKAipighHRoxcdteoptEu+JjyXT5TQhXagypI0hp0Sme7ZwQBnxlh+JdfKN/OV6hGrMt411wZntnc7bnVl7Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.7.0-alpha4.tgz", + "integrity": "sha512-KwhcnwrJoKjkVeScRF5RvBjBO8pS68Sgxd801qUj+X6bSBgtAAxMTS+yyQDUTVbAFmyr/pl2p8xE2mX5Hdi0ZQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/router": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-1.7.5.tgz", - "integrity": "sha512-uRN3vd1ihgd596bF/NMZqpgxau0nlvIc0/JDd1EwStFNbZID/xIVse5LXdQhIyUKLmSl4T0GeCQK505xerWX0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-2.0.0.tgz", + "integrity": "sha512-IjOlzuUsrVhfBId+ypcdDLM3+GZHo64DUlkr8IjFe04A4kMvt0zVFIpPH03X52/tMiwyYOF0Sw6p53DXkWiZcA==", "dependencies": { - "@vaadin/vaadin-usage-statistics": "^2.1.0", - "path-to-regexp": "2.4.0" + "@vaadin/vaadin-usage-statistics": "^2.1.2", + "path-to-regexp": "^6.3.0", + "type-fest": "^4.26.1" + } + }, + "node_modules/@vaadin/router/node_modules/type-fest": { + "version": "4.26.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", + "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@vaadin/tooltip": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.5.0-alpha3.tgz", - "integrity": "sha512-q5K9g3dCp/P8ED1/twharFiSGk1Zf09mApNdxyFl/wYduLxVnDG2h0WfE4rEl9Ix6h8N5NVmJ6Vl48UAZ5vgYQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.7.0-alpha4.tgz", + "integrity": "sha512-6Eb8kaZTpPCF6fptSAXlpYHO5HBDQiTMCbDtLX4cA0ov0rpaJ9YljVaZYYHyVF5lDDPhEfTGUq+f9MhMmIpW0w==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/popover": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/popover": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/vaadin-development-mode-detector": { @@ -3682,30 +3789,33 @@ "integrity": "sha512-N6a5nLT/ytEUlpPo+nvdCKIGoyNjPsj3rzPGvGYK8x9Ceg76OTe1xI/GtN71mRW9e2HUScR0kCNOkl1Z63YDjw==" }, "node_modules/@vaadin/vaadin-lumo-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-9zswr9ZNP6L7+VLCpD8yKKrlRzEC5gKJtfSRVhXqZwJ7x5Na1LVpJDzhDoKlqEcyPCsL/mcRllYAkT20hj0+8Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-L+rF8XYF+7hisu48wZK8MDjbwVMTmEteZsoTk1uyY6oCXyJEvBup1WwN2I0fFRlvSHMKnHNWDOuHmIfevK0uKQ==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "node_modules/@vaadin/vaadin-material-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-6CYxTPmT0ZU64H3wwzeDOrVF87wyU8CtLWLXNhXNkB+DSO44pCLML5kg1LwRRqnixY95x26LY+iSSITUSD8Pmw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-8fcm8oLtaI3BHewsP2d07YcIHw3GgFfFp83IHIoTG7MlaeJvAqvs2aPMcszLJ4s3WCLZnvsSkdwbgjdE0oYbhw==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "node_modules/@vaadin/vaadin-themable-mixin": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.5.0-alpha3.tgz", - "integrity": "sha512-gm/Adnsms4nUYONQPBDK91bPE7lfHFb27dBo31io7QAm5Cr+lBTd2U/Ce8eyK5+MialbabyZ2YQCgF3l2l8xWg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.7.0-alpha4.tgz", + "integrity": "sha512-x8Shc4t2WTV/2UtsXY8+n6KDYMvVaq0ZfNdldNkthfZjVfpCgioyZAtB6hZbEirvY6a5RRSQKcr12k2lrKDbTQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "lit": "^3.0.0" @@ -3724,14 +3834,14 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", - "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", "dev": true, "dependencies": { - "@babel/core": "^7.24.5", - "@babel/plugin-transform-react-jsx-self": "^7.24.5", - "@babel/plugin-transform-react-jsx-source": "^7.24.1", + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", "@types/babel__core": "^7.20.5", "react-refresh": "^0.14.2" }, @@ -3739,7 +3849,7 @@ "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" } }, "node_modules/@webcomponents/shadycss": { @@ -3849,9 +3959,9 @@ } }, "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "dev": true }, "node_modules/at-least-node": { @@ -3964,9 +4074,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", "dev": true, "funding": [ { @@ -3983,10 +4093,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -4057,9 +4167,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001572", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz", - "integrity": "sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==", + "version": "1.0.30001667", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", + "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", "dev": true, "funding": [ { @@ -4144,37 +4254,19 @@ }, "node_modules/cliui/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cliui/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/cliui/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -4225,19 +4317,24 @@ } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" }, "node_modules/common-tags": { "version": "1.8.2", @@ -4320,6 +4417,23 @@ "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", "dev": true }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", @@ -4398,7 +4512,8 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ejs": { "version": "3.1.8", @@ -4416,16 +4531,17 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.616", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz", - "integrity": "sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==", + "version": "1.5.33", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.33.tgz", + "integrity": "sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==", "dev": true }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/error-ex": { "version": "1.3.2", @@ -4493,47 +4609,50 @@ } }, "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "engines": { "node": ">=6" @@ -4809,22 +4928,24 @@ } }, "node_modules/glob": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", "minipass": "^7.1.2", - "path-scurry": "^1.11.1" + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4847,20 +4968,22 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/glob/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4916,15 +5039,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/has-property-descriptors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", @@ -5344,21 +5458,19 @@ "dev": true }, "node_modules/jackspeak": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", - "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=14" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/jake": { @@ -5410,24 +5522,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jake/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/jake/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -5455,6 +5549,18 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -5537,29 +5643,29 @@ "peer": true }, "node_modules/lit": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.4.tgz", - "integrity": "sha512-q6qKnKXHy2g1kjBaNfcoLlgbI3+aSOZ9Q4tiGa9bGYXq5RBXxkVTqTIVmP2VWMp29L4GyvCFm8ZQ2o56eUAMyA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz", + "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==", "dependencies": { "@lit/reactive-element": "^2.0.4", - "lit-element": "^4.0.4", - "lit-html": "^3.1.2" + "lit-element": "^4.1.0", + "lit-html": "^3.2.0" } }, "node_modules/lit-element": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", - "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz", + "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==", "dependencies": { "@lit-labs/ssr-dom-shim": "^1.2.0", "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.1.2" + "lit-html": "^3.2.0" } }, "node_modules/lit-html": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", - "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz", + "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==", "dependencies": { "@types/trusted-types": "^2.0.2" } @@ -5746,10 +5852,17 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "node_modules/mutexify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz", @@ -5776,9 +5889,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true, "funding": [ { @@ -5794,9 +5907,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, "node_modules/normalize-package-data": { @@ -5941,6 +6054,12 @@ "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -5997,39 +6116,41 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", "dev": true, + "license": "ISC", "engines": { - "node": "14 || >=16.14" + "node": "20 || >=22" } }, "node_modules/path-to-regexp": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.4.0.tgz", - "integrity": "sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==" }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, "node_modules/picomatch": { @@ -6045,9 +6166,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, "funding": [ { @@ -6065,8 +6186,8 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -6148,6 +6269,17 @@ "safe-buffer": "^5.1.0" } }, + "node_modules/react": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", @@ -6380,13 +6512,14 @@ } }, "node_modules/rollup-plugin-visualizer": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz", - "integrity": "sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==", + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.13.1.tgz", + "integrity": "sha512-vMg8i6BprL8aFm9DKvL2c8AwS8324EgymYQo9o6E26wgVvwMhsJxS37aNL6ZsU7X9iAcMYwdME7gItLfG5fwJg==", "dev": true, + "license": "MIT", "dependencies": { "open": "^8.4.0", - "picomatch": "^2.3.1", + "picomatch": "^4.0.2", "source-map": "^0.7.4", "yargs": "^17.5.1" }, @@ -6394,17 +6527,34 @@ "rollup-plugin-visualizer": "dist/bin/cli.js" }, "engines": { - "node": ">=14" + "node": ">=18" }, "peerDependencies": { + "rolldown": "1.x", "rollup": "2.x || 3.x || 4.x" }, "peerDependenciesMeta": { + "rolldown": { + "optional": true + }, "rollup": { "optional": true } } }, + "node_modules/rollup-plugin-visualizer/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/rollup-plugin-visualizer/node_modules/source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -6530,9 +6680,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -6589,6 +6739,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -6607,6 +6758,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -6621,6 +6773,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6629,13 +6782,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -6644,10 +6799,11 @@ } }, "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -6660,6 +6816,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -6749,6 +6906,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -6761,6 +6919,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -7021,10 +7180,11 @@ } }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -7128,9 +7288,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "funding": [ { @@ -7147,8 +7307,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -7166,6 +7326,16 @@ "punycode": "^2.1.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -7179,20 +7349,21 @@ } }, "node_modules/vite": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", - "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.6.tgz", + "integrity": "sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==", "dev": true, + "license": "MIT", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.38", - "rollup": "^4.13.0" + "esbuild": "^0.24.2", + "postcss": "^8.4.49", + "rollup": "^4.23.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -7201,18 +7372,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", - "terser": "^5.4.0" + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -7222,6 +7400,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -7230,13 +7411,19 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, "node_modules/vite-plugin-checker": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.6.4.tgz", - "integrity": "sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.8.0.tgz", + "integrity": "sha512-UA5uzOGm97UvZRTdZHiQVYFnd86AVn8EVaD4L3PoVzxH+IZSfaAw14WGFwX9QS23UW3lV/5bVKZn6l0w+q9P0g==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", @@ -7247,7 +7434,6 @@ "fast-glob": "^3.2.7", "fs-extra": "^11.1.0", "npm-run-path": "^4.0.1", - "semver": "^7.5.0", "strip-ansi": "^6.0.0", "tiny-invariant": "^1.1.0", "vscode-languageclient": "^7.0.0", @@ -7259,6 +7445,7 @@ "node": ">=14.16" }, "peerDependencies": { + "@biomejs/biome": ">=1.7", "eslint": ">=7", "meow": "^9.0.0", "optionator": "^0.9.1", @@ -7267,9 +7454,12 @@ "vite": ">=2.0.0", "vls": "*", "vti": "*", - "vue-tsc": ">=1.3.9" + "vue-tsc": "~2.1.6" }, "peerDependenciesMeta": { + "@biomejs/biome": { + "optional": true + }, "eslint": { "optional": true }, @@ -7336,24 +7526,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/vite-plugin-checker/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/vite-plugin-checker/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/vite-plugin-checker/node_modules/commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", @@ -7411,18 +7583,18 @@ } }, "node_modules/vite/node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, "node_modules/vite/node_modules/rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.0.tgz", + "integrity": "sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==", "dev": true, "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -7432,19 +7604,24 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", + "@rollup/rollup-android-arm-eabi": "4.28.0", + "@rollup/rollup-android-arm64": "4.28.0", + "@rollup/rollup-darwin-arm64": "4.28.0", + "@rollup/rollup-darwin-x64": "4.28.0", + "@rollup/rollup-freebsd-arm64": "4.28.0", + "@rollup/rollup-freebsd-x64": "4.28.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.28.0", + "@rollup/rollup-linux-arm-musleabihf": "4.28.0", + "@rollup/rollup-linux-arm64-gnu": "4.28.0", + "@rollup/rollup-linux-arm64-musl": "4.28.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.28.0", + "@rollup/rollup-linux-riscv64-gnu": "4.28.0", + "@rollup/rollup-linux-s390x-gnu": "4.28.0", + "@rollup/rollup-linux-x64-gnu": "4.28.0", + "@rollup/rollup-linux-x64-musl": "4.28.0", + "@rollup/rollup-win32-arm64-msvc": "4.28.0", + "@rollup/rollup-win32-ia32-msvc": "4.28.0", + "@rollup/rollup-win32-x64-msvc": "4.28.0", "fsevents": "~2.3.2" } }, @@ -7560,28 +7737,28 @@ } }, "node_modules/workbox-background-sync": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.1.0.tgz", - "integrity": "sha512-rMbgrzueVWDFcEq1610YyDW71z0oAXLfdRHRQcKw4SGihkfOK0JUEvqWHFwA6rJ+6TClnMIn7KQI5PNN1XQXwQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.3.0.tgz", + "integrity": "sha512-PCSk3eK7Mxeuyatb22pcSx9dlgWNv3+M8PqPaYDokks8Y5/FX4soaOqj3yhAZr5k6Q5JWTOMYgaJBpbw11G9Eg==", "dev": true, "dependencies": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-broadcast-update": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.1.0.tgz", - "integrity": "sha512-O36hIfhjej/c5ar95pO67k1GQw0/bw5tKP7CERNgK+JdxBANQhDmIuOXZTNvwb2IHBx9hj2kxvcDyRIh5nzOgQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.3.0.tgz", + "integrity": "sha512-T9/F5VEdJVhwmrIAE+E/kq5at2OY6+OXXgOWQevnubal6sO92Gjo24v6dCVwQiclAF5NS3hlmsifRrpQzZCdUA==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-build": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.1.1.tgz", - "integrity": "sha512-WdkVdC70VMpf5NBCtNbiwdSZeKVuhTEd5PV3mAwpTQCGAB5XbOny1P9egEgNdetv4srAMmMKjvBk4RD58LpooA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.3.0.tgz", + "integrity": "sha512-JGL6vZTPlxnlqZRhR/K/msqg3wKP+m0wfEUVosK7gsYzSgeIxvZLi1ViJJzVL7CEeI8r7rGFV973RiEqkP3lWQ==", "dev": true, "dependencies": { "@apideck/better-ajv-errors": "^0.3.1", @@ -7606,21 +7783,21 @@ "strip-comments": "^2.0.1", "tempy": "^0.6.0", "upath": "^1.2.0", - "workbox-background-sync": "7.1.0", - "workbox-broadcast-update": "7.1.0", - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-google-analytics": "7.1.0", - "workbox-navigation-preload": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-range-requests": "7.1.0", - "workbox-recipes": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0", - "workbox-streams": "7.1.0", - "workbox-sw": "7.1.0", - "workbox-window": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-broadcast-update": "7.3.0", + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-google-analytics": "7.3.0", + "workbox-navigation-preload": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-range-requests": "7.3.0", + "workbox-recipes": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0", + "workbox-streams": "7.3.0", + "workbox-sw": "7.3.0", + "workbox-window": "7.3.0" }, "engines": { "node": ">=16.0.0" @@ -7728,127 +7905,127 @@ } }, "node_modules/workbox-cacheable-response": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.1.0.tgz", - "integrity": "sha512-iwsLBll8Hvua3xCuBB9h92+/e0wdsmSVgR2ZlvcfjepZWwhd3osumQB3x9o7flj+FehtWM2VHbZn8UJeBXXo6Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.3.0.tgz", + "integrity": "sha512-eAFERIg6J2LuyELhLlmeRcJFa5e16Mj8kL2yCDbhWE+HUun9skRQrGIFVUagqWj4DMaaPSMWfAolM7XZZxNmxA==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-core": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.1.0.tgz", - "integrity": "sha512-5KB4KOY8rtL31nEF7BfvU7FMzKT4B5TkbYa2tzkS+Peqj0gayMT9SytSFtNzlrvMaWgv6y/yvP9C0IbpFjV30Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.3.0.tgz", + "integrity": "sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw==", "dev": true }, "node_modules/workbox-expiration": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.1.0.tgz", - "integrity": "sha512-m5DcMY+A63rJlPTbbBNtpJ20i3enkyOtSgYfv/l8h+D6YbbNiA0zKEkCUaMsdDlxggla1oOfRkyqTvl5Ni5KQQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.3.0.tgz", + "integrity": "sha512-lpnSSLp2BM+K6bgFCWc5bS1LR5pAwDWbcKt1iL87/eTSJRdLdAwGQznZE+1czLgn/X05YChsrEegTNxjM067vQ==", "dev": true, "dependencies": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-google-analytics": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.1.0.tgz", - "integrity": "sha512-FvE53kBQHfVTcZyczeBVRexhh7JTkyQ8HAvbVY6mXd2n2A7Oyz/9fIwnY406ZcDhvE4NFfKGjW56N4gBiqkrew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.3.0.tgz", + "integrity": "sha512-ii/tSfFdhjLHZ2BrYgFNTrb/yk04pw2hasgbM70jpZfLk0vdJAXgaiMAWsoE+wfJDNWoZmBYY0hMVI0v5wWDbg==", "dev": true, "dependencies": { - "workbox-background-sync": "7.1.0", - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "node_modules/workbox-navigation-preload": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.1.0.tgz", - "integrity": "sha512-4wyAbo0vNI/X0uWNJhCMKxnPanNyhybsReMGN9QUpaePLTiDpKxPqFxl4oUmBNddPwIXug01eTSLVIFXimRG/A==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.3.0.tgz", + "integrity": "sha512-fTJzogmFaTv4bShZ6aA7Bfj4Cewaq5rp30qcxl2iYM45YD79rKIhvzNHiFj1P+u5ZZldroqhASXwwoyusnr2cg==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-precaching": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.1.0.tgz", - "integrity": "sha512-LyxzQts+UEpgtmfnolo0hHdNjoB7EoRWcF7EDslt+lQGd0lW4iTvvSe3v5JiIckQSB5KTW5xiCqjFviRKPj1zA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.3.0.tgz", + "integrity": "sha512-ckp/3t0msgXclVAYaNndAGeAoWQUv7Rwc4fdhWL69CCAb2UHo3Cef0KIUctqfQj1p8h6aGyz3w8Cy3Ihq9OmIw==", "dev": true, "dependencies": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "node_modules/workbox-range-requests": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.1.0.tgz", - "integrity": "sha512-m7+O4EHolNs5yb/79CrnwPR/g/PRzMFYEdo01LqwixVnc/sbzNSvKz0d04OE3aMRel1CwAAZQheRsqGDwATgPQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.3.0.tgz", + "integrity": "sha512-EyFmM1KpDzzAouNF3+EWa15yDEenwxoeXu9bgxOEYnFfCxns7eAxA9WSSaVd8kujFFt3eIbShNqa4hLQNFvmVQ==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-recipes": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.1.0.tgz", - "integrity": "sha512-NRrk4ycFN9BHXJB6WrKiRX3W3w75YNrNrzSX9cEZgFB5ubeGoO8s/SDmOYVrFYp9HMw6sh1Pm3eAY/1gVS8YLg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.3.0.tgz", + "integrity": "sha512-BJro/MpuW35I/zjZQBcoxsctgeB+kyb2JAP5EB3EYzePg8wDGoQuUdyYQS+CheTb+GhqJeWmVs3QxLI8EBP1sg==", "dev": true, "dependencies": { - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "node_modules/workbox-routing": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.1.0.tgz", - "integrity": "sha512-oOYk+kLriUY2QyHkIilxUlVcFqwduLJB7oRZIENbqPGeBP/3TWHYNNdmGNhz1dvKuw7aqvJ7CQxn27/jprlTdg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.3.0.tgz", + "integrity": "sha512-ZUlysUVn5ZUzMOmQN3bqu+gK98vNfgX/gSTZ127izJg/pMMy4LryAthnYtjuqcjkN4HEAx1mdgxNiKJMZQM76A==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-strategies": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.1.0.tgz", - "integrity": "sha512-/UracPiGhUNehGjRm/tLUQ+9PtWmCbRufWtV0tNrALuf+HZ4F7cmObSEK+E4/Bx1p8Syx2tM+pkIrvtyetdlew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.3.0.tgz", + "integrity": "sha512-tmZydug+qzDFATwX7QiEL5Hdf7FrkhjaF9db1CbB39sDmEZJg3l9ayDvPxy8Y18C3Y66Nrr9kkN1f/RlkDgllg==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-streams": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.1.0.tgz", - "integrity": "sha512-WyHAVxRXBMfysM8ORwiZnI98wvGWTVAq/lOyBjf00pXFvG0mNaVz4Ji+u+fKa/mf1i2SnTfikoYKto4ihHeS6w==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.3.0.tgz", + "integrity": "sha512-SZnXucyg8x2Y61VGtDjKPO5EgPUG5NDn/v86WYHX+9ZqvAsGOytP0Jxp1bl663YUuMoXSAtsGLL+byHzEuMRpw==", "dev": true, "dependencies": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0" } }, "node_modules/workbox-sw": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.1.0.tgz", - "integrity": "sha512-Hml/9+/njUXBglv3dtZ9WBKHI235AQJyLBV1G7EFmh4/mUdSQuXui80RtjDeVRrXnm/6QWgRUEHG3/YBVbxtsA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.3.0.tgz", + "integrity": "sha512-aCUyoAZU9IZtH05mn0ACUpyHzPs0lMeJimAYkQkBsOWiqaJLgusfDCR+yllkPkFRxWpZKF8vSvgHYeG7LwhlmA==", "dev": true }, "node_modules/workbox-window": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.1.0.tgz", - "integrity": "sha512-ZHeROyqR+AS5UPzholQRDttLFqGMwP0Np8MKWAdyxsDETxq3qOAyXvqessc3GniohG6e0mAqSQyKOHmT8zPF7g==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.3.0.tgz", + "integrity": "sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==", "dev": true, "dependencies": { "@types/trusted-types": "^2.0.2", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/wrap-ansi": { @@ -7856,6 +8033,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -7874,6 +8052,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7891,6 +8070,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -7900,6 +8080,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -7910,35 +8091,19 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7953,6 +8118,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -7961,10 +8127,11 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7977,6 +8144,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7989,6 +8157,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -8116,37 +8285,38 @@ } }, "@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "requires": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" } }, "@babel/compat-data": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", - "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "dev": true }, "@babel/core": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz", - "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "requires": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.6", - "@babel/generator": "^7.24.6", - "@babel/helper-compilation-targets": "^7.24.6", - "@babel/helper-module-transforms": "^7.24.6", - "@babel/helpers": "^7.24.6", - "@babel/parser": "^7.24.6", - "@babel/template": "^7.24.6", - "@babel/traverse": "^7.24.6", - "@babel/types": "^7.24.6", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -8160,21 +8330,6 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -8184,15 +8339,16 @@ } }, "@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "dev": true, "requires": { - "@babel/types": "^7.24.7", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "dependencies": { "@jridgewell/gen-mapping": { @@ -8205,22 +8361,16 @@ "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true } } }, "@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, "requires": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { @@ -8234,14 +8384,14 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", - "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.24.6", - "@babel/helper-validator-option": "^7.24.6", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -8347,21 +8497,6 @@ "semver": "^6.1.2" }, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -8417,26 +8552,24 @@ } }, "@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "requires": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" } }, "@babel/helper-module-transforms": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", - "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-module-imports": "^7.24.6", - "@babel/helper-simple-access": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" } }, "@babel/helper-optimise-call-expression": { @@ -8449,9 +8582,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true }, "@babel/helper-remap-async-to-generator": { @@ -8479,12 +8612,13 @@ } }, "@babel/helper-simple-access": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", - "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", "dev": true, "requires": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -8506,21 +8640,21 @@ } }, "@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true }, "@babel/helper-wrap-function": { @@ -8536,64 +8670,24 @@ } }, "@babel/helpers": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.6.tgz", - "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "requires": { - "@babel/template": "^7.24.6", - "@babel/types": "^7.24.6" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" } }, - "@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "@babel/types": "^7.26.0" } }, - "@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", - "dev": true - }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.17.12", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", @@ -8836,12 +8930,12 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -9157,62 +9251,62 @@ } }, "@babel/plugin-transform-react-display-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", - "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz", - "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", - "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", "dev": true, "requires": { - "@babel/plugin-transform-react-jsx": "^7.24.7" + "@babel/plugin-transform-react-jsx": "^7.25.9" } }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.6.tgz", - "integrity": "sha512-FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.6.tgz", - "integrity": "sha512-BQTBCXmFRreU3oTUXcGKuPOfXAGb1liNY4AvvFKsOBAJ89RKcTsIrSsnMYkj59fNa66OFKnSa4AJZfy5Y4B9WA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-transform-react-pure-annotations": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", - "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-transform-regenerator": { @@ -9415,17 +9509,17 @@ } }, "@babel/preset-react": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", - "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", + "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-transform-react-display-name": "^7.24.7", - "@babel/plugin-transform-react-jsx": "^7.24.7", - "@babel/plugin-transform-react-jsx-development": "^7.24.7", - "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-react-display-name": "^7.25.9", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/plugin-transform-react-jsx-development": "^7.25.9", + "@babel/plugin-transform-react-pure-annotations": "^7.25.9" } }, "@babel/runtime": { @@ -9446,234 +9540,221 @@ } }, "@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "requires": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" } }, "@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true } } }, "@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - } + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" } }, "@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "dev": true, "optional": true }, "@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "dev": true, "optional": true }, "@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "dev": true, "optional": true }, "@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "dev": true, "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "dev": true, "optional": true }, "@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "dev": true, "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "dev": true, "optional": true }, "@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "dev": true, "optional": true }, "@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "dev": true, "optional": true }, "@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "dev": true, "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "dev": true, "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "dev": true, "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "dev": true, "optional": true }, "@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "dev": true, "optional": true }, "@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", "dev": true, "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", "dev": true, "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "dev": true, "optional": true }, "@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "dev": true, "optional": true }, "@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "dev": true, "optional": true }, "@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "dev": true, "optional": true }, "@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "dev": true, "optional": true }, @@ -9692,9 +9773,9 @@ }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true }, "strip-ansi": { @@ -9770,9 +9851,9 @@ } }, "@lit-labs/ssr-dom-shim": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", - "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", + "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==" }, "@lit/reactive-element": { "version": "2.0.4", @@ -9813,21 +9894,43 @@ "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==" }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true - }, "@polymer/polymer": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.1.tgz", - "integrity": "sha512-JlAHuy+1qIC6hL1ojEUfIVD58fzTpJAoCxFwV5yr0mYTXV1H8bz5zy0+rC963Cgr9iNXQ4T9ncSjC2fkF9BQfw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.2.tgz", + "integrity": "sha512-fWwImY/UH4bb2534DVSaX+Azs2yKg8slkMBHOyGeU2kKx7Xmxp6Lee0jP8p6B3d7c1gFUPB2Z976dTUtX81pQA==", "requires": { "@webcomponents/shadycss": "^1.9.1" } }, + "@preact/signals-core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.8.0.tgz", + "integrity": "sha512-OBvUsRZqNmjzCZXWLxkZfhcgT+Fk8DDcT/8vD6a1xhDemodyy87UJRJfASMuSD8FaAIeGgGm85ydXhm7lr4fyA==", + "dev": true + }, + "@preact/signals-react": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@preact/signals-react/-/signals-react-3.0.0.tgz", + "integrity": "sha512-lCG3HIH5NlpQscVKQ5b+hgmRKorra/BcjMdEloMoa+/eLYmve06j3tFetN+nedDSpIHtSb3FFX0y3wUg/Nuxyw==", + "dev": true, + "requires": { + "@preact/signals-core": "^1.7.0", + "use-sync-external-store": "^1.2.0" + } + }, + "@preact/signals-react-transform": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@preact/signals-react-transform/-/signals-react-transform-0.5.1.tgz", + "integrity": "sha512-/w1rgu7i/qDk8dhDj+6AVVVJ+b1W11YkP3vfPPPyrn1tDCPb8orYwETa3JCvYxMtJBHbvIYEjhXvZ8Ab2cWC8g==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@preact/signals-react": "^3.0.0", + "debug": "^4.3.4", + "use-sync-external-store": "^1.2.0" + } + }, "@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -9872,9 +9975,9 @@ } }, "@rollup/plugin-replace": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz", - "integrity": "sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.2.tgz", + "integrity": "sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==", "dev": true, "requires": { "@rollup/pluginutils": "^5.0.1", @@ -9904,14 +10007,14 @@ } }, "@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "dev": true, "requires": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "picomatch": "^4.0.2" }, "dependencies": { "@types/estree": { @@ -9919,97 +10022,138 @@ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", "dev": true + }, + "picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true } } }, "@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz", + "integrity": "sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==", "dev": true, "optional": true }, "@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.0.tgz", + "integrity": "sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==", "dev": true, "optional": true }, "@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz", + "integrity": "sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==", "dev": true, "optional": true }, "@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.0.tgz", + "integrity": "sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-arm64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.0.tgz", + "integrity": "sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-x64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.0.tgz", + "integrity": "sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.0.tgz", + "integrity": "sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.0.tgz", + "integrity": "sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.0.tgz", + "integrity": "sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.0.tgz", + "integrity": "sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.0.tgz", + "integrity": "sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==", "dev": true, "optional": true }, "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.0.tgz", + "integrity": "sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.0.tgz", + "integrity": "sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.0.tgz", + "integrity": "sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.0.tgz", + "integrity": "sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==", "dev": true, "optional": true }, "@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.0.tgz", + "integrity": "sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==", "dev": true, "optional": true }, "@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.0.tgz", + "integrity": "sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==", "dev": true, "optional": true }, "@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.0.tgz", + "integrity": "sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==", "dev": true, "optional": true }, @@ -10111,14 +10255,14 @@ "integrity": "sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==" }, "@vaadin/a11y-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.5.0-alpha3.tgz", - "integrity": "sha512-hJN/e1FbzwkT6b3QEma04UHX0B8q8KlwGmIfnJG19FPb/UynuzSoaZguMljT/YvpiBgBFZT+Fem6WliprwU3wg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.7.0-alpha4.tgz", + "integrity": "sha512-s1sdmb5rX8i6bxCPl6AyzV+6n32ym0u1bMcJwrhYoXm9qK0wnNz0hsTt9r9wNuZRjxpbGmuRd2rpLh6twAbuDA==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", - "@vaadin/component-base": "24.5.0-alpha3", - "lit": "3.1.4" + "@polymer/polymer": "3.5.2", + "@vaadin/component-base": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/common-frontend": { @@ -10130,359 +10274,417 @@ } }, "@vaadin/component-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.5.0-alpha3.tgz", - "integrity": "sha512-3OAScmXraCAihHCJ62ZNEy9LsMpeWh2/KnPN4tsot1piHtMSnH7r4SFKC/4iNjQsuecou5TmDXuMACFcrlbouA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.7.0-alpha4.tgz", + "integrity": "sha512-oAnXewVRiCa43n7NTeQhof6sd1ib9AQ/wZEVeKESx+/To0cSZEWzdq7uClLYnpw6ah5kVXdGQDozEHkc+o+tEQ==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", + "@polymer/polymer": "3.5.2", "@vaadin/vaadin-development-mode-detector": "^2.0.0", "@vaadin/vaadin-usage-statistics": "^2.1.0", - "lit": "3.1.4" + "lit": "3.2.1" } }, "@vaadin/hilla-frontend": { "version": "file:../../../../ts/frontend", "requires": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@open-wc/testing": "^3.2.0", - "@types/atmosphere.js": "^2.1.4", - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/js-cookie": "^3.0.4", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", + "@open-wc/testing": "^3.2.2", + "@types/atmosphere.js": "^2.1.6", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/js-cookie": "^3.0.6", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", "@vaadin/common-frontend": "^0.0.19", "atmosphere.js": "^3.1.3", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", "fetch-mock": "^9.11.0", "js-cookie": "^3.0.5", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-cli": { "version": "file:../../../../ts/generator-cli", "requires": { - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "chai-as-promised": "^7.1.1", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-as-promised": "^7.1.2", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "get-stdin": "^9.0.0", - "meow": "^12.1.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "meow": "^13.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" } }, "@vaadin/hilla-generator-core": { "version": "file:../../../../ts/generator-core", "requires": { "@apidevtools/swagger-parser": "^10.1.0", - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "meow": "^12.1.1", - "mocha": "^10.2.0", + "meow": "^13.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-backbone": { "version": "file:../../../../ts/generator-plugin-backbone", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "fast-deep-equal": "^3.1.3", - "mocha": "^10.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-barrel": { "version": "file:../../../../ts/generator-plugin-barrel", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-client": { "version": "file:../../../../ts/generator-plugin-client", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-model": { "version": "file:../../../../ts/generator-plugin-model", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "fast-deep-equal": "^3.1.3", - "mocha": "^10.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-push": { "version": "file:../../../../ts/generator-plugin-push", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "fast-deep-equal": "^3.1.3", - "mocha": "^10.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" + } + }, + "@vaadin/hilla-generator-plugin-signals": { + "version": "file:../../../../ts/generator-plugin-signals", + "requires": { + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", + "copyfiles": "^2.4.1", + "fast-deep-equal": "^3.1.3", + "iterator-helpers-polyfill": "^3.0.1", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "openapi-types": "^12.1.3", + "pino": "^9.5.0", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-subtypes": { "version": "file:../../../../ts/generator-plugin-subtypes", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "fast-deep-equal": "^3.1.3", - "mocha": "^10.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-utils": { "version": "file:../../../../ts/generator-utils", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-like": "^1.1.3", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "pino-pretty": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "pino-pretty": "^10.3.1", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-lit-form": { "version": "file:../../../../ts/lit-form", "requires": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@types/chai": "^4.3.6", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "chai-dom": "^1.11.0", - "sinon": "^16.0.0", + "@types/chai": "^4.3.20", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "chai": "^5.1.2", + "chai-dom": "^1.12.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2", - "validator": "^13.11.0" + "typescript": "5.7.2", + "validator": "^13.12.0" } }, "@vaadin/icon": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.5.0-alpha3.tgz", - "integrity": "sha512-CUVOeGF+kJ/lE3r/pJuShGTvfQyApFGoephomig4HQ3NJupazAANLnRXAconLAod/RPUWVKhLGqD33SnPKyp7A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.7.0-alpha4.tgz", + "integrity": "sha512-ELyn24AgdCRk9sOWnHbJqb4G8Gj2xr2YuC87dSKCg0E2mpAzxgA0xIObPO2DjWTzhprRy2XWsbkklzJFLKv1ag==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "lit": "3.1.4" + "@polymer/polymer": "3.5.2", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/icons": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.5.0-alpha3.tgz", - "integrity": "sha512-LZjQrwgw34HILPhSXpvabVQiEZzEDeeePFIdkIaxcjqC6bc2JjAecA0rPh2sci6mqCTed7ap9mZPxlitDi/uBQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.7.0-alpha4.tgz", + "integrity": "sha512-b2C00K2zkxg8dOsKSvWjBO/gVfSx96uQilksTZBOI3GXi1+UTqc5DzzYrOOH+Y0XqcqU7ynqqmkRTeyWJSiSSw==", + "requires": { + "@polymer/polymer": "3.5.2", + "@vaadin/icon": "24.7.0-alpha4" + } + }, + "@vaadin/lit-renderer": { + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.7.0-alpha4.tgz", + "integrity": "sha512-jsgSnG3RoG0XX9k02cA0lqYw4KctzkW+hzq8+rAE1zLIJs4CQpe0jUzu1cGVy1bgJlPguvYVbQAitPc3+hFn/w==", "requires": { - "@polymer/polymer": "3.5.1", - "@vaadin/icon": "24.5.0-alpha3" + "lit": "3.2.1" } }, "@vaadin/overlay": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.5.0-alpha3.tgz", - "integrity": "sha512-zH72InlWhwkBqdUMoIbHPXUajHapTVTwebZgddqE9FjBxRyfSF2062jrHcX6dFR4tNlspbem6z/EeWk4BWxBQw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.7.0-alpha4.tgz", + "integrity": "sha512-z2eHVojBg7o0vQWRhLPy2jfhuhTWrjnvOdw3FmkUnw8jy11Qqf/Pz0hMvy7cWE2d6ThLMjAnTzjlnRX/8y7U0w==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "lit": "3.1.4" + "@polymer/polymer": "3.5.2", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/polymer-legacy-adapter": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.5.0-alpha3.tgz", - "integrity": "sha512-W9yXABgFVqyIvMaHXewyqn4Tg3HiVEhDYbW8it9YZVnu9ej5msYXzyowZf/Lt4RQM9ogp9hx+deXR9W+297ivg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.7.0-alpha4.tgz", + "integrity": "sha512-+CvDzDA1a+9f877179k5ilVLq40e8HUSzvzGgiZDyrW1txmSRRdbQq5rX/qjHDjBXORqLLJGbkDRQmS2Y455yg==", "requires": { - "@polymer/polymer": "3.5.1", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "lit": "3.1.4" + "@polymer/polymer": "3.5.2", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/popover": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.5.0-alpha3.tgz", - "integrity": "sha512-niIKAipighHRoxcdteoptEu+JjyXT5TQhXagypI0hp0Sme7ZwQBnxlh+JdfKN/OV6hGrMt411wZntnc7bnVl7Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.7.0-alpha4.tgz", + "integrity": "sha512-KwhcnwrJoKjkVeScRF5RvBjBO8pS68Sgxd801qUj+X6bSBgtAAxMTS+yyQDUTVbAFmyr/pl2p8xE2mX5Hdi0ZQ==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "lit": "3.1.4" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/router": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-1.7.5.tgz", - "integrity": "sha512-uRN3vd1ihgd596bF/NMZqpgxau0nlvIc0/JDd1EwStFNbZID/xIVse5LXdQhIyUKLmSl4T0GeCQK505xerWX0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-2.0.0.tgz", + "integrity": "sha512-IjOlzuUsrVhfBId+ypcdDLM3+GZHo64DUlkr8IjFe04A4kMvt0zVFIpPH03X52/tMiwyYOF0Sw6p53DXkWiZcA==", "requires": { - "@vaadin/vaadin-usage-statistics": "^2.1.0", - "path-to-regexp": "2.4.0" + "@vaadin/vaadin-usage-statistics": "^2.1.2", + "path-to-regexp": "^6.3.0", + "type-fest": "^4.26.1" + }, + "dependencies": { + "type-fest": { + "version": "4.26.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", + "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==" + } } }, "@vaadin/tooltip": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.5.0-alpha3.tgz", - "integrity": "sha512-q5K9g3dCp/P8ED1/twharFiSGk1Zf09mApNdxyFl/wYduLxVnDG2h0WfE4rEl9Ix6h8N5NVmJ6Vl48UAZ5vgYQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.7.0-alpha4.tgz", + "integrity": "sha512-6Eb8kaZTpPCF6fptSAXlpYHO5HBDQiTMCbDtLX4cA0ov0rpaJ9YljVaZYYHyVF5lDDPhEfTGUq+f9MhMmIpW0w==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/popover": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@polymer/polymer": "3.5.2", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/popover": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/vaadin-development-mode-detector": { @@ -10491,33 +10693,33 @@ "integrity": "sha512-N6a5nLT/ytEUlpPo+nvdCKIGoyNjPsj3rzPGvGYK8x9Ceg76OTe1xI/GtN71mRW9e2HUScR0kCNOkl1Z63YDjw==" }, "@vaadin/vaadin-lumo-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-9zswr9ZNP6L7+VLCpD8yKKrlRzEC5gKJtfSRVhXqZwJ7x5Na1LVpJDzhDoKlqEcyPCsL/mcRllYAkT20hj0+8Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-L+rF8XYF+7hisu48wZK8MDjbwVMTmEteZsoTk1uyY6oCXyJEvBup1WwN2I0fFRlvSHMKnHNWDOuHmIfevK0uKQ==", "requires": { - "@polymer/polymer": "3.5.1", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@polymer/polymer": "3.5.2", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "@vaadin/vaadin-material-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-6CYxTPmT0ZU64H3wwzeDOrVF87wyU8CtLWLXNhXNkB+DSO44pCLML5kg1LwRRqnixY95x26LY+iSSITUSD8Pmw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-8fcm8oLtaI3BHewsP2d07YcIHw3GgFfFp83IHIoTG7MlaeJvAqvs2aPMcszLJ4s3WCLZnvsSkdwbgjdE0oYbhw==", "requires": { - "@polymer/polymer": "3.5.1", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@polymer/polymer": "3.5.2", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "@vaadin/vaadin-themable-mixin": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.5.0-alpha3.tgz", - "integrity": "sha512-gm/Adnsms4nUYONQPBDK91bPE7lfHFb27dBo31io7QAm5Cr+lBTd2U/Ce8eyK5+MialbabyZ2YQCgF3l2l8xWg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.7.0-alpha4.tgz", + "integrity": "sha512-x8Shc4t2WTV/2UtsXY8+n6KDYMvVaq0ZfNdldNkthfZjVfpCgioyZAtB6hZbEirvY6a5RRSQKcr12k2lrKDbTQ==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "lit": "3.1.4" + "lit": "3.2.1" } }, "@vaadin/vaadin-usage-statistics": { @@ -10529,14 +10731,14 @@ } }, "@vitejs/plugin-react": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", - "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", "dev": true, "requires": { - "@babel/core": "^7.24.5", - "@babel/plugin-transform-react-jsx-self": "^7.24.5", - "@babel/plugin-transform-react-jsx-source": "^7.24.1", + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", "@types/babel__core": "^7.20.5", "react-refresh": "^0.14.2" } @@ -10617,9 +10819,9 @@ "peer": true }, "async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "dev": true }, "at-least-node": { @@ -10713,15 +10915,15 @@ "dev": true }, "browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" } }, "buffer-from": { @@ -10768,9 +10970,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001572", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz", - "integrity": "sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==", + "version": "1.0.30001667", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", + "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", "dev": true }, "chalk": { @@ -10828,21 +11030,6 @@ "color-convert": "^2.0.1" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -10883,18 +11070,18 @@ } }, "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "common-tags": { @@ -10964,6 +11151,15 @@ "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", "dev": true }, + "debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", @@ -11032,9 +11228,9 @@ } }, "electron-to-chromium": { - "version": "1.4.616", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz", - "integrity": "sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==", + "version": "1.5.33", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.33.tgz", + "integrity": "sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==", "dev": true }, "emoji-regex": { @@ -11097,40 +11293,42 @@ } }, "esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "requires": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true }, "escape-string-regexp": { @@ -11346,16 +11544,17 @@ } }, "glob": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dev": true, "requires": { "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", "minipass": "^7.1.2", - "path-scurry": "^1.11.1" + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "dependencies": { "brace-expansion": { @@ -11368,9 +11567,9 @@ } }, "minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -11425,12 +11624,6 @@ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, "has-property-descriptors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", @@ -11718,13 +11911,12 @@ "dev": true }, "jackspeak": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", - "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", "dev": true, "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" + "@isaacs/cliui": "^8.0.2" } }, "jake": { @@ -11758,21 +11950,6 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -11796,6 +11973,12 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, + "jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true + }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -11861,29 +12044,29 @@ "peer": true }, "lit": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.4.tgz", - "integrity": "sha512-q6qKnKXHy2g1kjBaNfcoLlgbI3+aSOZ9Q4tiGa9bGYXq5RBXxkVTqTIVmP2VWMp29L4GyvCFm8ZQ2o56eUAMyA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz", + "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==", "requires": { "@lit/reactive-element": "^2.0.4", - "lit-element": "^4.0.4", - "lit-html": "^3.1.2" + "lit-element": "^4.1.0", + "lit-html": "^3.2.0" } }, "lit-element": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", - "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz", + "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==", "requires": { "@lit-labs/ssr-dom-shim": "^1.2.0", "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.1.2" + "lit-html": "^3.2.0" } }, "lit-html": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", - "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz", + "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==", "requires": { "@types/trusted-types": "^2.0.2" } @@ -12034,6 +12217,12 @@ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "mutexify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz", @@ -12056,15 +12245,15 @@ } }, "nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true }, "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, "normalize-package-data": { @@ -12170,6 +12359,12 @@ "optional": true, "peer": true }, + "package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -12211,32 +12406,32 @@ "dev": true }, "path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, "requires": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "dependencies": { "lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", "dev": true } } }, "path-to-regexp": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.4.0.tgz", - "integrity": "sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==" }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, "picomatch": { @@ -12246,14 +12441,14 @@ "dev": true }, "postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, "requires": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" } }, "pretty-bytes": { @@ -12303,6 +12498,13 @@ "safe-buffer": "^5.1.0" } }, + "react": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "dev": true, + "peer": true + }, "react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", @@ -12478,17 +12680,23 @@ "dev": true }, "rollup-plugin-visualizer": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz", - "integrity": "sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==", + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.13.1.tgz", + "integrity": "sha512-vMg8i6BprL8aFm9DKvL2c8AwS8324EgymYQo9o6E26wgVvwMhsJxS37aNL6ZsU7X9iAcMYwdME7gItLfG5fwJg==", "dev": true, "requires": { "open": "^8.4.0", - "picomatch": "^2.3.1", + "picomatch": "^4.0.2", "source-map": "^0.7.4", "yargs": "^17.5.1" }, "dependencies": { + "picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true + }, "source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -12575,9 +12783,9 @@ "dev": true }, "source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true }, "sourcemap-codec": { @@ -12638,9 +12846,9 @@ }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true }, "strip-ansi": { @@ -12947,9 +13155,9 @@ "dev": true }, "typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true }, "unbox-primitive": { @@ -13022,13 +13230,13 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" } }, "uri-js": { @@ -13040,6 +13248,13 @@ "punycode": "^2.1.0" } }, + "use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "dev": true, + "requires": {} + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -13053,52 +13268,57 @@ } }, "vite": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", - "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.6.tgz", + "integrity": "sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==", "dev": true, "requires": { - "esbuild": "^0.21.3", + "esbuild": "^0.24.2", "fsevents": "~2.3.3", - "postcss": "^8.4.38", - "rollup": "^4.13.0" + "postcss": "^8.4.49", + "rollup": "^4.23.0" }, "dependencies": { "@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, "rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.0.tgz", + "integrity": "sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==", "dev": true, "requires": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", - "@types/estree": "1.0.5", + "@rollup/rollup-android-arm-eabi": "4.28.0", + "@rollup/rollup-android-arm64": "4.28.0", + "@rollup/rollup-darwin-arm64": "4.28.0", + "@rollup/rollup-darwin-x64": "4.28.0", + "@rollup/rollup-freebsd-arm64": "4.28.0", + "@rollup/rollup-freebsd-x64": "4.28.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.28.0", + "@rollup/rollup-linux-arm-musleabihf": "4.28.0", + "@rollup/rollup-linux-arm64-gnu": "4.28.0", + "@rollup/rollup-linux-arm64-musl": "4.28.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.28.0", + "@rollup/rollup-linux-riscv64-gnu": "4.28.0", + "@rollup/rollup-linux-s390x-gnu": "4.28.0", + "@rollup/rollup-linux-x64-gnu": "4.28.0", + "@rollup/rollup-linux-x64-musl": "4.28.0", + "@rollup/rollup-win32-arm64-msvc": "4.28.0", + "@rollup/rollup-win32-ia32-msvc": "4.28.0", + "@rollup/rollup-win32-x64-msvc": "4.28.0", + "@types/estree": "1.0.6", "fsevents": "~2.3.2" } } } }, "vite-plugin-checker": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.6.4.tgz", - "integrity": "sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.8.0.tgz", + "integrity": "sha512-UA5uzOGm97UvZRTdZHiQVYFnd86AVn8EVaD4L3PoVzxH+IZSfaAw14WGFwX9QS23UW3lV/5bVKZn6l0w+q9P0g==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", @@ -13109,7 +13329,6 @@ "fast-glob": "^3.2.7", "fs-extra": "^11.1.0", "npm-run-path": "^4.0.1", - "semver": "^7.5.0", "strip-ansi": "^6.0.0", "tiny-invariant": "^1.1.0", "vscode-languageclient": "^7.0.0", @@ -13143,21 +13362,6 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", @@ -13295,28 +13499,28 @@ } }, "workbox-background-sync": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.1.0.tgz", - "integrity": "sha512-rMbgrzueVWDFcEq1610YyDW71z0oAXLfdRHRQcKw4SGihkfOK0JUEvqWHFwA6rJ+6TClnMIn7KQI5PNN1XQXwQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.3.0.tgz", + "integrity": "sha512-PCSk3eK7Mxeuyatb22pcSx9dlgWNv3+M8PqPaYDokks8Y5/FX4soaOqj3yhAZr5k6Q5JWTOMYgaJBpbw11G9Eg==", "dev": true, "requires": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-broadcast-update": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.1.0.tgz", - "integrity": "sha512-O36hIfhjej/c5ar95pO67k1GQw0/bw5tKP7CERNgK+JdxBANQhDmIuOXZTNvwb2IHBx9hj2kxvcDyRIh5nzOgQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.3.0.tgz", + "integrity": "sha512-T9/F5VEdJVhwmrIAE+E/kq5at2OY6+OXXgOWQevnubal6sO92Gjo24v6dCVwQiclAF5NS3hlmsifRrpQzZCdUA==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-build": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.1.1.tgz", - "integrity": "sha512-WdkVdC70VMpf5NBCtNbiwdSZeKVuhTEd5PV3mAwpTQCGAB5XbOny1P9egEgNdetv4srAMmMKjvBk4RD58LpooA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.3.0.tgz", + "integrity": "sha512-JGL6vZTPlxnlqZRhR/K/msqg3wKP+m0wfEUVosK7gsYzSgeIxvZLi1ViJJzVL7CEeI8r7rGFV973RiEqkP3lWQ==", "dev": true, "requires": { "@apideck/better-ajv-errors": "^0.3.1", @@ -13341,21 +13545,21 @@ "strip-comments": "^2.0.1", "tempy": "^0.6.0", "upath": "^1.2.0", - "workbox-background-sync": "7.1.0", - "workbox-broadcast-update": "7.1.0", - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-google-analytics": "7.1.0", - "workbox-navigation-preload": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-range-requests": "7.1.0", - "workbox-recipes": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0", - "workbox-streams": "7.1.0", - "workbox-sw": "7.1.0", - "workbox-window": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-broadcast-update": "7.3.0", + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-google-analytics": "7.3.0", + "workbox-navigation-preload": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-range-requests": "7.3.0", + "workbox-recipes": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0", + "workbox-streams": "7.3.0", + "workbox-sw": "7.3.0", + "workbox-window": "7.3.0" }, "dependencies": { "@apideck/better-ajv-errors": { @@ -13434,127 +13638,127 @@ } }, "workbox-cacheable-response": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.1.0.tgz", - "integrity": "sha512-iwsLBll8Hvua3xCuBB9h92+/e0wdsmSVgR2ZlvcfjepZWwhd3osumQB3x9o7flj+FehtWM2VHbZn8UJeBXXo6Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.3.0.tgz", + "integrity": "sha512-eAFERIg6J2LuyELhLlmeRcJFa5e16Mj8kL2yCDbhWE+HUun9skRQrGIFVUagqWj4DMaaPSMWfAolM7XZZxNmxA==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-core": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.1.0.tgz", - "integrity": "sha512-5KB4KOY8rtL31nEF7BfvU7FMzKT4B5TkbYa2tzkS+Peqj0gayMT9SytSFtNzlrvMaWgv6y/yvP9C0IbpFjV30Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.3.0.tgz", + "integrity": "sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw==", "dev": true }, "workbox-expiration": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.1.0.tgz", - "integrity": "sha512-m5DcMY+A63rJlPTbbBNtpJ20i3enkyOtSgYfv/l8h+D6YbbNiA0zKEkCUaMsdDlxggla1oOfRkyqTvl5Ni5KQQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.3.0.tgz", + "integrity": "sha512-lpnSSLp2BM+K6bgFCWc5bS1LR5pAwDWbcKt1iL87/eTSJRdLdAwGQznZE+1czLgn/X05YChsrEegTNxjM067vQ==", "dev": true, "requires": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-google-analytics": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.1.0.tgz", - "integrity": "sha512-FvE53kBQHfVTcZyczeBVRexhh7JTkyQ8HAvbVY6mXd2n2A7Oyz/9fIwnY406ZcDhvE4NFfKGjW56N4gBiqkrew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.3.0.tgz", + "integrity": "sha512-ii/tSfFdhjLHZ2BrYgFNTrb/yk04pw2hasgbM70jpZfLk0vdJAXgaiMAWsoE+wfJDNWoZmBYY0hMVI0v5wWDbg==", "dev": true, "requires": { - "workbox-background-sync": "7.1.0", - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "workbox-navigation-preload": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.1.0.tgz", - "integrity": "sha512-4wyAbo0vNI/X0uWNJhCMKxnPanNyhybsReMGN9QUpaePLTiDpKxPqFxl4oUmBNddPwIXug01eTSLVIFXimRG/A==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.3.0.tgz", + "integrity": "sha512-fTJzogmFaTv4bShZ6aA7Bfj4Cewaq5rp30qcxl2iYM45YD79rKIhvzNHiFj1P+u5ZZldroqhASXwwoyusnr2cg==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-precaching": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.1.0.tgz", - "integrity": "sha512-LyxzQts+UEpgtmfnolo0hHdNjoB7EoRWcF7EDslt+lQGd0lW4iTvvSe3v5JiIckQSB5KTW5xiCqjFviRKPj1zA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.3.0.tgz", + "integrity": "sha512-ckp/3t0msgXclVAYaNndAGeAoWQUv7Rwc4fdhWL69CCAb2UHo3Cef0KIUctqfQj1p8h6aGyz3w8Cy3Ihq9OmIw==", "dev": true, "requires": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "workbox-range-requests": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.1.0.tgz", - "integrity": "sha512-m7+O4EHolNs5yb/79CrnwPR/g/PRzMFYEdo01LqwixVnc/sbzNSvKz0d04OE3aMRel1CwAAZQheRsqGDwATgPQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.3.0.tgz", + "integrity": "sha512-EyFmM1KpDzzAouNF3+EWa15yDEenwxoeXu9bgxOEYnFfCxns7eAxA9WSSaVd8kujFFt3eIbShNqa4hLQNFvmVQ==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-recipes": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.1.0.tgz", - "integrity": "sha512-NRrk4ycFN9BHXJB6WrKiRX3W3w75YNrNrzSX9cEZgFB5ubeGoO8s/SDmOYVrFYp9HMw6sh1Pm3eAY/1gVS8YLg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.3.0.tgz", + "integrity": "sha512-BJro/MpuW35I/zjZQBcoxsctgeB+kyb2JAP5EB3EYzePg8wDGoQuUdyYQS+CheTb+GhqJeWmVs3QxLI8EBP1sg==", "dev": true, "requires": { - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "workbox-routing": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.1.0.tgz", - "integrity": "sha512-oOYk+kLriUY2QyHkIilxUlVcFqwduLJB7oRZIENbqPGeBP/3TWHYNNdmGNhz1dvKuw7aqvJ7CQxn27/jprlTdg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.3.0.tgz", + "integrity": "sha512-ZUlysUVn5ZUzMOmQN3bqu+gK98vNfgX/gSTZ127izJg/pMMy4LryAthnYtjuqcjkN4HEAx1mdgxNiKJMZQM76A==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-strategies": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.1.0.tgz", - "integrity": "sha512-/UracPiGhUNehGjRm/tLUQ+9PtWmCbRufWtV0tNrALuf+HZ4F7cmObSEK+E4/Bx1p8Syx2tM+pkIrvtyetdlew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.3.0.tgz", + "integrity": "sha512-tmZydug+qzDFATwX7QiEL5Hdf7FrkhjaF9db1CbB39sDmEZJg3l9ayDvPxy8Y18C3Y66Nrr9kkN1f/RlkDgllg==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-streams": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.1.0.tgz", - "integrity": "sha512-WyHAVxRXBMfysM8ORwiZnI98wvGWTVAq/lOyBjf00pXFvG0mNaVz4Ji+u+fKa/mf1i2SnTfikoYKto4ihHeS6w==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.3.0.tgz", + "integrity": "sha512-SZnXucyg8x2Y61VGtDjKPO5EgPUG5NDn/v86WYHX+9ZqvAsGOytP0Jxp1bl663YUuMoXSAtsGLL+byHzEuMRpw==", "dev": true, "requires": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0" } }, "workbox-sw": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.1.0.tgz", - "integrity": "sha512-Hml/9+/njUXBglv3dtZ9WBKHI235AQJyLBV1G7EFmh4/mUdSQuXui80RtjDeVRrXnm/6QWgRUEHG3/YBVbxtsA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.3.0.tgz", + "integrity": "sha512-aCUyoAZU9IZtH05mn0ACUpyHzPs0lMeJimAYkQkBsOWiqaJLgusfDCR+yllkPkFRxWpZKF8vSvgHYeG7LwhlmA==", "dev": true }, "workbox-window": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.1.0.tgz", - "integrity": "sha512-ZHeROyqR+AS5UPzholQRDttLFqGMwP0Np8MKWAdyxsDETxq3qOAyXvqessc3GniohG6e0mAqSQyKOHmT8zPF7g==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.3.0.tgz", + "integrity": "sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==", "dev": true, "requires": { "@types/trusted-types": "^2.0.2", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "wrap-ansi": { @@ -13569,9 +13773,9 @@ }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true }, "ansi-styles": { @@ -13617,21 +13821,6 @@ "color-convert": "^2.0.1" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", diff --git a/packages/java/tests/spring/endpoints discovery/package.json b/packages/java/tests/spring/endpoints discovery/package.json index a478e4199b..d2ffd25fd0 100644 --- a/packages/java/tests/spring/endpoints discovery/package.json +++ b/packages/java/tests/spring/endpoints discovery/package.json @@ -1,26 +1,27 @@ { - "name": "no-name", + "private": true, "license": "UNLICENSED", "type": "module", "dependencies": { - "@polymer/polymer": "3.5.1", + "@polymer/polymer": "3.5.2", "@vaadin/common-frontend": "0.0.19", "@vaadin/hilla-frontend": "file:../../../../ts/frontend", "@vaadin/hilla-lit-form": "file:../../../../ts/lit-form", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/icons": "24.5.0-alpha3", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/router": "1.7.5", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/icons": "24.7.0-alpha4", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/router": "2.0.0", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "construct-style-sheets-polyfill": "3.1.0", - "lit": "3.1.4" + "lit": "3.2.1" }, "devDependencies": { - "@babel/preset-react": "7.24.7", - "@rollup/plugin-replace": "5.0.7", - "@rollup/pluginutils": "5.1.0", + "@babel/preset-react": "7.26.3", + "@preact/signals-react-transform": "0.5.1", + "@rollup/plugin-replace": "6.0.2", + "@rollup/pluginutils": "5.1.4", "@vaadin/hilla-generator-cli": "file:../../../../ts/generator-cli", "@vaadin/hilla-generator-core": "file:../../../../ts/generator-core", "@vaadin/hilla-generator-plugin-backbone": "file:../../../../ts/generator-plugin-backbone", @@ -28,66 +29,69 @@ "@vaadin/hilla-generator-plugin-client": "file:../../../../ts/generator-plugin-client", "@vaadin/hilla-generator-plugin-model": "file:../../../../ts/generator-plugin-model", "@vaadin/hilla-generator-plugin-push": "file:../../../../ts/generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "file:../../../../ts/generator-plugin-signals", "@vaadin/hilla-generator-plugin-subtypes": "file:../../../../ts/generator-plugin-subtypes", "@vaadin/hilla-generator-utils": "file:../../../../ts/generator-utils", - "@vitejs/plugin-react": "4.3.1", - "async": "3.2.5", - "glob": "10.4.1", + "@vitejs/plugin-react": "4.3.4", + "async": "3.2.6", + "glob": "11.0.0", "rollup-plugin-brotli": "3.1.0", - "rollup-plugin-visualizer": "5.12.0", + "rollup-plugin-visualizer": "5.13.1", "strip-css-comments": "5.0.0", "transform-ast": "2.4.4", - "typescript": "5.4.5", - "vite": "5.3.1", - "vite-plugin-checker": "0.6.4", - "workbox-build": "7.1.1", - "workbox-core": "7.1.0", - "workbox-precaching": "7.1.0" + "typescript": "5.7.3", + "vite": "6.0.6", + "vite-plugin-checker": "0.8.0", + "workbox-build": "7.3.0", + "workbox-core": "7.3.0", + "workbox-precaching": "7.3.0" }, "vaadin": { "dependencies": { - "@polymer/polymer": "3.5.1", + "@polymer/polymer": "3.5.2", "@vaadin/common-frontend": "0.0.19", - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "@vaadin/hilla-lit-form": "24.5.0-alpha2", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/icons": "24.5.0-alpha3", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/router": "1.7.5", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/icons": "24.7.0-alpha4", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/router": "2.0.0", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "construct-style-sheets-polyfill": "3.1.0", - "lit": "3.1.4" + "lit": "3.2.1" }, "devDependencies": { - "@babel/preset-react": "7.24.7", - "@rollup/plugin-replace": "5.0.7", - "@rollup/pluginutils": "5.1.0", - "@vaadin/hilla-generator-cli": "24.5.0-alpha2", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-barrel": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-push": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-subtypes": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "@vitejs/plugin-react": "4.3.1", - "async": "3.2.5", - "glob": "10.4.1", + "@babel/preset-react": "7.26.3", + "@preact/signals-react-transform": "0.5.1", + "@rollup/plugin-replace": "6.0.2", + "@rollup/pluginutils": "5.1.4", + "@vaadin/hilla-generator-cli": "24.7.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-barrel": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-push": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-signals": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-subtypes": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vitejs/plugin-react": "4.3.4", + "async": "3.2.6", + "glob": "11.0.0", "rollup-plugin-brotli": "3.1.0", - "rollup-plugin-visualizer": "5.12.0", + "rollup-plugin-visualizer": "5.13.1", "strip-css-comments": "5.0.0", "transform-ast": "2.4.4", - "typescript": "5.4.5", - "vite": "5.3.1", - "vite-plugin-checker": "0.6.4", - "workbox-build": "7.1.1", - "workbox-core": "7.1.0", - "workbox-precaching": "7.1.0" + "typescript": "5.7.3", + "vite": "6.0.6", + "vite-plugin-checker": "0.8.0", + "workbox-build": "7.3.0", + "workbox-core": "7.3.0", + "workbox-precaching": "7.3.0" }, - "hash": "18b9f2d37ceb8a1299c9fa25b8b6cc68653ed4a96f4fb24afc09174b8b464071" + "hash": "1905475376c35117dbf53f3b106ec1f09c6f6a4afdc23feed67734fd9db1ddba" }, "overrides": { "@vaadin/common-frontend": "$@vaadin/common-frontend", @@ -102,6 +106,7 @@ "@vaadin/hilla-generator-plugin-client": "$@vaadin/hilla-generator-plugin-client", "@vaadin/hilla-generator-plugin-model": "$@vaadin/hilla-generator-plugin-model", "@vaadin/hilla-generator-plugin-push": "$@vaadin/hilla-generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "$@vaadin/hilla-generator-plugin-signals", "@vaadin/hilla-generator-utils": "$@vaadin/hilla-generator-utils", "@vaadin/hilla-lit-form": "$@vaadin/hilla-lit-form", "@vaadin/router": "$@vaadin/router", diff --git a/packages/java/tests/spring/endpoints discovery/pom.xml b/packages/java/tests/spring/endpoints discovery/pom.xml index 2cd22c9632..c9913f7abf 100644 --- a/packages/java/tests/spring/endpoints discovery/pom.xml +++ b/packages/java/tests/spring/endpoints discovery/pom.xml @@ -6,7 +6,7 @@ com.vaadin tests-spring - 24.5-SNAPSHOT + 24.7-SNAPSHOT tests-spring-endpoints-discovery ITs for Endpoints Discovery @@ -45,15 +45,6 @@ com.vaadin hilla-maven-plugin - - - - com.example.application - com.invalid - com.example.library.unpublished - - - diff --git a/packages/java/tests/spring/endpoints discovery/src/main/java/com/example/application/Application.java b/packages/java/tests/spring/endpoints discovery/src/main/java/com/example/application/Application.java index d6f6f97d58..dbfc3eea3e 100644 --- a/packages/java/tests/spring/endpoints discovery/src/main/java/com/example/application/Application.java +++ b/packages/java/tests/spring/endpoints discovery/src/main/java/com/example/application/Application.java @@ -6,7 +6,8 @@ /** * The entry point of the Spring Boot application. */ -@SpringBootApplication +@SpringBootApplication(scanBasePackages = { "com.example.application", + "com.example.library.unpublished" }) public class Application { public static void main(String[] args) { diff --git a/packages/java/tests/spring/endpoints discovery/src/main/java/com/invalid/InvalidEndpoint.java b/packages/java/tests/spring/endpoints discovery/src/main/java/com/invalid/InvalidEndpoint.java deleted file mode 100644 index 133d39a0a4..0000000000 --- a/packages/java/tests/spring/endpoints discovery/src/main/java/com/invalid/InvalidEndpoint.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.invalid; - -import com.example.library.unpublished.SomeEntity; -import com.vaadin.hilla.Endpoint; - -@Endpoint -/** - * This endpoint is not valid because it will not be seen as a Spring bean, yet - * it has a constructor with parameters. - */ -public class InvalidEndpoint { - - private final String message; - - public InvalidEndpoint(String message) { - this.message = message; - } - - public String getMessage() { - return message; - } - - public SomeEntity getSomeEntity() { - return null; - } -} diff --git a/packages/java/tests/spring/endpoints discovery/src/test/java/com/vaadin/hilla/endpoint/EndpointGenerationIT.java b/packages/java/tests/spring/endpoints discovery/src/test/java/com/vaadin/hilla/endpoint/EndpointGenerationIT.java index b723f72e5a..4340c5bb5f 100644 --- a/packages/java/tests/spring/endpoints discovery/src/test/java/com/vaadin/hilla/endpoint/EndpointGenerationIT.java +++ b/packages/java/tests/spring/endpoints discovery/src/test/java/com/vaadin/hilla/endpoint/EndpointGenerationIT.java @@ -23,16 +23,6 @@ public void shouldGenerateApplicationEndpoint() { frontendDir.resolve("com/external2/ExternalEntity2.ts"))); } - /** - * Endpoint in configured packages should be generated - */ - @Test - public void shouldGenerateConfiguredEndpoint() { - assertTrue(Files.exists(frontendDir.resolve("InvalidEndpoint.ts"))); - assertTrue(Files.exists(frontendDir - .resolve("com/example/library/unpublished/SomeEntity.ts"))); - } - /** * Endpoint not in configured packages should not be generated */ diff --git a/packages/java/tests/spring/endpoints-contextpath/frontend/test-view.ts b/packages/java/tests/spring/endpoints-contextpath/frontend/test-view.ts index db8d759285..12a92aeff4 100644 --- a/packages/java/tests/spring/endpoints-contextpath/frontend/test-view.ts +++ b/packages/java/tests/spring/endpoints-contextpath/frontend/test-view.ts @@ -7,7 +7,7 @@ export class TestView extends LitElement { @query('#input') input!: HTMLInputElement; @query('#result') - result!: HTMLInputElement; + _result!: HTMLInputElement; render() { return html` @@ -17,8 +17,8 @@ export class TestView extends LitElement { + + + `; + } + + public async getEntity() { + const entity = await AccessModifierEndpoint.getEntity(); + if (entity === undefined) { + throw new Error('Missing entity object result from endpoint'); + } + + this.content.textContent = JSON.stringify(entity); + this.methods.textContent = Object.keys(entity).join(', '); + } +} diff --git a/packages/java/tests/spring/endpoints/package-lock.json b/packages/java/tests/spring/endpoints/package-lock.json index bde1ee17ea..472d3534a2 100644 --- a/packages/java/tests/spring/endpoints/package-lock.json +++ b/packages/java/tests/spring/endpoints/package-lock.json @@ -1,30 +1,30 @@ { - "name": "no-name", + "name": "endpoints", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "no-name", "license": "UNLICENSED", "dependencies": { - "@polymer/polymer": "3.5.1", + "@polymer/polymer": "3.5.2", "@vaadin/common-frontend": "0.0.19", "@vaadin/hilla-frontend": "file:../../../../ts/frontend", "@vaadin/hilla-lit-form": "file:../../../../ts/lit-form", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/icons": "24.5.0-alpha3", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/router": "1.7.5", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/icons": "24.7.0-alpha4", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/router": "2.0.0", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "construct-style-sheets-polyfill": "3.1.0", - "lit": "3.1.4" + "lit": "3.2.1" }, "devDependencies": { - "@babel/preset-react": "7.24.7", - "@rollup/plugin-replace": "5.0.7", - "@rollup/pluginutils": "5.1.0", + "@babel/preset-react": "7.26.3", + "@preact/signals-react-transform": "0.5.1", + "@rollup/plugin-replace": "6.0.2", + "@rollup/pluginutils": "5.1.4", "@vaadin/hilla-generator-cli": "file:../../../../ts/generator-cli", "@vaadin/hilla-generator-core": "file:../../../../ts/generator-core", "@vaadin/hilla-generator-plugin-backbone": "file:../../../../ts/generator-plugin-backbone", @@ -32,26 +32,27 @@ "@vaadin/hilla-generator-plugin-client": "file:../../../../ts/generator-plugin-client", "@vaadin/hilla-generator-plugin-model": "file:../../../../ts/generator-plugin-model", "@vaadin/hilla-generator-plugin-push": "file:../../../../ts/generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "file:../../../../ts/generator-plugin-signals", "@vaadin/hilla-generator-plugin-subtypes": "file:../../../../ts/generator-plugin-subtypes", "@vaadin/hilla-generator-utils": "file:../../../../ts/generator-utils", - "@vitejs/plugin-react": "4.3.1", - "async": "3.2.5", - "glob": "10.4.1", + "@vitejs/plugin-react": "4.3.4", + "async": "3.2.6", + "glob": "11.0.0", "rollup-plugin-brotli": "3.1.0", - "rollup-plugin-visualizer": "5.12.0", + "rollup-plugin-visualizer": "5.13.1", "strip-css-comments": "5.0.0", "transform-ast": "2.4.4", - "typescript": "5.4.5", - "vite": "5.3.1", - "vite-plugin-checker": "0.6.4", - "workbox-build": "7.1.1", - "workbox-core": "7.1.0", - "workbox-precaching": "7.1.0" + "typescript": "5.7.3", + "vite": "6.0.6", + "vite-plugin-checker": "0.8.0", + "workbox-build": "7.3.0", + "workbox-core": "7.3.0", + "workbox-precaching": "7.3.0" } }, "../../../../ts/frontend": { "name": "@vaadin/hilla-frontend", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { "@vaadin/common-frontend": "^0.0.19", @@ -59,22 +60,22 @@ "js-cookie": "^3.0.5" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@open-wc/testing": "^3.2.0", - "@types/atmosphere.js": "^2.1.4", - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/js-cookie": "^3.0.4", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", + "@open-wc/testing": "^3.2.2", + "@types/atmosphere.js": "^2.1.6", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/js-cookie": "^3.0.6", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", "fetch-mock": "^9.11.0", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { "lit": "^3.0.0" @@ -82,69 +83,69 @@ }, "../../../../ts/generator-cli": { "name": "@vaadin/hilla-generator-cli", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "get-stdin": "^9.0.0", - "meow": "^12.1.1" + "meow": "^13.2.0" }, "bin": { "tsgen": "bin/index.js" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "chai-as-promised": "^7.1.1", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-as-promised": "^7.1.2", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2" } }, "../../../../ts/generator-core": { "name": "@vaadin/hilla-generator-core", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { "@apidevtools/swagger-parser": "^10.1.0", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "meow": "^12.1.1", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "meow": "^13.2.0", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" @@ -152,247 +153,281 @@ }, "../../../../ts/generator-plugin-backbone": { "name": "@vaadin/hilla-generator-plugin-backbone", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2" } }, "../../../../ts/generator-plugin-barrel": { "name": "@vaadin/hilla-generator-plugin-barrel", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "typescript": "5.3.2" + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2" } }, "../../../../ts/generator-plugin-client": { "name": "@vaadin/hilla-generator-plugin-client", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "typescript": "5.3.2" + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2" } }, "../../../../ts/generator-plugin-model": { "name": "@vaadin/hilla-generator-plugin-model", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "@vaadin/hilla-lit-form": "24.5.0-alpha2" } }, "../../../../ts/generator-plugin-push": { "name": "@vaadin/hilla-generator-plugin-push", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" + } + }, + "../../../../ts/generator-plugin-signals": { + "name": "@vaadin/hilla-generator-plugin-signals", + "version": "24.7.0-alpha5", + "dev": true, + "license": "Apache 2.0", + "dependencies": { + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "fast-deep-equal": "^3.1.3", + "iterator-helpers-polyfill": "^3.0.1", + "openapi-types": "^12.1.3", + "typescript": "5.7.2" }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2" + "devDependencies": { + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", + "copyfiles": "^2.4.1", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "type-fest": "^4.30.2" + }, + "engines": { + "node": ">= 16.13" } }, "../../../../ts/generator-plugin-subtypes": { "name": "@vaadin/hilla-generator-plugin-subtypes", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2" } }, "../../../../ts/generator-utils": { "name": "@vaadin/hilla-generator-utils", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "pino": "^8.15.1", - "pino-pretty": "^10.2.0", - "typescript": "5.3.2" + "pino": "^9.5.0", + "pino-pretty": "^10.3.1", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-like": "^1.1.3", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" @@ -404,7 +439,7 @@ "extraneous": true, "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.4.0", + "@vaadin/hilla-frontend": "24.7.0-alpha0", "validator": "^13.11.0" }, "devDependencies": { @@ -426,24 +461,24 @@ }, "../../../../ts/lit-form": { "name": "@vaadin/hilla-lit-form", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "validator": "^13.11.0" + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "validator": "^13.12.0" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@types/chai": "^4.3.6", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-dom": "^1.11.0", - "sinon": "^16.0.0", + "@types/chai": "^4.3.20", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-dom": "^1.12.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { "lit": "^3.0.0" @@ -451,11 +486,11 @@ }, "../../../../ts/react-auth": { "name": "@vaadin/hilla-react-auth", - "version": "24.4.0-alpha4", + "version": "24.7.0-alpha0", "extraneous": true, "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.4.0-alpha4" + "@vaadin/hilla-frontend": "24.7.0-alpha0" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -481,14 +516,14 @@ }, "../../../../ts/react-crud": { "name": "@vaadin/hilla-react-crud", - "version": "24.4.0-alpha4", + "version": "24.7.0-alpha0", "extraneous": true, "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.4.0-alpha4", - "@vaadin/hilla-lit-form": "24.4.0-alpha4", - "@vaadin/hilla-react-form": "24.4.0-alpha4", - "@vaadin/react-components": "24.4.0-alpha10" + "@vaadin/hilla-frontend": "24.7.0-alpha0", + "@vaadin/hilla-lit-form": "24.7.0-alpha0", + "@vaadin/hilla-react-form": "24.7.0-alpha0", + "@vaadin/react-components": "24.6.0-rc1" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -515,11 +550,11 @@ }, "../../../../ts/react-form": { "name": "@vaadin/hilla-react-form", - "version": "24.4.0-alpha4", + "version": "24.7.0-alpha0", "extraneous": true, "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-lit-form": "24.4.0-alpha4" + "@vaadin/hilla-lit-form": "24.7.0-alpha0" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -560,12 +595,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -573,30 +609,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", - "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz", - "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.6", - "@babel/generator": "^7.24.6", - "@babel/helper-compilation-targets": "^7.24.6", - "@babel/helper-module-transforms": "^7.24.6", - "@babel/helpers": "^7.24.6", - "@babel/parser": "^7.24.6", - "@babel/template": "^7.24.6", - "@babel/traverse": "^7.24.6", - "@babel/types": "^7.24.6", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -617,29 +653,6 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -650,15 +663,16 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "dev": true, "dependencies": { - "@babel/types": "^7.24.7", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" @@ -678,25 +692,13 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/generator/node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -716,14 +718,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", - "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.24.6", - "@babel/helper-validator-option": "^7.24.6", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -855,29 +857,6 @@ "@babel/core": "^7.4.0-0" } }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -949,29 +928,27 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", - "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-module-imports": "^7.24.6", - "@babel/helper-simple-access": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -993,9 +970,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -1032,12 +1009,13 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", - "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", "dev": true, "dependencies": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1068,27 +1046,27 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -1110,76 +1088,26 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.6.tgz", - "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "dependencies": { - "@babel/template": "^7.24.6", - "@babel/types": "^7.24.6" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "@babel/types": "^7.26.0" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -1558,12 +1486,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2054,12 +1982,12 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", - "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2069,16 +1997,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz", - "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2088,12 +2016,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", - "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", "dev": true, "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.24.7" + "@babel/plugin-transform-react-jsx": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2103,12 +2031,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.6.tgz", - "integrity": "sha512-FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2118,12 +2046,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.6.tgz", - "integrity": "sha512-BQTBCXmFRreU3oTUXcGKuPOfXAGb1liNY4AvvFKsOBAJ89RKcTsIrSsnMYkj59fNa66OFKnSa4AJZfy5Y4B9WA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2133,13 +2061,13 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", - "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2410,17 +2338,17 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", - "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", + "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-transform-react-display-name": "^7.24.7", - "@babel/plugin-transform-react-jsx": "^7.24.7", - "@babel/plugin-transform-react-jsx-development": "^7.24.7", - "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-react-display-name": "^7.25.9", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/plugin-transform-react-jsx-development": "^7.25.9", + "@babel/plugin-transform-react-pure-annotations": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2448,33 +2376,30 @@ "dev": true }, "node_modules/@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2482,23 +2407,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -2508,401 +2416,442 @@ "node": ">=4" } }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/types/node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "cpu": [ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@isaacs/cliui": { @@ -2910,6 +2859,7 @@ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2923,10 +2873,11 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2939,6 +2890,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2950,13 +2902,15 @@ "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -2974,6 +2928,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -2989,6 +2944,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -3073,9 +3029,9 @@ } }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", - "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", + "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==" }, "node_modules/@lit/reactive-element": { "version": "2.0.4", @@ -3125,22 +3081,63 @@ "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==" }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "node_modules/@polymer/polymer": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.2.tgz", + "integrity": "sha512-fWwImY/UH4bb2534DVSaX+Azs2yKg8slkMBHOyGeU2kKx7Xmxp6Lee0jP8p6B3d7c1gFUPB2Z976dTUtX81pQA==", + "dependencies": { + "@webcomponents/shadycss": "^1.9.1" + } + }, + "node_modules/@preact/signals-core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.8.0.tgz", + "integrity": "sha512-OBvUsRZqNmjzCZXWLxkZfhcgT+Fk8DDcT/8vD6a1xhDemodyy87UJRJfASMuSD8FaAIeGgGm85ydXhm7lr4fyA==", "dev": true, - "optional": true, - "engines": { - "node": ">=14" + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" } }, - "node_modules/@polymer/polymer": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.1.tgz", - "integrity": "sha512-JlAHuy+1qIC6hL1ojEUfIVD58fzTpJAoCxFwV5yr0mYTXV1H8bz5zy0+rC963Cgr9iNXQ4T9ncSjC2fkF9BQfw==", + "node_modules/@preact/signals-react": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@preact/signals-react/-/signals-react-3.0.0.tgz", + "integrity": "sha512-lCG3HIH5NlpQscVKQ5b+hgmRKorra/BcjMdEloMoa+/eLYmve06j3tFetN+nedDSpIHtSb3FFX0y3wUg/Nuxyw==", + "dev": true, + "license": "MIT", "dependencies": { - "@webcomponents/shadycss": "^1.9.1" + "@preact/signals-core": "^1.7.0", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + }, + "peerDependencies": { + "react": "^16.14.0 || 17.x || 18.x || 19.x" + } + }, + "node_modules/@preact/signals-react-transform": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@preact/signals-react-transform/-/signals-react-transform-0.5.1.tgz", + "integrity": "sha512-/w1rgu7i/qDk8dhDj+6AVVVJ+b1W11YkP3vfPPPyrn1tDCPb8orYwETa3JCvYxMtJBHbvIYEjhXvZ8Ab2cWC8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@preact/signals-react": "^3.0.0", + "debug": "^4.3.4", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "react": "^16.14.0 || 17.x || 18.x || 19.x" } }, "node_modules/@rollup/plugin-babel": { @@ -3215,10 +3212,11 @@ } }, "node_modules/@rollup/plugin-replace": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz", - "integrity": "sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.2.tgz", + "integrity": "sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "magic-string": "^0.30.3" @@ -3270,14 +3268,15 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "picomatch": "^4.0.2" }, "engines": { "node": ">=14.0.0" @@ -3297,10 +3296,22 @@ "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", "dev": true }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz", + "integrity": "sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==", "cpu": [ "arm" ], @@ -3311,9 +3322,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.0.tgz", + "integrity": "sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==", "cpu": [ "arm64" ], @@ -3324,9 +3335,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz", + "integrity": "sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==", "cpu": [ "arm64" ], @@ -3337,9 +3348,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.0.tgz", + "integrity": "sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==", "cpu": [ "x64" ], @@ -3349,10 +3360,49 @@ "darwin" ] }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.0.tgz", + "integrity": "sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.0.tgz", + "integrity": "sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.0.tgz", + "integrity": "sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.0.tgz", + "integrity": "sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==", "cpu": [ "arm" ], @@ -3363,9 +3413,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.0.tgz", + "integrity": "sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==", "cpu": [ "arm64" ], @@ -3376,9 +3426,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.0.tgz", + "integrity": "sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==", "cpu": [ "arm64" ], @@ -3388,10 +3438,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.0.tgz", + "integrity": "sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.0.tgz", + "integrity": "sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==", "cpu": [ "riscv64" ], @@ -3401,10 +3464,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.0.tgz", + "integrity": "sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.0.tgz", + "integrity": "sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==", "cpu": [ "x64" ], @@ -3415,9 +3491,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.0.tgz", + "integrity": "sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==", "cpu": [ "x64" ], @@ -3428,9 +3504,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.0.tgz", + "integrity": "sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==", "cpu": [ "arm64" ], @@ -3441,9 +3517,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.0.tgz", + "integrity": "sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==", "cpu": [ "ia32" ], @@ -3454,9 +3530,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.0.tgz", + "integrity": "sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==", "cpu": [ "x64" ], @@ -3564,13 +3640,14 @@ "integrity": "sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==" }, "node_modules/@vaadin/a11y-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.5.0-alpha3.tgz", - "integrity": "sha512-hJN/e1FbzwkT6b3QEma04UHX0B8q8KlwGmIfnJG19FPb/UynuzSoaZguMljT/YvpiBgBFZT+Fem6WliprwU3wg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.7.0-alpha4.tgz", + "integrity": "sha512-s1sdmb5rX8i6bxCPl6AyzV+6n32ym0u1bMcJwrhYoXm9qK0wnNz0hsTt9r9wNuZRjxpbGmuRd2rpLh6twAbuDA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", "lit": "^3.0.0" } }, @@ -3586,9 +3663,10 @@ } }, "node_modules/@vaadin/component-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.5.0-alpha3.tgz", - "integrity": "sha512-3OAScmXraCAihHCJ62ZNEy9LsMpeWh2/KnPN4tsot1piHtMSnH7r4SFKC/4iNjQsuecou5TmDXuMACFcrlbouA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.7.0-alpha4.tgz", + "integrity": "sha512-oAnXewVRiCa43n7NTeQhof6sd1ib9AQ/wZEVeKESx+/To0cSZEWzdq7uClLYnpw6ah5kVXdGQDozEHkc+o+tEQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", @@ -3629,6 +3707,10 @@ "resolved": "../../../../ts/generator-plugin-push", "link": true }, + "node_modules/@vaadin/hilla-generator-plugin-signals": { + "resolved": "../../../../ts/generator-plugin-signals", + "link": true + }, "node_modules/@vaadin/hilla-generator-plugin-subtypes": { "resolved": "../../../../ts/generator-plugin-subtypes", "link": true @@ -3642,90 +3724,119 @@ "link": true }, "node_modules/@vaadin/icon": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.5.0-alpha3.tgz", - "integrity": "sha512-CUVOeGF+kJ/lE3r/pJuShGTvfQyApFGoephomig4HQ3NJupazAANLnRXAconLAod/RPUWVKhLGqD33SnPKyp7A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.7.0-alpha4.tgz", + "integrity": "sha512-ELyn24AgdCRk9sOWnHbJqb4G8Gj2xr2YuC87dSKCg0E2mpAzxgA0xIObPO2DjWTzhprRy2XWsbkklzJFLKv1ag==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/icons": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.5.0-alpha3.tgz", - "integrity": "sha512-LZjQrwgw34HILPhSXpvabVQiEZzEDeeePFIdkIaxcjqC6bc2JjAecA0rPh2sci6mqCTed7ap9mZPxlitDi/uBQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.7.0-alpha4.tgz", + "integrity": "sha512-b2C00K2zkxg8dOsKSvWjBO/gVfSx96uQilksTZBOI3GXi1+UTqc5DzzYrOOH+Y0XqcqU7ynqqmkRTeyWJSiSSw==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/icon": "24.5.0-alpha3" + "@vaadin/icon": "24.7.0-alpha4" + } + }, + "node_modules/@vaadin/lit-renderer": { + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.7.0-alpha4.tgz", + "integrity": "sha512-jsgSnG3RoG0XX9k02cA0lqYw4KctzkW+hzq8+rAE1zLIJs4CQpe0jUzu1cGVy1bgJlPguvYVbQAitPc3+hFn/w==", + "license": "Apache-2.0", + "dependencies": { + "lit": "^3.0.0" } }, "node_modules/@vaadin/overlay": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.5.0-alpha3.tgz", - "integrity": "sha512-zH72InlWhwkBqdUMoIbHPXUajHapTVTwebZgddqE9FjBxRyfSF2062jrHcX6dFR4tNlspbem6z/EeWk4BWxBQw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.7.0-alpha4.tgz", + "integrity": "sha512-z2eHVojBg7o0vQWRhLPy2jfhuhTWrjnvOdw3FmkUnw8jy11Qqf/Pz0hMvy7cWE2d6ThLMjAnTzjlnRX/8y7U0w==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/polymer-legacy-adapter": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.5.0-alpha3.tgz", - "integrity": "sha512-W9yXABgFVqyIvMaHXewyqn4Tg3HiVEhDYbW8it9YZVnu9ej5msYXzyowZf/Lt4RQM9ogp9hx+deXR9W+297ivg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.7.0-alpha4.tgz", + "integrity": "sha512-+CvDzDA1a+9f877179k5ilVLq40e8HUSzvzGgiZDyrW1txmSRRdbQq5rX/qjHDjBXORqLLJGbkDRQmS2Y455yg==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/popover": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.5.0-alpha3.tgz", - "integrity": "sha512-niIKAipighHRoxcdteoptEu+JjyXT5TQhXagypI0hp0Sme7ZwQBnxlh+JdfKN/OV6hGrMt411wZntnc7bnVl7Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.7.0-alpha4.tgz", + "integrity": "sha512-KwhcnwrJoKjkVeScRF5RvBjBO8pS68Sgxd801qUj+X6bSBgtAAxMTS+yyQDUTVbAFmyr/pl2p8xE2mX5Hdi0ZQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/router": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-1.7.5.tgz", - "integrity": "sha512-uRN3vd1ihgd596bF/NMZqpgxau0nlvIc0/JDd1EwStFNbZID/xIVse5LXdQhIyUKLmSl4T0GeCQK505xerWX0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-2.0.0.tgz", + "integrity": "sha512-IjOlzuUsrVhfBId+ypcdDLM3+GZHo64DUlkr8IjFe04A4kMvt0zVFIpPH03X52/tMiwyYOF0Sw6p53DXkWiZcA==", "dependencies": { - "@vaadin/vaadin-usage-statistics": "^2.1.0", - "path-to-regexp": "2.4.0" + "@vaadin/vaadin-usage-statistics": "^2.1.2", + "path-to-regexp": "^6.3.0", + "type-fest": "^4.26.1" + } + }, + "node_modules/@vaadin/router/node_modules/type-fest": { + "version": "4.26.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", + "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@vaadin/tooltip": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.5.0-alpha3.tgz", - "integrity": "sha512-q5K9g3dCp/P8ED1/twharFiSGk1Zf09mApNdxyFl/wYduLxVnDG2h0WfE4rEl9Ix6h8N5NVmJ6Vl48UAZ5vgYQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.7.0-alpha4.tgz", + "integrity": "sha512-6Eb8kaZTpPCF6fptSAXlpYHO5HBDQiTMCbDtLX4cA0ov0rpaJ9YljVaZYYHyVF5lDDPhEfTGUq+f9MhMmIpW0w==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/popover": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/popover": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/vaadin-development-mode-detector": { @@ -3734,30 +3845,33 @@ "integrity": "sha512-N6a5nLT/ytEUlpPo+nvdCKIGoyNjPsj3rzPGvGYK8x9Ceg76OTe1xI/GtN71mRW9e2HUScR0kCNOkl1Z63YDjw==" }, "node_modules/@vaadin/vaadin-lumo-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-9zswr9ZNP6L7+VLCpD8yKKrlRzEC5gKJtfSRVhXqZwJ7x5Na1LVpJDzhDoKlqEcyPCsL/mcRllYAkT20hj0+8Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-L+rF8XYF+7hisu48wZK8MDjbwVMTmEteZsoTk1uyY6oCXyJEvBup1WwN2I0fFRlvSHMKnHNWDOuHmIfevK0uKQ==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "node_modules/@vaadin/vaadin-material-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-6CYxTPmT0ZU64H3wwzeDOrVF87wyU8CtLWLXNhXNkB+DSO44pCLML5kg1LwRRqnixY95x26LY+iSSITUSD8Pmw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-8fcm8oLtaI3BHewsP2d07YcIHw3GgFfFp83IHIoTG7MlaeJvAqvs2aPMcszLJ4s3WCLZnvsSkdwbgjdE0oYbhw==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "node_modules/@vaadin/vaadin-themable-mixin": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.5.0-alpha3.tgz", - "integrity": "sha512-gm/Adnsms4nUYONQPBDK91bPE7lfHFb27dBo31io7QAm5Cr+lBTd2U/Ce8eyK5+MialbabyZ2YQCgF3l2l8xWg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.7.0-alpha4.tgz", + "integrity": "sha512-x8Shc4t2WTV/2UtsXY8+n6KDYMvVaq0ZfNdldNkthfZjVfpCgioyZAtB6hZbEirvY6a5RRSQKcr12k2lrKDbTQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "lit": "^3.0.0" @@ -3776,14 +3890,14 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", - "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", "dev": true, "dependencies": { - "@babel/core": "^7.24.5", - "@babel/plugin-transform-react-jsx-self": "^7.24.5", - "@babel/plugin-transform-react-jsx-source": "^7.24.1", + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", "@types/babel__core": "^7.20.5", "react-refresh": "^0.14.2" }, @@ -3791,7 +3905,7 @@ "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" } }, "node_modules/@webcomponents/shadycss": { @@ -3901,9 +4015,9 @@ } }, "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "dev": true }, "node_modules/at-least-node": { @@ -4016,9 +4130,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", "dev": true, "funding": [ { @@ -4035,10 +4149,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -4109,9 +4223,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001572", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz", - "integrity": "sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==", + "version": "1.0.30001667", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", + "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", "dev": true, "funding": [ { @@ -4207,19 +4321,24 @@ } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" }, "node_modules/common-tags": { "version": "1.8.2", @@ -4302,6 +4421,23 @@ "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", "dev": true }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", @@ -4380,7 +4516,8 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ejs": { "version": "3.1.8", @@ -4398,9 +4535,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.616", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz", - "integrity": "sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==", + "version": "1.5.33", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.33.tgz", + "integrity": "sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==", "dev": true }, "node_modules/emoji-regex": { @@ -4475,47 +4612,50 @@ } }, "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "engines": { "node": ">=6" @@ -4791,22 +4931,24 @@ } }, "node_modules/glob": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", "minipass": "^7.1.2", - "path-scurry": "^1.11.1" + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4829,20 +4971,22 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/glob/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4898,15 +5042,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/has-property-descriptors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", @@ -5326,21 +5461,19 @@ "dev": true }, "node_modules/jackspeak": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", - "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=14" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/jake": { @@ -5392,24 +5525,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jake/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/jake/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -5437,6 +5552,18 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -5519,29 +5646,29 @@ "peer": true }, "node_modules/lit": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.4.tgz", - "integrity": "sha512-q6qKnKXHy2g1kjBaNfcoLlgbI3+aSOZ9Q4tiGa9bGYXq5RBXxkVTqTIVmP2VWMp29L4GyvCFm8ZQ2o56eUAMyA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz", + "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==", "dependencies": { "@lit/reactive-element": "^2.0.4", - "lit-element": "^4.0.4", - "lit-html": "^3.1.2" + "lit-element": "^4.1.0", + "lit-html": "^3.2.0" } }, "node_modules/lit-element": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", - "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz", + "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==", "dependencies": { "@lit-labs/ssr-dom-shim": "^1.2.0", "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.1.2" + "lit-html": "^3.2.0" } }, "node_modules/lit-html": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", - "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz", + "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==", "dependencies": { "@types/trusted-types": "^2.0.2" } @@ -5728,10 +5855,17 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "node_modules/mutexify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz", @@ -5758,9 +5892,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true, "funding": [ { @@ -5776,9 +5910,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, "node_modules/normalize-package-data": { @@ -5923,6 +6057,12 @@ "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -5979,39 +6119,41 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", "dev": true, + "license": "ISC", "engines": { - "node": "14 || >=16.14" + "node": "20 || >=22" } }, "node_modules/path-to-regexp": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.4.0.tgz", - "integrity": "sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==" }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, "node_modules/picomatch": { @@ -6027,9 +6169,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, "funding": [ { @@ -6047,8 +6189,8 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -6130,6 +6272,17 @@ "safe-buffer": "^5.1.0" } }, + "node_modules/react": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", @@ -6362,13 +6515,14 @@ } }, "node_modules/rollup-plugin-visualizer": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz", - "integrity": "sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==", + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.13.1.tgz", + "integrity": "sha512-vMg8i6BprL8aFm9DKvL2c8AwS8324EgymYQo9o6E26wgVvwMhsJxS37aNL6ZsU7X9iAcMYwdME7gItLfG5fwJg==", "dev": true, + "license": "MIT", "dependencies": { "open": "^8.4.0", - "picomatch": "^2.3.1", + "picomatch": "^4.0.2", "source-map": "^0.7.4", "yargs": "^17.5.1" }, @@ -6376,17 +6530,34 @@ "rollup-plugin-visualizer": "dist/bin/cli.js" }, "engines": { - "node": ">=14" + "node": ">=18" }, "peerDependencies": { + "rolldown": "1.x", "rollup": "2.x || 3.x || 4.x" }, "peerDependenciesMeta": { + "rolldown": { + "optional": true + }, "rollup": { "optional": true } } }, + "node_modules/rollup-plugin-visualizer/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/rollup-plugin-visualizer/node_modules/source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -6512,9 +6683,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -6586,6 +6757,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -6600,6 +6772,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6609,6 +6782,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -6716,6 +6890,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -6728,6 +6903,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6988,10 +7164,11 @@ } }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -7095,9 +7272,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "funding": [ { @@ -7114,8 +7291,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -7133,6 +7310,16 @@ "punycode": "^2.1.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -7146,20 +7333,21 @@ } }, "node_modules/vite": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", - "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.6.tgz", + "integrity": "sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==", "dev": true, + "license": "MIT", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.38", - "rollup": "^4.13.0" + "esbuild": "^0.24.2", + "postcss": "^8.4.49", + "rollup": "^4.23.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -7168,18 +7356,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", - "terser": "^5.4.0" + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -7189,6 +7384,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -7197,13 +7395,19 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, "node_modules/vite-plugin-checker": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.6.4.tgz", - "integrity": "sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.8.0.tgz", + "integrity": "sha512-UA5uzOGm97UvZRTdZHiQVYFnd86AVn8EVaD4L3PoVzxH+IZSfaAw14WGFwX9QS23UW3lV/5bVKZn6l0w+q9P0g==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", @@ -7214,7 +7418,6 @@ "fast-glob": "^3.2.7", "fs-extra": "^11.1.0", "npm-run-path": "^4.0.1", - "semver": "^7.5.0", "strip-ansi": "^6.0.0", "tiny-invariant": "^1.1.0", "vscode-languageclient": "^7.0.0", @@ -7226,6 +7429,7 @@ "node": ">=14.16" }, "peerDependencies": { + "@biomejs/biome": ">=1.7", "eslint": ">=7", "meow": "^9.0.0", "optionator": "^0.9.1", @@ -7234,9 +7438,12 @@ "vite": ">=2.0.0", "vls": "*", "vti": "*", - "vue-tsc": ">=1.3.9" + "vue-tsc": "~2.1.6" }, "peerDependenciesMeta": { + "@biomejs/biome": { + "optional": true + }, "eslint": { "optional": true }, @@ -7303,24 +7510,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/vite-plugin-checker/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/vite-plugin-checker/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/vite-plugin-checker/node_modules/commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", @@ -7378,18 +7567,18 @@ } }, "node_modules/vite/node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, "node_modules/vite/node_modules/rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.0.tgz", + "integrity": "sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==", "dev": true, "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -7399,19 +7588,24 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", + "@rollup/rollup-android-arm-eabi": "4.28.0", + "@rollup/rollup-android-arm64": "4.28.0", + "@rollup/rollup-darwin-arm64": "4.28.0", + "@rollup/rollup-darwin-x64": "4.28.0", + "@rollup/rollup-freebsd-arm64": "4.28.0", + "@rollup/rollup-freebsd-x64": "4.28.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.28.0", + "@rollup/rollup-linux-arm-musleabihf": "4.28.0", + "@rollup/rollup-linux-arm64-gnu": "4.28.0", + "@rollup/rollup-linux-arm64-musl": "4.28.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.28.0", + "@rollup/rollup-linux-riscv64-gnu": "4.28.0", + "@rollup/rollup-linux-s390x-gnu": "4.28.0", + "@rollup/rollup-linux-x64-gnu": "4.28.0", + "@rollup/rollup-linux-x64-musl": "4.28.0", + "@rollup/rollup-win32-arm64-msvc": "4.28.0", + "@rollup/rollup-win32-ia32-msvc": "4.28.0", + "@rollup/rollup-win32-x64-msvc": "4.28.0", "fsevents": "~2.3.2" } }, @@ -7527,28 +7721,28 @@ } }, "node_modules/workbox-background-sync": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.1.0.tgz", - "integrity": "sha512-rMbgrzueVWDFcEq1610YyDW71z0oAXLfdRHRQcKw4SGihkfOK0JUEvqWHFwA6rJ+6TClnMIn7KQI5PNN1XQXwQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.3.0.tgz", + "integrity": "sha512-PCSk3eK7Mxeuyatb22pcSx9dlgWNv3+M8PqPaYDokks8Y5/FX4soaOqj3yhAZr5k6Q5JWTOMYgaJBpbw11G9Eg==", "dev": true, "dependencies": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-broadcast-update": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.1.0.tgz", - "integrity": "sha512-O36hIfhjej/c5ar95pO67k1GQw0/bw5tKP7CERNgK+JdxBANQhDmIuOXZTNvwb2IHBx9hj2kxvcDyRIh5nzOgQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.3.0.tgz", + "integrity": "sha512-T9/F5VEdJVhwmrIAE+E/kq5at2OY6+OXXgOWQevnubal6sO92Gjo24v6dCVwQiclAF5NS3hlmsifRrpQzZCdUA==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-build": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.1.1.tgz", - "integrity": "sha512-WdkVdC70VMpf5NBCtNbiwdSZeKVuhTEd5PV3mAwpTQCGAB5XbOny1P9egEgNdetv4srAMmMKjvBk4RD58LpooA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.3.0.tgz", + "integrity": "sha512-JGL6vZTPlxnlqZRhR/K/msqg3wKP+m0wfEUVosK7gsYzSgeIxvZLi1ViJJzVL7CEeI8r7rGFV973RiEqkP3lWQ==", "dev": true, "dependencies": { "@apideck/better-ajv-errors": "^0.3.1", @@ -7573,21 +7767,21 @@ "strip-comments": "^2.0.1", "tempy": "^0.6.0", "upath": "^1.2.0", - "workbox-background-sync": "7.1.0", - "workbox-broadcast-update": "7.1.0", - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-google-analytics": "7.1.0", - "workbox-navigation-preload": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-range-requests": "7.1.0", - "workbox-recipes": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0", - "workbox-streams": "7.1.0", - "workbox-sw": "7.1.0", - "workbox-window": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-broadcast-update": "7.3.0", + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-google-analytics": "7.3.0", + "workbox-navigation-preload": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-range-requests": "7.3.0", + "workbox-recipes": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0", + "workbox-streams": "7.3.0", + "workbox-sw": "7.3.0", + "workbox-window": "7.3.0" }, "engines": { "node": ">=16.0.0" @@ -7695,127 +7889,127 @@ } }, "node_modules/workbox-cacheable-response": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.1.0.tgz", - "integrity": "sha512-iwsLBll8Hvua3xCuBB9h92+/e0wdsmSVgR2ZlvcfjepZWwhd3osumQB3x9o7flj+FehtWM2VHbZn8UJeBXXo6Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.3.0.tgz", + "integrity": "sha512-eAFERIg6J2LuyELhLlmeRcJFa5e16Mj8kL2yCDbhWE+HUun9skRQrGIFVUagqWj4DMaaPSMWfAolM7XZZxNmxA==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-core": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.1.0.tgz", - "integrity": "sha512-5KB4KOY8rtL31nEF7BfvU7FMzKT4B5TkbYa2tzkS+Peqj0gayMT9SytSFtNzlrvMaWgv6y/yvP9C0IbpFjV30Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.3.0.tgz", + "integrity": "sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw==", "dev": true }, "node_modules/workbox-expiration": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.1.0.tgz", - "integrity": "sha512-m5DcMY+A63rJlPTbbBNtpJ20i3enkyOtSgYfv/l8h+D6YbbNiA0zKEkCUaMsdDlxggla1oOfRkyqTvl5Ni5KQQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.3.0.tgz", + "integrity": "sha512-lpnSSLp2BM+K6bgFCWc5bS1LR5pAwDWbcKt1iL87/eTSJRdLdAwGQznZE+1czLgn/X05YChsrEegTNxjM067vQ==", "dev": true, "dependencies": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-google-analytics": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.1.0.tgz", - "integrity": "sha512-FvE53kBQHfVTcZyczeBVRexhh7JTkyQ8HAvbVY6mXd2n2A7Oyz/9fIwnY406ZcDhvE4NFfKGjW56N4gBiqkrew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.3.0.tgz", + "integrity": "sha512-ii/tSfFdhjLHZ2BrYgFNTrb/yk04pw2hasgbM70jpZfLk0vdJAXgaiMAWsoE+wfJDNWoZmBYY0hMVI0v5wWDbg==", "dev": true, "dependencies": { - "workbox-background-sync": "7.1.0", - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "node_modules/workbox-navigation-preload": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.1.0.tgz", - "integrity": "sha512-4wyAbo0vNI/X0uWNJhCMKxnPanNyhybsReMGN9QUpaePLTiDpKxPqFxl4oUmBNddPwIXug01eTSLVIFXimRG/A==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.3.0.tgz", + "integrity": "sha512-fTJzogmFaTv4bShZ6aA7Bfj4Cewaq5rp30qcxl2iYM45YD79rKIhvzNHiFj1P+u5ZZldroqhASXwwoyusnr2cg==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-precaching": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.1.0.tgz", - "integrity": "sha512-LyxzQts+UEpgtmfnolo0hHdNjoB7EoRWcF7EDslt+lQGd0lW4iTvvSe3v5JiIckQSB5KTW5xiCqjFviRKPj1zA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.3.0.tgz", + "integrity": "sha512-ckp/3t0msgXclVAYaNndAGeAoWQUv7Rwc4fdhWL69CCAb2UHo3Cef0KIUctqfQj1p8h6aGyz3w8Cy3Ihq9OmIw==", "dev": true, "dependencies": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "node_modules/workbox-range-requests": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.1.0.tgz", - "integrity": "sha512-m7+O4EHolNs5yb/79CrnwPR/g/PRzMFYEdo01LqwixVnc/sbzNSvKz0d04OE3aMRel1CwAAZQheRsqGDwATgPQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.3.0.tgz", + "integrity": "sha512-EyFmM1KpDzzAouNF3+EWa15yDEenwxoeXu9bgxOEYnFfCxns7eAxA9WSSaVd8kujFFt3eIbShNqa4hLQNFvmVQ==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-recipes": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.1.0.tgz", - "integrity": "sha512-NRrk4ycFN9BHXJB6WrKiRX3W3w75YNrNrzSX9cEZgFB5ubeGoO8s/SDmOYVrFYp9HMw6sh1Pm3eAY/1gVS8YLg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.3.0.tgz", + "integrity": "sha512-BJro/MpuW35I/zjZQBcoxsctgeB+kyb2JAP5EB3EYzePg8wDGoQuUdyYQS+CheTb+GhqJeWmVs3QxLI8EBP1sg==", "dev": true, "dependencies": { - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "node_modules/workbox-routing": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.1.0.tgz", - "integrity": "sha512-oOYk+kLriUY2QyHkIilxUlVcFqwduLJB7oRZIENbqPGeBP/3TWHYNNdmGNhz1dvKuw7aqvJ7CQxn27/jprlTdg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.3.0.tgz", + "integrity": "sha512-ZUlysUVn5ZUzMOmQN3bqu+gK98vNfgX/gSTZ127izJg/pMMy4LryAthnYtjuqcjkN4HEAx1mdgxNiKJMZQM76A==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-strategies": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.1.0.tgz", - "integrity": "sha512-/UracPiGhUNehGjRm/tLUQ+9PtWmCbRufWtV0tNrALuf+HZ4F7cmObSEK+E4/Bx1p8Syx2tM+pkIrvtyetdlew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.3.0.tgz", + "integrity": "sha512-tmZydug+qzDFATwX7QiEL5Hdf7FrkhjaF9db1CbB39sDmEZJg3l9ayDvPxy8Y18C3Y66Nrr9kkN1f/RlkDgllg==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-streams": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.1.0.tgz", - "integrity": "sha512-WyHAVxRXBMfysM8ORwiZnI98wvGWTVAq/lOyBjf00pXFvG0mNaVz4Ji+u+fKa/mf1i2SnTfikoYKto4ihHeS6w==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.3.0.tgz", + "integrity": "sha512-SZnXucyg8x2Y61VGtDjKPO5EgPUG5NDn/v86WYHX+9ZqvAsGOytP0Jxp1bl663YUuMoXSAtsGLL+byHzEuMRpw==", "dev": true, "dependencies": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0" } }, "node_modules/workbox-sw": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.1.0.tgz", - "integrity": "sha512-Hml/9+/njUXBglv3dtZ9WBKHI235AQJyLBV1G7EFmh4/mUdSQuXui80RtjDeVRrXnm/6QWgRUEHG3/YBVbxtsA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.3.0.tgz", + "integrity": "sha512-aCUyoAZU9IZtH05mn0ACUpyHzPs0lMeJimAYkQkBsOWiqaJLgusfDCR+yllkPkFRxWpZKF8vSvgHYeG7LwhlmA==", "dev": true }, "node_modules/workbox-window": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.1.0.tgz", - "integrity": "sha512-ZHeROyqR+AS5UPzholQRDttLFqGMwP0Np8MKWAdyxsDETxq3qOAyXvqessc3GniohG6e0mAqSQyKOHmT8zPF7g==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.3.0.tgz", + "integrity": "sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==", "dev": true, "dependencies": { "@types/trusted-types": "^2.0.2", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/wrap-ansi": { @@ -7841,6 +8035,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7858,6 +8053,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -7867,6 +8063,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -7877,29 +8074,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -7931,24 +8111,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -8037,37 +8199,38 @@ } }, "@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "requires": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" } }, "@babel/compat-data": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", - "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "dev": true }, "@babel/core": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz", - "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "requires": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.6", - "@babel/generator": "^7.24.6", - "@babel/helper-compilation-targets": "^7.24.6", - "@babel/helper-module-transforms": "^7.24.6", - "@babel/helpers": "^7.24.6", - "@babel/parser": "^7.24.6", - "@babel/template": "^7.24.6", - "@babel/traverse": "^7.24.6", - "@babel/types": "^7.24.6", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -8081,21 +8244,6 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -8105,15 +8253,16 @@ } }, "@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "dev": true, "requires": { - "@babel/types": "^7.24.7", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "dependencies": { "@jridgewell/gen-mapping": { @@ -8126,22 +8275,16 @@ "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true } } }, "@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, "requires": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { @@ -8155,14 +8298,14 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", - "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.24.6", - "@babel/helper-validator-option": "^7.24.6", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -8268,21 +8411,6 @@ "semver": "^6.1.2" }, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -8338,26 +8466,24 @@ } }, "@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "requires": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" } }, "@babel/helper-module-transforms": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", - "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-module-imports": "^7.24.6", - "@babel/helper-simple-access": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" } }, "@babel/helper-optimise-call-expression": { @@ -8370,9 +8496,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true }, "@babel/helper-remap-async-to-generator": { @@ -8400,12 +8526,13 @@ } }, "@babel/helper-simple-access": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", - "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", "dev": true, "requires": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -8427,21 +8554,21 @@ } }, "@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true }, "@babel/helper-wrap-function": { @@ -8457,64 +8584,24 @@ } }, "@babel/helpers": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.6.tgz", - "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "requires": { - "@babel/template": "^7.24.6", - "@babel/types": "^7.24.6" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" } }, - "@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "@babel/types": "^7.26.0" } }, - "@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", - "dev": true - }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.17.12", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", @@ -8757,12 +8844,12 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -9078,62 +9165,62 @@ } }, "@babel/plugin-transform-react-display-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", - "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz", - "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", - "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", "dev": true, "requires": { - "@babel/plugin-transform-react-jsx": "^7.24.7" + "@babel/plugin-transform-react-jsx": "^7.25.9" } }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.6.tgz", - "integrity": "sha512-FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.6.tgz", - "integrity": "sha512-BQTBCXmFRreU3oTUXcGKuPOfXAGb1liNY4AvvFKsOBAJ89RKcTsIrSsnMYkj59fNa66OFKnSa4AJZfy5Y4B9WA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-transform-react-pure-annotations": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", - "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" } }, "@babel/plugin-transform-regenerator": { @@ -9336,17 +9423,17 @@ } }, "@babel/preset-react": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", - "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", + "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-transform-react-display-name": "^7.24.7", - "@babel/plugin-transform-react-jsx": "^7.24.7", - "@babel/plugin-transform-react-jsx-development": "^7.24.7", - "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-react-display-name": "^7.25.9", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/plugin-transform-react-jsx-development": "^7.25.9", + "@babel/plugin-transform-react-pure-annotations": "^7.25.9" } }, "@babel/runtime": { @@ -9367,234 +9454,221 @@ } }, "@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "requires": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" } }, "@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true } } }, "@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - } + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" } }, "@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "dev": true, "optional": true }, "@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "dev": true, "optional": true }, "@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "dev": true, "optional": true }, "@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "dev": true, "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "dev": true, "optional": true }, "@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "dev": true, "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "dev": true, "optional": true }, "@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "dev": true, "optional": true }, "@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "dev": true, "optional": true }, "@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "dev": true, "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "dev": true, "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "dev": true, "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "dev": true, "optional": true }, "@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "dev": true, "optional": true }, "@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", "dev": true, "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", "dev": true, "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "dev": true, "optional": true }, "@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "dev": true, "optional": true }, "@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "dev": true, "optional": true }, "@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "dev": true, "optional": true }, "@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "dev": true, "optional": true }, @@ -9613,9 +9687,9 @@ }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true }, "ansi-styles": { @@ -9725,9 +9799,9 @@ } }, "@lit-labs/ssr-dom-shim": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", - "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", + "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==" }, "@lit/reactive-element": { "version": "2.0.4", @@ -9768,21 +9842,43 @@ "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==" }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true - }, "@polymer/polymer": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.1.tgz", - "integrity": "sha512-JlAHuy+1qIC6hL1ojEUfIVD58fzTpJAoCxFwV5yr0mYTXV1H8bz5zy0+rC963Cgr9iNXQ4T9ncSjC2fkF9BQfw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.2.tgz", + "integrity": "sha512-fWwImY/UH4bb2534DVSaX+Azs2yKg8slkMBHOyGeU2kKx7Xmxp6Lee0jP8p6B3d7c1gFUPB2Z976dTUtX81pQA==", "requires": { "@webcomponents/shadycss": "^1.9.1" } }, + "@preact/signals-core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.8.0.tgz", + "integrity": "sha512-OBvUsRZqNmjzCZXWLxkZfhcgT+Fk8DDcT/8vD6a1xhDemodyy87UJRJfASMuSD8FaAIeGgGm85ydXhm7lr4fyA==", + "dev": true + }, + "@preact/signals-react": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@preact/signals-react/-/signals-react-3.0.0.tgz", + "integrity": "sha512-lCG3HIH5NlpQscVKQ5b+hgmRKorra/BcjMdEloMoa+/eLYmve06j3tFetN+nedDSpIHtSb3FFX0y3wUg/Nuxyw==", + "dev": true, + "requires": { + "@preact/signals-core": "^1.7.0", + "use-sync-external-store": "^1.2.0" + } + }, + "@preact/signals-react-transform": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@preact/signals-react-transform/-/signals-react-transform-0.5.1.tgz", + "integrity": "sha512-/w1rgu7i/qDk8dhDj+6AVVVJ+b1W11YkP3vfPPPyrn1tDCPb8orYwETa3JCvYxMtJBHbvIYEjhXvZ8Ab2cWC8g==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@preact/signals-react": "^3.0.0", + "debug": "^4.3.4", + "use-sync-external-store": "^1.2.0" + } + }, "@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -9827,9 +9923,9 @@ } }, "@rollup/plugin-replace": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz", - "integrity": "sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.2.tgz", + "integrity": "sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==", "dev": true, "requires": { "@rollup/pluginutils": "^5.0.1", @@ -9859,14 +9955,14 @@ } }, "@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "dev": true, "requires": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "picomatch": "^4.0.2" }, "dependencies": { "@types/estree": { @@ -9874,97 +9970,138 @@ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", "dev": true + }, + "picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true } } }, "@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz", + "integrity": "sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==", "dev": true, "optional": true }, "@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.0.tgz", + "integrity": "sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==", "dev": true, "optional": true }, "@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz", + "integrity": "sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==", "dev": true, "optional": true }, "@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.0.tgz", + "integrity": "sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-arm64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.0.tgz", + "integrity": "sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-x64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.0.tgz", + "integrity": "sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.0.tgz", + "integrity": "sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.0.tgz", + "integrity": "sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.0.tgz", + "integrity": "sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.0.tgz", + "integrity": "sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.0.tgz", + "integrity": "sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==", "dev": true, "optional": true }, "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.0.tgz", + "integrity": "sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.0.tgz", + "integrity": "sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.0.tgz", + "integrity": "sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.0.tgz", + "integrity": "sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==", "dev": true, "optional": true }, "@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.0.tgz", + "integrity": "sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==", "dev": true, "optional": true }, "@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.0.tgz", + "integrity": "sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==", "dev": true, "optional": true }, "@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.0.tgz", + "integrity": "sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==", "dev": true, "optional": true }, @@ -10066,14 +10203,14 @@ "integrity": "sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==" }, "@vaadin/a11y-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.5.0-alpha3.tgz", - "integrity": "sha512-hJN/e1FbzwkT6b3QEma04UHX0B8q8KlwGmIfnJG19FPb/UynuzSoaZguMljT/YvpiBgBFZT+Fem6WliprwU3wg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.7.0-alpha4.tgz", + "integrity": "sha512-s1sdmb5rX8i6bxCPl6AyzV+6n32ym0u1bMcJwrhYoXm9qK0wnNz0hsTt9r9wNuZRjxpbGmuRd2rpLh6twAbuDA==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", - "@vaadin/component-base": "24.5.0-alpha3", - "lit": "3.1.4" + "@polymer/polymer": "3.5.2", + "@vaadin/component-base": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/common-frontend": { @@ -10085,359 +10222,417 @@ } }, "@vaadin/component-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.5.0-alpha3.tgz", - "integrity": "sha512-3OAScmXraCAihHCJ62ZNEy9LsMpeWh2/KnPN4tsot1piHtMSnH7r4SFKC/4iNjQsuecou5TmDXuMACFcrlbouA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.7.0-alpha4.tgz", + "integrity": "sha512-oAnXewVRiCa43n7NTeQhof6sd1ib9AQ/wZEVeKESx+/To0cSZEWzdq7uClLYnpw6ah5kVXdGQDozEHkc+o+tEQ==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", + "@polymer/polymer": "3.5.2", "@vaadin/vaadin-development-mode-detector": "^2.0.0", "@vaadin/vaadin-usage-statistics": "^2.1.0", - "lit": "3.1.4" + "lit": "3.2.1" } }, "@vaadin/hilla-frontend": { "version": "file:../../../../ts/frontend", "requires": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@open-wc/testing": "^3.2.0", - "@types/atmosphere.js": "^2.1.4", - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/js-cookie": "^3.0.4", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", + "@open-wc/testing": "^3.2.2", + "@types/atmosphere.js": "^2.1.6", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/js-cookie": "^3.0.6", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", "@vaadin/common-frontend": "^0.0.19", "atmosphere.js": "^3.1.3", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", "fetch-mock": "^9.11.0", "js-cookie": "^3.0.5", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-cli": { "version": "file:../../../../ts/generator-cli", "requires": { - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "chai-as-promised": "^7.1.1", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-as-promised": "^7.1.2", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "get-stdin": "^9.0.0", - "meow": "^12.1.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "meow": "^13.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" } }, "@vaadin/hilla-generator-core": { "version": "file:../../../../ts/generator-core", "requires": { "@apidevtools/swagger-parser": "^10.1.0", - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "meow": "^12.1.1", - "mocha": "^10.2.0", + "meow": "^13.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-backbone": { "version": "file:../../../../ts/generator-plugin-backbone", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "fast-deep-equal": "^3.1.3", - "mocha": "^10.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-barrel": { "version": "file:../../../../ts/generator-plugin-barrel", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-client": { "version": "file:../../../../ts/generator-plugin-client", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-model": { "version": "file:../../../../ts/generator-plugin-model", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "fast-deep-equal": "^3.1.3", - "mocha": "^10.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-push": { "version": "file:../../../../ts/generator-plugin-push", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "fast-deep-equal": "^3.1.3", - "mocha": "^10.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" + } + }, + "@vaadin/hilla-generator-plugin-signals": { + "version": "file:../../../../ts/generator-plugin-signals", + "requires": { + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", + "copyfiles": "^2.4.1", + "fast-deep-equal": "^3.1.3", + "iterator-helpers-polyfill": "^3.0.1", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "openapi-types": "^12.1.3", + "pino": "^9.5.0", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-plugin-subtypes": { "version": "file:../../../../ts/generator-plugin-subtypes", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", "fast-deep-equal": "^3.1.3", - "mocha": "^10.2.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", "openapi-types": "^12.1.3", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-generator-utils": { "version": "file:../../../../ts/generator-utils", "requires": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-like": "^1.1.3", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "pino-pretty": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "pino-pretty": "^10.3.1", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2", - "typescript": "5.3.2" + "type-fest": "^4.30.2", + "typescript": "5.7.2" } }, "@vaadin/hilla-lit-form": { "version": "file:../../../../ts/lit-form", "requires": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@types/chai": "^4.3.6", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "chai-dom": "^1.11.0", - "sinon": "^16.0.0", + "@types/chai": "^4.3.20", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "chai": "^5.1.2", + "chai-dom": "^1.12.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2", - "validator": "^13.11.0" + "typescript": "5.7.2", + "validator": "^13.12.0" } }, "@vaadin/icon": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.5.0-alpha3.tgz", - "integrity": "sha512-CUVOeGF+kJ/lE3r/pJuShGTvfQyApFGoephomig4HQ3NJupazAANLnRXAconLAod/RPUWVKhLGqD33SnPKyp7A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.7.0-alpha4.tgz", + "integrity": "sha512-ELyn24AgdCRk9sOWnHbJqb4G8Gj2xr2YuC87dSKCg0E2mpAzxgA0xIObPO2DjWTzhprRy2XWsbkklzJFLKv1ag==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "lit": "3.1.4" + "@polymer/polymer": "3.5.2", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/icons": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.5.0-alpha3.tgz", - "integrity": "sha512-LZjQrwgw34HILPhSXpvabVQiEZzEDeeePFIdkIaxcjqC6bc2JjAecA0rPh2sci6mqCTed7ap9mZPxlitDi/uBQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.7.0-alpha4.tgz", + "integrity": "sha512-b2C00K2zkxg8dOsKSvWjBO/gVfSx96uQilksTZBOI3GXi1+UTqc5DzzYrOOH+Y0XqcqU7ynqqmkRTeyWJSiSSw==", + "requires": { + "@polymer/polymer": "3.5.2", + "@vaadin/icon": "24.7.0-alpha4" + } + }, + "@vaadin/lit-renderer": { + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.7.0-alpha4.tgz", + "integrity": "sha512-jsgSnG3RoG0XX9k02cA0lqYw4KctzkW+hzq8+rAE1zLIJs4CQpe0jUzu1cGVy1bgJlPguvYVbQAitPc3+hFn/w==", "requires": { - "@polymer/polymer": "3.5.1", - "@vaadin/icon": "24.5.0-alpha3" + "lit": "3.2.1" } }, "@vaadin/overlay": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.5.0-alpha3.tgz", - "integrity": "sha512-zH72InlWhwkBqdUMoIbHPXUajHapTVTwebZgddqE9FjBxRyfSF2062jrHcX6dFR4tNlspbem6z/EeWk4BWxBQw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.7.0-alpha4.tgz", + "integrity": "sha512-z2eHVojBg7o0vQWRhLPy2jfhuhTWrjnvOdw3FmkUnw8jy11Qqf/Pz0hMvy7cWE2d6ThLMjAnTzjlnRX/8y7U0w==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "lit": "3.1.4" + "@polymer/polymer": "3.5.2", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/polymer-legacy-adapter": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.5.0-alpha3.tgz", - "integrity": "sha512-W9yXABgFVqyIvMaHXewyqn4Tg3HiVEhDYbW8it9YZVnu9ej5msYXzyowZf/Lt4RQM9ogp9hx+deXR9W+297ivg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.7.0-alpha4.tgz", + "integrity": "sha512-+CvDzDA1a+9f877179k5ilVLq40e8HUSzvzGgiZDyrW1txmSRRdbQq5rX/qjHDjBXORqLLJGbkDRQmS2Y455yg==", "requires": { - "@polymer/polymer": "3.5.1", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "lit": "3.1.4" + "@polymer/polymer": "3.5.2", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/popover": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.5.0-alpha3.tgz", - "integrity": "sha512-niIKAipighHRoxcdteoptEu+JjyXT5TQhXagypI0hp0Sme7ZwQBnxlh+JdfKN/OV6hGrMt411wZntnc7bnVl7Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.7.0-alpha4.tgz", + "integrity": "sha512-KwhcnwrJoKjkVeScRF5RvBjBO8pS68Sgxd801qUj+X6bSBgtAAxMTS+yyQDUTVbAFmyr/pl2p8xE2mX5Hdi0ZQ==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "lit": "3.1.4" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/router": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-1.7.5.tgz", - "integrity": "sha512-uRN3vd1ihgd596bF/NMZqpgxau0nlvIc0/JDd1EwStFNbZID/xIVse5LXdQhIyUKLmSl4T0GeCQK505xerWX0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-2.0.0.tgz", + "integrity": "sha512-IjOlzuUsrVhfBId+ypcdDLM3+GZHo64DUlkr8IjFe04A4kMvt0zVFIpPH03X52/tMiwyYOF0Sw6p53DXkWiZcA==", "requires": { - "@vaadin/vaadin-usage-statistics": "^2.1.0", - "path-to-regexp": "2.4.0" + "@vaadin/vaadin-usage-statistics": "^2.1.2", + "path-to-regexp": "^6.3.0", + "type-fest": "^4.26.1" + }, + "dependencies": { + "type-fest": { + "version": "4.26.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", + "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==" + } } }, "@vaadin/tooltip": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.5.0-alpha3.tgz", - "integrity": "sha512-q5K9g3dCp/P8ED1/twharFiSGk1Zf09mApNdxyFl/wYduLxVnDG2h0WfE4rEl9Ix6h8N5NVmJ6Vl48UAZ5vgYQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.7.0-alpha4.tgz", + "integrity": "sha512-6Eb8kaZTpPCF6fptSAXlpYHO5HBDQiTMCbDtLX4cA0ov0rpaJ9YljVaZYYHyVF5lDDPhEfTGUq+f9MhMmIpW0w==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.1", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/popover": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@polymer/polymer": "3.5.2", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/popover": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "3.2.1" } }, "@vaadin/vaadin-development-mode-detector": { @@ -10446,33 +10641,33 @@ "integrity": "sha512-N6a5nLT/ytEUlpPo+nvdCKIGoyNjPsj3rzPGvGYK8x9Ceg76OTe1xI/GtN71mRW9e2HUScR0kCNOkl1Z63YDjw==" }, "@vaadin/vaadin-lumo-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-9zswr9ZNP6L7+VLCpD8yKKrlRzEC5gKJtfSRVhXqZwJ7x5Na1LVpJDzhDoKlqEcyPCsL/mcRllYAkT20hj0+8Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-L+rF8XYF+7hisu48wZK8MDjbwVMTmEteZsoTk1uyY6oCXyJEvBup1WwN2I0fFRlvSHMKnHNWDOuHmIfevK0uKQ==", "requires": { - "@polymer/polymer": "3.5.1", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@polymer/polymer": "3.5.2", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "@vaadin/vaadin-material-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-6CYxTPmT0ZU64H3wwzeDOrVF87wyU8CtLWLXNhXNkB+DSO44pCLML5kg1LwRRqnixY95x26LY+iSSITUSD8Pmw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-8fcm8oLtaI3BHewsP2d07YcIHw3GgFfFp83IHIoTG7MlaeJvAqvs2aPMcszLJ4s3WCLZnvsSkdwbgjdE0oYbhw==", "requires": { - "@polymer/polymer": "3.5.1", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@polymer/polymer": "3.5.2", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "@vaadin/vaadin-themable-mixin": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.5.0-alpha3.tgz", - "integrity": "sha512-gm/Adnsms4nUYONQPBDK91bPE7lfHFb27dBo31io7QAm5Cr+lBTd2U/Ce8eyK5+MialbabyZ2YQCgF3l2l8xWg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.7.0-alpha4.tgz", + "integrity": "sha512-x8Shc4t2WTV/2UtsXY8+n6KDYMvVaq0ZfNdldNkthfZjVfpCgioyZAtB6hZbEirvY6a5RRSQKcr12k2lrKDbTQ==", "requires": { "@open-wc/dedupe-mixin": "^1.3.0", - "lit": "3.1.4" + "lit": "3.2.1" } }, "@vaadin/vaadin-usage-statistics": { @@ -10484,14 +10679,14 @@ } }, "@vitejs/plugin-react": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", - "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", "dev": true, "requires": { - "@babel/core": "^7.24.5", - "@babel/plugin-transform-react-jsx-self": "^7.24.5", - "@babel/plugin-transform-react-jsx-source": "^7.24.1", + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", "@types/babel__core": "^7.20.5", "react-refresh": "^0.14.2" } @@ -10572,9 +10767,9 @@ "peer": true }, "async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "dev": true }, "at-least-node": { @@ -10668,15 +10863,15 @@ "dev": true }, "browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" } }, "buffer-from": { @@ -10723,9 +10918,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001572", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz", - "integrity": "sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==", + "version": "1.0.30001667", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", + "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", "dev": true }, "chalk": { @@ -10786,18 +10981,18 @@ } }, "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "common-tags": { @@ -10867,6 +11062,15 @@ "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", "dev": true }, + "debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", @@ -10935,9 +11139,9 @@ } }, "electron-to-chromium": { - "version": "1.4.616", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz", - "integrity": "sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==", + "version": "1.5.33", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.33.tgz", + "integrity": "sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==", "dev": true }, "emoji-regex": { @@ -11000,40 +11204,42 @@ } }, "esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "requires": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true }, "escape-string-regexp": { @@ -11249,16 +11455,17 @@ } }, "glob": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dev": true, "requires": { "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", "minipass": "^7.1.2", - "path-scurry": "^1.11.1" + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "dependencies": { "brace-expansion": { @@ -11271,9 +11478,9 @@ } }, "minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -11328,12 +11535,6 @@ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, "has-property-descriptors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", @@ -11621,13 +11822,12 @@ "dev": true }, "jackspeak": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", - "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", "dev": true, "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" + "@isaacs/cliui": "^8.0.2" } }, "jake": { @@ -11661,21 +11861,6 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -11699,6 +11884,12 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, + "jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true + }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -11764,29 +11955,29 @@ "peer": true }, "lit": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.4.tgz", - "integrity": "sha512-q6qKnKXHy2g1kjBaNfcoLlgbI3+aSOZ9Q4tiGa9bGYXq5RBXxkVTqTIVmP2VWMp29L4GyvCFm8ZQ2o56eUAMyA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz", + "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==", "requires": { "@lit/reactive-element": "^2.0.4", - "lit-element": "^4.0.4", - "lit-html": "^3.1.2" + "lit-element": "^4.1.0", + "lit-html": "^3.2.0" } }, "lit-element": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", - "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz", + "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==", "requires": { "@lit-labs/ssr-dom-shim": "^1.2.0", "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.1.2" + "lit-html": "^3.2.0" } }, "lit-html": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", - "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz", + "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==", "requires": { "@types/trusted-types": "^2.0.2" } @@ -11937,6 +12128,12 @@ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "mutexify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz", @@ -11959,15 +12156,15 @@ } }, "nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true }, "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, "normalize-package-data": { @@ -12073,6 +12270,12 @@ "optional": true, "peer": true }, + "package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -12114,32 +12317,32 @@ "dev": true }, "path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, "requires": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "dependencies": { "lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", "dev": true } } }, "path-to-regexp": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.4.0.tgz", - "integrity": "sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==" }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, "picomatch": { @@ -12149,14 +12352,14 @@ "dev": true }, "postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, "requires": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" } }, "pretty-bytes": { @@ -12206,6 +12409,13 @@ "safe-buffer": "^5.1.0" } }, + "react": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "dev": true, + "peer": true + }, "react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", @@ -12381,17 +12591,23 @@ "dev": true }, "rollup-plugin-visualizer": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz", - "integrity": "sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==", + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.13.1.tgz", + "integrity": "sha512-vMg8i6BprL8aFm9DKvL2c8AwS8324EgymYQo9o6E26wgVvwMhsJxS37aNL6ZsU7X9iAcMYwdME7gItLfG5fwJg==", "dev": true, "requires": { "open": "^8.4.0", - "picomatch": "^2.3.1", + "picomatch": "^4.0.2", "source-map": "^0.7.4", "yargs": "^17.5.1" }, "dependencies": { + "picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true + }, "source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -12478,9 +12694,9 @@ "dev": true }, "source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true }, "sourcemap-codec": { @@ -12844,9 +13060,9 @@ "dev": true }, "typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true }, "unbox-primitive": { @@ -12919,13 +13135,13 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" } }, "uri-js": { @@ -12937,6 +13153,13 @@ "punycode": "^2.1.0" } }, + "use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "dev": true, + "requires": {} + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -12950,52 +13173,57 @@ } }, "vite": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", - "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.6.tgz", + "integrity": "sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==", "dev": true, "requires": { - "esbuild": "^0.21.3", + "esbuild": "^0.24.2", "fsevents": "~2.3.3", - "postcss": "^8.4.38", - "rollup": "^4.13.0" + "postcss": "^8.4.49", + "rollup": "^4.23.0" }, "dependencies": { "@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, "rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.0.tgz", + "integrity": "sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==", "dev": true, "requires": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", - "@types/estree": "1.0.5", + "@rollup/rollup-android-arm-eabi": "4.28.0", + "@rollup/rollup-android-arm64": "4.28.0", + "@rollup/rollup-darwin-arm64": "4.28.0", + "@rollup/rollup-darwin-x64": "4.28.0", + "@rollup/rollup-freebsd-arm64": "4.28.0", + "@rollup/rollup-freebsd-x64": "4.28.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.28.0", + "@rollup/rollup-linux-arm-musleabihf": "4.28.0", + "@rollup/rollup-linux-arm64-gnu": "4.28.0", + "@rollup/rollup-linux-arm64-musl": "4.28.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.28.0", + "@rollup/rollup-linux-riscv64-gnu": "4.28.0", + "@rollup/rollup-linux-s390x-gnu": "4.28.0", + "@rollup/rollup-linux-x64-gnu": "4.28.0", + "@rollup/rollup-linux-x64-musl": "4.28.0", + "@rollup/rollup-win32-arm64-msvc": "4.28.0", + "@rollup/rollup-win32-ia32-msvc": "4.28.0", + "@rollup/rollup-win32-x64-msvc": "4.28.0", + "@types/estree": "1.0.6", "fsevents": "~2.3.2" } } } }, "vite-plugin-checker": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.6.4.tgz", - "integrity": "sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.8.0.tgz", + "integrity": "sha512-UA5uzOGm97UvZRTdZHiQVYFnd86AVn8EVaD4L3PoVzxH+IZSfaAw14WGFwX9QS23UW3lV/5bVKZn6l0w+q9P0g==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", @@ -13006,7 +13234,6 @@ "fast-glob": "^3.2.7", "fs-extra": "^11.1.0", "npm-run-path": "^4.0.1", - "semver": "^7.5.0", "strip-ansi": "^6.0.0", "tiny-invariant": "^1.1.0", "vscode-languageclient": "^7.0.0", @@ -13040,21 +13267,6 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", @@ -13192,28 +13404,28 @@ } }, "workbox-background-sync": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.1.0.tgz", - "integrity": "sha512-rMbgrzueVWDFcEq1610YyDW71z0oAXLfdRHRQcKw4SGihkfOK0JUEvqWHFwA6rJ+6TClnMIn7KQI5PNN1XQXwQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.3.0.tgz", + "integrity": "sha512-PCSk3eK7Mxeuyatb22pcSx9dlgWNv3+M8PqPaYDokks8Y5/FX4soaOqj3yhAZr5k6Q5JWTOMYgaJBpbw11G9Eg==", "dev": true, "requires": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-broadcast-update": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.1.0.tgz", - "integrity": "sha512-O36hIfhjej/c5ar95pO67k1GQw0/bw5tKP7CERNgK+JdxBANQhDmIuOXZTNvwb2IHBx9hj2kxvcDyRIh5nzOgQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.3.0.tgz", + "integrity": "sha512-T9/F5VEdJVhwmrIAE+E/kq5at2OY6+OXXgOWQevnubal6sO92Gjo24v6dCVwQiclAF5NS3hlmsifRrpQzZCdUA==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-build": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.1.1.tgz", - "integrity": "sha512-WdkVdC70VMpf5NBCtNbiwdSZeKVuhTEd5PV3mAwpTQCGAB5XbOny1P9egEgNdetv4srAMmMKjvBk4RD58LpooA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.3.0.tgz", + "integrity": "sha512-JGL6vZTPlxnlqZRhR/K/msqg3wKP+m0wfEUVosK7gsYzSgeIxvZLi1ViJJzVL7CEeI8r7rGFV973RiEqkP3lWQ==", "dev": true, "requires": { "@apideck/better-ajv-errors": "^0.3.1", @@ -13238,21 +13450,21 @@ "strip-comments": "^2.0.1", "tempy": "^0.6.0", "upath": "^1.2.0", - "workbox-background-sync": "7.1.0", - "workbox-broadcast-update": "7.1.0", - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-google-analytics": "7.1.0", - "workbox-navigation-preload": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-range-requests": "7.1.0", - "workbox-recipes": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0", - "workbox-streams": "7.1.0", - "workbox-sw": "7.1.0", - "workbox-window": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-broadcast-update": "7.3.0", + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-google-analytics": "7.3.0", + "workbox-navigation-preload": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-range-requests": "7.3.0", + "workbox-recipes": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0", + "workbox-streams": "7.3.0", + "workbox-sw": "7.3.0", + "workbox-window": "7.3.0" }, "dependencies": { "@apideck/better-ajv-errors": { @@ -13331,127 +13543,127 @@ } }, "workbox-cacheable-response": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.1.0.tgz", - "integrity": "sha512-iwsLBll8Hvua3xCuBB9h92+/e0wdsmSVgR2ZlvcfjepZWwhd3osumQB3x9o7flj+FehtWM2VHbZn8UJeBXXo6Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.3.0.tgz", + "integrity": "sha512-eAFERIg6J2LuyELhLlmeRcJFa5e16Mj8kL2yCDbhWE+HUun9skRQrGIFVUagqWj4DMaaPSMWfAolM7XZZxNmxA==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-core": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.1.0.tgz", - "integrity": "sha512-5KB4KOY8rtL31nEF7BfvU7FMzKT4B5TkbYa2tzkS+Peqj0gayMT9SytSFtNzlrvMaWgv6y/yvP9C0IbpFjV30Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.3.0.tgz", + "integrity": "sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw==", "dev": true }, "workbox-expiration": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.1.0.tgz", - "integrity": "sha512-m5DcMY+A63rJlPTbbBNtpJ20i3enkyOtSgYfv/l8h+D6YbbNiA0zKEkCUaMsdDlxggla1oOfRkyqTvl5Ni5KQQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.3.0.tgz", + "integrity": "sha512-lpnSSLp2BM+K6bgFCWc5bS1LR5pAwDWbcKt1iL87/eTSJRdLdAwGQznZE+1czLgn/X05YChsrEegTNxjM067vQ==", "dev": true, "requires": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-google-analytics": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.1.0.tgz", - "integrity": "sha512-FvE53kBQHfVTcZyczeBVRexhh7JTkyQ8HAvbVY6mXd2n2A7Oyz/9fIwnY406ZcDhvE4NFfKGjW56N4gBiqkrew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.3.0.tgz", + "integrity": "sha512-ii/tSfFdhjLHZ2BrYgFNTrb/yk04pw2hasgbM70jpZfLk0vdJAXgaiMAWsoE+wfJDNWoZmBYY0hMVI0v5wWDbg==", "dev": true, "requires": { - "workbox-background-sync": "7.1.0", - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "workbox-navigation-preload": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.1.0.tgz", - "integrity": "sha512-4wyAbo0vNI/X0uWNJhCMKxnPanNyhybsReMGN9QUpaePLTiDpKxPqFxl4oUmBNddPwIXug01eTSLVIFXimRG/A==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.3.0.tgz", + "integrity": "sha512-fTJzogmFaTv4bShZ6aA7Bfj4Cewaq5rp30qcxl2iYM45YD79rKIhvzNHiFj1P+u5ZZldroqhASXwwoyusnr2cg==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-precaching": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.1.0.tgz", - "integrity": "sha512-LyxzQts+UEpgtmfnolo0hHdNjoB7EoRWcF7EDslt+lQGd0lW4iTvvSe3v5JiIckQSB5KTW5xiCqjFviRKPj1zA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.3.0.tgz", + "integrity": "sha512-ckp/3t0msgXclVAYaNndAGeAoWQUv7Rwc4fdhWL69CCAb2UHo3Cef0KIUctqfQj1p8h6aGyz3w8Cy3Ihq9OmIw==", "dev": true, "requires": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "workbox-range-requests": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.1.0.tgz", - "integrity": "sha512-m7+O4EHolNs5yb/79CrnwPR/g/PRzMFYEdo01LqwixVnc/sbzNSvKz0d04OE3aMRel1CwAAZQheRsqGDwATgPQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.3.0.tgz", + "integrity": "sha512-EyFmM1KpDzzAouNF3+EWa15yDEenwxoeXu9bgxOEYnFfCxns7eAxA9WSSaVd8kujFFt3eIbShNqa4hLQNFvmVQ==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-recipes": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.1.0.tgz", - "integrity": "sha512-NRrk4ycFN9BHXJB6WrKiRX3W3w75YNrNrzSX9cEZgFB5ubeGoO8s/SDmOYVrFYp9HMw6sh1Pm3eAY/1gVS8YLg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.3.0.tgz", + "integrity": "sha512-BJro/MpuW35I/zjZQBcoxsctgeB+kyb2JAP5EB3EYzePg8wDGoQuUdyYQS+CheTb+GhqJeWmVs3QxLI8EBP1sg==", "dev": true, "requires": { - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "workbox-routing": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.1.0.tgz", - "integrity": "sha512-oOYk+kLriUY2QyHkIilxUlVcFqwduLJB7oRZIENbqPGeBP/3TWHYNNdmGNhz1dvKuw7aqvJ7CQxn27/jprlTdg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.3.0.tgz", + "integrity": "sha512-ZUlysUVn5ZUzMOmQN3bqu+gK98vNfgX/gSTZ127izJg/pMMy4LryAthnYtjuqcjkN4HEAx1mdgxNiKJMZQM76A==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-strategies": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.1.0.tgz", - "integrity": "sha512-/UracPiGhUNehGjRm/tLUQ+9PtWmCbRufWtV0tNrALuf+HZ4F7cmObSEK+E4/Bx1p8Syx2tM+pkIrvtyetdlew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.3.0.tgz", + "integrity": "sha512-tmZydug+qzDFATwX7QiEL5Hdf7FrkhjaF9db1CbB39sDmEZJg3l9ayDvPxy8Y18C3Y66Nrr9kkN1f/RlkDgllg==", "dev": true, "requires": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "workbox-streams": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.1.0.tgz", - "integrity": "sha512-WyHAVxRXBMfysM8ORwiZnI98wvGWTVAq/lOyBjf00pXFvG0mNaVz4Ji+u+fKa/mf1i2SnTfikoYKto4ihHeS6w==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.3.0.tgz", + "integrity": "sha512-SZnXucyg8x2Y61VGtDjKPO5EgPUG5NDn/v86WYHX+9ZqvAsGOytP0Jxp1bl663YUuMoXSAtsGLL+byHzEuMRpw==", "dev": true, "requires": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0" } }, "workbox-sw": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.1.0.tgz", - "integrity": "sha512-Hml/9+/njUXBglv3dtZ9WBKHI235AQJyLBV1G7EFmh4/mUdSQuXui80RtjDeVRrXnm/6QWgRUEHG3/YBVbxtsA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.3.0.tgz", + "integrity": "sha512-aCUyoAZU9IZtH05mn0ACUpyHzPs0lMeJimAYkQkBsOWiqaJLgusfDCR+yllkPkFRxWpZKF8vSvgHYeG7LwhlmA==", "dev": true }, "workbox-window": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.1.0.tgz", - "integrity": "sha512-ZHeROyqR+AS5UPzholQRDttLFqGMwP0Np8MKWAdyxsDETxq3qOAyXvqessc3GniohG6e0mAqSQyKOHmT8zPF7g==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.3.0.tgz", + "integrity": "sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==", "dev": true, "requires": { "@types/trusted-types": "^2.0.2", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "wrap-ansi": { @@ -13480,21 +13692,6 @@ "color-convert": "^2.0.1" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -13532,21 +13729,6 @@ "color-convert": "^2.0.1" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", diff --git a/packages/java/tests/spring/endpoints/package.json b/packages/java/tests/spring/endpoints/package.json index 9b33a1f365..f8ab8e3510 100644 --- a/packages/java/tests/spring/endpoints/package.json +++ b/packages/java/tests/spring/endpoints/package.json @@ -1,26 +1,27 @@ { - "name": "no-name", + "_private": true, "license": "UNLICENSED", "type": "module", "dependencies": { - "@polymer/polymer": "3.5.1", + "@polymer/polymer": "3.5.2", "@vaadin/common-frontend": "0.0.19", "@vaadin/hilla-frontend": "file:../../../../ts/frontend", "@vaadin/hilla-lit-form": "file:../../../../ts/lit-form", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/icons": "24.5.0-alpha3", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/router": "1.7.5", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/icons": "24.7.0-alpha4", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/router": "2.0.0", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "construct-style-sheets-polyfill": "3.1.0", - "lit": "3.1.4" + "lit": "3.2.1" }, "devDependencies": { - "@babel/preset-react": "7.24.7", - "@rollup/plugin-replace": "5.0.7", - "@rollup/pluginutils": "5.1.0", + "@babel/preset-react": "7.26.3", + "@preact/signals-react-transform": "0.5.1", + "@rollup/plugin-replace": "6.0.2", + "@rollup/pluginutils": "5.1.4", "@vaadin/hilla-generator-cli": "file:../../../../ts/generator-cli", "@vaadin/hilla-generator-core": "file:../../../../ts/generator-core", "@vaadin/hilla-generator-plugin-backbone": "file:../../../../ts/generator-plugin-backbone", @@ -28,66 +29,69 @@ "@vaadin/hilla-generator-plugin-client": "file:../../../../ts/generator-plugin-client", "@vaadin/hilla-generator-plugin-model": "file:../../../../ts/generator-plugin-model", "@vaadin/hilla-generator-plugin-push": "file:../../../../ts/generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "file:../../../../ts/generator-plugin-signals", "@vaadin/hilla-generator-plugin-subtypes": "file:../../../../ts/generator-plugin-subtypes", "@vaadin/hilla-generator-utils": "file:../../../../ts/generator-utils", - "@vitejs/plugin-react": "4.3.1", - "async": "3.2.5", - "glob": "10.4.1", + "@vitejs/plugin-react": "4.3.4", + "async": "3.2.6", + "glob": "11.0.0", "rollup-plugin-brotli": "3.1.0", - "rollup-plugin-visualizer": "5.12.0", + "rollup-plugin-visualizer": "5.13.1", "strip-css-comments": "5.0.0", "transform-ast": "2.4.4", - "typescript": "5.4.5", - "vite": "5.3.1", - "vite-plugin-checker": "0.6.4", - "workbox-build": "7.1.1", - "workbox-core": "7.1.0", - "workbox-precaching": "7.1.0" + "typescript": "5.7.3", + "vite": "6.0.6", + "vite-plugin-checker": "0.8.0", + "workbox-build": "7.3.0", + "workbox-core": "7.3.0", + "workbox-precaching": "7.3.0" }, "vaadin": { "dependencies": { - "@polymer/polymer": "3.5.1", + "@polymer/polymer": "3.5.2", "@vaadin/common-frontend": "0.0.19", - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "@vaadin/hilla-lit-form": "24.5.0-alpha2", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/icons": "24.5.0-alpha3", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/router": "1.7.5", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/icons": "24.7.0-alpha4", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/router": "2.0.0", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "construct-style-sheets-polyfill": "3.1.0", - "lit": "3.1.4" + "lit": "3.2.1" }, "devDependencies": { - "@babel/preset-react": "7.24.7", - "@rollup/plugin-replace": "5.0.7", - "@rollup/pluginutils": "5.1.0", - "@vaadin/hilla-generator-cli": "24.5.0-alpha2", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-barrel": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-push": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-subtypes": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "@vitejs/plugin-react": "4.3.1", - "async": "3.2.5", - "glob": "10.4.1", + "@babel/preset-react": "7.26.3", + "@preact/signals-react-transform": "0.5.1", + "@rollup/plugin-replace": "6.0.2", + "@rollup/pluginutils": "5.1.4", + "@vaadin/hilla-generator-cli": "24.7.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-barrel": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-push": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-signals": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-subtypes": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vitejs/plugin-react": "4.3.4", + "async": "3.2.6", + "glob": "11.0.0", "rollup-plugin-brotli": "3.1.0", - "rollup-plugin-visualizer": "5.12.0", + "rollup-plugin-visualizer": "5.13.1", "strip-css-comments": "5.0.0", "transform-ast": "2.4.4", - "typescript": "5.4.5", - "vite": "5.3.1", - "vite-plugin-checker": "0.6.4", - "workbox-build": "7.1.1", - "workbox-core": "7.1.0", - "workbox-precaching": "7.1.0" + "typescript": "5.7.3", + "vite": "6.0.6", + "vite-plugin-checker": "0.8.0", + "workbox-build": "7.3.0", + "workbox-core": "7.3.0", + "workbox-precaching": "7.3.0" }, - "hash": "18b9f2d37ceb8a1299c9fa25b8b6cc68653ed4a96f4fb24afc09174b8b464071" + "hash": "1905475376c35117dbf53f3b106ec1f09c6f6a4afdc23feed67734fd9db1ddba" }, "overrides": { "@vaadin/common-frontend": "$@vaadin/common-frontend", @@ -103,6 +107,7 @@ "@vaadin/hilla-generator-plugin-client": "$@vaadin/hilla-generator-plugin-client", "@vaadin/hilla-generator-plugin-model": "$@vaadin/hilla-generator-plugin-model", "@vaadin/hilla-generator-plugin-push": "$@vaadin/hilla-generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "$@vaadin/hilla-generator-plugin-signals", "@vaadin/hilla-generator-utils": "$@vaadin/hilla-generator-utils", "@vaadin/hilla-lit-form": "$@vaadin/hilla-lit-form", "@vaadin/icon": "$@vaadin/icon", diff --git a/packages/java/tests/spring/endpoints/pom.xml b/packages/java/tests/spring/endpoints/pom.xml index a47fa1a3f2..4b55fa8519 100644 --- a/packages/java/tests/spring/endpoints/pom.xml +++ b/packages/java/tests/spring/endpoints/pom.xml @@ -6,7 +6,7 @@ com.vaadin tests-spring - 24.5-SNAPSHOT + 24.7-SNAPSHOT tests-spring-endpoints ITs for Endpoints diff --git a/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/AccessModifierEndpoint.java b/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/AccessModifierEndpoint.java new file mode 100644 index 0000000000..68c2a4ebf6 --- /dev/null +++ b/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/AccessModifierEndpoint.java @@ -0,0 +1,19 @@ +package com.vaadin.flow.connect; + +import com.vaadin.flow.server.auth.AnonymousAllowed; +import com.vaadin.hilla.Endpoint; +import jakarta.annotation.security.PermitAll; + +/** + * Simple Vaadin Connect Service definition. + */ +@Endpoint +@AnonymousAllowed +class AccessModifierEndpoint { + + @PermitAll + public ObjectWithDifferentAccessMethods getEntity() { + return new ObjectWithDifferentAccessMethods("private", "protected", + "public", "package-private", "public-getter", "public-setter"); + } +} diff --git a/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/AnnotatedEndpoint.java b/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/AnnotatedEndpoint.java index 7765a045ed..094ec8599c 100644 --- a/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/AnnotatedEndpoint.java +++ b/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/AnnotatedEndpoint.java @@ -1,11 +1,12 @@ package com.vaadin.flow.connect; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.vaadin.hilla.Endpoint; -import com.vaadin.hilla.Nonnull; import jakarta.validation.constraints.NotBlank; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.jspecify.annotations.NonNull; + import com.vaadin.flow.server.auth.AnonymousAllowed; +import com.vaadin.hilla.Endpoint; /** * Endpoint to verify Jackson annotations support. @@ -25,13 +26,13 @@ public static class AnnotatedEntity { private String defaultName = "value"; @JsonProperty("customName") - @Nonnull + @NonNull public String getDefaultName() { return "value"; } @JsonProperty("customName") - public void setDefaultName(@Nonnull String defaultName) { + public void setDefaultName(@NonNull String defaultName) { this.defaultName = defaultName; } } diff --git a/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/AppEndpoint.java b/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/AppEndpoint.java index becec6b5e1..8a357ef968 100644 --- a/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/AppEndpoint.java +++ b/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/AppEndpoint.java @@ -7,9 +7,10 @@ import com.vaadin.flow.server.VaadinRequest; import com.vaadin.flow.server.auth.AnonymousAllowed; - import com.vaadin.hilla.Endpoint; -import com.vaadin.hilla.Nullable; + +import org.jspecify.annotations.Nullable; + import jakarta.annotation.security.PermitAll; import jakarta.annotation.security.RolesAllowed; diff --git a/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/FluxEndpoint.java b/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/FluxEndpoint.java index cde42e93fd..7effdea7bf 100644 --- a/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/FluxEndpoint.java +++ b/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/FluxEndpoint.java @@ -2,15 +2,14 @@ import java.time.Duration; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import org.springframework.security.authentication.AnonymousAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import com.vaadin.flow.server.auth.AnonymousAllowed; - import com.vaadin.hilla.Endpoint; -import com.vaadin.hilla.Nonnull; -import com.vaadin.hilla.Nullable; import jakarta.annotation.security.PermitAll; import jakarta.annotation.security.RolesAllowed; import reactor.core.publisher.Flux; @@ -19,32 +18,32 @@ public class FluxEndpoint { // DenyAll by default - @Nonnull + @NonNull public Flux denied() { return Flux.just("Will never be accessible"); } @PermitAll - @Nonnull + @NonNull public Flux hello(String name, @Nullable String title) { return Flux.just( "Hello, " + (title != null ? title + " " : "") + name + "!"); } @AnonymousAllowed - @Nonnull + @NonNull public Flux helloAnonymous() { return Flux.just("Hello, stranger!"); } @RolesAllowed("ADMIN") - @Nonnull + @NonNull public Flux helloAdmin() { return Flux.just("Hello, admin!"); } @AnonymousAllowed - @Nonnull + @NonNull public Flux checkUser() { Authentication auth = SecurityContextHolder.getContext() .getAuthentication(); @@ -55,20 +54,20 @@ public Flux checkUser() { } @AnonymousAllowed - @Nonnull + @NonNull public Flux countTo(int n) { return Flux.range(1, n).delayElements(Duration.ofMillis(200)); } @AnonymousAllowed - @Nonnull + @NonNull public Flux countEvenTo(int n) { return Flux.range(1, n).delayElements(Duration.ofMillis(200)) .filter(number -> number % 2 == 0); } @AnonymousAllowed - @Nonnull + @NonNull public Flux countThrowError(int n) { return Flux.range(1, n).delayElements(Duration.ofMillis(200)) .filter(number -> { diff --git a/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/ObjectWithDifferentAccessMethods.java b/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/ObjectWithDifferentAccessMethods.java new file mode 100644 index 0000000000..35858c9df3 --- /dev/null +++ b/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/ObjectWithDifferentAccessMethods.java @@ -0,0 +1,69 @@ +package com.vaadin.flow.connect; + +public class ObjectWithDifferentAccessMethods { + private String privateProp; + private String protectedProp; + private String publicProp; + private String packagePrivateProp; + private String publicGetterProp; + private String publicSetterProp; + + public ObjectWithDifferentAccessMethods(String privateProp, + String protectedProp, String publicProp, String packagePrivateProp, + String publicGetterProp, String publicSetterProp) { + this.privateProp = privateProp; + this.protectedProp = protectedProp; + this.publicProp = publicProp; + this.packagePrivateProp = packagePrivateProp; + this.publicGetterProp = publicGetterProp; + this.publicSetterProp = publicSetterProp; + } + + private String getPrivateProp() { + return privateProp; + } + + private void setPrivateProp(String privateProp) { + this.privateProp = privateProp; + } + + protected String getProtectedProp() { + return protectedProp; + } + + protected void setProtectedProp(String protectedProp) { + this.protectedProp = protectedProp; + } + + public String getPublicProp() { + return publicProp; + } + + public void setPublicProp(String publicProp) { + this.publicProp = publicProp; + } + + String getPackagePrivateProp() { + return packagePrivateProp; + } + + void setPackagePrivateProp(String packagePrivateProp) { + this.packagePrivateProp = packagePrivateProp; + } + + public String getPublicGetterProp() { + return publicGetterProp; + } + + private void setPublicGetterProp(String publicGetterProp) { + this.publicGetterProp = publicGetterProp; + } + + private String getPublicSetterProp() { + return publicSetterProp; + } + + public void setPublicSetterProp(String publicSetterProp) { + this.publicSetterProp = publicSetterProp; + } +} diff --git a/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/PackagePrivateEndpoint.java b/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/PackagePrivateEndpoint.java index 20d835c919..a2e6329631 100644 --- a/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/PackagePrivateEndpoint.java +++ b/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/PackagePrivateEndpoint.java @@ -1,9 +1,9 @@ package com.vaadin.flow.connect; import com.vaadin.flow.server.auth.AnonymousAllowed; - import com.vaadin.hilla.Endpoint; -import com.vaadin.hilla.Nullable; + +import org.jspecify.annotations.Nullable; import jakarta.annotation.security.PermitAll; /** diff --git a/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/PagedEndpoint.java b/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/PagedEndpoint.java index 24b52a86b2..057eba2d1b 100644 --- a/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/PagedEndpoint.java +++ b/packages/java/tests/spring/endpoints/src/main/java/com/vaadin/flow/connect/PagedEndpoint.java @@ -7,8 +7,9 @@ import java.util.Objects; import com.vaadin.hilla.Endpoint; -import com.vaadin.hilla.Nonnull; -import com.vaadin.hilla.Nullable; + +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageRequest; @@ -28,7 +29,7 @@ public class PagedEndpoint { private static List DATA = List.of(new Entity("Foo", 30), new Entity("Bar", 20), new Entity("Baz", 10)); - public Page<@Nonnull Entity> list(@Nullable Pageable p) { + public Page<@NonNull Entity> list(@Nullable Pageable p) { if (p == null) { p = PageRequest.of(0, 2, Sort.by(Sort.Direction.DESC, "qty")); } @@ -50,17 +51,17 @@ public static class Entity { private final int qty; - public Entity(@Nonnull String name, int qty) { + public Entity(@NonNull String name, int qty) { this.name = Objects.requireNonNull(name); this.qty = qty; } - @Nonnull + @NonNull public String getName() { return name; } - @Nonnull + @NonNull public int getQty() { return qty; } @@ -73,13 +74,13 @@ public static class PageOfEntities { private final Page page; private final Pageable pageable; - public PageOfEntities(@Nonnull Page page, - @Nonnull Pageable pageable) { + public PageOfEntities(@NonNull Page page, + @NonNull Pageable pageable) { this.page = page; this.pageable = pageable; } - public PageOfEntities(@Nonnull Page page) { + public PageOfEntities(@NonNull Page page) { this(page, page.getPageable()); } diff --git a/packages/java/tests/spring/endpoints/src/test/java/com/vaadin/flow/connect/AccessModifierIT.java b/packages/java/tests/spring/endpoints/src/test/java/com/vaadin/flow/connect/AccessModifierIT.java new file mode 100644 index 0000000000..e0d1fabe35 --- /dev/null +++ b/packages/java/tests/spring/endpoints/src/test/java/com/vaadin/flow/connect/AccessModifierIT.java @@ -0,0 +1,81 @@ +/* + * Copyright 2000-2017 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.flow.connect; + +import com.vaadin.flow.testutil.ChromeBrowserTest; +import com.vaadin.testbench.TestBenchElement; +import org.checkerframework.checker.units.qual.A; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.openqa.selenium.WebElement; + +/** + * Class for testing issues in a spring-boot container. + */ +public class AccessModifierIT extends ChromeBrowserTest { + + private void openTestUrl(String url) { + getDriver().get(getRootURL() + url); + } + + private TestBenchElement testAccessMod; + private TestBenchElement methods; + + @Override + @Before + public void setup() throws Exception { + super.setup(); + open(); + TestBenchElement testComponent = $("test-component").waitForFirst(); + if (testComponent != null) { + testComponent.$(TestBenchElement.class).id("username") + .sendKeys("user"); + testComponent.$(TestBenchElement.class).id("password") + .sendKeys("user"); + testComponent.$(TestBenchElement.class).id("login").click(); + open(); + } + testAccessMod = $("test-access-mod").waitForFirst(); + methods = testAccessMod.$(TestBenchElement.class).id("methods"); + } + + @Override + protected void open() { + openTestUrl("/access-mod"); + } + + @Test + public void getEntity() { + String endpoint = "getEntity"; + exec(endpoint); + String actualText = waitUntil(driver -> methods.getText(), 25); + Assert.assertNotNull(actualText); + Assert.assertTrue(actualText.contains("publicProp")); + Assert.assertFalse(actualText.contains("protectedProp")); + Assert.assertFalse(actualText.contains("packagePrivateProp")); + Assert.assertFalse(actualText.contains("privateProp")); + Assert.assertTrue(actualText.contains("publicGetterProp")); + // Assert.assertTrue(actualText.contains("publicSetterProp")); // + // property is public, but not present in prototype + } + + private void exec(String id) { + methods.setProperty("innerText", ""); + WebElement button = testAccessMod.$(TestBenchElement.class).id(id); + button.click(); + } +} diff --git a/packages/java/tests/spring/native/frontend/App.tsx b/packages/java/tests/spring/native/frontend/App.tsx index 5d068e2165..2614586c54 100644 --- a/packages/java/tests/spring/native/frontend/App.tsx +++ b/packages/java/tests/spring/native/frontend/App.tsx @@ -1,6 +1,6 @@ import router from 'Frontend/routes.js'; import { AuthContext, useAuth } from 'Frontend/useAuth.js'; -import { RouterProvider } from 'react-router-dom'; +import { RouterProvider } from 'react-router'; export default function App() { const auth = useAuth(); diff --git a/packages/java/tests/spring/native/frontend/routes.tsx b/packages/java/tests/spring/native/frontend/routes.tsx index e39a5ebf85..783d9fd051 100644 --- a/packages/java/tests/spring/native/frontend/routes.tsx +++ b/packages/java/tests/spring/native/frontend/routes.tsx @@ -1,4 +1,4 @@ -import {createBrowserRouter, RouteObject} from 'react-router-dom'; +import {createBrowserRouter, RouteObject} from 'react-router'; import {ChatView} from "Frontend/views/ChatView.js"; import {LoginView} from "Frontend/views/LoginView.js"; import {ReadOnlyGrid} from "Frontend/views/ReadOnlyGrid"; diff --git a/packages/java/tests/spring/native/frontend/util/routing.ts b/packages/java/tests/spring/native/frontend/util/routing.ts index ff80af3541..93f26fbbb2 100644 --- a/packages/java/tests/spring/native/frontend/util/routing.ts +++ b/packages/java/tests/spring/native/frontend/util/routing.ts @@ -1,4 +1,4 @@ -import { useMatches } from 'react-router-dom'; +import { useMatches } from 'react-router'; type RouteMetadata = { [key: string]: any; diff --git a/packages/java/tests/spring/native/frontend/views/AuthControl.tsx b/packages/java/tests/spring/native/frontend/views/AuthControl.tsx index dac26aa713..d5b2c3f2fd 100644 --- a/packages/java/tests/spring/native/frontend/views/AuthControl.tsx +++ b/packages/java/tests/spring/native/frontend/views/AuthControl.tsx @@ -1,6 +1,6 @@ import { AccessProps, AuthContext } from 'Frontend/useAuth.js'; import { ReactNode, useContext } from 'react'; -import { Navigate, useMatches } from 'react-router-dom'; +import { Navigate, useMatches } from 'react-router'; export type AuthControlProps = Readonly<{ fallback?: ReactNode; diff --git a/packages/java/tests/spring/native/frontend/views/MainLayout.tsx b/packages/java/tests/spring/native/frontend/views/MainLayout.tsx index cc173c49be..e9e4404d83 100644 --- a/packages/java/tests/spring/native/frontend/views/MainLayout.tsx +++ b/packages/java/tests/spring/native/frontend/views/MainLayout.tsx @@ -7,7 +7,7 @@ import Placeholder from 'Frontend/components/placeholder/Placeholder'; import { AuthContext } from 'Frontend/useAuth.js'; import { useRouteMetadata } from 'Frontend/util/routing'; import { Suspense, useContext } from 'react'; -import { NavLink, Outlet } from 'react-router-dom'; +import { NavLink, Outlet } from 'react-router'; const navLinkClasses = ({ isActive }: any) => { return `block rounded-m p-s ${isActive ? 'bg-primary-10 text-primary' : 'text-body'}`; diff --git a/packages/java/tests/spring/native/package-lock.json b/packages/java/tests/spring/native/package-lock.json index 4fd1e01760..554266d098 100644 --- a/packages/java/tests/spring/native/package-lock.json +++ b/packages/java/tests/spring/native/package-lock.json @@ -24,14 +24,14 @@ "@vaadin/hilla-react-crud": "file:../../../../ts/react-crud", "@vaadin/hilla-react-form": "file:../../../../ts/react-form", "@vaadin/hilla-react-signals": "file:../../../../ts/react-signals", - "@vaadin/icon": "24.4.0-alpha14", - "@vaadin/icons": "24.4.0-alpha14", - "@vaadin/polymer-legacy-adapter": "24.4.0-alpha14", - "@vaadin/react-components": "24.4.0-alpha14", + "@vaadin/icon": "24.6.0-rc1", + "@vaadin/icons": "24.6.0-rc1", + "@vaadin/polymer-legacy-adapter": "24.6.0-rc1", + "@vaadin/react-components": "24.6.0-rc1", "@vaadin/router": "1.7.5", - "@vaadin/tooltip": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/tooltip": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "construct-style-sheets-polyfill": "3.1.0", "lit": "2.7.6", "react": "^18.2.0", @@ -61,7 +61,7 @@ }, "../../../../ts/frontend": { "name": "@vaadin/hilla-frontend", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache-2.0", "dependencies": { "@vaadin/common-frontend": "^0.0.19", @@ -92,10 +92,10 @@ }, "../../../../ts/generator-cli": { "name": "@vaadin/hilla-generator-cli", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "get-stdin": "^9.0.0", "meow": "^12.1.1" }, @@ -109,7 +109,7 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "chai-as-promised": "^7.1.1", @@ -126,16 +126,16 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha5" + "@vaadin/hilla-generator-core": "24.7.0-alpha0" } }, "../../../../ts/generator-core": { "name": "@vaadin/hilla-generator-core", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache 2.0", "dependencies": { "@apidevtools/swagger-parser": "^10.1.0", - "@vaadin/hilla-generator-utils": "24.4.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "meow": "^12.1.1", "openapi-types": "^12.1.3", "typescript": "5.3.2" @@ -162,10 +162,10 @@ }, "../../../../ts/generator-plugin-backbone": { "name": "@vaadin/hilla-generator-plugin-backbone", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "5.3.2" @@ -176,8 +176,8 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "concurrently": "^8.2.1", @@ -193,16 +193,16 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha5" + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0" } }, "../../../../ts/generator-plugin-barrel": { "name": "@vaadin/hilla-generator-plugin-barrel", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "typescript": "5.3.2" }, "devDependencies": { @@ -211,8 +211,8 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-backbone": "24.4.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "concurrently": "^8.2.1", @@ -228,16 +228,16 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-backbone": "24.4.0-alpha5" + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha0" } }, "../../../../ts/generator-plugin-client": { "name": "@vaadin/hilla-generator-plugin-client", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "typescript": "5.3.2" }, "devDependencies": { @@ -246,7 +246,7 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "concurrently": "^8.2.1", @@ -262,15 +262,15 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha5" + "@vaadin/hilla-generator-core": "24.7.0-alpha0" } }, "../../../../ts/generator-plugin-model": { "name": "@vaadin/hilla-generator-plugin-model", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "5.3.2" @@ -281,8 +281,8 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "concurrently": "^8.2.1", @@ -298,17 +298,17 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-backbone": "24.4.0-alpha5", - "@vaadin/hilla-lit-form": "24.4.0-alpha5" + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha0", + "@vaadin/hilla-lit-form": "24.7.0-alpha0" } }, "../../../../ts/generator-plugin-push": { "name": "@vaadin/hilla-generator-plugin-push", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "5.3.2" @@ -319,8 +319,8 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "concurrently": "^8.2.1", @@ -336,16 +336,16 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha5" + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0" } }, "../../../../ts/generator-plugin-subtypes": { "name": "@vaadin/hilla-generator-plugin-subtypes", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.4.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "5.3.2" @@ -356,9 +356,9 @@ "@types/node": "^20.7.1", "@types/sinon": "^10.0.17", "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-model": "24.4.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha0", "c8": "^8.0.1", "chai": "^4.3.10", "concurrently": "^8.2.1", @@ -374,14 +374,14 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-model": "24.4.0-alpha5" + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha0" } }, "../../../../ts/generator-utils": { "name": "@vaadin/hilla-generator-utils", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache 2.0", "dependencies": { "pino": "^8.15.1", @@ -436,10 +436,10 @@ }, "../../../../ts/lit-form": { "name": "@vaadin/hilla-lit-form", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.4.0-alpha5", + "@vaadin/hilla-frontend": "24.7.0-alpha0", "validator": "^13.11.0" }, "devDependencies": { @@ -461,10 +461,10 @@ }, "../../../../ts/react-auth": { "name": "@vaadin/hilla-react-auth", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.4.0-alpha5" + "@vaadin/hilla-frontend": "24.7.0-alpha0" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -490,13 +490,13 @@ }, "../../../../ts/react-crud": { "name": "@vaadin/hilla-react-crud", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.4.0-alpha5", - "@vaadin/hilla-lit-form": "24.4.0-alpha5", - "@vaadin/hilla-react-form": "24.4.0-alpha5", - "@vaadin/react-components": "24.4.0-alpha14" + "@vaadin/hilla-frontend": "24.7.0-alpha0", + "@vaadin/hilla-lit-form": "24.7.0-alpha0", + "@vaadin/hilla-react-form": "24.7.0-alpha0", + "@vaadin/react-components": "24.6.0-rc1" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -523,10 +523,10 @@ }, "../../../../ts/react-form": { "name": "@vaadin/hilla-react-form", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-lit-form": "24.4.0-alpha5" + "@vaadin/hilla-lit-form": "24.7.0-alpha0" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -552,7 +552,7 @@ }, "../../../../ts/react-signals": { "name": "@vaadin/hilla-react-signals", - "version": "24.4.0-alpha5", + "version": "24.7.0-alpha0", "license": "Apache-2.0", "dependencies": { "@preact/signals-react": "^2.0.0" @@ -2935,167 +2935,167 @@ "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==" }, "node_modules/@vaadin/a11y-base": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.7.0-alpha0.tgz", "integrity": "sha512-h1waF6Um9ZoK3gNB4XtziK6pCJP3cgIQDY4ORatpzR1XqNIG3WVrrBV9FMmwqwFecy8NpGJinxadu5mUX5ZBOQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/accordion": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/accordion/-/accordion-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/accordion/-/accordion-24.7.0-alpha0.tgz", "integrity": "sha512-AwoVCBRnsOiQPcPQ8VXBmBVTqRvwQT/HjSqYNpPL6CVaPPjCGndJ3CndpHZfUub72rixLRu4P8am7DjcaeO23A==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/details": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/details": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/app-layout": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/app-layout/-/app-layout-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/app-layout/-/app-layout-24.7.0-alpha0.tgz", "integrity": "sha512-Q5caMhTU1r4kBRt0Jyr8u1oGUPMuuweXQSCZyRexKRmDteLDWoZoF3Fc5R5D19byg0eYyazfkiefnHpz34wQlA==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/avatar": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-24.7.0-alpha0.tgz", "integrity": "sha512-oPnYipWuVGBCEHsW1q4auXXNF1d5l/2KhgQlJSzJptJ/eD71a4STSrTyRN0etS1i7AM+M2AD+AU2OhqRyEC33g==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/tooltip": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/tooltip": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/avatar-group": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/avatar-group/-/avatar-group-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/avatar-group/-/avatar-group-24.7.0-alpha0.tgz", "integrity": "sha512-gebHLcaEZyqN7wDaEhEH7PbdPCd1ivcuJq2lgXiBU6MH1PbzilKeABCciK9iVmq2rzwSxe1k0P0wnd2+rtmhSw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/avatar": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/list-box": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/avatar": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/list-box": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/board": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/board/-/board-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/board/-/board-24.7.0-alpha0.tgz", "integrity": "sha512-ydox2XbWy3Ymn5rXjCC20Aeq8x3WjXwIRb38K0BRwKaCajhZ+1dpm33/DmmH4WXJslo75L3p8q6YgM2od0xDKA==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1" } }, "node_modules/@vaadin/button": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-24.7.0-alpha0.tgz", "integrity": "sha512-O5uKoAuYQ9wooOSE0bJDVg+ekSX1j109LYfgiA49XWhyWgtV/DkN8FqhnpJkEUBMdJMJDKuRDlWBlW7TvnUCmA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/charts": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/charts/-/charts-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/charts/-/charts-24.7.0-alpha0.tgz", "integrity": "sha512-zl/D60kkFKAVSY6gBrvZVp4hFezzBQJCfs0xqAXpH3RQ2SSqIom0m4HCRw56LChvb8o88ntHWqZyogcutmDFQA==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "highcharts": "9.2.2" } }, "node_modules/@vaadin/checkbox": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.7.0-alpha0.tgz", "integrity": "sha512-QhovEOJ2GMDGq+YpOXeqDH/QtLmnPLGHzV5jC1zMO3vs1fcai964tP75BvnX7t20rLd1ZpQTwfFyZ4jDwuFymA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/checkbox-group": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/checkbox-group/-/checkbox-group-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox-group/-/checkbox-group-24.7.0-alpha0.tgz", "integrity": "sha512-+LJtmk1/l5PhgQG5QWiCde8aHhPguLZ0eFc4nUclOAYj/FOeDTEI8hy03FXXX+w1SXxVtRUP1x9NY7OiJ93OrA==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/checkbox": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/checkbox": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/combo-box": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/combo-box/-/combo-box-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/combo-box/-/combo-box-24.7.0-alpha0.tgz", "integrity": "sha512-P64NaS3GXOzMDkwv6Husnaeo2b+U3gQQD2JSBMbBmWbxk/akRMULVa2A6cSllTIAbEIkLN72mhDvlMNZRAyVGw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/input-container": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/input-container": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/common-frontend": { @@ -3110,8 +3110,8 @@ } }, "node_modules/@vaadin/component-base": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.7.0-alpha0.tgz", "integrity": "sha512-Q0oWbwildWL68UOxHLE1PgbsTVrsTqMRV4WBWwBb8a4WaDllnpRMXMcDVh5MAcSUf9baROG6AC5Dp3ONh8r1UQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", @@ -3122,244 +3122,244 @@ } }, "node_modules/@vaadin/confirm-dialog": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/confirm-dialog/-/confirm-dialog-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/confirm-dialog/-/confirm-dialog-24.7.0-alpha0.tgz", "integrity": "sha512-29m9EqYStqBnbtGcqnZpCHpq/qlXuG/niUYJz1AefkFClUXF7o6zFLva7iG6RGA9ktrYFVkWjjZrR3P5s4ZiRA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/dialog": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/dialog": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/context-menu": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/context-menu/-/context-menu-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/context-menu/-/context-menu-24.7.0-alpha0.tgz", "integrity": "sha512-hNj96+27E3d/df3WGf1pMxAvNWktLUAvkYCYbHn84eQ0Pjxh5JMyIVohWUKUBE6uHXbmV9a3232J8OLUtlooMg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/list-box": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/list-box": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/cookie-consent": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/cookie-consent/-/cookie-consent-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/cookie-consent/-/cookie-consent-24.7.0-alpha0.tgz", "integrity": "sha512-3ZNPkh4TnhmA+1tzYijsQeg6UGyB7OxFQjuIdJIHEAzE2y3vXGjsqpXsM5VdWUP5Ck9hY5KZy8H/EQBy+McD7w==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", "cookieconsent": "^3.0.6" } }, "node_modules/@vaadin/crud": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/crud/-/crud-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/crud/-/crud-24.7.0-alpha0.tgz", "integrity": "sha512-EHEv8vHGHe2yXETOhWcDkOzKdqNmXVV9rUJ1ARumR75MrFQzyKYdisoeqs+THFBvH/c6p6hodka7WeNjuwMNyQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/confirm-dialog": "24.4.0-alpha14", - "@vaadin/dialog": "24.4.0-alpha14", - "@vaadin/form-layout": "24.4.0-alpha14", - "@vaadin/grid": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/text-field": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/confirm-dialog": "24.6.0-rc1", + "@vaadin/dialog": "24.6.0-rc1", + "@vaadin/form-layout": "24.6.0-rc1", + "@vaadin/grid": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/text-field": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/custom-field": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/custom-field/-/custom-field-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/custom-field/-/custom-field-24.7.0-alpha0.tgz", "integrity": "sha512-/Q388DxxPiPQTCJaEZ1bul07JoW27bMRBCo9zTDgL6UKK1tTqc2Lpe9cyVWK2P+n9jreqkNrEUiFMfD4gg6LOw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/date-picker": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/date-picker/-/date-picker-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/date-picker/-/date-picker-24.7.0-alpha0.tgz", "integrity": "sha512-zol61DP56fMGyJ8s1iCzJIyBq3cTKSYW+0AC/a8vgn/zNpnUYGxZFxMBN8g/ppok6r6nKE22Ac8+d+A2x0sNzg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.2.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/input-container": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/input-container": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/date-time-picker": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/date-time-picker/-/date-time-picker-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/date-time-picker/-/date-time-picker-24.7.0-alpha0.tgz", "integrity": "sha512-YvLafDwsmq3YuB06qMHb5rq0MWoMDb9ZboCJjM/ggMvGED81FqQtLtPXI0d61kY4kG3cJnnz/VccelJY54fXuQ==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/custom-field": "24.4.0-alpha14", - "@vaadin/date-picker": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/time-picker": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/custom-field": "24.6.0-rc1", + "@vaadin/date-picker": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/time-picker": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/details": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/details/-/details-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/details/-/details-24.7.0-alpha0.tgz", "integrity": "sha512-TeDYHJvalZk6qKApnbvZByEKo+XbWZDHVyZpLrUd9SwXSvywZwP5B/lL7FJCsCqj7tG91EhliY6udInpkejihA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/dialog": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/dialog/-/dialog-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/dialog/-/dialog-24.7.0-alpha0.tgz", "integrity": "sha512-0pyPQ9Un2q5OTt7lGawWjWs58svbIC4eRpE/R8UOTRIP++2XFrrTbC7l9jAudtN5rGyCTGEl+a1Ru7vAQdpNsQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/email-field": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/email-field/-/email-field-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/email-field/-/email-field-24.7.0-alpha0.tgz", "integrity": "sha512-DPSSTiJGKWgb+mFZKzSUcreYbAnZUmm+AiaW0JvYPKFvCAEfYTGXrVRBIzUxz0AVJJJbgB5gRL7KuoZ322g4WQ==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/text-field": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/text-field": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/field-base": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.7.0-alpha0.tgz", "integrity": "sha512-4lwKPrx6YNu1li0oaIsAtsBo9IFkSmhG7a38xtn2HDn4dPEltiViyuUGOzY2WY19RICUj6MtD7Bff3Cwl5W/MQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/field-highlighter": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/field-highlighter/-/field-highlighter-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/field-highlighter/-/field-highlighter-24.7.0-alpha0.tgz", "integrity": "sha512-33vee5dl/NQ2xyFrBebQcQeJCD9yt5KUjlXSp+qYNoUrDtk3s+TUoYV/FP31XegYpjIZ8JzpFLqsro+eo91b9g==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/form-layout": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/form-layout/-/form-layout-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/form-layout/-/form-layout-24.7.0-alpha0.tgz", "integrity": "sha512-LyJjVkcB5j2Hv7Ihn6ISEhq8d7ulBt712m9RQ5DvgFxqe1UeFgk7SEJdyTTpyGzYVQVLEPerXt8Mfl8Udeq8Dw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/grid": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.7.0-alpha0.tgz", "integrity": "sha512-Rm7Jzd7MlADYh3Q6RbncROGqbaZCRZfHVg+qgWwLdDySH4i+rTnPIW1fvS+16CULEz66dMSItX8C7gA7Ikt2gg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/checkbox": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/text-field": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/checkbox": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/text-field": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/grid-pro": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/grid-pro/-/grid-pro-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/grid-pro/-/grid-pro-24.7.0-alpha0.tgz", "integrity": "sha512-B+ztPTrGCQKWtGMqU/a3FwrMcRM/OPdba8kkuoSDHaBwvTZ9dncsV+wUnKN0shQtvCElpJ+IxRgzDzILzDQq+g==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/checkbox": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/grid": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/select": "24.4.0-alpha14", - "@vaadin/text-field": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/checkbox": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/grid": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/select": "24.6.0-rc1", + "@vaadin/text-field": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, @@ -3424,375 +3424,375 @@ "link": true }, "node_modules/@vaadin/horizontal-layout": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/horizontal-layout/-/horizontal-layout-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/horizontal-layout/-/horizontal-layout-24.7.0-alpha0.tgz", "integrity": "sha512-8CTPrcL5z3hSwTde2UMwkmuYylO+tCFSNrVf9LZHWkp3VqgezQ6uDukKSdzfBhx7BxSvy33Tpx6/RIGM+53Jtw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/icon": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.7.0-alpha0.tgz", "integrity": "sha512-09RnguzuXQl/c2MYMC/ZDMUwcHunr2O1Rv5DZF1/r8ODEZAzP/1B+h7tFDezenLGhAqPllBmgdGYdwW9QpSM4w==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/icons": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.7.0-alpha0.tgz", "integrity": "sha512-9ERLS7Dw0k7WnJ6SALGr1bpNa7mpZ3HgpGMUhYI8+dgNspEkyQW2c+oj4UDjfzh3n/6ruf23Ack/ZbHGTCiQHg==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/icon": "24.4.0-alpha14" + "@vaadin/icon": "24.6.0-rc1" } }, "node_modules/@vaadin/input-container": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.7.0-alpha0.tgz", "integrity": "sha512-a29AADGzxgJLnUH/oJeqqV3DUxj10/2qZ5VISnw0y15/sHyXfOXKh183enpncLsOU/E7LoMD6MPkjApuIpq+6w==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/integer-field": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/integer-field/-/integer-field-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/integer-field/-/integer-field-24.7.0-alpha0.tgz", "integrity": "sha512-Hendyyc8LJAP1RD2rNqVI+dyRmFYykrQzmemLDlk2gtVP/5OjvfOOLX5lKVhqTMnBQIcqPyZb5fGYNsivSWC5A==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/number-field": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14" + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/number-field": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1" } }, "node_modules/@vaadin/item": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-24.7.0-alpha0.tgz", "integrity": "sha512-4Am7qxECsxxEoQmgmk3SFsSMUjDwottMI7w0fJFJOieTlS6joNZvgqXVXDCmj4ZPG7gR0r8qr6+q5++TpbteFg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/list-box": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-24.7.0-alpha0.tgz", "integrity": "sha512-fS/5E//GH/mM3toOhk2fwx2MPkc+r/ANsjJ4P4hzn7s8/fJG63WGo/6PiyGIiHOG0H0vpQ3/RcoRG0jM6OIP0w==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/lit-renderer": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.7.0-alpha0.tgz", "integrity": "sha512-i/V5lJaw2vpJzDvg+ZU+yhBrdh72ihxigO9V0PcRvafx2/aI1SYvvyV8vb2cZpAX8NzHWRKr17viooOomeT6xQ==", "dependencies": { "lit": "^3.0.0" } }, "node_modules/@vaadin/login": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/login/-/login-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/login/-/login-24.7.0-alpha0.tgz", "integrity": "sha512-NCrBvdF7KwJr7H9JIvMrfURJPaeAYujquirlfUXa1asAGwEwSVAq6sBpg6Yay84JtHhtRBpjdeHmdulbb42JGQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/password-field": "24.4.0-alpha14", - "@vaadin/text-field": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/password-field": "24.6.0-rc1", + "@vaadin/text-field": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/map": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/map/-/map-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/map/-/map-24.7.0-alpha0.tgz", "integrity": "sha512-jdfC4Siy482yZ6/7miNNnYmWvWXcdlGTM1r7nELsjcRX6wlmTxa7tAlf97JhUHt75gtSEyEV6kVWbrpXwfmVOA==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "ol": "6.13.0" } }, "node_modules/@vaadin/menu-bar": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/menu-bar/-/menu-bar-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/menu-bar/-/menu-bar-24.7.0-alpha0.tgz", "integrity": "sha512-Bb8WkHjSGzLnyGIDWV1fMwA1wD6gtaDDjbe7Ef1nw/+7uLg1iEa8zCT/MekYrGmxEdXbqTukBFq0UAxSBmjoNw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/context-menu": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/list-box": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/context-menu": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/list-box": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/message-input": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/message-input/-/message-input-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/message-input/-/message-input-24.7.0-alpha0.tgz", "integrity": "sha512-+bBsY1/CTk7MGFNWCTJQYs/RLjAss0/ujv1r6SaT3cz52vU2W61mpX/wJ7tR00G0AwQfDPr1wCOPHU29eUWRdQ==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/text-area": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/text-area": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/message-list": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/message-list/-/message-list-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/message-list/-/message-list-24.7.0-alpha0.tgz", "integrity": "sha512-8NXNkHzKlxda5qJZ8lA3aHN4lgn+qldOb3NYBPa5L6Qzskdn1l58nr6xf50SUkb5TUHDrO4xKDS0K0wB/NEEJw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/avatar": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/avatar": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/multi-select-combo-box": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/multi-select-combo-box/-/multi-select-combo-box-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/multi-select-combo-box/-/multi-select-combo-box-24.7.0-alpha0.tgz", "integrity": "sha512-wDQ8zspzTAaqsu0LO0v6dJBxl+hE4kCs25jXALdr3rRgDIQRn01Xk2DG7Z3BYaQFRs/PFJgaV7EKGpRMAxCZ3Q==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/combo-box": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/input-container": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/combo-box": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/input-container": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/notification": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/notification/-/notification-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/notification/-/notification-24.7.0-alpha0.tgz", "integrity": "sha512-ulK0vK3C73iUQxKPB1xlgNxQXdBA28elHYQGnngHmGQK7Lys8yrF88/FJ+fBAiM4b9YEXrYqQjljYW1r5Euoiw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/number-field": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/number-field/-/number-field-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/number-field/-/number-field-24.7.0-alpha0.tgz", "integrity": "sha512-tJgV10Xw76CPFPb8hkQUiKpEatTSAqviKcfubUEsPCVJf6He0V9YvxiROTTPxpBNDIGP4KdaxCb014qtIcYteQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/input-container": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/input-container": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/overlay": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.7.0-alpha0.tgz", "integrity": "sha512-aLJDO1R949aPbFJ7O33VIfRRQkIMji4YGL3hMP7qo5RZfQEt+sRqquCKoN6qNilAAstmQ6SYFPj3NhFq+Emi1A==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/password-field": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-24.7.0-alpha0.tgz", "integrity": "sha512-m1aWOhZ+dY+ZKwjQ/xADwSi6ZDd0PF2TEvBoXYXipx0JqmcCOrZYN4KjHRLTYhZxNTBVZZ0xUqiWa6kvCM+v1w==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/text-field": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/text-field": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/polymer-legacy-adapter": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.7.0-alpha0.tgz", "integrity": "sha512-FxN4JI86zDlgOKXfdmCBfOTJ6o+37TIubwOf37N6l2G+mRIpfNR51N0+STUU8qiusIv3HdDZIEP9msFpJpysug==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/progress-bar": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/progress-bar/-/progress-bar-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/progress-bar/-/progress-bar-24.7.0-alpha0.tgz", "integrity": "sha512-hRnFi14rmXt8QFSm66lRnxA5ztTwyZnktPIawdIgZYABvqX4Js+VdOJPZtUT8oH7LmwK9EKa8AV8Q2kE3S/xnw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/radio-group": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/radio-group/-/radio-group-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/radio-group/-/radio-group-24.7.0-alpha0.tgz", "integrity": "sha512-+4wWQAjAyrxhBTv5ZA2wL6XXgT0EAvWM97ywc9cTG4WCP11rYx7hSgPiwC157nEYkvDvvEmXBVmItsfPiA0rdA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/react-components": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/react-components/-/react-components-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/react-components/-/react-components-24.7.0-alpha0.tgz", "integrity": "sha512-RzMcNUBwOetOGA5/V8m4KvRRg+Dby5OzSAB/xj228AKPbilw+7Un4c9UuyaLWoSVTJ7NxEzDLSTqGLwimcCe7A==", "dependencies": { "@lit/react": "^1.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/accordion": "24.4.0-alpha14", - "@vaadin/app-layout": "24.4.0-alpha14", - "@vaadin/avatar": "24.4.0-alpha14", - "@vaadin/avatar-group": "24.4.0-alpha14", - "@vaadin/board": "24.4.0-alpha14", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/charts": "24.4.0-alpha14", - "@vaadin/checkbox": "24.4.0-alpha14", - "@vaadin/checkbox-group": "24.4.0-alpha14", - "@vaadin/combo-box": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/confirm-dialog": "24.4.0-alpha14", - "@vaadin/context-menu": "24.4.0-alpha14", - "@vaadin/cookie-consent": "24.4.0-alpha14", - "@vaadin/crud": "24.4.0-alpha14", - "@vaadin/custom-field": "24.4.0-alpha14", - "@vaadin/date-picker": "24.4.0-alpha14", - "@vaadin/date-time-picker": "24.4.0-alpha14", - "@vaadin/details": "24.4.0-alpha14", - "@vaadin/dialog": "24.4.0-alpha14", - "@vaadin/email-field": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/field-highlighter": "24.4.0-alpha14", - "@vaadin/form-layout": "24.4.0-alpha14", - "@vaadin/grid": "24.4.0-alpha14", - "@vaadin/grid-pro": "24.4.0-alpha14", - "@vaadin/horizontal-layout": "24.4.0-alpha14", - "@vaadin/icon": "24.4.0-alpha14", - "@vaadin/icons": "24.4.0-alpha14", - "@vaadin/input-container": "24.4.0-alpha14", - "@vaadin/integer-field": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/list-box": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/login": "24.4.0-alpha14", - "@vaadin/map": "24.4.0-alpha14", - "@vaadin/menu-bar": "24.4.0-alpha14", - "@vaadin/message-input": "24.4.0-alpha14", - "@vaadin/message-list": "24.4.0-alpha14", - "@vaadin/multi-select-combo-box": "24.4.0-alpha14", - "@vaadin/notification": "24.4.0-alpha14", - "@vaadin/number-field": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/password-field": "24.4.0-alpha14", - "@vaadin/progress-bar": "24.4.0-alpha14", - "@vaadin/radio-group": "24.4.0-alpha14", - "@vaadin/rich-text-editor": "24.4.0-alpha14", - "@vaadin/scroller": "24.4.0-alpha14", - "@vaadin/select": "24.4.0-alpha14", - "@vaadin/side-nav": "24.4.0-alpha14", - "@vaadin/split-layout": "24.4.0-alpha14", - "@vaadin/tabs": "24.4.0-alpha14", - "@vaadin/tabsheet": "24.4.0-alpha14", - "@vaadin/text-area": "24.4.0-alpha14", - "@vaadin/text-field": "24.4.0-alpha14", - "@vaadin/time-picker": "24.4.0-alpha14", - "@vaadin/tooltip": "24.4.0-alpha14", - "@vaadin/upload": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", - "@vaadin/vertical-layout": "24.4.0-alpha14", - "@vaadin/virtual-list": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/accordion": "24.6.0-rc1", + "@vaadin/app-layout": "24.6.0-rc1", + "@vaadin/avatar": "24.6.0-rc1", + "@vaadin/avatar-group": "24.6.0-rc1", + "@vaadin/board": "24.6.0-rc1", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/charts": "24.6.0-rc1", + "@vaadin/checkbox": "24.6.0-rc1", + "@vaadin/checkbox-group": "24.6.0-rc1", + "@vaadin/combo-box": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/confirm-dialog": "24.6.0-rc1", + "@vaadin/context-menu": "24.6.0-rc1", + "@vaadin/cookie-consent": "24.6.0-rc1", + "@vaadin/crud": "24.6.0-rc1", + "@vaadin/custom-field": "24.6.0-rc1", + "@vaadin/date-picker": "24.6.0-rc1", + "@vaadin/date-time-picker": "24.6.0-rc1", + "@vaadin/details": "24.6.0-rc1", + "@vaadin/dialog": "24.6.0-rc1", + "@vaadin/email-field": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/field-highlighter": "24.6.0-rc1", + "@vaadin/form-layout": "24.6.0-rc1", + "@vaadin/grid": "24.6.0-rc1", + "@vaadin/grid-pro": "24.6.0-rc1", + "@vaadin/horizontal-layout": "24.6.0-rc1", + "@vaadin/icon": "24.6.0-rc1", + "@vaadin/icons": "24.6.0-rc1", + "@vaadin/input-container": "24.6.0-rc1", + "@vaadin/integer-field": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/list-box": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/login": "24.6.0-rc1", + "@vaadin/map": "24.6.0-rc1", + "@vaadin/menu-bar": "24.6.0-rc1", + "@vaadin/message-input": "24.6.0-rc1", + "@vaadin/message-list": "24.6.0-rc1", + "@vaadin/multi-select-combo-box": "24.6.0-rc1", + "@vaadin/notification": "24.6.0-rc1", + "@vaadin/number-field": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/password-field": "24.6.0-rc1", + "@vaadin/progress-bar": "24.6.0-rc1", + "@vaadin/radio-group": "24.6.0-rc1", + "@vaadin/rich-text-editor": "24.6.0-rc1", + "@vaadin/scroller": "24.6.0-rc1", + "@vaadin/select": "24.6.0-rc1", + "@vaadin/side-nav": "24.6.0-rc1", + "@vaadin/split-layout": "24.6.0-rc1", + "@vaadin/tabs": "24.6.0-rc1", + "@vaadin/tabsheet": "24.6.0-rc1", + "@vaadin/text-area": "24.6.0-rc1", + "@vaadin/text-field": "24.6.0-rc1", + "@vaadin/time-picker": "24.6.0-rc1", + "@vaadin/tooltip": "24.6.0-rc1", + "@vaadin/upload": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", + "@vaadin/vertical-layout": "24.6.0-rc1", + "@vaadin/virtual-list": "24.6.0-rc1" }, "peerDependencies": { "@types/react": "^18.2.37", @@ -3810,20 +3810,20 @@ } }, "node_modules/@vaadin/rich-text-editor": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/rich-text-editor/-/rich-text-editor-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/rich-text-editor/-/rich-text-editor-24.7.0-alpha0.tgz", "integrity": "sha512-DOY3bTv9z0BeI/2tA2zpLqcFzu0Eb/3KuG64OkjWyR6JwQUt3cN3D3RuBcAY8Z1FyCAV7T/luqAHoaFkR8eRrg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/confirm-dialog": "24.4.0-alpha14", - "@vaadin/text-field": "24.4.0-alpha14", - "@vaadin/tooltip": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/confirm-dialog": "24.6.0-rc1", + "@vaadin/text-field": "24.6.0-rc1", + "@vaadin/tooltip": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, @@ -3837,178 +3837,178 @@ } }, "node_modules/@vaadin/scroller": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/scroller/-/scroller-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/scroller/-/scroller-24.7.0-alpha0.tgz", "integrity": "sha512-1fVeZoWjROCH1IlO9IUtv59uKCE8aykUWQZsalgvASJz8vWKcINDSjDbSv+d5bRBdhdLwC2lfySEZXWrMogE/w==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/select": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/select/-/select-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/select/-/select-24.7.0-alpha0.tgz", "integrity": "sha512-DwlRnuUi7NmLDA2hWYM3eZww6fJ/xqV2dr1+deLnjamzigYtMdkKP6ENN8ibiUsoCqIMNU2KggJtGUZChff3+A==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.2.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/input-container": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/list-box": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/input-container": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/list-box": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/side-nav": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/side-nav/-/side-nav-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/side-nav/-/side-nav-24.7.0-alpha0.tgz", "integrity": "sha512-74NXlzWks53w8HXGTqDjCVwA/S+nNPWueMgh/n6y083PRvKyfRqUpcVNXovFyo0JHmU0dBIen6Cd1Ams/Xig4A==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/split-layout": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/split-layout/-/split-layout-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/split-layout/-/split-layout-24.7.0-alpha0.tgz", "integrity": "sha512-TtxJXhsJaqc+psCyhyY3JiLOM54fH/mXudl+QNaMFTahUHNmujLV+AaW8L9xR+367xFao4brXDh6nc9y4H3L3w==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/tabs": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/tabs/-/tabs-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/tabs/-/tabs-24.7.0-alpha0.tgz", "integrity": "sha512-JFrWgDXXTNd0HF6EGEfHyCB+HVbcmYcrBUHtI2FGyZmPjJuwumLomBSF7K7ep1b/YYvDvwzRPhTrPWLw1ALCJQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/tabsheet": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/tabsheet/-/tabsheet-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/tabsheet/-/tabsheet-24.7.0-alpha0.tgz", "integrity": "sha512-PNh1CV8glqzhNd3jq2h62gjgfbJodaPJCotKjjV/5DTYENiWwGLAozcU0uSVE92zRGBRyi3efXBx63S+vz0Ulg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/scroller": "24.4.0-alpha14", - "@vaadin/tabs": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/scroller": "24.6.0-rc1", + "@vaadin/tabs": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/text-area": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/text-area/-/text-area-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/text-area/-/text-area-24.7.0-alpha0.tgz", "integrity": "sha512-fs0W6cWx0tuOIo1FhzgO/CYYUYbm5L9cVmJDspT1F/JrqzcXZ5MiSbXG6Fy49Mpg1rlA7Ey6pJDUAaB7Jj5Dew==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/input-container": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/input-container": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/text-field": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.7.0-alpha0.tgz", "integrity": "sha512-s6rlAzKUVEBeSFYDzLoSSKfAoPk9d/JzMEba28BZwUSqA+mXiYPmBGX1mLUcIYTz8Orq2Vn1S76V/1kqVIrxng==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/input-container": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/input-container": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, "node_modules/@vaadin/time-picker": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/time-picker/-/time-picker-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/time-picker/-/time-picker-24.7.0-alpha0.tgz", "integrity": "sha512-XLTXIIAi4B3pXYB8SdhSZ5drK4D6j9k+npqc4WE43b1RVAv5mQ+PeLH+oLyfC0mjSZYQ0Q8Hol+rG7IoCHWDcg==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/combo-box": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/field-base": "24.4.0-alpha14", - "@vaadin/input-container": "24.4.0-alpha14", - "@vaadin/item": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/combo-box": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/field-base": "24.6.0-rc1", + "@vaadin/input-container": "24.6.0-rc1", + "@vaadin/item": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/tooltip": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.7.0-alpha0.tgz", "integrity": "sha512-Tzy1rKVxn+DBoGxzngS/A3DApv5Qfrk5HKAoP07K5To0brgDHg9FUigRWuzUMl9BnyaJNWoxR6+fn+xfPqRepQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/overlay": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/overlay": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/upload": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/upload/-/upload-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/upload/-/upload-24.7.0-alpha0.tgz", "integrity": "sha512-Bnfbb9EEffaPpd3LA40I2L1tEHRGSgovAbgIeJH8ojX8EkKZEFNrWnPEW1HjgvJttAEiS10cSuOAv8GSS5aROA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.4.0-alpha14", - "@vaadin/button": "24.4.0-alpha14", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/progress-bar": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/a11y-base": "24.6.0-rc1", + "@vaadin/button": "24.6.0-rc1", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/progress-bar": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, @@ -4018,29 +4018,29 @@ "integrity": "sha512-N6a5nLT/ytEUlpPo+nvdCKIGoyNjPsj3rzPGvGYK8x9Ceg76OTe1xI/GtN71mRW9e2HUScR0kCNOkl1Z63YDjw==" }, "node_modules/@vaadin/vaadin-lumo-styles": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.7.0-alpha0.tgz", "integrity": "sha512-QCmqwos8r1aqInkgjfsAIjRbzkLBwcW3+qSIr6t2xnqyjtkm6KIOG30fdHFoAoxlbsHMetpXp+Q+gjGCZKD8SQ==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/icon": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/icon": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/vaadin-material-styles": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.7.0-alpha0.tgz", "integrity": "sha512-nfUefLi/ik2tyP24arZ1e9ULy3QWTtI9V84udQ3BF9KKPgqEIR7fs1odPYGx60vLDi0JWh8sRf8L+zEmU3wNsw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/vaadin-themable-mixin": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.7.0-alpha0.tgz", "integrity": "sha512-mp73VeGiJcgTFHiHQtE2Dj3jwOutwPdYHqEL5m2GtlpiaVyKZzok4Zj3gTJS1kYhJaE3Q0B+LdSfgDTFhQbMGA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", @@ -4060,29 +4060,29 @@ } }, "node_modules/@vaadin/vertical-layout": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/vertical-layout/-/vertical-layout-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/vertical-layout/-/vertical-layout-24.7.0-alpha0.tgz", "integrity": "sha512-H1UbiLGn2GgquG3C4Zx53R9J7gRE76WaL0Bi822kKjl3/x2K4zF6aQ0SmQRGsh38n3JKND+R8X0NcKX3w3wsKw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14" + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1" } }, "node_modules/@vaadin/virtual-list": { - "version": "24.4.0-alpha14", - "resolved": "https://registry.npmjs.org/@vaadin/virtual-list/-/virtual-list-24.4.0-alpha14.tgz", + "version": "24.7.0-alpha0", + "resolved": "https://registry.npmjs.org/@vaadin/virtual-list/-/virtual-list-24.7.0-alpha0.tgz", "integrity": "sha512-Udi+298334TIRfQL+lxiR+tlJ8/jaTdXjo5h+nQYae7KzFCupsM8evnD/+BGqB2U0RzhYUxqN2D7SWuHfdZN5Q==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.4.0-alpha14", - "@vaadin/lit-renderer": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-material-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/component-base": "24.6.0-rc1", + "@vaadin/lit-renderer": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-material-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "lit": "^3.0.0" } }, diff --git a/packages/java/tests/spring/native/package.json b/packages/java/tests/spring/native/package.json index 7a25484e56..98e8dd6cd9 100644 --- a/packages/java/tests/spring/native/package.json +++ b/packages/java/tests/spring/native/package.json @@ -1,5 +1,5 @@ { - "name": "no-name", + "private": true, "license": "UNLICENSED", "type": "module", "dependencies": { @@ -13,22 +13,23 @@ "@vaadin/hilla-generator-plugin-client": "file:../../../../ts/generator-plugin-client", "@vaadin/hilla-generator-plugin-model": "file:../../../../ts/generator-plugin-model", "@vaadin/hilla-generator-plugin-push": "file:../../../../ts/generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "file:../../../../ts/generator-plugin-signals", "@vaadin/hilla-generator-plugin-subtypes": "file:../../../../ts/generator-plugin-subtypes", "@vaadin/hilla-generator-utils": "file:../../../../ts/generator-utils", "@vaadin/hilla-react-auth": "file:../../../../ts/react-auth", - "@vaadin/react-components": "24.4.0-alpha14", + "@vaadin/react-components": "24.6.0-rc1", "@vaadin/hilla-react-form": "file:../../../../ts/react-form", "@vaadin/hilla-react-crud": "file:../../../../ts/react-crud", "@vaadin/hilla-react-signals": "file:../../../../ts/react-signals", "@polymer/polymer": "3.5.1", "@vaadin/common-frontend": "0.0.18", - "@vaadin/icon": "24.4.0-alpha14", - "@vaadin/icons": "24.4.0-alpha14", - "@vaadin/polymer-legacy-adapter": "24.4.0-alpha14", + "@vaadin/icon": "24.6.0-rc1", + "@vaadin/icons": "24.6.0-rc1", + "@vaadin/polymer-legacy-adapter": "24.6.0-rc1", "@vaadin/router": "1.7.5", - "@vaadin/tooltip": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/tooltip": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "construct-style-sheets-polyfill": "3.1.0", "lit": "2.7.6", "react": "^18.2.0", @@ -57,24 +58,25 @@ }, "vaadin": { "dependencies": { - "@vaadin/hilla-frontend": "24.4.0-alpha5", - "@vaadin/hilla-generator-cli": "24.4.0-alpha5", - "@vaadin/hilla-generator-core": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-backbone": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-barrel": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-client": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-model": "24.4.0-alpha5", - "@vaadin/hilla-generator-plugin-push": "24.4.0-alpha5", - "@vaadin/hilla-generator-utils": "24.4.0-alpha5", + "@vaadin/hilla-frontend": "24.7.0-alpha0", + "@vaadin/hilla-generator-cli": "24.7.0-alpha0", + "@vaadin/hilla-generator-core": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-barrel": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-push": "24.7.0-alpha0", + "@vaadin/hilla-generator-plugin-signals": "24.7.0-alpha0", + "@vaadin/hilla-generator-utils": "24.7.0-alpha0", "@polymer/polymer": "3.5.1", "@vaadin/common-frontend": "0.0.18", - "@vaadin/icon": "24.4.0-alpha14", - "@vaadin/icons": "24.4.0-alpha14", - "@vaadin/polymer-legacy-adapter": "24.4.0-alpha14", + "@vaadin/icon": "24.6.0-rc1", + "@vaadin/icons": "24.6.0-rc1", + "@vaadin/polymer-legacy-adapter": "24.6.0-rc1", "@vaadin/router": "1.7.5", - "@vaadin/tooltip": "24.4.0-alpha14", - "@vaadin/vaadin-lumo-styles": "24.4.0-alpha14", - "@vaadin/vaadin-themable-mixin": "24.4.0-alpha14", + "@vaadin/tooltip": "24.6.0-rc1", + "@vaadin/vaadin-lumo-styles": "24.6.0-rc1", + "@vaadin/vaadin-themable-mixin": "24.6.0-rc1", "construct-style-sheets-polyfill": "3.1.0", "lit": "2.7.6" }, @@ -108,6 +110,7 @@ "@vaadin/icon": "$@vaadin/icon", "@vaadin/hilla-generator-plugin-barrel": "$@vaadin/hilla-generator-plugin-barrel", "@vaadin/hilla-generator-plugin-push": "$@vaadin/hilla-generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "$@vaadin/hilla-generator-plugin-signals", "@vaadin/hilla-generator-core": "$@vaadin/hilla-generator-core", "@vaadin/hilla-generator-plugin-client": "$@vaadin/hilla-generator-plugin-client", "@vaadin/tooltip": "$@vaadin/tooltip", diff --git a/packages/java/tests/spring/native/pom.xml b/packages/java/tests/spring/native/pom.xml index 45c003aa5e..e065b452da 100644 --- a/packages/java/tests/spring/native/pom.xml +++ b/packages/java/tests/spring/native/pom.xml @@ -6,7 +6,7 @@ com.vaadin tests-spring - 24.5-SNAPSHOT + 24.7-SNAPSHOT tests-spring-native ITs for Hilla compiled to native diff --git a/packages/java/tests/spring/native/src/main/java/com/example/application/endpoints/ChatService.java b/packages/java/tests/spring/native/src/main/java/com/example/application/endpoints/ChatService.java index 7c5e44b331..f000d3b3f5 100644 --- a/packages/java/tests/spring/native/src/main/java/com/example/application/endpoints/ChatService.java +++ b/packages/java/tests/spring/native/src/main/java/com/example/application/endpoints/ChatService.java @@ -4,13 +4,14 @@ import java.time.Instant; +import com.vaadin.flow.spring.security.AuthenticationContext; import com.vaadin.hilla.Endpoint; -import com.vaadin.hilla.Nonnull; + +import org.jspecify.annotations.NonNull; + import reactor.core.publisher.Flux; import reactor.core.publisher.Sinks; -import com.vaadin.flow.spring.security.AuthenticationContext; - @Endpoint @PermitAll class ChatService { @@ -28,7 +29,7 @@ record Message(String userName, String text, Instant time) { private final Flux chat = chatSink.asFlux(); - public Flux<@Nonnull Message> join() { + public Flux<@NonNull Message> join() { return chat; } diff --git a/packages/java/tests/spring/pom.xml b/packages/java/tests/spring/pom.xml index cef81235f9..477892f1d0 100644 --- a/packages/java/tests/spring/pom.xml +++ b/packages/java/tests/spring/pom.xml @@ -6,7 +6,7 @@ com.vaadin tests - 24.5-SNAPSHOT + 24.7-SNAPSHOT tests-spring @@ -18,11 +18,18 @@ true true ${project.parent.parent.basedir} - 9.31 + 9.37.3 + + com.vaadin + flow-bom + pom + import + ${flow.version} + com.vaadin vaadin-testbench-bom @@ -189,6 +196,7 @@ it-modules-group-1 endpoints + endpoints-contextpath endpoints discovery endpoints-custom-client endpoints-latest-java - react-grid-test - react-signals react-i18n @@ -218,6 +224,7 @@ endpoints endpoints discovery react-grid-test + react-signals diff --git a/packages/java/tests/spring/react-grid-test/frontend/App.tsx b/packages/java/tests/spring/react-grid-test/frontend/App.tsx index 6b7546d1ed..b84dcf6ea7 100644 --- a/packages/java/tests/spring/react-grid-test/frontend/App.tsx +++ b/packages/java/tests/spring/react-grid-test/frontend/App.tsx @@ -1,5 +1,5 @@ import router from 'Frontend/routes.js'; -import { RouterProvider } from 'react-router-dom'; +import { RouterProvider } from 'react-router'; export default function App() { return ; diff --git a/packages/java/tests/spring/react-grid-test/frontend/MainLayout.tsx b/packages/java/tests/spring/react-grid-test/frontend/MainLayout.tsx index 779dbd23bb..91a331da81 100644 --- a/packages/java/tests/spring/react-grid-test/frontend/MainLayout.tsx +++ b/packages/java/tests/spring/react-grid-test/frontend/MainLayout.tsx @@ -2,7 +2,7 @@ import { AppLayout } from '@vaadin/react-components/AppLayout.js'; import { DrawerToggle } from '@vaadin/react-components/DrawerToggle.js'; import { Scroller } from '@vaadin/react-components/Scroller.js'; import { routes } from 'Frontend/routes.js'; -import { NavLink, Outlet } from 'react-router-dom'; +import { NavLink, Outlet } from 'react-router'; export default function MainLayout() { const menuRoutes = routes[0]!.children; diff --git a/packages/java/tests/spring/react-grid-test/frontend/routes.tsx b/packages/java/tests/spring/react-grid-test/frontend/routes.tsx index 669155f6b8..d22e2791e0 100644 --- a/packages/java/tests/spring/react-grid-test/frontend/routes.tsx +++ b/packages/java/tests/spring/react-grid-test/frontend/routes.tsx @@ -1,4 +1,4 @@ -import { createBrowserRouter } from 'react-router-dom'; +import { createBrowserRouter } from 'react-router'; import MainLayout from './MainLayout.js'; import { AutoCrudView } from 'Frontend/views/AutoCrudView.js'; import { AutoFormView } from 'Frontend/views/AutoFormView.js'; diff --git a/packages/java/tests/spring/react-grid-test/frontend/views/AutoCrudView.tsx b/packages/java/tests/spring/react-grid-test/frontend/views/AutoCrudView.tsx index e7bf2d7d83..c82d597b45 100644 --- a/packages/java/tests/spring/react-grid-test/frontend/views/AutoCrudView.tsx +++ b/packages/java/tests/spring/react-grid-test/frontend/views/AutoCrudView.tsx @@ -2,7 +2,7 @@ import { AutoCrud } from '@vaadin/hilla-react-crud'; import PersonModel from 'Frontend/generated/com/vaadin/hilla/test/reactgrid/PersonModel.js'; import { PersonService } from 'Frontend/generated/endpoints.js'; -export function AutoCrudView(): JSX.Element { +export function AutoCrudView(): React.JSX.Element { /* page size is defined only to make testing easier */ return (

diff --git a/packages/java/tests/spring/react-grid-test/frontend/views/AutoFormView.tsx b/packages/java/tests/spring/react-grid-test/frontend/views/AutoFormView.tsx index d59aeac5ce..8b5f78b6f4 100644 --- a/packages/java/tests/spring/react-grid-test/frontend/views/AutoFormView.tsx +++ b/packages/java/tests/spring/react-grid-test/frontend/views/AutoFormView.tsx @@ -4,7 +4,7 @@ import type Appointment from 'Frontend/generated/com/vaadin/hilla/test/reactgrid import AppointmentModel from 'Frontend/generated/com/vaadin/hilla/test/reactgrid/AppointmentModel.js'; import { AppointmentService } from 'Frontend/generated/endpoints.js'; -export function AutoFormView(): JSX.Element { +export function AutoFormView(): React.JSX.Element { const [submitted, setSubmitted] = useState(undefined); function handleSubmit({ item }: SubmitEvent) { diff --git a/packages/java/tests/spring/react-grid-test/frontend/views/GridUseDataProviderHookView.tsx b/packages/java/tests/spring/react-grid-test/frontend/views/GridUseDataProviderHookView.tsx index f3a8af28d4..09d04c88a4 100644 --- a/packages/java/tests/spring/react-grid-test/frontend/views/GridUseDataProviderHookView.tsx +++ b/packages/java/tests/spring/react-grid-test/frontend/views/GridUseDataProviderHookView.tsx @@ -14,12 +14,12 @@ type GridBodyReactRendererProps = { item: TItem; }; -function LuckyNumberRenderer({ item }: GridBodyReactRendererProps): JSX.Element { +function LuckyNumberRenderer({ item }: GridBodyReactRendererProps): React.JSX.Element { const value = item.luckyNumber; return {value}; } -export function GridUseDataProviderHook(): JSX.Element { +export function GridUseDataProviderHook(): React.JSX.Element { const [filter, setFilter] = useState(); const { dataProvider, refresh } = useDataProvider(PersonService, filter); const [savedPerson, setSavedPerson] = useState(undefined); @@ -33,7 +33,7 @@ export function GridUseDataProviderHook(): JSX.Element { birthDate: '2000-01-01', shiftStart: '08:00', appointmentTime: '', - }; + } as Person; function addNewPerson() { PersonService.save(newPerson).then(setSavedPerson); diff --git a/packages/java/tests/spring/react-grid-test/frontend/views/GridWithEntityReferences.tsx b/packages/java/tests/spring/react-grid-test/frontend/views/GridWithEntityReferences.tsx index 61e30475b7..a8e5d17c7e 100644 --- a/packages/java/tests/spring/react-grid-test/frontend/views/GridWithEntityReferences.tsx +++ b/packages/java/tests/spring/react-grid-test/frontend/views/GridWithEntityReferences.tsx @@ -2,7 +2,7 @@ import { AutoGrid } from '@vaadin/hilla-react-crud'; import EmployeeModel from 'Frontend/generated/com/vaadin/hilla/test/reactgrid/entityreferences/EmployeeModel.js'; import { EmployeeService } from 'Frontend/generated/endpoints.js'; -export function GridWithEntityReferences(): JSX.Element { +export function GridWithEntityReferences(): React.JSX.Element { return ; /* page size is defined only to make testing easier */ } diff --git a/packages/java/tests/spring/react-grid-test/frontend/views/ReadOnlyGrid.tsx b/packages/java/tests/spring/react-grid-test/frontend/views/ReadOnlyGrid.tsx index f078f034d1..f0e57e74a9 100644 --- a/packages/java/tests/spring/react-grid-test/frontend/views/ReadOnlyGrid.tsx +++ b/packages/java/tests/spring/react-grid-test/frontend/views/ReadOnlyGrid.tsx @@ -7,12 +7,12 @@ type GridBodyReactRendererProps = { item: TItem; }; -function LuckyNumberRenderer({ item }: GridBodyReactRendererProps): JSX.Element { +function LuckyNumberRenderer({ item }: GridBodyReactRendererProps): React.JSX.Element { const value = item.luckyNumber; return {value}; } -export function ReadOnlyGrid(): JSX.Element { +export function ReadOnlyGrid(): React.JSX.Element { return ( { ); }; -const FullNameRenderer = ({ item }: { item: Person }): JSX.Element => ( +const FullNameRenderer = ({ item }: { item: Person }): React.JSX.Element => ( {item.firstName} {item.lastName} @@ -46,7 +46,7 @@ const FullNameRenderer = ({ item }: { item: Person }): JSX.Element => ( const HeaderRenderer = () =>
Full Name (currently: {new Date().toLocaleString()})
; -export function ReadOnlyGridCustomFilter(): JSX.Element { +export function ReadOnlyGridCustomFilter(): React.JSX.Element { return (
(undefined); return ( diff --git a/packages/java/tests/spring/react-grid-test/frontend/views/ReadOnlyGridSinglePropertyFilter.tsx b/packages/java/tests/spring/react-grid-test/frontend/views/ReadOnlyGridSinglePropertyFilter.tsx index 30fb903765..55d9718449 100644 --- a/packages/java/tests/spring/react-grid-test/frontend/views/ReadOnlyGridSinglePropertyFilter.tsx +++ b/packages/java/tests/spring/react-grid-test/frontend/views/ReadOnlyGridSinglePropertyFilter.tsx @@ -6,7 +6,7 @@ import Matcher from 'Frontend/generated/com/vaadin/hilla/crud/filter/PropertyStr import PersonModel from 'Frontend/generated/com/vaadin/hilla/test/reactgrid/PersonModel.js'; import { PersonService } from 'Frontend/generated/endpoints.js'; -export function ReadOnlyGridSinglePropertyFilter(): JSX.Element { +export function ReadOnlyGridSinglePropertyFilter(): React.JSX.Element { const [filter, setFilter] = useState(undefined); return (
diff --git a/packages/java/tests/spring/react-grid-test/frontend/views/ReadOnlyGridWithHeaderFilter.tsx b/packages/java/tests/spring/react-grid-test/frontend/views/ReadOnlyGridWithHeaderFilter.tsx index a722b9d412..2036f4bda1 100644 --- a/packages/java/tests/spring/react-grid-test/frontend/views/ReadOnlyGridWithHeaderFilter.tsx +++ b/packages/java/tests/spring/react-grid-test/frontend/views/ReadOnlyGridWithHeaderFilter.tsx @@ -6,7 +6,7 @@ import CompanyModel from 'Frontend/generated/com/vaadin/hilla/test/reactgrid/Com import PersonModel from 'Frontend/generated/com/vaadin/hilla/test/reactgrid/PersonModel.js'; import { CompanyService, PersonService } from 'Frontend/generated/endpoints.js'; -export function ReadOnlyGridWithHeaderFilters(): JSX.Element { +export function ReadOnlyGridWithHeaderFilters(): React.JSX.Element { const [model, setModel] = useState>>([PersonModel]); const [service, setService] = useState>(PersonService); const [noHeaderFilters, setNoHeaderFilters] = useState(false); diff --git a/packages/java/tests/spring/react-grid-test/package-lock.json b/packages/java/tests/spring/react-grid-test/package-lock.json index 214ff68963..d58bdabc05 100644 --- a/packages/java/tests/spring/react-grid-test/package-lock.json +++ b/packages/java/tests/spring/react-grid-test/package-lock.json @@ -1,14 +1,13 @@ { - "name": "no-name", + "name": "react-grid-test", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "no-name", "license": "UNLICENSED", "dependencies": { - "@polymer/polymer": "3.5.1", - "@vaadin/bundles": "24.5.0-alpha3", + "@polymer/polymer": "3.5.2", + "@vaadin/bundles": "24.7.0-alpha4", "@vaadin/common-frontend": "0.0.19", "@vaadin/hilla-file-router": "file:../../../../ts/file-router", "@vaadin/hilla-frontend": "file:../../../../ts/frontend", @@ -18,26 +17,26 @@ "@vaadin/hilla-react-form": "file:../../../../ts/react-form", "@vaadin/hilla-react-i18n": "file:../../../../ts/react-i18n", "@vaadin/hilla-react-signals": "file:../../../../ts/react-signals", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/react-components": "24.5.0-alpha3", - "@vaadin/react-components-pro": "24.5.0-alpha3", - "@vaadin/router": "1.7.5", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/react-components": "24.7.0-alpha4", + "@vaadin/react-components-pro": "24.7.0-alpha4", "@vaadin/vaadin-development-mode-detector": "2.0.7", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "@vaadin/vaadin-usage-statistics": "2.1.2", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "@vaadin/vaadin-usage-statistics": "2.1.3", "construct-style-sheets-polyfill": "3.1.0", - "lit": "3.1.4", + "lit": "3.2.1", "react": "18.3.1", "react-dom": "18.3.1", - "react-router-dom": "6.23.1" + "react-router": "7.1.1" }, "devDependencies": { - "@babel/preset-react": "7.24.7", - "@rollup/plugin-replace": "5.0.7", - "@rollup/pluginutils": "5.1.0", - "@types/react": "18.3.3", - "@types/react-dom": "18.3.0", + "@babel/preset-react": "7.26.3", + "@preact/signals-react-transform": "0.5.1", + "@rollup/plugin-replace": "6.0.2", + "@rollup/pluginutils": "5.1.4", + "@types/react": "18.3.18", + "@types/react-dom": "18.3.5", "@vaadin/hilla-generator-cli": "file:../../../../ts/generator-cli", "@vaadin/hilla-generator-core": "file:../../../../ts/generator-core", "@vaadin/hilla-generator-plugin-backbone": "file:../../../../ts/generator-plugin-backbone", @@ -45,60 +44,66 @@ "@vaadin/hilla-generator-plugin-client": "file:../../../../ts/generator-plugin-client", "@vaadin/hilla-generator-plugin-model": "file:../../../../ts/generator-plugin-model", "@vaadin/hilla-generator-plugin-push": "file:../../../../ts/generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "file:../../../../ts/generator-plugin-signals", "@vaadin/hilla-generator-plugin-subtypes": "file:../../../../ts/generator-plugin-subtypes", "@vaadin/hilla-generator-utils": "file:../../../../ts/generator-utils", - "@vitejs/plugin-react": "4.3.1", - "async": "3.2.5", - "glob": "10.4.1", + "@vitejs/plugin-react": "4.3.4", + "async": "3.2.6", + "glob": "11.0.0", "rollup-plugin-brotli": "3.1.0", - "rollup-plugin-visualizer": "5.12.0", + "rollup-plugin-visualizer": "5.13.1", "strip-css-comments": "5.0.0", "transform-ast": "2.4.4", - "typescript": "5.4.5", - "vite": "5.3.1", - "vite-plugin-checker": "0.6.4", - "workbox-build": "7.1.1", - "workbox-core": "7.1.0", - "workbox-precaching": "7.1.0" + "typescript": "5.7.3", + "vite": "6.0.6", + "vite-plugin-checker": "0.8.0", + "workbox-build": "7.3.0", + "workbox-core": "7.3.0", + "workbox-precaching": "7.3.0" } }, "../../../../ts/file-router": { "name": "@vaadin/hilla-file-router", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "@vaadin/hilla-react-auth": "24.5.0-alpha2", + "@types/chai": "^5.0.1", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vaadin/hilla-react-auth": "24.7.0-alpha5", + "@vaadin/hilla-react-signals": "24.7.0-alpha5", + "c8": "^10.1.3", "react": "^18.2.0", - "rollup": "^4.12.0", - "typescript": "5.3.2" + "rollup": "^4.21.0", + "typescript": "5.7.2" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", "@types/chai-as-promised": "^7.1.8", - "@types/chai-fs": "^2.0.4", + "@types/chai-fs": "^2.0.5", "@types/chai-like": "^1.1.3", - "@types/deep-equal-in-any-order": "^1.0.3", - "@types/mocha": "^10.0.6", - "@types/sinon": "^10.0.17", + "@types/deep-equal-in-any-order": "^1.0.4", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", "@types/sinon-chai": "^3.2.12", - "chai-as-promised": "^7.1.1", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-deep-equal-ignore-undefined": "^1.1.1", "chai-fs": "^2.0.0", - "chai-like": "^1.1.1", + "chai-like": "^1.1.3", "deep-equal-in-any-order": "^2.0.6", - "mocha": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.9.0" + "type-fest": "^4.30.2" }, "peerDependencies": { - "react": "^18.2.0", - "react-router-dom": "^6.21.1" + "react": "18 || 19", + "react-dom": "18 || 19", + "react-router": "^7" } }, "../../../../ts/frontend": { "name": "@vaadin/hilla-frontend", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { "@vaadin/common-frontend": "^0.0.19", @@ -106,22 +111,22 @@ "js-cookie": "^3.0.5" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@open-wc/testing": "^3.2.0", - "@types/atmosphere.js": "^2.1.4", - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/js-cookie": "^3.0.4", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", + "@open-wc/testing": "^3.2.2", + "@types/atmosphere.js": "^2.1.6", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/js-cookie": "^3.0.6", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", "fetch-mock": "^9.11.0", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { "lit": "^3.0.0" @@ -129,69 +134,69 @@ }, "../../../../ts/generator-cli": { "name": "@vaadin/hilla-generator-cli", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "get-stdin": "^9.0.0", - "meow": "^12.1.1" + "meow": "^13.2.0" }, "bin": { "tsgen": "bin/index.js" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "chai-as-promised": "^7.1.1", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-as-promised": "^7.1.2", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2" } }, "../../../../ts/generator-core": { "name": "@vaadin/hilla-generator-core", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { "@apidevtools/swagger-parser": "^10.1.0", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "meow": "^12.1.1", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "meow": "^13.2.0", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" @@ -199,247 +204,281 @@ }, "../../../../ts/generator-plugin-backbone": { "name": "@vaadin/hilla-generator-plugin-backbone", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2" } }, "../../../../ts/generator-plugin-barrel": { "name": "@vaadin/hilla-generator-plugin-barrel", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "typescript": "5.3.2" + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2" } }, "../../../../ts/generator-plugin-client": { "name": "@vaadin/hilla-generator-plugin-client", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "typescript": "5.3.2" + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2" } }, "../../../../ts/generator-plugin-model": { "name": "@vaadin/hilla-generator-plugin-model", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "@vaadin/hilla-lit-form": "24.5.0-alpha2" } }, "../../../../ts/generator-plugin-push": { "name": "@vaadin/hilla-generator-plugin-push", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" + } + }, + "../../../../ts/generator-plugin-signals": { + "name": "@vaadin/hilla-generator-plugin-signals", + "version": "24.7.0-alpha5", + "dev": true, + "license": "Apache 2.0", + "dependencies": { + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "fast-deep-equal": "^3.1.3", + "iterator-helpers-polyfill": "^3.0.1", + "openapi-types": "^12.1.3", + "typescript": "5.7.2" }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2" + "devDependencies": { + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", + "copyfiles": "^2.4.1", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "type-fest": "^4.30.2" + }, + "engines": { + "node": ">= 16.13" } }, "../../../../ts/generator-plugin-subtypes": { "name": "@vaadin/hilla-generator-plugin-subtypes", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2" } }, "../../../../ts/generator-utils": { "name": "@vaadin/hilla-generator-utils", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "pino": "^8.15.1", - "pino-pretty": "^10.2.0", - "typescript": "5.3.2" + "pino": "^9.5.0", + "pino-pretty": "^10.3.1", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-like": "^1.1.3", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" @@ -447,24 +486,24 @@ }, "../../../../ts/lit-form": { "name": "@vaadin/hilla-lit-form", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "validator": "^13.11.0" + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "validator": "^13.12.0" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@types/chai": "^4.3.6", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-dom": "^1.11.0", - "sinon": "^16.0.0", + "@types/chai": "^4.3.20", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-dom": "^1.12.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { "lit": "^3.0.0" @@ -472,146 +511,175 @@ }, "../../../../ts/react-auth": { "name": "@vaadin/hilla-react-auth", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.5.0-alpha2" + "@vaadin/hilla-frontend": "24.7.0-alpha5" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@testing-library/react": "^14.0.0", - "@testing-library/user-event": "^14.5.1", - "@types/chai": "^4.3.6", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/react": "^18.2.23", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-dom": "^1.11.0", - "react-router-dom": "^6.16.0", - "sinon": "^16.0.0", + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.1.0", + "@testing-library/user-event": "^14.5.2", + "@types/chai": "^4.3.20", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/react": "^18.3.18", + "@types/react-dom": "^18", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "@web/test-runner": "^0.19.0", + "chai": "^5.1.2", + "chai-dom": "^1.12.0", + "react-router": "^7.0.2", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { - "react": "^18", - "react-router-dom": "^6" + "react": "18 || 19", + "react-dom": "18 || 19", + "react-router": "^7" } }, "../../../../ts/react-crud": { "name": "@vaadin/hilla-react-crud", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "@vaadin/hilla-lit-form": "24.5.0-alpha2", - "@vaadin/hilla-react-form": "24.5.0-alpha2", - "@vaadin/react-components": "24.5.0-alpha3" + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", + "@vaadin/hilla-react-form": "24.7.0-alpha5", + "@vaadin/react-components": "24.7.0-alpha4" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@testing-library/react": "^14.0.0", - "@testing-library/user-event": "^14.5.1", - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/react": "^18.2.23", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.1.0", + "@testing-library/user-event": "^14.5.2", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/react": "^18.3.18", + "@types/react-dom": "^18", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", "karma-viewport": "^1.0.9", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { - "react": "^18", - "react-dom": "^18" + "react": "18 || 19", + "react-dom": "18 || 19" } }, "../../../../ts/react-form": { "name": "@vaadin/hilla-react-form", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-lit-form": "24.5.0-alpha2" + "@vaadin/hilla-lit-form": "24.7.0-alpha5" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@testing-library/react": "^14.0.0", - "@testing-library/user-event": "^14.5.1", - "@types/chai": "^4.3.6", + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.1.0", + "@testing-library/user-event": "^14.5.2", + "@types/chai": "^4.3.20", "@types/chai-as-promised": "^7.1.8", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/react": "^18.2.23", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", - "sinon": "^16.0.0", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/react": "^18.3.18", + "@types/react-dom": "^18", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { - "react": "^18" + "react": "18 || 19", + "react-dom": "18 || 19" } }, "../../../../ts/react-i18n": { "name": "@vaadin/hilla-react-i18n", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "@vaadin/hilla-react-signals": "24.5.0-alpha2", - "intl-messageformat": "^10.5.11" + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "@vaadin/hilla-react-signals": "24.7.0-alpha5", + "intl-messageformat": "^10.7.10" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@testing-library/react": "^14.0.0", - "@testing-library/user-event": "^14.5.1", - "@types/chai": "^4.3.6", + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.1.0", + "@testing-library/user-event": "^14.5.2", + "@types/chai": "^4.3.20", "@types/chai-as-promised": "^7.1.8", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/react": "^18.2.23", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/react": "^18.3.18", + "@types/react-dom": "^18", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", "fetch-mock": "^9.11.0", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { - "react": "^18" + "react": "18 || 19", + "react-dom": "18 || 19" } }, "../../../../ts/react-signals": { "name": "@vaadin/hilla-react-signals", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@preact/signals-react": "^2.0.0" + "@preact/signals-react": "^3.0.0", + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "nanoid": "^5.0.9" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@types/react": "^18.2.23", - "@types/sinon": "^10.0.17", - "@types/validator": "^13.11.2", - "react-router-dom": "^6.16.0", - "typescript": "5.3.2" + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.1.0", + "@testing-library/user-event": "^14.5.2", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/react": "^18.3.18", + "@types/react-dom": "^18", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", + "chai-like": "^1.1.3", + "karma": "^6.4.4", + "karma-viewport": "^1.0.9", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "typescript": "5.7.2" }, "peerDependencies": { - "react": "^18", - "react-router-dom": "^6" + "react": "18 || 19", + "react-dom": "18 || 19" } }, "node_modules/@ampproject/remapping": { @@ -645,12 +713,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -658,30 +727,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", - "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz", - "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.6", - "@babel/generator": "^7.24.6", - "@babel/helper-compilation-targets": "^7.24.6", - "@babel/helper-module-transforms": "^7.24.6", - "@babel/helpers": "^7.24.6", - "@babel/parser": "^7.24.6", - "@babel/template": "^7.24.6", - "@babel/traverse": "^7.24.6", - "@babel/types": "^7.24.6", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -697,27 +766,28 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "dev": true, "dependencies": { - "@babel/types": "^7.24.7", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -736,14 +806,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", - "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.24.6", - "@babel/helper-validator-option": "^7.24.6", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -857,29 +927,27 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", - "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-module-imports": "^7.24.6", - "@babel/helper-simple-access": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -901,9 +969,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -944,12 +1012,13 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", - "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", "dev": true, "dependencies": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -980,27 +1049,27 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -1021,38 +1090,26 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.6.tgz", - "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "dependencies": { - "@babel/template": "^7.24.6", - "@babel/types": "^7.24.6" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/types": "^7.26.0" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -1238,12 +1295,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1973,12 +2030,12 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", - "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1988,16 +2045,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz", - "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2007,12 +2064,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", - "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", "dev": true, "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.24.7" + "@babel/plugin-transform-react-jsx": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2022,12 +2079,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.6.tgz", - "integrity": "sha512-FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2037,12 +2094,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.6.tgz", - "integrity": "sha512-BQTBCXmFRreU3oTUXcGKuPOfXAGb1liNY4AvvFKsOBAJ89RKcTsIrSsnMYkj59fNa66OFKnSa4AJZfy5Y4B9WA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2052,13 +2109,13 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", - "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2346,17 +2403,17 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", - "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", + "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-transform-react-display-name": "^7.24.7", - "@babel/plugin-transform-react-jsx": "^7.24.7", - "@babel/plugin-transform-react-jsx-development": "^7.24.7", - "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-react-display-name": "^7.25.9", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/plugin-transform-react-jsx-development": "^7.25.9", + "@babel/plugin-transform-react-pure-annotations": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2384,33 +2441,30 @@ } }, "node_modules/@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2419,385 +2473,441 @@ } }, "node_modules/@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "cpu": [ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@isaacs/cliui": { @@ -2805,6 +2915,7 @@ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2876,14 +2987,15 @@ } }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", - "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", + "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==" }, "node_modules/@lit/react": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@lit/react/-/react-1.0.3.tgz", - "integrity": "sha512-RGoPMrAPbFjQFXFbfmYdotw000DyChehTim+d562HRXvFGw//KxouI8jNOcc3Kw/1uqUA1SJqXFtKKxK0NUrww==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@lit/react/-/react-1.0.6.tgz", + "integrity": "sha512-QIss8MPh6qUoFJmuaF4dSHts3qCsA36S3HcOLiNPShxhgYPr4XJRnCBKPipk85sR9xr6TQrOcDMfexwbNdJHYA==", + "license": "BSD-3-Clause", "peerDependencies": { "@types/react": "17 || 18" } @@ -2971,39 +3083,72 @@ } }, "node_modules/@open-wc/dedupe-mixin": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.3.1.tgz", - "integrity": "sha512-ukowSvzpZQDUH0Y3znJTsY88HkiGk3Khc0WGpIPhap1xlerieYi27QBg6wx/nTurpWfU6XXXsx9ocxDYCdtw0Q==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", + "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==" }, "node_modules/@petamoriken/float16": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.8.4.tgz", - "integrity": "sha512-kB+NJ5Br56ZhElKsf0pM7/PQfrDdDVMRz8f0JM6eVOGE+L89z9hwcst9QvWBBnazzuqGTGtPsJNZoQ1JdNiGSQ==" + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.9.0.tgz", + "integrity": "sha512-rYUZ+VFjPHD0NT2JYKj64NxXxrV642IiyaUxxorTEj0S3hT7B5Ixezyc9Fn+XvSk0ETEBp5VWjGIErzh0ug0Xw==" }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "node_modules/@polymer/polymer": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.2.tgz", + "integrity": "sha512-fWwImY/UH4bb2534DVSaX+Azs2yKg8slkMBHOyGeU2kKx7Xmxp6Lee0jP8p6B3d7c1gFUPB2Z976dTUtX81pQA==", + "dependencies": { + "@webcomponents/shadycss": "^1.9.1" + } + }, + "node_modules/@preact/signals-core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.8.0.tgz", + "integrity": "sha512-OBvUsRZqNmjzCZXWLxkZfhcgT+Fk8DDcT/8vD6a1xhDemodyy87UJRJfASMuSD8FaAIeGgGm85ydXhm7lr4fyA==", "dev": true, - "optional": true, - "engines": { - "node": ">=14" + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" } }, - "node_modules/@polymer/polymer": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.1.tgz", - "integrity": "sha512-JlAHuy+1qIC6hL1ojEUfIVD58fzTpJAoCxFwV5yr0mYTXV1H8bz5zy0+rC963Cgr9iNXQ4T9ncSjC2fkF9BQfw==", + "node_modules/@preact/signals-react": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@preact/signals-react/-/signals-react-3.0.0.tgz", + "integrity": "sha512-lCG3HIH5NlpQscVKQ5b+hgmRKorra/BcjMdEloMoa+/eLYmve06j3tFetN+nedDSpIHtSb3FFX0y3wUg/Nuxyw==", + "dev": true, + "license": "MIT", "dependencies": { - "@webcomponents/shadycss": "^1.9.1" + "@preact/signals-core": "^1.7.0", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + }, + "peerDependencies": { + "react": "^16.14.0 || 17.x || 18.x || 19.x" } }, - "node_modules/@remix-run/router": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.16.1.tgz", - "integrity": "sha512-es2g3dq6Nb07iFxGk5GuHN20RwBZOsuDQN7izWIisUcv9r+d2C5jQxqmgkdebXgReWfiyUabcki6Fg77mSNrig==", - "engines": { - "node": ">=14.0.0" + "node_modules/@preact/signals-react-transform": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@preact/signals-react-transform/-/signals-react-transform-0.5.1.tgz", + "integrity": "sha512-/w1rgu7i/qDk8dhDj+6AVVVJ+b1W11YkP3vfPPPyrn1tDCPb8orYwETa3JCvYxMtJBHbvIYEjhXvZ8Ab2cWC8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@preact/signals-react": "^3.0.0", + "debug": "^4.3.4", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "react": "^16.14.0 || 17.x || 18.x || 19.x" } }, "node_modules/@rollup/plugin-node-resolve": { @@ -3032,10 +3177,11 @@ } }, "node_modules/@rollup/plugin-replace": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz", - "integrity": "sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.2.tgz", + "integrity": "sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "magic-string": "^0.30.3" @@ -3075,14 +3221,15 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "picomatch": "^4.0.2" }, "engines": { "node": ">=14.0.0" @@ -3096,10 +3243,22 @@ } } }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz", + "integrity": "sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==", "cpu": [ "arm" ], @@ -3110,9 +3269,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.0.tgz", + "integrity": "sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==", "cpu": [ "arm64" ], @@ -3123,9 +3282,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz", + "integrity": "sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==", "cpu": [ "arm64" ], @@ -3136,9 +3295,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.0.tgz", + "integrity": "sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==", "cpu": [ "x64" ], @@ -3148,10 +3307,49 @@ "darwin" ] }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.0.tgz", + "integrity": "sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.0.tgz", + "integrity": "sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.0.tgz", + "integrity": "sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.0.tgz", + "integrity": "sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==", "cpu": [ "arm" ], @@ -3162,9 +3360,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.0.tgz", + "integrity": "sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==", "cpu": [ "arm64" ], @@ -3175,9 +3373,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.0.tgz", + "integrity": "sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==", "cpu": [ "arm64" ], @@ -3187,10 +3385,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.0.tgz", + "integrity": "sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.0.tgz", + "integrity": "sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==", "cpu": [ "riscv64" ], @@ -3200,10 +3411,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.0.tgz", + "integrity": "sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.0.tgz", + "integrity": "sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==", "cpu": [ "x64" ], @@ -3214,9 +3438,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.0.tgz", + "integrity": "sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==", "cpu": [ "x64" ], @@ -3227,9 +3451,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.0.tgz", + "integrity": "sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==", "cpu": [ "arm64" ], @@ -3240,9 +3464,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.0.tgz", + "integrity": "sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==", "cpu": [ "ia32" ], @@ -3253,9 +3477,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.0.tgz", + "integrity": "sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==", "cpu": [ "x64" ], @@ -3327,10 +3551,15 @@ "@babel/types": "^7.20.7" } }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" + }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, "node_modules/@types/node": { @@ -3350,21 +3579,23 @@ "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" }, "node_modules/@types/react": { - "version": "18.3.3", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", - "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", + "license": "MIT", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", - "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "version": "18.3.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", + "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", "devOptional": true, - "dependencies": { - "@types/react": "*" + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" } }, "node_modules/@types/resolve": { @@ -3379,168 +3610,179 @@ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" }, "node_modules/@vaadin/a11y-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.5.0-alpha3.tgz", - "integrity": "sha512-hJN/e1FbzwkT6b3QEma04UHX0B8q8KlwGmIfnJG19FPb/UynuzSoaZguMljT/YvpiBgBFZT+Fem6WliprwU3wg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.7.0-alpha4.tgz", + "integrity": "sha512-s1sdmb5rX8i6bxCPl6AyzV+6n32ym0u1bMcJwrhYoXm9qK0wnNz0hsTt9r9wNuZRjxpbGmuRd2rpLh6twAbuDA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/accordion": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/accordion/-/accordion-24.5.0-alpha3.tgz", - "integrity": "sha512-DvHt1w1D4fUl0eqWiN7ZS7QHbEkUdcELS2nDnwncfwQicdaJfJjJ3jCXFPa1EW8JQ1pmdn7m4yy2gD0inrXj5g==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/accordion/-/accordion-24.7.0-alpha4.tgz", + "integrity": "sha512-edxsM7v4NLocZvblZEWiQmUrRW4yfTYgZrqRNV0QKUQTEMX+e1XfeLD+kZBWjxD6ASipDPLW98GlRWfrGFZj7Q==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/details": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/details": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/app-layout": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/app-layout/-/app-layout-24.5.0-alpha3.tgz", - "integrity": "sha512-nwriF6k6DTT7A/OeQ6C92N0d2D+QNwOWal+N3hUf1lMsoNrNvyEKsRAi6VinBwQh+Sfndjdi0yUGu2zog0KJ1w==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/app-layout/-/app-layout-24.7.0-alpha4.tgz", + "integrity": "sha512-TrDZSFWImNp0U2LF9JBBzaQZ08lCp9spTZ/2maDPWxXlaDXb8H/UVOii6PloAy4EE5ImijHArW7TLCdRr8U2Gg==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/avatar": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-24.5.0-alpha3.tgz", - "integrity": "sha512-DbOx+QHqcx8kixN4HnVB8f1SNSXGU93u6MKKMKHrj4ErLypyJ0TrsvtzOhyJWehEnFl/LrhmKdQ5PVvgAwMGqA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-24.7.0-alpha4.tgz", + "integrity": "sha512-z+DhMZCdMgNJJP0c6eKpFXW6nK0u+kG0purw75YIwyb85BAV2TOrMFY8FmoARL5WKMXw2OpAi5+jvX4UUYHgVA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/avatar-group": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/avatar-group/-/avatar-group-24.5.0-alpha3.tgz", - "integrity": "sha512-+dVJn509EfIimYf9r1vb+tZ64/sJcgD2pFf7ssB0pMOAI/La1IGJbM8K8SeQGPviH/rFoFafJ17ZkR6xeAJA+Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/avatar-group/-/avatar-group-24.7.0-alpha4.tgz", + "integrity": "sha512-DlOElt7nsS9I2CuxGn9WtEg6ZWkcWdRo7sW8LKz4jmUNVUCwDXW5A73dDGTxI/gnY5Dbq8QnYRQauV2r1PrOCw==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/avatar": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/list-box": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/avatar": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/list-box": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/board": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/board/-/board-24.5.0-alpha3.tgz", - "integrity": "sha512-mbKw0XpnIvmpIde+AOEKYIVtX5PawRJ1IKFwpS8Hwr6d7Df34IHuOM8D+UCscNuDkZLhcjVSkn87y07gp4GRNQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/board/-/board-24.7.0-alpha4.tgz", + "integrity": "sha512-AzmAu1kJMqtNzTZ44imFxkPthOFKtfptp7/P4/don5c/jfOwj2UHPgo8TDIXY5SAWWzlClXf21sy6lJExjsXyg==", + "license": "SEE LICENSE IN LICENSE", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4" } }, "node_modules/@vaadin/bundles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/bundles/-/bundles-24.5.0-alpha3.tgz", - "integrity": "sha512-uTTz1HioSAlibL1f6hKTEebzV4pswiVQXoQX7qIDt7s2lW9W53cSVywivROlUgjXmaNTNuR8NlhuGCpo78NTGg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/bundles/-/bundles-24.7.0-alpha4.tgz", + "integrity": "sha512-EPdTTwe+AvPoec10FeYcCZ5AS+9Avt7YDnpcEmD+lZ7rrbM4aosIUp52n4hK1gSDvMD8P9lvvWcWdig5ain7jA==", + "license": "(Apache-2.0 OR SEE LICENSE IN https://vaadin.com/license/cvdl-4.0)", "peerDependencies": { - "@open-wc/dedupe-mixin": "1.3.1", - "@polymer/polymer": "3.5.1", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/accordion": "24.5.0-alpha3", - "@vaadin/app-layout": "24.5.0-alpha3", - "@vaadin/avatar": "24.5.0-alpha3", - "@vaadin/avatar-group": "24.5.0-alpha3", - "@vaadin/board": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/charts": "24.5.0-alpha3", - "@vaadin/checkbox": "24.5.0-alpha3", - "@vaadin/checkbox-group": "24.5.0-alpha3", - "@vaadin/combo-box": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/confirm-dialog": "24.5.0-alpha3", - "@vaadin/context-menu": "24.5.0-alpha3", - "@vaadin/cookie-consent": "24.5.0-alpha3", - "@vaadin/crud": "24.5.0-alpha3", - "@vaadin/custom-field": "24.5.0-alpha3", - "@vaadin/date-picker": "24.5.0-alpha3", - "@vaadin/date-time-picker": "24.5.0-alpha3", - "@vaadin/details": "24.5.0-alpha3", - "@vaadin/dialog": "24.5.0-alpha3", - "@vaadin/email-field": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/field-highlighter": "24.5.0-alpha3", - "@vaadin/form-layout": "24.5.0-alpha3", - "@vaadin/grid": "24.5.0-alpha3", - "@vaadin/grid-pro": "24.5.0-alpha3", - "@vaadin/horizontal-layout": "24.5.0-alpha3", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/icons": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/integer-field": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/list-box": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/login": "24.5.0-alpha3", - "@vaadin/map": "24.5.0-alpha3", - "@vaadin/menu-bar": "24.5.0-alpha3", - "@vaadin/message-input": "24.5.0-alpha3", - "@vaadin/message-list": "24.5.0-alpha3", - "@vaadin/multi-select-combo-box": "24.5.0-alpha3", - "@vaadin/notification": "24.5.0-alpha3", - "@vaadin/number-field": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/password-field": "24.5.0-alpha3", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/popover": "24.5.0-alpha3", - "@vaadin/progress-bar": "24.5.0-alpha3", - "@vaadin/radio-group": "24.5.0-alpha3", - "@vaadin/rich-text-editor": "24.5.0-alpha3", - "@vaadin/scroller": "24.5.0-alpha3", - "@vaadin/select": "24.5.0-alpha3", - "@vaadin/side-nav": "24.5.0-alpha3", - "@vaadin/split-layout": "24.5.0-alpha3", - "@vaadin/tabs": "24.5.0-alpha3", - "@vaadin/tabsheet": "24.5.0-alpha3", - "@vaadin/text-area": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/time-picker": "24.5.0-alpha3", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/upload": "24.5.0-alpha3", + "@open-wc/dedupe-mixin": "1.4.0", + "@polymer/polymer": "3.5.2", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/accordion": "24.7.0-alpha4", + "@vaadin/app-layout": "24.7.0-alpha4", + "@vaadin/avatar": "24.7.0-alpha4", + "@vaadin/avatar-group": "24.7.0-alpha4", + "@vaadin/board": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/card": "24.7.0-alpha4", + "@vaadin/charts": "24.7.0-alpha4", + "@vaadin/checkbox": "24.7.0-alpha4", + "@vaadin/checkbox-group": "24.7.0-alpha4", + "@vaadin/combo-box": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/confirm-dialog": "24.7.0-alpha4", + "@vaadin/context-menu": "24.7.0-alpha4", + "@vaadin/cookie-consent": "24.7.0-alpha4", + "@vaadin/crud": "24.7.0-alpha4", + "@vaadin/custom-field": "24.7.0-alpha4", + "@vaadin/dashboard": "24.7.0-alpha4", + "@vaadin/date-picker": "24.7.0-alpha4", + "@vaadin/date-time-picker": "24.7.0-alpha4", + "@vaadin/details": "24.7.0-alpha4", + "@vaadin/dialog": "24.7.0-alpha4", + "@vaadin/email-field": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/field-highlighter": "24.7.0-alpha4", + "@vaadin/form-layout": "24.7.0-alpha4", + "@vaadin/grid": "24.7.0-alpha4", + "@vaadin/grid-pro": "24.7.0-alpha4", + "@vaadin/horizontal-layout": "24.7.0-alpha4", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/icons": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/integer-field": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/list-box": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/login": "24.7.0-alpha4", + "@vaadin/map": "24.7.0-alpha4", + "@vaadin/menu-bar": "24.7.0-alpha4", + "@vaadin/message-input": "24.7.0-alpha4", + "@vaadin/message-list": "24.7.0-alpha4", + "@vaadin/multi-select-combo-box": "24.7.0-alpha4", + "@vaadin/notification": "24.7.0-alpha4", + "@vaadin/number-field": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/password-field": "24.7.0-alpha4", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/popover": "24.7.0-alpha4", + "@vaadin/progress-bar": "24.7.0-alpha4", + "@vaadin/radio-group": "24.7.0-alpha4", + "@vaadin/rich-text-editor": "24.7.0-alpha4", + "@vaadin/scroller": "24.7.0-alpha4", + "@vaadin/select": "24.7.0-alpha4", + "@vaadin/side-nav": "24.7.0-alpha4", + "@vaadin/split-layout": "24.7.0-alpha4", + "@vaadin/tabs": "24.7.0-alpha4", + "@vaadin/tabsheet": "24.7.0-alpha4", + "@vaadin/text-area": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/time-picker": "24.7.0-alpha4", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/upload": "24.7.0-alpha4", "@vaadin/vaadin-development-mode-detector": "2.0.7", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "@vaadin/vaadin-usage-statistics": "2.1.2", - "@vaadin/vertical-layout": "24.5.0-alpha3", - "@vaadin/virtual-list": "24.5.0-alpha3", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "@vaadin/vaadin-usage-statistics": "2.1.3", + "@vaadin/vertical-layout": "24.7.0-alpha4", + "@vaadin/virtual-list": "24.7.0-alpha4", "cookieconsent": "3.1.1", "highcharts": "9.2.2", - "lit": "3.1.4", + "lit": "3.2.1", "ol": "6.13.0", "quickselect": "2.0.0", "rbush": "3.0.1" @@ -3573,6 +3815,9 @@ "@vaadin/button": { "optional": true }, + "@vaadin/card": { + "optional": true + }, "@vaadin/charts": { "optional": true }, @@ -3603,6 +3848,9 @@ "@vaadin/custom-field": { "optional": true }, + "@vaadin/dashboard": { + "optional": true + }, "@vaadin/date-picker": { "optional": true }, @@ -3774,82 +4022,102 @@ } }, "node_modules/@vaadin/button": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-24.5.0-alpha3.tgz", - "integrity": "sha512-ayjnZF1Uerjh6wTUhGApoDlRma97xJqG31BwwJjJO/lPKmKXTuqzbe77Mtfwzj6dt6s53eebf8qreee7okRE9Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-24.7.0-alpha4.tgz", + "integrity": "sha512-I2OuiFmY1VHAvrnP6dIUhuDW/8u45b83t7i0YSMOPK0pGdi+M4THoUD/0kYAugNdWvdx+6GJ1H1Os6w8maigWw==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" + } + }, + "node_modules/@vaadin/card": { + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/card/-/card-24.7.0-alpha4.tgz", + "integrity": "sha512-DoAklsqRll0l/2ILdJOU4PGigirj/ffwR1iuQ72eIrsz6/lYnWMDPdOVONRLYvKbOhAhX2W4Lqg64DYlKlE6qQ==", + "license": "Apache-2.0", + "dependencies": { + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/charts": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/charts/-/charts-24.5.0-alpha3.tgz", - "integrity": "sha512-T3ujXahPGZlVk2ioINZmW5l7EJdK3GPyqtxLW15PeNFdRCLdD5q3z60ctvANw+FHm3uJ5appYl/q2IbZifQQ2g==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/charts/-/charts-24.7.0-alpha4.tgz", + "integrity": "sha512-SDLlZcBG8iuz0daLaSjqEH1RTE1udouYhZqxnVLffDoIyBZeztoGVOnlh9puzzRlbGkuURri48QtKlr5Oe7t9g==", + "license": "SEE LICENSE IN LICENSE", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "highcharts": "9.2.2" } }, "node_modules/@vaadin/checkbox": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.5.0-alpha3.tgz", - "integrity": "sha512-mtizPscNAu4NrjdzzNquCefxvmYDtiY7WoFVlOCMXwJELr0lziza4PPAGgKkzat0gQAEnbjQ1ITRjfWYp/XO1A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.7.0-alpha4.tgz", + "integrity": "sha512-mD4GKGhyL6eRxDV0FPFiBHDLhq0WRLlCoW00NpFqjCtrviAOyorom2ySrvh4eXNqRhPPIepGM/RkWNLSkcYiVQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/checkbox-group": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/checkbox-group/-/checkbox-group-24.5.0-alpha3.tgz", - "integrity": "sha512-j6AF1FTHU9Jl91NmOtzgMdondr/g7hM/WHEUK23DFOfupnOYWcXRl90tLdzZFfRiR/4H4LsD+HJOkVbp8ls/0A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox-group/-/checkbox-group-24.7.0-alpha4.tgz", + "integrity": "sha512-/VtIxC3jnzeBeoq3lRh5B3dwJdhQWXqibB5jUv/y3MrD6VdfKWFAAH7IAc7Qi2BW/PKLAQHpNrSaGfqrXeYwxA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/checkbox": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/checkbox": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/combo-box": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/combo-box/-/combo-box-24.5.0-alpha3.tgz", - "integrity": "sha512-4aWbFV/WvExZjrv0qgZ4hpCq/omzMt/izwti/RYRO9iXGAqL+6IEY8oVERuytTt6cA3aPOjsFh3tEKHyWDKi9Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/combo-box/-/combo-box-24.7.0-alpha4.tgz", + "integrity": "sha512-AWFGO0j0xDQsRApqnZ47q3JF8l01zJBbzF5Q9EfDKuVUh+ctvM+DShJ9zRGz1IfSSP4l3X4Hibk42AoXmUEsvA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/common-frontend": { @@ -3864,9 +4132,10 @@ } }, "node_modules/@vaadin/component-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.5.0-alpha3.tgz", - "integrity": "sha512-3OAScmXraCAihHCJ62ZNEy9LsMpeWh2/KnPN4tsot1piHtMSnH7r4SFKC/4iNjQsuecou5TmDXuMACFcrlbouA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.7.0-alpha4.tgz", + "integrity": "sha512-oAnXewVRiCa43n7NTeQhof6sd1ib9AQ/wZEVeKESx+/To0cSZEWzdq7uClLYnpw6ah5kVXdGQDozEHkc+o+tEQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", @@ -3876,244 +4145,279 @@ } }, "node_modules/@vaadin/confirm-dialog": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/confirm-dialog/-/confirm-dialog-24.5.0-alpha3.tgz", - "integrity": "sha512-6wVyLDsoGNCBRvxgDgrbfHIJI8F8SqLnx2tmOvpVFrbG/9WdjQO4n40NZSZOtWuTndqOVe6ZcYR3pGrzX7dGsw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/confirm-dialog/-/confirm-dialog-24.7.0-alpha4.tgz", + "integrity": "sha512-jyoXZeCsZ83R1a1hlHcqvYMgcdK6zWSyVmu5mVMXLjj/BqLLmshs+ddBIs+5SoMMp8i4WW7cO4mOtObrhvaOBw==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/dialog": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/dialog": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/context-menu": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/context-menu/-/context-menu-24.5.0-alpha3.tgz", - "integrity": "sha512-DMyG0bTOp22PKAa70FvkL6wAUMFfKx9RC+1eff4t8JHgmyMcS20mfdHvzv6ChmD64RCRnEglHWr0Ueu/3WLoxQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/context-menu/-/context-menu-24.7.0-alpha4.tgz", + "integrity": "sha512-y7V5fCHv4OKm14SwjngBSSCCLdNUoD33OEm/3pQ0aNqj9gPcXb5CKmJA+MLt2ovI06LMtulYO80S+Dv8RyrCQg==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/list-box": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/list-box": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/cookie-consent": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/cookie-consent/-/cookie-consent-24.5.0-alpha3.tgz", - "integrity": "sha512-k8Cunm1D/AsG47UEqEGCR/1yn6EbVrK9zTN8KaNPchLUowT92MdIQjNLP/iPb5tTYNyq9AFTg6Kgna45/V2HlQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/cookie-consent/-/cookie-consent-24.7.0-alpha4.tgz", + "integrity": "sha512-eMNOCS7ZvbeyLN0Tgo2Z5n9qbPqUbbXoaY4p4a7pGzU9LXol+4NnHfXnlPvZteAYcyaTaeUcbCuO27GGRWaJrQ==", + "license": "SEE LICENSE IN LICENSE", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", "cookieconsent": "^3.0.6" } }, "node_modules/@vaadin/crud": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/crud/-/crud-24.5.0-alpha3.tgz", - "integrity": "sha512-6a3EzzSGirGaYWZ4f53gvuhHtT+w2QIYvx9rrBr9bHSO8QO64Th+QegZn0mutqa0FXJzoegJdfrjwis0HC63jw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/crud/-/crud-24.7.0-alpha4.tgz", + "integrity": "sha512-7gcmckDtDwHg9wMI2F8G6QGpHVlRw8R5QHT65HbTLz8SWrG1Ze+zgXyr4BLZvhNvQr0tpaTcC5DV2zbeFEoYtA==", + "license": "SEE LICENSE IN LICENSE", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/confirm-dialog": "24.5.0-alpha3", - "@vaadin/dialog": "24.5.0-alpha3", - "@vaadin/form-layout": "24.5.0-alpha3", - "@vaadin/grid": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/confirm-dialog": "24.7.0-alpha4", + "@vaadin/dialog": "24.7.0-alpha4", + "@vaadin/form-layout": "24.7.0-alpha4", + "@vaadin/grid": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "node_modules/@vaadin/custom-field": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/custom-field/-/custom-field-24.5.0-alpha3.tgz", - "integrity": "sha512-cZMnD6Z4B1LTxS+JhI5LoX8rYZYVoekx3+VWoRu/TvNm9Kw64fTlCg7SmBpplfEIoe9SbpeqxzVeTecFeBJgsQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/custom-field/-/custom-field-24.7.0-alpha4.tgz", + "integrity": "sha512-Y4ScJUtpKUYhyyFRUAH9IF1GWavvogrC8tOjboS/0zgbznDs5YGobFnbWdsWZrshVUR8K1pmC06osa+Wme5mNA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" + } + }, + "node_modules/@vaadin/dashboard": { + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/dashboard/-/dashboard-24.7.0-alpha4.tgz", + "integrity": "sha512-L4hjp7kzd9zc6AGC5YdHLMtqY+nwRFcLZDTVAv12upxinz5nt5qp5ynUuJzcEcn4K2UCfj5pfbmU3z7xKszHyg==", + "license": "SEE LICENSE IN LICENSE", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/date-picker": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/date-picker/-/date-picker-24.5.0-alpha3.tgz", - "integrity": "sha512-Ppk2W1onwn07DW/A0RBsJJC+pCs22R6Dbu8X4Ax2vXz+YdrHHsn629CbewOERceiNYhOX/4N7ITCONC5mBMbkw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/date-picker/-/date-picker-24.7.0-alpha4.tgz", + "integrity": "sha512-FGbs2UaJpMLqnAdvlbv/hVQzYAaIrIA7cosUKTY2AwFDxSxZSzgA5mcLfHaCfKNo1I1v/1WjVzmVtPZcSj6PVQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.2.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/date-time-picker": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/date-time-picker/-/date-time-picker-24.5.0-alpha3.tgz", - "integrity": "sha512-54xOSfn5f3sxSwyizPC2ANtD0kamX4YGyyiFiIRQz07zp1BhHLK/kWeEzygb6PJchu7EjYxgp5dYEm3Ms3P2fA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/date-time-picker/-/date-time-picker-24.7.0-alpha4.tgz", + "integrity": "sha512-JOKVQot8/7OrJAffbLhDMW88rzIHggraNfBd8ynSGTE1Tw0Xhtb8+83Nq3t/gOcAo5Ioq5X3b3diNHuAvrxs3A==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/custom-field": "24.5.0-alpha3", - "@vaadin/date-picker": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/time-picker": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/custom-field": "24.7.0-alpha4", + "@vaadin/date-picker": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/time-picker": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/details": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/details/-/details-24.5.0-alpha3.tgz", - "integrity": "sha512-bpwbJirSLJtz7p3VHVhVifkRycr1hth0yC0dBirpDtUf0JOvmkHlKrAiDIlgdmCtIbe0mGOwyBMfZPa/O2I28w==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/details/-/details-24.7.0-alpha4.tgz", + "integrity": "sha512-w6+sDe9ZsjdNCA0gm7XlGHkTYhUmdL2Mr7fnun4G1r3+XzidOqfiR/dkPFXtDm2sJBFvwrFpaCZk1rNTkh1U/w==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/dialog": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/dialog/-/dialog-24.5.0-alpha3.tgz", - "integrity": "sha512-FjPxpNpQ9m5JhT2G5g+ayipwLJZo/M2nAnpyXvHBh5zo74qNeVoQpnltCPgZ2aQeIND9bPQ7KmFL1ZAEPKaSEA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/dialog/-/dialog-24.7.0-alpha4.tgz", + "integrity": "sha512-KwnG+tkDbDXZ0MQuh0zeGGe0Y8x1yjph8e+N0/8W4rTdw2V+7MuLFfYEsW/XQskCuPreO/qeXcKLOzn12kcBeg==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/email-field": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/email-field/-/email-field-24.5.0-alpha3.tgz", - "integrity": "sha512-tkgyn3wP21vbdcfDjI1zejTkFr8SjUCtjThld8JAM/EsnZMvRPX+X9MDUOFvzVI58qYq0RRXyQR12IwKZ6j5ww==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/email-field/-/email-field-24.7.0-alpha4.tgz", + "integrity": "sha512-zb0AQab/giaAMMtBXflPNz60L+7X5kN+Sv8YeVbRhSkrB/aRCxkSxRf064e70swmwn8RLtQw2gem36bLn1BAKQ==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/field-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.5.0-alpha3.tgz", - "integrity": "sha512-ahTZ0trRiTO8200Iwub/cToBUVfOMMu+zhHCTu4S8O/zVnc/KMUNINc5tIby6BP9BYB05OjvXahyAyUa7uqdcQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.7.0-alpha4.tgz", + "integrity": "sha512-QCeor3PgWemIb7oRCmkhwqBM1LmXk8gsGl+T3c/fT8TgIMkZB/IOG6QaGjHcsMgBHHZmfmYIciXipsvxQ3FY+Q==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/field-highlighter": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/field-highlighter/-/field-highlighter-24.5.0-alpha3.tgz", - "integrity": "sha512-tUvuuMAXEUSuifAU4h4EGszHBPKh5jsAiwoRSRN7I5b83lUsoDd8V+bZSO6FUwNh9lubNsiAZc27sakwJsBJgA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/field-highlighter/-/field-highlighter-24.7.0-alpha4.tgz", + "integrity": "sha512-7Vdb91NS335xLVBeKp1czzPULJNQ6DeISqDzzpjC+UQnp90FGG/+PrP5peq+MBXS5N8/970JoWGo9OmzzdEl1g==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/form-layout": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/form-layout/-/form-layout-24.5.0-alpha3.tgz", - "integrity": "sha512-9NCTFd6fTWbXAzh3yzJDZctV/75zmTXowSfUx0ZYHtN7eBfNuHP4jw7F4TA5QdWzqEGac+AuMLfwsnHKSemGvg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/form-layout/-/form-layout-24.7.0-alpha4.tgz", + "integrity": "sha512-yhGHUS2rMKvKURazParKPnii+3dyd3l5emEcim8nKYts37T1Zy3bXV31AedWdGvvageKwF6lT9+shTVhiBe90A==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "node_modules/@vaadin/grid": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.5.0-alpha3.tgz", - "integrity": "sha512-Kr66LMmzHBG/46nNucxt0hOpkAHhqPX9bKmcy0nI1U9T4XyjukD+c8j5w7aBQBqkwOObgMGXlB59DIH/GDiKtQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.7.0-alpha4.tgz", + "integrity": "sha512-plXEcgTCTE8pttu6Rhx3XdroNECg9LgMI+3F2ww4uGOA5z0safM3HVsqQiBnLpfLmC2hUQ5FZQHCAcFuVbGhBw==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/checkbox": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/checkbox": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/grid-pro": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/grid-pro/-/grid-pro-24.5.0-alpha3.tgz", - "integrity": "sha512-k4c56mz/8XVaHmb46AfPZJoDI0J6WmGPHged0rJ0zNYQiixw6+tPMJBXoVubnrFep7lqT3nc23AA5XhlGgNAgw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/grid-pro/-/grid-pro-24.7.0-alpha4.tgz", + "integrity": "sha512-YQ8FGuiyz7RYZfz6vT7LyNuvKXnqnASOlOUTmJI3Z8NsTOdGcKq+pafbDy5PRi8vmOd7JG4z1zyRvALBbBBrKQ==", + "license": "SEE LICENSE IN LICENSE", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/checkbox": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/grid": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/select": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/checkbox": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/grid": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/select": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, @@ -4153,6 +4457,10 @@ "resolved": "../../../../ts/generator-plugin-push", "link": true }, + "node_modules/@vaadin/hilla-generator-plugin-signals": { + "resolved": "../../../../ts/generator-plugin-signals", + "link": true + }, "node_modules/@vaadin/hilla-generator-plugin-subtypes": { "resolved": "../../../../ts/generator-plugin-subtypes", "link": true @@ -4186,390 +4494,425 @@ "link": true }, "node_modules/@vaadin/horizontal-layout": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/horizontal-layout/-/horizontal-layout-24.5.0-alpha3.tgz", - "integrity": "sha512-T7faH120WTHZe3xIcUY/ulFIlJt34MjuhkLfTg6bWtJszpSS5obDac3cH/Jgc1J+pj+7ezhg93RfZpYNIhGvPQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/horizontal-layout/-/horizontal-layout-24.7.0-alpha4.tgz", + "integrity": "sha512-YNW2OYY+AjTDFsj3p5DxlBzwsMQccNNpcAFu5O5cavXlRhOCcXFCQY8GxohhrfbIM6qTu22NLY3529/sgfHCHA==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/icon": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.5.0-alpha3.tgz", - "integrity": "sha512-CUVOeGF+kJ/lE3r/pJuShGTvfQyApFGoephomig4HQ3NJupazAANLnRXAconLAod/RPUWVKhLGqD33SnPKyp7A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.7.0-alpha4.tgz", + "integrity": "sha512-ELyn24AgdCRk9sOWnHbJqb4G8Gj2xr2YuC87dSKCg0E2mpAzxgA0xIObPO2DjWTzhprRy2XWsbkklzJFLKv1ag==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/icons": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.5.0-alpha3.tgz", - "integrity": "sha512-LZjQrwgw34HILPhSXpvabVQiEZzEDeeePFIdkIaxcjqC6bc2JjAecA0rPh2sci6mqCTed7ap9mZPxlitDi/uBQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.7.0-alpha4.tgz", + "integrity": "sha512-b2C00K2zkxg8dOsKSvWjBO/gVfSx96uQilksTZBOI3GXi1+UTqc5DzzYrOOH+Y0XqcqU7ynqqmkRTeyWJSiSSw==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/icon": "24.5.0-alpha3" + "@vaadin/icon": "24.7.0-alpha4" } }, "node_modules/@vaadin/input-container": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.5.0-alpha3.tgz", - "integrity": "sha512-iMr4LeRWM+eXmRIDXP1WAxhbgTmGVxWqp75ix4cEOQi36zrO6+/W83tf192CeJ2gC5f4lAPXTFgGdtPKQBE1Mg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.7.0-alpha4.tgz", + "integrity": "sha512-V36O33xvrf37ZwFyQJ9yMLjs6VnXJGR3D3uMbht8eElXEtZu4cyS6FK7LXbwDIRoPjgnvBsvDemdCzBZ7HmHLQ==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/integer-field": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/integer-field/-/integer-field-24.5.0-alpha3.tgz", - "integrity": "sha512-UbUQb5JZRVYP0Tvq6s1tmPy9PKT0Zk6J7vAPwsNfjoQ1VuUCs76uUSOQXQMbsecJswtoXXJgH/4tIke0zPoi8g==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/integer-field/-/integer-field-24.7.0-alpha4.tgz", + "integrity": "sha512-qkGXdFGLzJn8VbYvjIya+ZQgyUfOriBLodrkmEVonPUL2hrZX3qFzg7VkJjo8f5G/hEd0XqrMCOABawEwlT0+Q==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/number-field": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/number-field": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4" } }, "node_modules/@vaadin/item": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-24.5.0-alpha3.tgz", - "integrity": "sha512-dRhcrZZZ1XcUIOsjDOmJXr8MjnyA1eaao7rLzVPv0vYdHi3SGlUbhxDZzqn3ra4K4nKxyFJy1xtCWbi/5gQA+Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-24.7.0-alpha4.tgz", + "integrity": "sha512-LzsnG/l7tQDyRcMUi8SLsnMbsD0OVB8L4jKA1qhqTuzbQnNTY3NEWZ1jwenpX+b0SI7nDhC7/4LOgnI9C3h8cA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/list-box": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-24.5.0-alpha3.tgz", - "integrity": "sha512-GSsEOvTb+tx8bGWILAAySxSebe0Lq5bHrvUwnhScd6pneJKbYCMhGT/e3A+/NQqhrsL2iHxwdaAQPngp0DlJPA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-24.7.0-alpha4.tgz", + "integrity": "sha512-FH1LUqV7kxkqzlKopIkl+okQD+ZHIcPQOKVRfmo9q/xqCZGwFvGf958ISqvY9JSAyzIaWe1S4SR9YMSTNsUIcA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/lit-renderer": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.5.0-alpha3.tgz", - "integrity": "sha512-LeCZxZ2jiiN9A4YCYi10GR7MjP3PIMdcwOKouRUFdHPtIWqJNQHX9EkqgCyZiWSuIq1fsTWdQQEU4SnhJt2J7A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.7.0-alpha4.tgz", + "integrity": "sha512-jsgSnG3RoG0XX9k02cA0lqYw4KctzkW+hzq8+rAE1zLIJs4CQpe0jUzu1cGVy1bgJlPguvYVbQAitPc3+hFn/w==", + "license": "Apache-2.0", "dependencies": { "lit": "^3.0.0" } }, "node_modules/@vaadin/login": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/login/-/login-24.5.0-alpha3.tgz", - "integrity": "sha512-zXyBVpZ6RbpalNYZB8GrROkIUtWSdJatmELBOPFkv/HbJah8XyfmF+WD9j6gFkR2GSNjaXdEVKFN7rTfT2pqQA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/login/-/login-24.7.0-alpha4.tgz", + "integrity": "sha512-zT+qoPXglsYrtFl2YGRwYtE5SQdVracm8ybbrp2Eya7HQLxX/iDfIkS9Npztfi14vlB6ygHfkSmrDXU6CN2JzA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/password-field": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/password-field": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/map": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/map/-/map-24.5.0-alpha3.tgz", - "integrity": "sha512-T6kQWIczO/2NCS9pxxDc+mfotvV0TdXWG/oZiT+5tyF9hT8HF3laPf5r720XTaIOjzspIPJvIZikNyEx0SXaEA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/map/-/map-24.7.0-alpha4.tgz", + "integrity": "sha512-IewsGtNVQJUB4/+hMb2p+4+3aGPHoClMcU6EPhNHjnu9vch1nkg7kYNvAUXRKySmDqTWC0lxi3DyU+dYe4gzzQ==", + "license": "SEE LICENSE IN LICENSE", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "ol": "6.13.0" } }, "node_modules/@vaadin/menu-bar": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/menu-bar/-/menu-bar-24.5.0-alpha3.tgz", - "integrity": "sha512-oFd64rmmhXS9Ht4EJ3UisAPN4DcwIPF8YeWuR395sN8AbPREiuhP5xoPjiDeNuZ2MSgwjHjwRMruLGHVf2AkuQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/menu-bar/-/menu-bar-24.7.0-alpha4.tgz", + "integrity": "sha512-tGd6LBNCJEovrCDKe5GFPPtGCE1Ygks0vZk25AT9evKZkD/gL58otBw6a2uhykxeFZuM3c8LDYH33K/e6WxJ3g==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/context-menu": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/list-box": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/context-menu": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/list-box": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/message-input": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/message-input/-/message-input-24.5.0-alpha3.tgz", - "integrity": "sha512-MUOwAkdL2ZsRQuj8Wcsua5X4jR6ehUFWfE0vdQbGlurkrsqLW2gcagHutiySbBcb2Y/jeuV4s9Nbd+qKAjoY2w==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/message-input/-/message-input-24.7.0-alpha4.tgz", + "integrity": "sha512-+qa97ABGimz7pp4SNfL6kG5tAHAShmzZIhODsW/rVy9oC+toetmi6PvZVAaV0Ganh35NIg60hBgHGX2ZA0BKJA==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/text-area": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/text-area": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/message-list": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/message-list/-/message-list-24.5.0-alpha3.tgz", - "integrity": "sha512-xrsikxP4+zn1UwyMLvOu2jsgb6nvz6PIV+j1EoTnAW8KOkWN6TW1XX/zRmaMHkhbqS92ekUMYSHL70mXwnpvWw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/message-list/-/message-list-24.7.0-alpha4.tgz", + "integrity": "sha512-lVQlpeKpllZ6ZJuyavtrZBSIMTsP893LEJjpX9QElpvFumFJPto8+9xOJ16cK5+R8ETMYWUcDyrZhsrnJF8k8A==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/avatar": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/avatar": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/multi-select-combo-box": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/multi-select-combo-box/-/multi-select-combo-box-24.5.0-alpha3.tgz", - "integrity": "sha512-2wMbL0dbidiKZu3xberJ8HeUw+2wBxpQi8LJpYRWJzJSZWBJSf3+R+FVZeFmPufde/katw4OEW1sUKFeOYoPyQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/multi-select-combo-box/-/multi-select-combo-box-24.7.0-alpha4.tgz", + "integrity": "sha512-a7BuEw2qqZl/POjzghNxkK4BIMhTotWHxAhK95ODC49S9iMiYabVzeNrS1EVxEjGTNWlJtI+nIC4RePzk4rCcw==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/combo-box": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/combo-box": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/notification": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/notification/-/notification-24.5.0-alpha3.tgz", - "integrity": "sha512-pFtrKopNvHMLZ074yQoos3OvYBDLy3h0fTKSyxZfWo70+Calu/nqvSonxJG+ZZb8XOgsvBOmrufwcT8Chyvbpg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/notification/-/notification-24.7.0-alpha4.tgz", + "integrity": "sha512-r/iMpaBh6taE/oRifwMrEMPRGD/HFHe2x8+oYcisJXC/jKL9YA1N88t3IlnfoswEN92LYibMZ6JjfeRc8ND63A==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/number-field": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/number-field/-/number-field-24.5.0-alpha3.tgz", - "integrity": "sha512-43MNQ6NuYjWZiGe/zLZkLv5ZmaDLRxbGqiguWgAab8/3q8UN+2/oBJoFsKADIhAal7F6dhcHIdU50BWKM24Row==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/number-field/-/number-field-24.7.0-alpha4.tgz", + "integrity": "sha512-eZMusLorEM0peyW4UXJQUDEMkG92jUcbI/71PXs5qbh8Jo2dEGIfmXXYNl4nELyji6bqPdFCRGbWmpyWJ1L4Sw==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/overlay": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.5.0-alpha3.tgz", - "integrity": "sha512-zH72InlWhwkBqdUMoIbHPXUajHapTVTwebZgddqE9FjBxRyfSF2062jrHcX6dFR4tNlspbem6z/EeWk4BWxBQw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.7.0-alpha4.tgz", + "integrity": "sha512-z2eHVojBg7o0vQWRhLPy2jfhuhTWrjnvOdw3FmkUnw8jy11Qqf/Pz0hMvy7cWE2d6ThLMjAnTzjlnRX/8y7U0w==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/password-field": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-24.5.0-alpha3.tgz", - "integrity": "sha512-bUpjZJr2e72uHCPjUHBoUxfyvX/hU3Wp8qr8KmuXJPBMbsB+IlS4INWJRlZga+FVx3Z9iJZonNAOey/+VnytNA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-24.7.0-alpha4.tgz", + "integrity": "sha512-CIZzVIXfHpFcu/uMWSchrcGSJ5kgy3oMa57RwnaOLuXwhMgld2gHBRXw23lpcRkadmFeFMYxc+N2Wgry6N4kKg==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/polymer-legacy-adapter": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.5.0-alpha3.tgz", - "integrity": "sha512-W9yXABgFVqyIvMaHXewyqn4Tg3HiVEhDYbW8it9YZVnu9ej5msYXzyowZf/Lt4RQM9ogp9hx+deXR9W+297ivg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.7.0-alpha4.tgz", + "integrity": "sha512-+CvDzDA1a+9f877179k5ilVLq40e8HUSzvzGgiZDyrW1txmSRRdbQq5rX/qjHDjBXORqLLJGbkDRQmS2Y455yg==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/popover": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.5.0-alpha3.tgz", - "integrity": "sha512-niIKAipighHRoxcdteoptEu+JjyXT5TQhXagypI0hp0Sme7ZwQBnxlh+JdfKN/OV6hGrMt411wZntnc7bnVl7Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.7.0-alpha4.tgz", + "integrity": "sha512-KwhcnwrJoKjkVeScRF5RvBjBO8pS68Sgxd801qUj+X6bSBgtAAxMTS+yyQDUTVbAFmyr/pl2p8xE2mX5Hdi0ZQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/progress-bar": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/progress-bar/-/progress-bar-24.5.0-alpha3.tgz", - "integrity": "sha512-h3TA0h3hFL2X3JPG4PZyOVZ1NnQJCF+ot2c0A95FaxXnLoHFxQ/9Twwdx/fkVR+r8KvsfjHV4IcvyPScmVpjzg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/progress-bar/-/progress-bar-24.7.0-alpha4.tgz", + "integrity": "sha512-tQI0KGB2vXcAF9JPTX6KXeTl6J2WQ1fsOxdHsgAVRtZu353jizy38d9pEYx3dsdRg6mRdE0TqRtGbYCVpagXnA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/radio-group": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/radio-group/-/radio-group-24.5.0-alpha3.tgz", - "integrity": "sha512-tTxa8VpcnjwGI5Uo2WpEpQNsJLQ37rsJHBoAfFvrWgeTPqgx+i6FoRjGifOXy3A6Ukvi0SPHIbkYPuYpz/9twQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/radio-group/-/radio-group-24.7.0-alpha4.tgz", + "integrity": "sha512-wpFWPsjB4EzJ9GWXgTlFi2ht0ORM+3raqtakCxg3msXw00b/x5A+3ryXfKDMbj4dQ5ZkoALQ+/tIEeR5Mq8CTw==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/react-components": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/react-components/-/react-components-24.5.0-alpha3.tgz", - "integrity": "sha512-bJJVYQhdvfK/97OjTSqO6Ig1cvPCE1LJGLVaRzG8d3OxU1BXjKE/RMLU/WDTSLiF/yUT0JrdOvCqFDqDJL72dw==", - "dependencies": { - "@lit/react": "^1.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/accordion": "24.5.0-alpha3", - "@vaadin/app-layout": "24.5.0-alpha3", - "@vaadin/avatar": "24.5.0-alpha3", - "@vaadin/avatar-group": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/checkbox": "24.5.0-alpha3", - "@vaadin/checkbox-group": "24.5.0-alpha3", - "@vaadin/combo-box": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/confirm-dialog": "24.5.0-alpha3", - "@vaadin/context-menu": "24.5.0-alpha3", - "@vaadin/custom-field": "24.5.0-alpha3", - "@vaadin/date-picker": "24.5.0-alpha3", - "@vaadin/date-time-picker": "24.5.0-alpha3", - "@vaadin/details": "24.5.0-alpha3", - "@vaadin/dialog": "24.5.0-alpha3", - "@vaadin/email-field": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/field-highlighter": "24.5.0-alpha3", - "@vaadin/form-layout": "24.5.0-alpha3", - "@vaadin/grid": "24.5.0-alpha3", - "@vaadin/horizontal-layout": "24.5.0-alpha3", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/icons": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/integer-field": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/list-box": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/login": "24.5.0-alpha3", - "@vaadin/menu-bar": "24.5.0-alpha3", - "@vaadin/message-input": "24.5.0-alpha3", - "@vaadin/message-list": "24.5.0-alpha3", - "@vaadin/multi-select-combo-box": "24.5.0-alpha3", - "@vaadin/notification": "24.5.0-alpha3", - "@vaadin/number-field": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/password-field": "24.5.0-alpha3", - "@vaadin/popover": "24.5.0-alpha3", - "@vaadin/progress-bar": "24.5.0-alpha3", - "@vaadin/radio-group": "24.5.0-alpha3", - "@vaadin/scroller": "24.5.0-alpha3", - "@vaadin/select": "24.5.0-alpha3", - "@vaadin/side-nav": "24.5.0-alpha3", - "@vaadin/split-layout": "24.5.0-alpha3", - "@vaadin/tabs": "24.5.0-alpha3", - "@vaadin/tabsheet": "24.5.0-alpha3", - "@vaadin/text-area": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/time-picker": "24.5.0-alpha3", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/upload": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "@vaadin/vertical-layout": "24.5.0-alpha3", - "@vaadin/virtual-list": "24.5.0-alpha3" + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/react-components/-/react-components-24.7.0-alpha4.tgz", + "integrity": "sha512-MjhmoNwjer9XDBcd1WUgWAD5axq67J5QvQrKLs32fHyJ2oBucHjs0l9C9/LeMcaJzmaR8AWm3zebQH8T4vIeHg==", + "license": "Apache-2.0", + "dependencies": { + "@lit/react": "^1.0.6", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/accordion": "24.7.0-alpha4", + "@vaadin/app-layout": "24.7.0-alpha4", + "@vaadin/avatar": "24.7.0-alpha4", + "@vaadin/avatar-group": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/card": "24.7.0-alpha4", + "@vaadin/checkbox": "24.7.0-alpha4", + "@vaadin/checkbox-group": "24.7.0-alpha4", + "@vaadin/combo-box": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/confirm-dialog": "24.7.0-alpha4", + "@vaadin/context-menu": "24.7.0-alpha4", + "@vaadin/custom-field": "24.7.0-alpha4", + "@vaadin/date-picker": "24.7.0-alpha4", + "@vaadin/date-time-picker": "24.7.0-alpha4", + "@vaadin/details": "24.7.0-alpha4", + "@vaadin/dialog": "24.7.0-alpha4", + "@vaadin/email-field": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/field-highlighter": "24.7.0-alpha4", + "@vaadin/form-layout": "24.7.0-alpha4", + "@vaadin/grid": "24.7.0-alpha4", + "@vaadin/horizontal-layout": "24.7.0-alpha4", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/icons": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/integer-field": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/list-box": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/login": "24.7.0-alpha4", + "@vaadin/menu-bar": "24.7.0-alpha4", + "@vaadin/message-input": "24.7.0-alpha4", + "@vaadin/message-list": "24.7.0-alpha4", + "@vaadin/multi-select-combo-box": "24.7.0-alpha4", + "@vaadin/notification": "24.7.0-alpha4", + "@vaadin/number-field": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/password-field": "24.7.0-alpha4", + "@vaadin/popover": "24.7.0-alpha4", + "@vaadin/progress-bar": "24.7.0-alpha4", + "@vaadin/radio-group": "24.7.0-alpha4", + "@vaadin/scroller": "24.7.0-alpha4", + "@vaadin/select": "24.7.0-alpha4", + "@vaadin/side-nav": "24.7.0-alpha4", + "@vaadin/split-layout": "24.7.0-alpha4", + "@vaadin/tabs": "24.7.0-alpha4", + "@vaadin/tabsheet": "24.7.0-alpha4", + "@vaadin/text-area": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/time-picker": "24.7.0-alpha4", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/upload": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "@vaadin/vertical-layout": "24.7.0-alpha4", + "@vaadin/virtual-list": "24.7.0-alpha4" }, "peerDependencies": { - "@types/react": "^18.2.37", - "@types/react-dom": "^18.2.15", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "@types/react": "^18.2.37 || ^19", + "@types/react-dom": "^18.2.15 || ^19", + "react": "^18.2.0 || ^19", + "react-dom": "^18.2.0 || ^19" }, "peerDependenciesMeta": { "@types/react": { @@ -4581,25 +4924,27 @@ } }, "node_modules/@vaadin/react-components-pro": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/react-components-pro/-/react-components-pro-24.5.0-alpha3.tgz", - "integrity": "sha512-f/Wq0TnruXRRHbka9QqtTeX+bok97nckbIaGqEFpo4ffATTN7cOfp9QL9UFYf1KoZ9sy1xwBlNnIJ7/PQVFfAg==", - "dependencies": { - "@lit/react": "^1.0.0", - "@vaadin/board": "24.5.0-alpha3", - "@vaadin/charts": "24.5.0-alpha3", - "@vaadin/cookie-consent": "24.5.0-alpha3", - "@vaadin/crud": "24.5.0-alpha3", - "@vaadin/grid-pro": "24.5.0-alpha3", - "@vaadin/map": "24.5.0-alpha3", - "@vaadin/react-components": "24.5.0-alpha3", - "@vaadin/rich-text-editor": "24.5.0-alpha3" + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/react-components-pro/-/react-components-pro-24.7.0-alpha4.tgz", + "integrity": "sha512-ejXx1BWHN8ZyQNsYjToTKuPgJ1Dnj71GQbGXQ4h1NAkZ8aRfOt8DjtX+wDp9O1ynHPT77xzGjJ50Ic+XBuPLZg==", + "license": "SEE LICENSE IN LICENSE", + "dependencies": { + "@lit/react": "^1.0.6", + "@vaadin/board": "24.7.0-alpha4", + "@vaadin/charts": "24.7.0-alpha4", + "@vaadin/cookie-consent": "24.7.0-alpha4", + "@vaadin/crud": "24.7.0-alpha4", + "@vaadin/dashboard": "24.7.0-alpha4", + "@vaadin/grid-pro": "24.7.0-alpha4", + "@vaadin/map": "24.7.0-alpha4", + "@vaadin/react-components": "24.7.0-alpha4", + "@vaadin/rich-text-editor": "24.7.0-alpha4" }, "peerDependencies": { - "@types/react": "^18.2.37", - "@types/react-dom": "^18.2.15", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "@types/react": "^18.2.37 || ^19", + "@types/react-dom": "^18.2.15 || ^19", + "react": "^18.2.0 || ^19", + "react-dom": "^18.2.0 || ^19" }, "peerDependenciesMeta": { "@types/react": { @@ -4611,206 +4956,217 @@ } }, "node_modules/@vaadin/rich-text-editor": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/rich-text-editor/-/rich-text-editor-24.5.0-alpha3.tgz", - "integrity": "sha512-31/l+iSBMmvFHwjX4Q5U75MK2UJ+OBLEL2KH/mLQMZBsmnlnXKrNrzsTc6YrX0tp0fkx5E/ien3/gYpyAyYXoA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/rich-text-editor/-/rich-text-editor-24.7.0-alpha4.tgz", + "integrity": "sha512-zwHtN3K8jYpYXc8suUvE42akaNXPcP1+/2Y5l3MXh1nkEQ/vbqlsu9Vs3bf7mr0oLQp5CjgjDiX3slUd7lBZCg==", + "license": "SEE LICENSE IN LICENSE", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/confirm-dialog": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/confirm-dialog": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, - "node_modules/@vaadin/router": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-1.7.5.tgz", - "integrity": "sha512-uRN3vd1ihgd596bF/NMZqpgxau0nlvIc0/JDd1EwStFNbZID/xIVse5LXdQhIyUKLmSl4T0GeCQK505xerWX0w==", - "dependencies": { - "@vaadin/vaadin-usage-statistics": "^2.1.0", - "path-to-regexp": "2.4.0" - } - }, "node_modules/@vaadin/scroller": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/scroller/-/scroller-24.5.0-alpha3.tgz", - "integrity": "sha512-Trq8onnUc/7vIqhyizYFQYT8Zl+2jNdlQJPa9ecwhagcKLmfEHGpj4Mj3SJvydgG5QFYACRVzKJK44fMakTcKg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/scroller/-/scroller-24.7.0-alpha4.tgz", + "integrity": "sha512-9SYK0Sbh6Pw0eVZCgdqS7LwsHn4R5MMn725LSwfsTTp534Tc0P8vkO04l0jSeB0r15UcXOu1oXVG9C1jrqiuDA==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/select": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/select/-/select-24.5.0-alpha3.tgz", - "integrity": "sha512-BlpFZd0eRDohJ/jZ4vqRschfxworvCnMlhk8COmhFnzyoJ6eTNO+Nb3xVgljXyO7D24e4gXC1Pc3i7nOLg9JCQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/select/-/select-24.7.0-alpha4.tgz", + "integrity": "sha512-50Sg+Syi1SfoS92GriJaUU3xH1rVdXckqbtta56qs9FtiVhcLO+qgLzvUYqhlbiy/d1G7eI84S/0yTf6iT5pqQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.2.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/list-box": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/list-box": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/side-nav": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/side-nav/-/side-nav-24.5.0-alpha3.tgz", - "integrity": "sha512-7+3BTXlQm4DvzHAhZvFCiYVd6RbjYxXw8g1aiodh4dYh0C+VrDQBKCHEAlOuEwWNDMSDdNGLeHmDjdVncAee8w==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/side-nav/-/side-nav-24.7.0-alpha4.tgz", + "integrity": "sha512-LmT/CT+AAUKg3M42Tot5iVvP+2aqTSDX+aOIhoi288cABRW6W1hkgC7dxlJ5jzQ97w56oEYe8VXAyYtcRI/Gcg==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/split-layout": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/split-layout/-/split-layout-24.5.0-alpha3.tgz", - "integrity": "sha512-oiCdrpEPsXiQsCKOJVegR6kZ2mPevin7Bx2NMwhHpWWsG9vC82TRn/Wa8disv1rTrkQcCik9TEojf2PgQhERCg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/split-layout/-/split-layout-24.7.0-alpha4.tgz", + "integrity": "sha512-BcoeOWHSZ3rSGLcaHDUEh8sYRY7ahQmXjbQ/c6PzdGJJIOGhcL3O+XyLq+3LYCKwQvnbnqZY8Oiy4X3fv1LtQg==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/tabs": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/tabs/-/tabs-24.5.0-alpha3.tgz", - "integrity": "sha512-1T99hCAU8VIDEWG2Vpr3WenAhG5VnbhAIOIYfEknncy4FZaWf8rxwx32tqVilngc98LGf5tQDUGVZRAaVpZqHw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/tabs/-/tabs-24.7.0-alpha4.tgz", + "integrity": "sha512-tTVIhSANTvksDF/32XwSMypfYMK4GA/DDuJk8SE2ZdUBgEQpkBuQtsx6DGezlsaCo+0kdyZ78s8kA9AvjXnimg==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/tabsheet": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/tabsheet/-/tabsheet-24.5.0-alpha3.tgz", - "integrity": "sha512-pyHH4KCbpLYbnkW84ZYjYJ+vbHYup+VYnHcOJ6HBheMeSso4xGJcl6ZPcYkgriKA0/8SVEyczZ6+E+17d5MSFA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/tabsheet/-/tabsheet-24.7.0-alpha4.tgz", + "integrity": "sha512-/g8mNJAZv6KN2T3XPG8DlEc0GHadkRkN+NqljtVKMlUdyL7UnvH9g8oR6jQY1c0KedPSu3f8F73D6WFZJmgH5g==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/scroller": "24.5.0-alpha3", - "@vaadin/tabs": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/scroller": "24.7.0-alpha4", + "@vaadin/tabs": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/text-area": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/text-area/-/text-area-24.5.0-alpha3.tgz", - "integrity": "sha512-xy0np0EMhRtfvVFEBEJ5KW82X1qm5aIiK+zGPfWkhlCJvKHP4rpQYQvgcXiPzcUaTrQuDGb9LKnTJOBS8Kun/w==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/text-area/-/text-area-24.7.0-alpha4.tgz", + "integrity": "sha512-SrYxQee6sLx7fxbsYKspWmrrC3sWmnjuuAzd0zTsiGu5A30b6KhPFJVPqUKxG3Lz3wnXyTNavc0XmGp2J6c1KA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/text-field": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.5.0-alpha3.tgz", - "integrity": "sha512-0RSG/a9EX6feS9qdGOMGG7XGbPopmOpMyEsF9MFEbB4FCo9FdNt/6t/8nnQvjm0prO1rvfhUc9CIYjAeNsb6wQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.7.0-alpha4.tgz", + "integrity": "sha512-FimpLa4DSU3AmcNZVHGmDdMrLHGCGGNCXPIc+xFqht22ahh20CkdeKio8ZgBNBiYujr0V+3z2G/K36iktD0Tog==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/time-picker": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/time-picker/-/time-picker-24.5.0-alpha3.tgz", - "integrity": "sha512-8eG8R8uQW2USWrXS0pLAECVGRUWlhFETj5RgCc32RuQHt0kG/S8VvYykn4vS26hIUOOutG511N0JeyhUB1YMUg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/time-picker/-/time-picker-24.7.0-alpha4.tgz", + "integrity": "sha512-fSEVzSfTrVJNeW7mdGF+VQlLVMd4GY2JhOimDu9f8LpDP2gOFixi32k74nowOo0HDwDMTf7O/ANnPhEMUGC6ow==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/combo-box": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/combo-box": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/tooltip": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.5.0-alpha3.tgz", - "integrity": "sha512-q5K9g3dCp/P8ED1/twharFiSGk1Zf09mApNdxyFl/wYduLxVnDG2h0WfE4rEl9Ix6h8N5NVmJ6Vl48UAZ5vgYQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.7.0-alpha4.tgz", + "integrity": "sha512-6Eb8kaZTpPCF6fptSAXlpYHO5HBDQiTMCbDtLX4cA0ov0rpaJ9YljVaZYYHyVF5lDDPhEfTGUq+f9MhMmIpW0w==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/popover": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/popover": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/upload": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/upload/-/upload-24.5.0-alpha3.tgz", - "integrity": "sha512-f+GjVU/Jhn9KVpLJ4mkKB2iuvOBzn1biW1jZR5RNAY63qQfScK7P4dNoLmzJl/SY5qd6dqGYBOpyboE/NkAQmQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/upload/-/upload-24.7.0-alpha4.tgz", + "integrity": "sha512-n7Z711lwD8vvYOJfjzWCkiWslR7Y1mG+a+OMQDa+g0uC3uJRxrxxeA7RGXI4iqScTe/Xj80FhLTjFEaf58PO2A==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/progress-bar": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/progress-bar": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, @@ -4820,39 +5176,42 @@ "integrity": "sha512-9FhVhr0ynSR3X2ao+vaIEttcNU5XfzCbxtmYOV8uIRnUCtNgbvMOIcyGBvntsX9I5kvIP2dV3cFAOG9SILJzEA==" }, "node_modules/@vaadin/vaadin-lumo-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-9zswr9ZNP6L7+VLCpD8yKKrlRzEC5gKJtfSRVhXqZwJ7x5Na1LVpJDzhDoKlqEcyPCsL/mcRllYAkT20hj0+8Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-L+rF8XYF+7hisu48wZK8MDjbwVMTmEteZsoTk1uyY6oCXyJEvBup1WwN2I0fFRlvSHMKnHNWDOuHmIfevK0uKQ==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "node_modules/@vaadin/vaadin-material-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-6CYxTPmT0ZU64H3wwzeDOrVF87wyU8CtLWLXNhXNkB+DSO44pCLML5kg1LwRRqnixY95x26LY+iSSITUSD8Pmw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-8fcm8oLtaI3BHewsP2d07YcIHw3GgFfFp83IHIoTG7MlaeJvAqvs2aPMcszLJ4s3WCLZnvsSkdwbgjdE0oYbhw==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "node_modules/@vaadin/vaadin-themable-mixin": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.5.0-alpha3.tgz", - "integrity": "sha512-gm/Adnsms4nUYONQPBDK91bPE7lfHFb27dBo31io7QAm5Cr+lBTd2U/Ce8eyK5+MialbabyZ2YQCgF3l2l8xWg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.7.0-alpha4.tgz", + "integrity": "sha512-x8Shc4t2WTV/2UtsXY8+n6KDYMvVaq0ZfNdldNkthfZjVfpCgioyZAtB6hZbEirvY6a5RRSQKcr12k2lrKDbTQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "lit": "^3.0.0" } }, "node_modules/@vaadin/vaadin-usage-statistics": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-usage-statistics/-/vaadin-usage-statistics-2.1.2.tgz", - "integrity": "sha512-xKs1PvRfTXsG0eWWcImLXWjv7D+f1vfoIvovppv6pZ5QX8xgcxWUdNgERlOOdGt3CTuxQXukTBW3+Qfva+OXSg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-usage-statistics/-/vaadin-usage-statistics-2.1.3.tgz", + "integrity": "sha512-8r4TNknD7OJQADe3VygeofFR7UNAXZ2/jjBFP5dgI8+2uMfnuGYgbuHivasKr9WSQ64sPej6m8rDoM1uSllXjQ==", "hasInstallScript": true, "dependencies": { "@vaadin/vaadin-development-mode-detector": "^2.0.0" @@ -4862,41 +5221,44 @@ } }, "node_modules/@vaadin/vertical-layout": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vertical-layout/-/vertical-layout-24.5.0-alpha3.tgz", - "integrity": "sha512-vRKkfDtCIaoud8m03t3DhFdPPkiCJxZpNIvm/6gmaSQaznfLornzdFkd/cGYyBwGOYkbGq3J84yfIJXNNycDbw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vertical-layout/-/vertical-layout-24.7.0-alpha4.tgz", + "integrity": "sha512-zyU203DhiaxZCBKx09U1Olq5RJivpBrXwr5kVT1heiF/aioKzOJVHratZcxx0jd0YuAJARt9ODgvYGBPi9HrYw==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/virtual-list": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/virtual-list/-/virtual-list-24.5.0-alpha3.tgz", - "integrity": "sha512-MJBTySDtlWbqVryS8IpIyAcWDfda3AWnapI5QPS/eO/kYXPgXGCAsJ/SQJ5H+JOKiZ79Rjkkv4zMm5c7rs968A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/virtual-list/-/virtual-list-24.7.0-alpha4.tgz", + "integrity": "sha512-kNd/HF+yrefuzECTBRY7c+l2B0VKnLaCzjDdDcYYRuzMm2c9ee38JejIULvGlhO+/E7/Ow6JYxAj+RfFc3a6JQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vitejs/plugin-react": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", - "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", "dev": true, "dependencies": { - "@babel/core": "^7.24.5", - "@babel/plugin-transform-react-jsx-self": "^7.24.5", - "@babel/plugin-transform-react-jsx-source": "^7.24.1", + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", "@types/babel__core": "^7.20.5", "react-refresh": "^0.14.2" }, @@ -4904,7 +5266,7 @@ "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" } }, "node_modules/@webcomponents/shadycss": { @@ -4976,10 +5338,11 @@ } }, "node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -4988,15 +5351,16 @@ } }, "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/anymatch": { @@ -5051,9 +5415,9 @@ } }, "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "dev": true }, "node_modules/at-least-node": { @@ -5162,9 +5526,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", "dev": true, "funding": [ { @@ -5181,10 +5545,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -5231,9 +5595,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001588", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001588.tgz", - "integrity": "sha512-+hVY9jE44uKLkH0SrUTqxjxqNTOWHsbnQDIKjwkZ3lNTzUUVdBLBGXtj/q5Mp5u98r3droaZAewQuEDzjQdZlQ==", + "version": "1.0.30001667", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", + "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", "dev": true, "funding": [ { @@ -5250,20 +5614,6 @@ } ] }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -5326,24 +5676,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/cliui/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cliui/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -5394,19 +5726,24 @@ } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" }, "node_modules/commander": { "version": "8.3.0", @@ -5443,6 +5780,14 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "engines": { + "node": ">=18" + } + }, "node_modules/cookieconsent": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/cookieconsent/-/cookieconsent-3.1.1.tgz", @@ -5573,7 +5918,8 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ejs": { "version": "3.1.9", @@ -5591,16 +5937,17 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.676", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.676.tgz", - "integrity": "sha512-uHt4FB8SeYdhcOsj2ix/C39S7sPSNFJpzShjxGOm1KdF4MHyGqGi389+T5cErsodsijojXilYaHIKKqJfqh7uQ==", + "version": "1.5.33", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.33.tgz", + "integrity": "sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==", "dev": true }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/es-abstract": { "version": "1.22.4", @@ -5710,47 +6057,50 @@ } }, "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "engines": { "node": ">=6" @@ -6024,22 +6374,24 @@ } }, "node_modules/glob": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", "minipass": "^7.1.2", - "path-scurry": "^1.11.1" + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -6129,15 +6481,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/has-property-descriptors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", @@ -6624,21 +6967,19 @@ "dev": true }, "node_modules/jackspeak": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", - "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=14" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/jake": { @@ -6700,24 +7041,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jake/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/jake/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -6757,15 +7080,15 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-schema": { @@ -6833,29 +7156,29 @@ } }, "node_modules/lit": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.4.tgz", - "integrity": "sha512-q6qKnKXHy2g1kjBaNfcoLlgbI3+aSOZ9Q4tiGa9bGYXq5RBXxkVTqTIVmP2VWMp29L4GyvCFm8ZQ2o56eUAMyA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz", + "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==", "dependencies": { "@lit/reactive-element": "^2.0.4", - "lit-element": "^4.0.4", - "lit-html": "^3.1.2" + "lit-element": "^4.1.0", + "lit-html": "^3.2.0" } }, "node_modules/lit-element": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", - "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz", + "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==", "dependencies": { "@lit-labs/ssr-dom-shim": "^1.2.0", "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.1.2" + "lit-html": "^3.2.0" } }, "node_modules/lit-html": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", - "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz", + "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==", "dependencies": { "@types/trusted-types": "^2.0.2" } @@ -6911,9 +7234,9 @@ } }, "node_modules/mapbox-to-css-font": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.4.tgz", - "integrity": "sha512-X1dtuTuH2D1MRMuductMZCLV/fy9EoIgqW/lmu8vQSAhEatx/tdFebkYT3TVhdTwqFDHbLEgQBD3IKA4KI7aoQ==" + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.5.tgz", + "integrity": "sha512-VJ6nB8emkO9VODI0Fk+TQ/0zKBTqmf/Pkt8Xv0kHstoc0iXRajA00DAid4Kc3K5xeFIOoiZrVxijEzj0GLVO2w==" }, "node_modules/merge-source-map": { "version": "1.0.4", @@ -6956,15 +7279,16 @@ } }, "node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -6983,6 +7307,7 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -7074,9 +7399,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true, "funding": [ { @@ -7092,9 +7417,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, "node_modules/normalize-path": { @@ -7205,6 +7530,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, "node_modules/pako": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", @@ -7240,35 +7571,32 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", "dev": true, + "license": "ISC", "engines": { - "node": "14 || >=16.14" + "node": "20 || >=22" } }, - "node_modules/path-to-regexp": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.4.0.tgz", - "integrity": "sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w==" - }, "node_modules/pbf": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", @@ -7282,9 +7610,9 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, "node_modules/picomatch": { @@ -7309,9 +7637,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, "funding": [ { @@ -7329,8 +7657,8 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -7463,33 +7791,27 @@ } }, "node_modules/react-router": { - "version": "6.23.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.23.1.tgz", - "integrity": "sha512-fzcOaRF69uvqbbM7OhvQyBTFDVrrGlsFdS3AL+1KfIBtGETibHzi3FkoTRyiDJnWNc2VxrfvR+657ROHjaNjqQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.1.tgz", + "integrity": "sha512-39sXJkftkKWRZ2oJtHhCxmoCrBCULr/HAH4IT5DHlgu/Q0FCPV0S4Lx+abjDTx/74xoZzNYDYbOZWlJjruyuDQ==", + "license": "MIT", "dependencies": { - "@remix-run/router": "1.16.1" + "@types/cookie": "^0.6.0", + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=20.0.0" }, "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-router-dom": { - "version": "6.23.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.23.1.tgz", - "integrity": "sha512-utP+K+aSTtEdbWpC+4gxhdlPFwuEfDKq8ZrPFU65bbRJY+l706qjR7yaidBpo3MSeA/fzwbXWbKBI6ftOnP3OQ==", - "dependencies": { - "@remix-run/router": "1.16.1", - "react-router": "6.23.1" - }, - "engines": { - "node": ">=14.0.0" + "react": ">=18", + "react-dom": ">=18" }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } } }, "node_modules/readdirp": { @@ -7647,12 +7969,12 @@ } }, "node_modules/rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.0.tgz", + "integrity": "sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==", "dev": true, "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -7662,19 +7984,24 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", + "@rollup/rollup-android-arm-eabi": "4.28.0", + "@rollup/rollup-android-arm64": "4.28.0", + "@rollup/rollup-darwin-arm64": "4.28.0", + "@rollup/rollup-darwin-x64": "4.28.0", + "@rollup/rollup-freebsd-arm64": "4.28.0", + "@rollup/rollup-freebsd-x64": "4.28.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.28.0", + "@rollup/rollup-linux-arm-musleabihf": "4.28.0", + "@rollup/rollup-linux-arm64-gnu": "4.28.0", + "@rollup/rollup-linux-arm64-musl": "4.28.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.28.0", + "@rollup/rollup-linux-riscv64-gnu": "4.28.0", + "@rollup/rollup-linux-s390x-gnu": "4.28.0", + "@rollup/rollup-linux-x64-gnu": "4.28.0", + "@rollup/rollup-linux-x64-musl": "4.28.0", + "@rollup/rollup-win32-arm64-msvc": "4.28.0", + "@rollup/rollup-win32-ia32-msvc": "4.28.0", + "@rollup/rollup-win32-x64-msvc": "4.28.0", "fsevents": "~2.3.2" } }, @@ -7688,13 +8015,14 @@ } }, "node_modules/rollup-plugin-visualizer": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz", - "integrity": "sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==", + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.13.1.tgz", + "integrity": "sha512-vMg8i6BprL8aFm9DKvL2c8AwS8324EgymYQo9o6E26wgVvwMhsJxS37aNL6ZsU7X9iAcMYwdME7gItLfG5fwJg==", "dev": true, + "license": "MIT", "dependencies": { "open": "^8.4.0", - "picomatch": "^2.3.1", + "picomatch": "^4.0.2", "source-map": "^0.7.4", "yargs": "^17.5.1" }, @@ -7702,17 +8030,34 @@ "rollup-plugin-visualizer": "dist/bin/cli.js" }, "engines": { - "node": ">=14" + "node": ">=18" }, "peerDependencies": { + "rolldown": "1.x", "rollup": "2.x || 3.x || 4.x" }, "peerDependenciesMeta": { + "rolldown": { + "optional": true + }, "rollup": { "optional": true } } }, + "node_modules/rollup-plugin-visualizer/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -7822,6 +8167,11 @@ "randombytes": "^2.1.0" } }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==" + }, "node_modules/set-function-length": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", @@ -7949,9 +8299,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -7988,6 +8338,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -8006,6 +8357,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -8020,6 +8372,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8028,13 +8381,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -8135,6 +8490,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -8151,6 +8507,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -8163,6 +8520,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8191,18 +8549,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -8296,15 +8642,6 @@ "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==", "dev": true }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -8361,6 +8698,11 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==" + }, "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", @@ -8440,10 +8782,11 @@ } }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -8547,9 +8890,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "funding": [ { @@ -8566,8 +8909,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -8585,21 +8928,32 @@ "punycode": "^2.1.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/vite": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", - "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.6.tgz", + "integrity": "sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==", "dev": true, + "license": "MIT", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.38", - "rollup": "^4.13.0" + "esbuild": "^0.24.2", + "postcss": "^8.4.49", + "rollup": "^4.23.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -8608,18 +8962,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", - "terser": "^5.4.0" + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -8629,6 +8990,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -8637,13 +9001,19 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, "node_modules/vite-plugin-checker": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.6.4.tgz", - "integrity": "sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.8.0.tgz", + "integrity": "sha512-UA5uzOGm97UvZRTdZHiQVYFnd86AVn8EVaD4L3PoVzxH+IZSfaAw14WGFwX9QS23UW3lV/5bVKZn6l0w+q9P0g==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", @@ -8654,7 +9024,6 @@ "fast-glob": "^3.2.7", "fs-extra": "^11.1.0", "npm-run-path": "^4.0.1", - "semver": "^7.5.0", "strip-ansi": "^6.0.0", "tiny-invariant": "^1.1.0", "vscode-languageclient": "^7.0.0", @@ -8666,6 +9035,7 @@ "node": ">=14.16" }, "peerDependencies": { + "@biomejs/biome": ">=1.7", "eslint": ">=7", "meow": "^9.0.0", "optionator": "^0.9.1", @@ -8674,9 +9044,12 @@ "vite": ">=2.0.0", "vls": "*", "vti": "*", - "vue-tsc": ">=1.3.9" + "vue-tsc": "~2.1.6" }, "peerDependenciesMeta": { + "@biomejs/biome": { + "optional": true + }, "eslint": { "optional": true }, @@ -8743,24 +9116,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/vite-plugin-checker/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/vite-plugin-checker/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/vite-plugin-checker/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -8770,33 +9125,6 @@ "node": ">=8" } }, - "node_modules/vite-plugin-checker/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/vite-plugin-checker/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/vite-plugin-checker/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -8821,12 +9149,6 @@ "node": ">=8" } }, - "node_modules/vite-plugin-checker/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/vscode-jsonrpc": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz", @@ -9023,28 +9345,28 @@ } }, "node_modules/workbox-background-sync": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.1.0.tgz", - "integrity": "sha512-rMbgrzueVWDFcEq1610YyDW71z0oAXLfdRHRQcKw4SGihkfOK0JUEvqWHFwA6rJ+6TClnMIn7KQI5PNN1XQXwQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.3.0.tgz", + "integrity": "sha512-PCSk3eK7Mxeuyatb22pcSx9dlgWNv3+M8PqPaYDokks8Y5/FX4soaOqj3yhAZr5k6Q5JWTOMYgaJBpbw11G9Eg==", "dev": true, "dependencies": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-broadcast-update": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.1.0.tgz", - "integrity": "sha512-O36hIfhjej/c5ar95pO67k1GQw0/bw5tKP7CERNgK+JdxBANQhDmIuOXZTNvwb2IHBx9hj2kxvcDyRIh5nzOgQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.3.0.tgz", + "integrity": "sha512-T9/F5VEdJVhwmrIAE+E/kq5at2OY6+OXXgOWQevnubal6sO92Gjo24v6dCVwQiclAF5NS3hlmsifRrpQzZCdUA==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-build": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.1.1.tgz", - "integrity": "sha512-WdkVdC70VMpf5NBCtNbiwdSZeKVuhTEd5PV3mAwpTQCGAB5XbOny1P9egEgNdetv4srAMmMKjvBk4RD58LpooA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.3.0.tgz", + "integrity": "sha512-JGL6vZTPlxnlqZRhR/K/msqg3wKP+m0wfEUVosK7gsYzSgeIxvZLi1ViJJzVL7CEeI8r7rGFV973RiEqkP3lWQ==", "dev": true, "dependencies": { "@apideck/better-ajv-errors": "^0.3.1", @@ -9069,21 +9391,21 @@ "strip-comments": "^2.0.1", "tempy": "^0.6.0", "upath": "^1.2.0", - "workbox-background-sync": "7.1.0", - "workbox-broadcast-update": "7.1.0", - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-google-analytics": "7.1.0", - "workbox-navigation-preload": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-range-requests": "7.1.0", - "workbox-recipes": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0", - "workbox-streams": "7.1.0", - "workbox-sw": "7.1.0", - "workbox-window": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-broadcast-update": "7.3.0", + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-google-analytics": "7.3.0", + "workbox-navigation-preload": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-range-requests": "7.3.0", + "workbox-recipes": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0", + "workbox-streams": "7.3.0", + "workbox-sw": "7.3.0", + "workbox-window": "7.3.0" }, "engines": { "node": ">=16.0.0" @@ -9248,127 +9570,127 @@ } }, "node_modules/workbox-cacheable-response": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.1.0.tgz", - "integrity": "sha512-iwsLBll8Hvua3xCuBB9h92+/e0wdsmSVgR2ZlvcfjepZWwhd3osumQB3x9o7flj+FehtWM2VHbZn8UJeBXXo6Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.3.0.tgz", + "integrity": "sha512-eAFERIg6J2LuyELhLlmeRcJFa5e16Mj8kL2yCDbhWE+HUun9skRQrGIFVUagqWj4DMaaPSMWfAolM7XZZxNmxA==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-core": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.1.0.tgz", - "integrity": "sha512-5KB4KOY8rtL31nEF7BfvU7FMzKT4B5TkbYa2tzkS+Peqj0gayMT9SytSFtNzlrvMaWgv6y/yvP9C0IbpFjV30Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.3.0.tgz", + "integrity": "sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw==", "dev": true }, "node_modules/workbox-expiration": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.1.0.tgz", - "integrity": "sha512-m5DcMY+A63rJlPTbbBNtpJ20i3enkyOtSgYfv/l8h+D6YbbNiA0zKEkCUaMsdDlxggla1oOfRkyqTvl5Ni5KQQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.3.0.tgz", + "integrity": "sha512-lpnSSLp2BM+K6bgFCWc5bS1LR5pAwDWbcKt1iL87/eTSJRdLdAwGQznZE+1czLgn/X05YChsrEegTNxjM067vQ==", "dev": true, "dependencies": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-google-analytics": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.1.0.tgz", - "integrity": "sha512-FvE53kBQHfVTcZyczeBVRexhh7JTkyQ8HAvbVY6mXd2n2A7Oyz/9fIwnY406ZcDhvE4NFfKGjW56N4gBiqkrew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.3.0.tgz", + "integrity": "sha512-ii/tSfFdhjLHZ2BrYgFNTrb/yk04pw2hasgbM70jpZfLk0vdJAXgaiMAWsoE+wfJDNWoZmBYY0hMVI0v5wWDbg==", "dev": true, "dependencies": { - "workbox-background-sync": "7.1.0", - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "node_modules/workbox-navigation-preload": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.1.0.tgz", - "integrity": "sha512-4wyAbo0vNI/X0uWNJhCMKxnPanNyhybsReMGN9QUpaePLTiDpKxPqFxl4oUmBNddPwIXug01eTSLVIFXimRG/A==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.3.0.tgz", + "integrity": "sha512-fTJzogmFaTv4bShZ6aA7Bfj4Cewaq5rp30qcxl2iYM45YD79rKIhvzNHiFj1P+u5ZZldroqhASXwwoyusnr2cg==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-precaching": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.1.0.tgz", - "integrity": "sha512-LyxzQts+UEpgtmfnolo0hHdNjoB7EoRWcF7EDslt+lQGd0lW4iTvvSe3v5JiIckQSB5KTW5xiCqjFviRKPj1zA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.3.0.tgz", + "integrity": "sha512-ckp/3t0msgXclVAYaNndAGeAoWQUv7Rwc4fdhWL69CCAb2UHo3Cef0KIUctqfQj1p8h6aGyz3w8Cy3Ihq9OmIw==", "dev": true, "dependencies": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "node_modules/workbox-range-requests": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.1.0.tgz", - "integrity": "sha512-m7+O4EHolNs5yb/79CrnwPR/g/PRzMFYEdo01LqwixVnc/sbzNSvKz0d04OE3aMRel1CwAAZQheRsqGDwATgPQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.3.0.tgz", + "integrity": "sha512-EyFmM1KpDzzAouNF3+EWa15yDEenwxoeXu9bgxOEYnFfCxns7eAxA9WSSaVd8kujFFt3eIbShNqa4hLQNFvmVQ==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-recipes": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.1.0.tgz", - "integrity": "sha512-NRrk4ycFN9BHXJB6WrKiRX3W3w75YNrNrzSX9cEZgFB5ubeGoO8s/SDmOYVrFYp9HMw6sh1Pm3eAY/1gVS8YLg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.3.0.tgz", + "integrity": "sha512-BJro/MpuW35I/zjZQBcoxsctgeB+kyb2JAP5EB3EYzePg8wDGoQuUdyYQS+CheTb+GhqJeWmVs3QxLI8EBP1sg==", "dev": true, "dependencies": { - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "node_modules/workbox-routing": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.1.0.tgz", - "integrity": "sha512-oOYk+kLriUY2QyHkIilxUlVcFqwduLJB7oRZIENbqPGeBP/3TWHYNNdmGNhz1dvKuw7aqvJ7CQxn27/jprlTdg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.3.0.tgz", + "integrity": "sha512-ZUlysUVn5ZUzMOmQN3bqu+gK98vNfgX/gSTZ127izJg/pMMy4LryAthnYtjuqcjkN4HEAx1mdgxNiKJMZQM76A==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-strategies": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.1.0.tgz", - "integrity": "sha512-/UracPiGhUNehGjRm/tLUQ+9PtWmCbRufWtV0tNrALuf+HZ4F7cmObSEK+E4/Bx1p8Syx2tM+pkIrvtyetdlew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.3.0.tgz", + "integrity": "sha512-tmZydug+qzDFATwX7QiEL5Hdf7FrkhjaF9db1CbB39sDmEZJg3l9ayDvPxy8Y18C3Y66Nrr9kkN1f/RlkDgllg==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-streams": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.1.0.tgz", - "integrity": "sha512-WyHAVxRXBMfysM8ORwiZnI98wvGWTVAq/lOyBjf00pXFvG0mNaVz4Ji+u+fKa/mf1i2SnTfikoYKto4ihHeS6w==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.3.0.tgz", + "integrity": "sha512-SZnXucyg8x2Y61VGtDjKPO5EgPUG5NDn/v86WYHX+9ZqvAsGOytP0Jxp1bl663YUuMoXSAtsGLL+byHzEuMRpw==", "dev": true, "dependencies": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0" } }, "node_modules/workbox-sw": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.1.0.tgz", - "integrity": "sha512-Hml/9+/njUXBglv3dtZ9WBKHI235AQJyLBV1G7EFmh4/mUdSQuXui80RtjDeVRrXnm/6QWgRUEHG3/YBVbxtsA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.3.0.tgz", + "integrity": "sha512-aCUyoAZU9IZtH05mn0ACUpyHzPs0lMeJimAYkQkBsOWiqaJLgusfDCR+yllkPkFRxWpZKF8vSvgHYeG7LwhlmA==", "dev": true }, "node_modules/workbox-window": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.1.0.tgz", - "integrity": "sha512-ZHeROyqR+AS5UPzholQRDttLFqGMwP0Np8MKWAdyxsDETxq3qOAyXvqessc3GniohG6e0mAqSQyKOHmT8zPF7g==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.3.0.tgz", + "integrity": "sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==", "dev": true, "dependencies": { "@types/trusted-types": "^2.0.2", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/wrap-ansi": { @@ -9376,6 +9698,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -9394,6 +9717,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -9411,6 +9735,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -9420,6 +9745,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -9430,35 +9756,19 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -9473,6 +9783,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -9480,18 +9791,6 @@ "node": ">=8" } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -9499,9 +9798,9 @@ "dev": true }, "node_modules/xml-utils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.7.0.tgz", - "integrity": "sha512-bWB489+RQQclC7A9OW8e5BzbT8Tu//jtAOvkYwewFr+Q9T9KDGvfzC1lp0pYPEQPEoPQLDkmxkepSC/2gIAZGw==" + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.10.1.tgz", + "integrity": "sha512-Dn6vJ1Z9v1tepSjvnCpwk5QqwIPcEFKdgnjqfYOABv1ngSofuAhtlugcUC3ehS1OHdgDWSG6C5mvj+Qm15udTQ==" }, "node_modules/xtend": { "version": "4.0.2", diff --git a/packages/java/tests/spring/react-grid-test/package.json b/packages/java/tests/spring/react-grid-test/package.json index c0aeb1c07d..d95c93db45 100644 --- a/packages/java/tests/spring/react-grid-test/package.json +++ b/packages/java/tests/spring/react-grid-test/package.json @@ -1,10 +1,10 @@ { - "name": "no-name", + "private": true, "license": "UNLICENSED", "type": "module", "dependencies": { - "@polymer/polymer": "3.5.1", - "@vaadin/bundles": "24.5.0-alpha3", + "@polymer/polymer": "3.5.2", + "@vaadin/bundles": "24.7.0-alpha4", "@vaadin/common-frontend": "0.0.19", "@vaadin/hilla-file-router": "file:../../../../ts/file-router", "@vaadin/hilla-frontend": "file:../../../../ts/frontend", @@ -14,26 +14,26 @@ "@vaadin/hilla-react-form": "file:../../../../ts/react-form", "@vaadin/hilla-react-i18n": "file:../../../../ts/react-i18n", "@vaadin/hilla-react-signals": "file:../../../../ts/react-signals", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/react-components": "24.5.0-alpha3", - "@vaadin/react-components-pro": "24.5.0-alpha3", - "@vaadin/router": "1.7.5", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/react-components": "24.7.0-alpha4", + "@vaadin/react-components-pro": "24.7.0-alpha4", "@vaadin/vaadin-development-mode-detector": "2.0.7", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "@vaadin/vaadin-usage-statistics": "2.1.2", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "@vaadin/vaadin-usage-statistics": "2.1.3", "construct-style-sheets-polyfill": "3.1.0", - "lit": "3.1.4", + "lit": "3.2.1", "react": "18.3.1", "react-dom": "18.3.1", - "react-router-dom": "6.23.1" + "react-router": "7.1.1" }, "devDependencies": { - "@babel/preset-react": "7.24.7", - "@rollup/plugin-replace": "5.0.7", - "@rollup/pluginutils": "5.1.0", - "@types/react": "18.3.3", - "@types/react-dom": "18.3.0", + "@babel/preset-react": "7.26.3", + "@preact/signals-react-transform": "0.5.1", + "@rollup/plugin-replace": "6.0.2", + "@rollup/pluginutils": "5.1.4", + "@types/react": "18.3.18", + "@types/react-dom": "18.3.5", "@vaadin/hilla-generator-cli": "file:../../../../ts/generator-cli", "@vaadin/hilla-generator-core": "file:../../../../ts/generator-core", "@vaadin/hilla-generator-plugin-backbone": "file:../../../../ts/generator-plugin-backbone", @@ -41,79 +41,81 @@ "@vaadin/hilla-generator-plugin-client": "file:../../../../ts/generator-plugin-client", "@vaadin/hilla-generator-plugin-model": "file:../../../../ts/generator-plugin-model", "@vaadin/hilla-generator-plugin-push": "file:../../../../ts/generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "file:../../../../ts/generator-plugin-signals", "@vaadin/hilla-generator-plugin-subtypes": "file:../../../../ts/generator-plugin-subtypes", "@vaadin/hilla-generator-utils": "file:../../../../ts/generator-utils", - "@vitejs/plugin-react": "4.3.1", - "async": "3.2.5", - "glob": "10.4.1", + "@vitejs/plugin-react": "4.3.4", + "async": "3.2.6", + "glob": "11.0.0", "rollup-plugin-brotli": "3.1.0", - "rollup-plugin-visualizer": "5.12.0", + "rollup-plugin-visualizer": "5.13.1", "strip-css-comments": "5.0.0", "transform-ast": "2.4.4", - "typescript": "5.4.5", - "vite": "5.3.1", - "vite-plugin-checker": "0.6.4", - "workbox-build": "7.1.1", - "workbox-core": "7.1.0", - "workbox-precaching": "7.1.0" + "typescript": "5.7.3", + "vite": "6.0.6", + "vite-plugin-checker": "0.8.0", + "workbox-build": "7.3.0", + "workbox-core": "7.3.0", + "workbox-precaching": "7.3.0" }, "vaadin": { "dependencies": { - "@polymer/polymer": "3.5.1", - "@vaadin/bundles": "24.5.0-alpha3", + "@polymer/polymer": "3.5.2", + "@vaadin/bundles": "24.7.0-alpha4", "@vaadin/common-frontend": "0.0.19", - "@vaadin/hilla-file-router": "24.5.0-alpha2", - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "@vaadin/hilla-lit-form": "24.5.0-alpha2", - "@vaadin/hilla-react-auth": "24.5.0-alpha2", - "@vaadin/hilla-react-crud": "24.5.0-alpha2", - "@vaadin/hilla-react-form": "24.5.0-alpha2", - "@vaadin/hilla-react-i18n": "24.5.0-alpha2", - "@vaadin/hilla-react-signals": "24.5.0-alpha2", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/react-components": "24.5.0-alpha3", - "@vaadin/react-components-pro": "24.5.0-alpha3", - "@vaadin/router": "1.7.5", + "@vaadin/hilla-file-router": "24.7.0-alpha5", + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", + "@vaadin/hilla-react-auth": "24.7.0-alpha5", + "@vaadin/hilla-react-crud": "24.7.0-alpha5", + "@vaadin/hilla-react-form": "24.7.0-alpha5", + "@vaadin/hilla-react-i18n": "24.7.0-alpha5", + "@vaadin/hilla-react-signals": "24.7.0-alpha5", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/react-components": "24.7.0-alpha4", + "@vaadin/react-components-pro": "24.7.0-alpha4", "@vaadin/vaadin-development-mode-detector": "2.0.7", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "@vaadin/vaadin-usage-statistics": "2.1.2", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "@vaadin/vaadin-usage-statistics": "2.1.3", "construct-style-sheets-polyfill": "3.1.0", - "lit": "3.1.4", + "lit": "3.2.1", "react": "18.3.1", "react-dom": "18.3.1", - "react-router-dom": "6.23.1" + "react-router": "7.1.1" }, "devDependencies": { - "@babel/preset-react": "7.24.7", - "@rollup/plugin-replace": "5.0.7", - "@rollup/pluginutils": "5.1.0", - "@types/react": "18.3.3", - "@types/react-dom": "18.3.0", - "@vaadin/hilla-generator-cli": "24.5.0-alpha2", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-barrel": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-push": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-subtypes": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "@vitejs/plugin-react": "4.3.1", - "async": "3.2.5", - "glob": "10.4.1", + "@babel/preset-react": "7.26.3", + "@preact/signals-react-transform": "0.5.1", + "@rollup/plugin-replace": "6.0.2", + "@rollup/pluginutils": "5.1.4", + "@types/react": "18.3.18", + "@types/react-dom": "18.3.5", + "@vaadin/hilla-generator-cli": "24.7.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-barrel": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-push": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-signals": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-subtypes": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vitejs/plugin-react": "4.3.4", + "async": "3.2.6", + "glob": "11.0.0", "rollup-plugin-brotli": "3.1.0", - "rollup-plugin-visualizer": "5.12.0", + "rollup-plugin-visualizer": "5.13.1", "strip-css-comments": "5.0.0", "transform-ast": "2.4.4", - "typescript": "5.4.5", - "vite": "5.3.1", - "vite-plugin-checker": "0.6.4", - "workbox-build": "7.1.1", - "workbox-core": "7.1.0", - "workbox-precaching": "7.1.0" + "typescript": "5.7.3", + "vite": "6.0.6", + "vite-plugin-checker": "0.8.0", + "workbox-build": "7.3.0", + "workbox-core": "7.3.0", + "workbox-precaching": "7.3.0" }, - "hash": "68ebce7dffa1e9533019990f67598371fad14ee125f8288ff6ae63e84a41c0f0" + "hash": "8643ab3815724609fb5c2b4c4c822c014a920c038d21af0f5435004e63894239" }, "overrides": { "@vaadin/common-frontend": "$@vaadin/common-frontend", @@ -123,6 +125,7 @@ "@vaadin/hilla-generator-plugin-model": "$@vaadin/hilla-generator-plugin-model", "@vaadin/hilla-generator-plugin-barrel": "$@vaadin/hilla-generator-plugin-barrel", "@vaadin/hilla-generator-plugin-push": "$@vaadin/hilla-generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "$@vaadin/hilla-generator-plugin-signals", "@vaadin/hilla-generator-core": "$@vaadin/hilla-generator-core", "@vaadin/hilla-generator-plugin-client": "$@vaadin/hilla-generator-plugin-client", "@vaadin/hilla-generator-utils": "$@vaadin/hilla-generator-utils", @@ -130,7 +133,6 @@ "@vaadin/hilla-generator-cli": "$@vaadin/hilla-generator-cli", "@vaadin/hilla-react-form": "$@vaadin/hilla-react-form", "@vaadin/hilla-react-crud": "$@vaadin/hilla-react-crud", - "react-router-dom": "$react-router-dom", "@vaadin/hilla-react-auth": "$@vaadin/hilla-react-auth", "@vaadin/hilla-frontend": "$@vaadin/hilla-frontend", "@vaadin/hilla-generator-plugin-subtypes": "$@vaadin/hilla-generator-plugin-subtypes", @@ -142,10 +144,10 @@ "@vaadin/bundles": "$@vaadin/bundles", "@vaadin/polymer-legacy-adapter": "$@vaadin/polymer-legacy-adapter", "@vaadin/vaadin-development-mode-detector": "$@vaadin/vaadin-development-mode-detector", - "@vaadin/router": "$@vaadin/router", "@vaadin/vaadin-usage-statistics": "$@vaadin/vaadin-usage-statistics", "@vaadin/react-components-pro": "$@vaadin/react-components-pro", "@vaadin/vaadin-themable-mixin": "$@vaadin/vaadin-themable-mixin", - "@vaadin/vaadin-lumo-styles": "$@vaadin/vaadin-lumo-styles" + "@vaadin/vaadin-lumo-styles": "$@vaadin/vaadin-lumo-styles", + "react-router": "$react-router" } } diff --git a/packages/java/tests/spring/react-grid-test/pom.xml b/packages/java/tests/spring/react-grid-test/pom.xml index ebbdf2f8d2..aa1b6a528a 100644 --- a/packages/java/tests/spring/react-grid-test/pom.xml +++ b/packages/java/tests/spring/react-grid-test/pom.xml @@ -6,7 +6,7 @@ com.vaadin tests-spring - 24.5-SNAPSHOT + 24.7-SNAPSHOT tests-react-grid ITs for React Auto Grid diff --git a/packages/java/tests/spring/react-grid-test/src/main/java/com/vaadin/hilla/test/reactgrid/AbstractEntity.java b/packages/java/tests/spring/react-grid-test/src/main/java/com/vaadin/hilla/test/reactgrid/AbstractEntity.java index 6fd3f55640..955cee14bb 100644 --- a/packages/java/tests/spring/react-grid-test/src/main/java/com/vaadin/hilla/test/reactgrid/AbstractEntity.java +++ b/packages/java/tests/spring/react-grid-test/src/main/java/com/vaadin/hilla/test/reactgrid/AbstractEntity.java @@ -6,17 +6,13 @@ import jakarta.persistence.MappedSuperclass; import jakarta.persistence.Version; -import com.vaadin.hilla.Nullable; - @MappedSuperclass public class AbstractEntity { @Id - @Nullable @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Version - @Nullable private Long version; public Long getId() { diff --git a/packages/java/tests/spring/react-grid-test/src/main/java/com/vaadin/hilla/test/reactgrid/Application.java b/packages/java/tests/spring/react-grid-test/src/main/java/com/vaadin/hilla/test/reactgrid/Application.java index 07389166e3..f8b693e6e7 100644 --- a/packages/java/tests/spring/react-grid-test/src/main/java/com/vaadin/hilla/test/reactgrid/Application.java +++ b/packages/java/tests/spring/react-grid-test/src/main/java/com/vaadin/hilla/test/reactgrid/Application.java @@ -1,7 +1,10 @@ package com.vaadin.hilla.test.reactgrid; +import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Primary; import com.vaadin.flow.component.page.AppShellConfigurator; import com.vaadin.flow.theme.Theme; @@ -13,4 +16,13 @@ public class Application implements AppShellConfigurator { public static void main(String[] args) { SpringApplication.run(Application.class, args); } + + @Bean + @Primary + ObjectMapper myObjectMapper() { + // This is only to test that you can have a custom object mapper without + // causing problems for Hilla + return new ObjectMapper(); + } + } diff --git a/packages/java/tests/spring/react-grid-test/src/main/java/com/vaadin/hilla/test/reactgrid/Person.java b/packages/java/tests/spring/react-grid-test/src/main/java/com/vaadin/hilla/test/reactgrid/Person.java index 5b939f7641..f884241e32 100644 --- a/packages/java/tests/spring/react-grid-test/src/main/java/com/vaadin/hilla/test/reactgrid/Person.java +++ b/packages/java/tests/spring/react-grid-test/src/main/java/com/vaadin/hilla/test/reactgrid/Person.java @@ -2,9 +2,8 @@ import jakarta.persistence.Entity; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.LocalTime; +import java.time.*; +import java.util.Date; @Entity public class Person extends AbstractEntity { @@ -21,6 +20,10 @@ public enum Gender { private LocalDate birthDate; private LocalTime shiftStart; private LocalDateTime appointmentTime; + private OffsetDateTime offsetDateTime; + private ZonedDateTime zonedDateTime; + private java.util.Date utilDate; + private java.sql.Date sqlDate; public String getFirstName() { return firstName; @@ -93,4 +96,36 @@ public LocalDateTime getAppointmentTime() { public void setAppointmentTime(LocalDateTime appointmentTime) { this.appointmentTime = appointmentTime; } + + public OffsetDateTime getOffsetDateTime() { + return offsetDateTime; + } + + public void setOffsetDateTime(OffsetDateTime offsetDateTime) { + this.offsetDateTime = offsetDateTime; + } + + public ZonedDateTime getZonedDateTime() { + return zonedDateTime; + } + + public void setZonedDateTime(ZonedDateTime zonedDateTime) { + this.zonedDateTime = zonedDateTime; + } + + public Date getUtilDate() { + return utilDate; + } + + public void setUtilDate(Date utilDate) { + this.utilDate = utilDate; + } + + public java.sql.Date getSqlDate() { + return sqlDate; + } + + public void setSqlDate(java.sql.Date sqlDate) { + this.sqlDate = sqlDate; + } } diff --git a/packages/java/tests/spring/react-grid-test/src/main/resources/data.sql b/packages/java/tests/spring/react-grid-test/src/main/resources/data.sql index 9873f20959..56159e043b 100644 --- a/packages/java/tests/spring/react-grid-test/src/main/resources/data.sql +++ b/packages/java/tests/spring/react-grid-test/src/main/resources/data.sql @@ -1,53 +1,53 @@ -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Alice', 'Johnson', 0, 123, 7.2, true, '1990-05-15', '09:30', '2023-09-27 08:53:17'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Bob', 'Davis', 1, 53, 9.4, true, '1985-08-21', '10:15', '2023-09-27 10:21:42'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Charlie', 'Martinez', 2, 45, 5.7, true, '1992-03-04', '11:00', '2023-09-27 11:45:09'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'David', 'Lopez', 0, 82, 8.3, true, '1988-11-12', '12:45', '2023-09-27 12:16:34'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Edward', 'Gonzalez', 1, 28, 2.1, true, '1995-07-09', '14:30', '2023-09-27 14:47:59'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Fiona', 'Williams', 2, 66, 6.8, false, '1998-02-18', '16:15', '2023-09-27 16:19:24'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'George', 'Lee', 0, 367, 3.9, true, '1997-09-25', '17:00', '2023-09-27 17:50:50'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Helen', 'Harris', 1, 455, 1.2, true, '1987-04-30', '09:45', '2023-09-27 09:22:15'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Ian', 'Clark', 2, 12334, 6.5, false, '1986-12-07', '10:30', '2023-09-27 10:53:40'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Jack', 'Lewis', 0, 53, 9.2, true, '1991-10-03', '11:15', '2023-09-27 11:25:05'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Kathy', 'Walker', 0, 93, 0.4, true, '1994-06-28', '12:00', '2023-09-27 12:56:31'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Laura', 'Hall', 0, 57, 7.8, true, '1993-01-14', '13:45', '2023-09-27 13:27:56'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Mark', 'Young', 0, 72, 8.7, true, '1999-08-08', '15:30', '2023-09-27 15:59:21'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Nina', 'Allen', 0, 45, 3.5, true, '1989-07-19', '17:15', '2023-09-27 17:30:46'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Oscar', 'Nelson', 0, 72, 7.0, true, '1996-12-25', '09:00', '2023-09-27 09:11:12'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Paul', 'Mitchell', 0, 29, 1.6, true, '1992-11-20', '10:45', '2023-09-27 10:42:37'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Quincy', 'Perez', 0, 6, 9.7, false, '1997-03-09', '11:30', '2023-09-27 11:14:02'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Rachel', 'Roberts', 0, 4, 3.2, true, '1988-09-02', '12:15', '2023-09-27 12:45:27'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Samuel', 'Turner', 0, 123, 1.9, true, '1994-10-29', '13:00', '2023-09-27 13:16:52'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Tina', 'Phillips', 0, 2, 8.4, true, '1990-02-15', '14:45', '2023-09-28 14:47:18'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Ulysses', 'Campbell', 0, 8, 8.17, true, '1990-05-15', '09:15', '2023-09-27 08:30:15'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Victor', 'Edwards', 0, 5, 3.72, true, '1985-09-28', '10:30', '2023-09-27 10:45:22'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Wendy', 'Green', 0, 9, 1.85, true, '1992-11-10', '11:45', '2023-09-27 12:20:59'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Xander', 'Hill', 0, 123, 7.62, true, '1980-03-22', '12:00', '2023-09-27 13:55:40'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Yasmine', 'Adams', 0, 123, 9.23, true, '1995-07-07', '13:15', '2023-09-27 15:10:17'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Zack', 'Baker', 0, 123, 4.91, true, '1987-12-18', '14:30', '2023-09-27 17:25:08'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Abigail', 'Carter', 0, 13, 6.38, true, '1999-04-30', '15:45', '2023-09-26 19:40:37'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Benjamin', 'Davis', 0, 44, 0.92, true, '1982-08-04', '16:00', '2023-09-27 21:55:49'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Catherine', 'Evans', 0, 123, 5.87, false, '1990-06-12', '17:15', '2023-09-27 01:05:23'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Dylan', 'Fisher', 0, 1, 2.14, true, '1983-02-25', '18:30', '2023-09-27 03:20:11'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Elaine', 'Garcia', 0, 123, 5.89, true, '1991-10-08', '19:45', '2023-09-27 05:35:28'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Frank', 'Hernandez', 0, 12, 7.26, true, '1986-06-14', '20:00', '2023-09-27 07:50:46'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Grace', 'Ingram', 0, 11, 1.55, true, '1993-09-20', '21:15', '2023-09-27 10:05:55'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Henry', 'Jackson', 0, 16, 8.04, true, '1984-01-01', '22:30', '2023-09-27 12:20:17'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Isabella', 'King', 0, 10, 6.57, true, '1988-07-03', '23:45', '2023-09-27 14:35:38'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Jason', 'Lopez', 0, 554, 7.71, true, '1997-12-15', '00:15', '2023-09-27 16:50:49'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Kaylee', 'Miller', 0, 3, 4.02, false, '1996-04-17', '01:30', '2023-09-27 19:05:33'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Leo', 'Nelson', 0, 13, 0.98, true, '1989-09-28', '02:45', '2023-09-27 21:20:19'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Morgan', 'Owens', 0, 7, 3.37, false, '1994-03-09', '03:00', '2023-09-27 23:35:07'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Nathan', 'Perez', 0, 53, 9.42, false, '1981-05-31', '04:15', '2023-09-27 02:50:56'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Oliver', 'Quinn', 0, 37, 3.2, true, '2000-03-15', '07:30', '2023-09-27 09:15:47'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Patricia', 'Roberts', 0, 17, 8.7, true, '1995-08-22', '09:15', '2023-09-27 14:30:12'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Quincy', 'Smith', 0, 123, 1.9, true, '1987-11-10', '10:00', '2023-09-27 11:45:23'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Rebecca', 'Taylor', 0, 123, 5.4, false, '1992-04-30', '14:45', '2023-09-27 16:20:58'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Steven', 'Underwood', 0, 123, 0.8, true, '1989-06-25', '15:30', '2023-09-27 10:10:37'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Thomas', 'Vance', 0, 25, 9.2, true, '2001-09-05', '11:20', '2023-09-27 13:55:21'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Uma', 'Washington', 0, 14, 6.3, true, '1998-07-18', '13:10', '2023-09-27 08:40:05'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Vivian', 'Xavier', 0, 19, 4.1, true, '1990-02-14', '16:55', '2023-09-27 12:25:42'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'William', 'Young', 0, 22, 7.6, true, '1993-12-03', '12:40', '2023-09-27 07:05:59'); -INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time) VALUES (1, 'Xander', 'Zane', 0, 18, 2.4, true, '1997-10-20', '08:00', '2023-09-27 15:50:33'); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Alice', 'Johnson', 0, 123, 7.2, true, '1990-05-15', '09:30', '2023-09-27 08:53:17', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Bob', 'Davis', 1, 53, 9.4, true, '1985-08-21', '10:15', '2023-09-27 10:21:42', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Charlie', 'Martinez', 2, 45, 5.7, true, '1992-03-04', '11:00', '2023-09-27 11:45:09', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'David', 'Lopez', 0, 82, 8.3, true, '1988-11-12', '12:45', '2023-09-27 12:16:34', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Edward', 'Gonzalez', 1, 28, 2.1, true, '1995-07-09', '14:30', '2023-09-27 14:47:59', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Fiona', 'Williams', 2, 66, 6.8, false, '1998-02-18', '16:15', '2023-09-27 16:19:24', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'George', 'Lee', 0, 367, 3.9, true, '1997-09-25', '17:00', '2023-09-27 17:50:50', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Helen', 'Harris', 1, 455, 1.2, true, '1987-04-30', '09:45', '2023-09-27 09:22:15', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Ian', 'Clark', 2, 12334, 6.5, false, '1986-12-07', '10:30', '2023-09-27 10:53:40', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Jack', 'Lewis', 0, 53, 9.2, true, '1991-10-03', '11:15', '2023-09-27 11:25:05', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Kathy', 'Walker', 0, 93, 0.4, true, '1994-06-28', '12:00', '2023-09-27 12:56:31', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Laura', 'Hall', 0, 57, 7.8, true, '1993-01-14', '13:45', '2023-09-27 13:27:56', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Mark', 'Young', 0, 72, 8.7, true, '1999-08-08', '15:30', '2023-09-27 15:59:21', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Nina', 'Allen', 0, 45, 3.5, true, '1989-07-19', '17:15', '2023-09-27 17:30:46', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Oscar', 'Nelson', 0, 72, 7.0, true, '1996-12-25', '09:00', '2023-09-27 09:11:12', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Paul', 'Mitchell', 0, 29, 1.6, true, '1992-11-20', '10:45', '2023-09-27 10:42:37', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Quincy', 'Perez', 0, 6, 9.7, false, '1997-03-09', '11:30', '2023-09-27 11:14:02', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Rachel', 'Roberts', 0, 4, 3.2, true, '1988-09-02', '12:15', '2023-09-27 12:45:27', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Samuel', 'Turner', 0, 123, 1.9, true, '1994-10-29', '13:00', '2023-09-27 13:16:52', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Tina', 'Phillips', 0, 2, 8.4, true, '1990-02-15', '14:45', '2023-09-28 14:47:18', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Ulysses', 'Campbell', 0, 8, 8.17, true, '1990-05-15', '09:15', '2023-09-27 08:30:15', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Victor', 'Edwards', 0, 5, 3.72, true, '1985-09-28', '10:30', '2023-09-27 10:45:22', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Wendy', 'Green', 0, 9, 1.85, true, '1992-11-10', '11:45', '2023-09-27 12:20:59', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Xander', 'Hill', 0, 123, 7.62, true, '1980-03-22', '12:00', '2023-09-27 13:55:40', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Yasmine', 'Adams', 0, 123, 9.23, true, '1995-07-07', '13:15', '2023-09-27 15:10:17', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Zack', 'Baker', 0, 123, 4.91, true, '1987-12-18', '14:30', '2023-09-27 17:25:08', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Abigail', 'Carter', 0, 13, 6.38, true, '1999-04-30', '15:45', '2023-09-26 19:40:37', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Benjamin', 'Davis', 0, 44, 0.92, true, '1982-08-04', '16:00', '2023-09-27 21:55:49', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Catherine', 'Evans', 0, 123, 5.87, false, '1990-06-12', '17:15', '2023-09-27 01:05:23', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Dylan', 'Fisher', 0, 1, 2.14, true, '1983-02-25', '18:30', '2023-09-27 03:20:11', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Elaine', 'Garcia', 0, 123, 5.89, true, '1991-10-08', '19:45', '2023-09-27 05:35:28', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Frank', 'Hernandez', 0, 12, 7.26, true, '1986-06-14', '20:00', '2023-09-27 07:50:46', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Grace', 'Ingram', 0, 11, 1.55, true, '1993-09-20', '21:15', '2023-09-27 10:05:55', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Henry', 'Jackson', 0, 16, 8.04, true, '1984-01-01', '22:30', '2023-09-27 12:20:17', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Isabella', 'King', 0, 10, 6.57, true, '1988-07-03', '23:45', '2023-09-27 14:35:38', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Jason', 'Lopez', 0, 554, 7.71, true, '1997-12-15', '00:15', '2023-09-27 16:50:49', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Kaylee', 'Miller', 0, 3, 4.02, false, '1996-04-17', '01:30', '2023-09-27 19:05:33', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Leo', 'Nelson', 0, 13, 0.98, true, '1989-09-28', '02:45', '2023-09-27 21:20:19', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Morgan', 'Owens', 0, 7, 3.37, false, '1994-03-09', '03:00', '2023-09-27 23:35:07', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Nathan', 'Perez', 0, 53, 9.42, false, '1981-05-31', '04:15', '2023-09-27 02:50:56', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Oliver', 'Quinn', 0, 37, 3.2, true, '2000-03-15', '07:30', '2023-09-27 09:15:47', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Patricia', 'Roberts', 0, 17, 8.7, true, '1995-08-22', '09:15', '2023-09-27 14:30:12', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Quincy', 'Smith', 0, 123, 1.9, true, '1987-11-10', '10:00', '2023-09-27 11:45:23', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Rebecca', 'Taylor', 0, 123, 5.4, false, '1992-04-30', '14:45', '2023-09-27 16:20:58', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Steven', 'Underwood', 0, 123, 0.8, true, '1989-06-25', '15:30', '2023-09-27 10:10:37', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Thomas', 'Vance', 0, 25, 9.2, true, '2001-09-05', '11:20', '2023-09-27 13:55:21', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Uma', 'Washington', 0, 14, 6.3, true, '1998-07-18', '13:10', '2023-09-27 08:40:05', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Vivian', 'Xavier', 0, 19, 4.1, true, '1990-02-14', '16:55', '2023-09-27 12:25:42', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'William', 'Young', 0, 22, 7.6, true, '1993-12-03', '12:40', '2023-09-27 07:05:59', current_date, current_date, current_date, current_date ); +INSERT INTO person (version, first_name, last_name, gender, lucky_number, average_grade, email_verified, birth_date, shift_start, appointment_time, offset_date_time, zoned_date_time, util_date, sql_date) VALUES (1, 'Xander', 'Zane', 0, 18, 2.4, true, '1997-10-20', '08:00', '2023-09-27 15:50:33', current_date, current_date, current_date, current_date ); INSERT INTO company (version, name) VALUES (1, 'Vaadin'); INSERT INTO company (version, name) VALUES (1, 'Google'); diff --git a/packages/java/tests/spring/react-i18n/frontend/App.tsx b/packages/java/tests/spring/react-i18n/frontend/App.tsx index 9139ea4450..b84dcf6ea7 100644 --- a/packages/java/tests/spring/react-i18n/frontend/App.tsx +++ b/packages/java/tests/spring/react-i18n/frontend/App.tsx @@ -1,8 +1,5 @@ import router from 'Frontend/routes.js'; -import { RouterProvider } from 'react-router-dom'; -import { i18n } from "@vaadin/hilla-react-i18n"; - -await i18n.configure(); +import { RouterProvider } from 'react-router'; export default function App() { return ; diff --git a/packages/java/tests/spring/react-i18n/frontend/MainLayout.tsx b/packages/java/tests/spring/react-i18n/frontend/MainLayout.tsx index 779dbd23bb..91a331da81 100644 --- a/packages/java/tests/spring/react-i18n/frontend/MainLayout.tsx +++ b/packages/java/tests/spring/react-i18n/frontend/MainLayout.tsx @@ -2,7 +2,7 @@ import { AppLayout } from '@vaadin/react-components/AppLayout.js'; import { DrawerToggle } from '@vaadin/react-components/DrawerToggle.js'; import { Scroller } from '@vaadin/react-components/Scroller.js'; import { routes } from 'Frontend/routes.js'; -import { NavLink, Outlet } from 'react-router-dom'; +import { NavLink, Outlet } from 'react-router'; export default function MainLayout() { const menuRoutes = routes[0]!.children; diff --git a/packages/java/tests/spring/react-i18n/frontend/index.ts b/packages/java/tests/spring/react-i18n/frontend/index.ts index 55b38844c1..72c9675449 100644 --- a/packages/java/tests/spring/react-i18n/frontend/index.ts +++ b/packages/java/tests/spring/react-i18n/frontend/index.ts @@ -1,5 +1,7 @@ import { createElement } from 'react'; import { createRoot } from 'react-dom/client'; import App from './App.js'; +import {i18n} from "@vaadin/hilla-react-i18n"; -createRoot(document.getElementById('outlet')!).render(createElement(App)); +i18n.configure().then(() => + createRoot(document.getElementById('outlet')!).render(createElement(App))); diff --git a/packages/java/tests/spring/react-i18n/frontend/routes.tsx b/packages/java/tests/spring/react-i18n/frontend/routes.tsx index 6e3ff2e25c..79d9fc95d7 100644 --- a/packages/java/tests/spring/react-i18n/frontend/routes.tsx +++ b/packages/java/tests/spring/react-i18n/frontend/routes.tsx @@ -1,4 +1,4 @@ -import { createBrowserRouter } from 'react-router-dom'; +import { createBrowserRouter } from 'react-router'; import MainLayout from './MainLayout.js'; import BasicI18NView from './_views/BasicI18NView'; export const routes = [ diff --git a/packages/java/tests/spring/react-i18n/package-lock.json b/packages/java/tests/spring/react-i18n/package-lock.json index d44dc2dfd3..c13a1379cd 100644 --- a/packages/java/tests/spring/react-i18n/package-lock.json +++ b/packages/java/tests/spring/react-i18n/package-lock.json @@ -1,14 +1,13 @@ { - "name": "no-name", + "name": "react-i18n", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "no-name", "license": "UNLICENSED", "dependencies": { - "@polymer/polymer": "3.5.1", - "@vaadin/bundles": "24.5.0-alpha3", + "@polymer/polymer": "3.5.2", + "@vaadin/bundles": "24.7.0-alpha4", "@vaadin/common-frontend": "0.0.19", "@vaadin/hilla-file-router": "file:../../../../ts/file-router", "@vaadin/hilla-frontend": "file:../../../../ts/frontend", @@ -18,26 +17,26 @@ "@vaadin/hilla-react-form": "file:../../../../ts/react-form", "@vaadin/hilla-react-i18n": "file:../../../../ts/react-i18n", "@vaadin/hilla-react-signals": "file:../../../../ts/react-signals", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/react-components": "24.5.0-alpha3", - "@vaadin/react-components-pro": "24.5.0-alpha3", - "@vaadin/router": "1.7.5", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/react-components": "24.7.0-alpha4", + "@vaadin/react-components-pro": "24.7.0-alpha4", "@vaadin/vaadin-development-mode-detector": "2.0.7", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "@vaadin/vaadin-usage-statistics": "2.1.2", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "@vaadin/vaadin-usage-statistics": "2.1.3", "construct-style-sheets-polyfill": "3.1.0", - "lit": "3.1.4", + "lit": "3.2.1", "react": "18.3.1", "react-dom": "18.3.1", - "react-router-dom": "6.23.1" + "react-router": "7.1.1" }, "devDependencies": { - "@babel/preset-react": "7.24.7", - "@rollup/plugin-replace": "5.0.7", - "@rollup/pluginutils": "5.1.0", - "@types/react": "18.3.3", - "@types/react-dom": "18.3.0", + "@babel/preset-react": "7.26.3", + "@preact/signals-react-transform": "0.5.1", + "@rollup/plugin-replace": "6.0.2", + "@rollup/pluginutils": "5.1.4", + "@types/react": "18.3.18", + "@types/react-dom": "18.3.5", "@vaadin/hilla-generator-cli": "file:../../../../ts/generator-cli", "@vaadin/hilla-generator-core": "file:../../../../ts/generator-core", "@vaadin/hilla-generator-plugin-backbone": "file:../../../../ts/generator-plugin-backbone", @@ -45,26 +44,27 @@ "@vaadin/hilla-generator-plugin-client": "file:../../../../ts/generator-plugin-client", "@vaadin/hilla-generator-plugin-model": "file:../../../../ts/generator-plugin-model", "@vaadin/hilla-generator-plugin-push": "file:../../../../ts/generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "file:../../../../ts/generator-plugin-signals", "@vaadin/hilla-generator-plugin-subtypes": "file:../../../../ts/generator-plugin-subtypes", "@vaadin/hilla-generator-utils": "file:../../../../ts/generator-utils", - "@vitejs/plugin-react": "4.3.1", - "async": "3.2.5", - "glob": "10.4.1", + "@vitejs/plugin-react": "4.3.4", + "async": "3.2.6", + "glob": "11.0.0", "rollup-plugin-brotli": "3.1.0", - "rollup-plugin-visualizer": "5.12.0", + "rollup-plugin-visualizer": "5.13.1", "strip-css-comments": "5.0.0", "transform-ast": "2.4.4", - "typescript": "5.4.5", - "vite": "5.3.1", - "vite-plugin-checker": "0.6.4", - "workbox-build": "7.1.1", - "workbox-core": "7.1.0", - "workbox-precaching": "7.1.0" + "typescript": "5.7.3", + "vite": "6.0.6", + "vite-plugin-checker": "0.8.0", + "workbox-build": "7.3.0", + "workbox-core": "7.3.0", + "workbox-precaching": "7.3.0" } }, "../../../../ts/core": { "name": "@vaadin/hilla-core", - "version": "24.4.0-alpha3", + "version": "24.7.0-alpha0", "extraneous": true, "license": "Apache-2.0", "dependencies": { @@ -96,41 +96,46 @@ }, "../../../../ts/file-router": { "name": "@vaadin/hilla-file-router", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "@vaadin/hilla-react-auth": "24.5.0-alpha2", + "@types/chai": "^5.0.1", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vaadin/hilla-react-auth": "24.7.0-alpha5", + "@vaadin/hilla-react-signals": "24.7.0-alpha5", + "c8": "^10.1.3", "react": "^18.2.0", - "rollup": "^4.12.0", - "typescript": "5.3.2" + "rollup": "^4.21.0", + "typescript": "5.7.2" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", "@types/chai-as-promised": "^7.1.8", - "@types/chai-fs": "^2.0.4", + "@types/chai-fs": "^2.0.5", "@types/chai-like": "^1.1.3", - "@types/deep-equal-in-any-order": "^1.0.3", - "@types/mocha": "^10.0.6", - "@types/sinon": "^10.0.17", + "@types/deep-equal-in-any-order": "^1.0.4", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", "@types/sinon-chai": "^3.2.12", - "chai-as-promised": "^7.1.1", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-deep-equal-ignore-undefined": "^1.1.1", "chai-fs": "^2.0.0", - "chai-like": "^1.1.1", + "chai-like": "^1.1.3", "deep-equal-in-any-order": "^2.0.6", - "mocha": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.9.0" + "type-fest": "^4.30.2" }, "peerDependencies": { - "react": "^18.2.0", - "react-router-dom": "^6.21.1" + "react": "18 || 19", + "react-dom": "18 || 19", + "react-router": "^7" } }, "../../../../ts/frontend": { "name": "@vaadin/hilla-frontend", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { "@vaadin/common-frontend": "^0.0.19", @@ -138,22 +143,22 @@ "js-cookie": "^3.0.5" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@open-wc/testing": "^3.2.0", - "@types/atmosphere.js": "^2.1.4", - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/js-cookie": "^3.0.4", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", + "@open-wc/testing": "^3.2.2", + "@types/atmosphere.js": "^2.1.6", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/js-cookie": "^3.0.6", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", "fetch-mock": "^9.11.0", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { "lit": "^3.0.0" @@ -161,69 +166,69 @@ }, "../../../../ts/generator-cli": { "name": "@vaadin/hilla-generator-cli", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "get-stdin": "^9.0.0", - "meow": "^12.1.1" + "meow": "^13.2.0" }, "bin": { "tsgen": "bin/index.js" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "chai-as-promised": "^7.1.1", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-as-promised": "^7.1.2", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2" } }, "../../../../ts/generator-core": { "name": "@vaadin/hilla-generator-core", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { "@apidevtools/swagger-parser": "^10.1.0", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "meow": "^12.1.1", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "meow": "^13.2.0", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" @@ -231,247 +236,281 @@ }, "../../../../ts/generator-plugin-backbone": { "name": "@vaadin/hilla-generator-plugin-backbone", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2" } }, "../../../../ts/generator-plugin-barrel": { "name": "@vaadin/hilla-generator-plugin-barrel", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "typescript": "5.3.2" + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2" } }, "../../../../ts/generator-plugin-client": { "name": "@vaadin/hilla-generator-plugin-client", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "typescript": "5.3.2" + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2" } }, "../../../../ts/generator-plugin-model": { "name": "@vaadin/hilla-generator-plugin-model", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "@vaadin/hilla-lit-form": "24.5.0-alpha2" } }, "../../../../ts/generator-plugin-push": { "name": "@vaadin/hilla-generator-plugin-push", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" + } + }, + "../../../../ts/generator-plugin-signals": { + "name": "@vaadin/hilla-generator-plugin-signals", + "version": "24.7.0-alpha5", + "dev": true, + "license": "Apache 2.0", + "dependencies": { + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "fast-deep-equal": "^3.1.3", + "iterator-helpers-polyfill": "^3.0.1", + "openapi-types": "^12.1.3", + "typescript": "5.7.2" }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2" + "devDependencies": { + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", + "copyfiles": "^2.4.1", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "type-fest": "^4.30.2" + }, + "engines": { + "node": ">= 16.13" } }, "../../../../ts/generator-plugin-subtypes": { "name": "@vaadin/hilla-generator-plugin-subtypes", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "c8": "^10.1.3", + "chai": "^4.5.0", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "pino": "^8.15.1", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "pino": "^9.5.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2" } }, "../../../../ts/generator-utils": { "name": "@vaadin/hilla-generator-utils", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "dev": true, "license": "Apache 2.0", "dependencies": { - "pino": "^8.15.1", - "pino-pretty": "^10.2.0", - "typescript": "5.3.2" + "pino": "^9.5.0", + "pino-pretty": "^10.3.1", + "typescript": "5.7.2" }, "devDependencies": { - "@types/chai": "^4.3.6", - "@types/mocha": "^10.0.2", - "@types/node": "^20.7.1", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "c8": "^8.0.1", - "chai": "^4.3.10", - "concurrently": "^8.2.1", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "@types/node": "^20.17.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "c8": "^10.1.3", + "chai": "^4.5.0", + "chai-like": "^1.1.3", + "concurrently": "^9.1.0", "copyfiles": "^2.4.1", - "mocha": "^10.2.0", - "sinon": "^16.0.0", + "mocha": "^11.0.1", + "monocart-coverage-reports": "^2.11.5", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "type-fest": "^4.3.2" + "type-fest": "^4.30.2" }, "engines": { "node": ">= 16.13" @@ -479,24 +518,24 @@ }, "../../../../ts/lit-form": { "name": "@vaadin/hilla-lit-form", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "validator": "^13.11.0" + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "validator": "^13.12.0" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@types/chai": "^4.3.6", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-dom": "^1.11.0", - "sinon": "^16.0.0", + "@types/chai": "^4.3.20", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-dom": "^1.12.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { "lit": "^3.0.0" @@ -504,146 +543,175 @@ }, "../../../../ts/react-auth": { "name": "@vaadin/hilla-react-auth", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.5.0-alpha2" + "@vaadin/hilla-frontend": "24.7.0-alpha5" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@testing-library/react": "^14.0.0", - "@testing-library/user-event": "^14.5.1", - "@types/chai": "^4.3.6", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/react": "^18.2.23", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-dom": "^1.11.0", - "react-router-dom": "^6.16.0", - "sinon": "^16.0.0", + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.1.0", + "@testing-library/user-event": "^14.5.2", + "@types/chai": "^4.3.20", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/react": "^18.3.18", + "@types/react-dom": "^18", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "@web/test-runner": "^0.19.0", + "chai": "^5.1.2", + "chai-dom": "^1.12.0", + "react-router": "^7.0.2", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { - "react": "^18", - "react-router-dom": "^6" + "react": "18 || 19", + "react-dom": "18 || 19", + "react-router": "^7" } }, "../../../../ts/react-crud": { "name": "@vaadin/hilla-react-crud", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "@vaadin/hilla-lit-form": "24.5.0-alpha2", - "@vaadin/hilla-react-form": "24.5.0-alpha2", - "@vaadin/react-components": "24.5.0-alpha3" + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", + "@vaadin/hilla-react-form": "24.7.0-alpha5", + "@vaadin/react-components": "24.7.0-alpha4" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@testing-library/react": "^14.0.0", - "@testing-library/user-event": "^14.5.1", - "@types/chai": "^4.3.6", - "@types/chai-as-promised": "^7.1.6", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/react": "^18.2.23", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.1.0", + "@testing-library/user-event": "^14.5.2", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/react": "^18.3.18", + "@types/react-dom": "^18", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", "karma-viewport": "^1.0.9", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { - "react": "^18", - "react-dom": "^18" + "react": "18 || 19", + "react-dom": "18 || 19" } }, "../../../../ts/react-form": { "name": "@vaadin/hilla-react-form", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-lit-form": "24.5.0-alpha2" + "@vaadin/hilla-lit-form": "24.7.0-alpha5" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@testing-library/react": "^14.0.0", - "@testing-library/user-event": "^14.5.1", - "@types/chai": "^4.3.6", + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.1.0", + "@testing-library/user-event": "^14.5.2", + "@types/chai": "^4.3.20", "@types/chai-as-promised": "^7.1.8", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/react": "^18.2.23", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", - "sinon": "^16.0.0", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/react": "^18.3.18", + "@types/react-dom": "^18", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { - "react": "^18" + "react": "18 || 19", + "react-dom": "18 || 19" } }, "../../../../ts/react-i18n": { "name": "@vaadin/hilla-react-i18n", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "@vaadin/hilla-react-signals": "24.5.0-alpha2", - "intl-messageformat": "^10.5.11" + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "@vaadin/hilla-react-signals": "24.7.0-alpha5", + "intl-messageformat": "^10.7.10" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@testing-library/react": "^14.0.0", - "@testing-library/user-event": "^14.5.1", - "@types/chai": "^4.3.6", + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.1.0", + "@testing-library/user-event": "^14.5.2", + "@types/chai": "^4.3.20", "@types/chai-as-promised": "^7.1.8", - "@types/chai-dom": "^1.11.1", - "@types/mocha": "^10.0.2", - "@types/react": "^18.2.23", - "@types/sinon": "^10.0.17", - "@types/sinon-chai": "^3.2.10", - "@types/validator": "^13.11.2", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.11.0", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/react": "^18.3.18", + "@types/react-dom": "^18", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", "fetch-mock": "^9.11.0", - "sinon": "^16.0.0", + "sinon": "^16.1.3", "sinon-chai": "^3.7.0", - "typescript": "5.3.2" + "typescript": "5.7.2" }, "peerDependencies": { - "react": "^18" + "react": "18 || 19", + "react-dom": "18 || 19" } }, "../../../../ts/react-signals": { "name": "@vaadin/hilla-react-signals", - "version": "24.5.0-alpha2", + "version": "24.7.0-alpha5", "license": "Apache-2.0", "dependencies": { - "@preact/signals-react": "^2.0.0" + "@preact/signals-react": "^3.0.0", + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "nanoid": "^5.0.9" }, "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@types/react": "^18.2.23", - "@types/sinon": "^10.0.17", - "@types/validator": "^13.11.2", - "react-router-dom": "^6.16.0", - "typescript": "5.3.2" + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.1.0", + "@testing-library/user-event": "^14.5.2", + "@types/chai": "^4.3.20", + "@types/chai-as-promised": "^7.1.8", + "@types/chai-dom": "^1.11.3", + "@types/mocha": "^10.0.10", + "@types/react": "^18.3.18", + "@types/react-dom": "^18", + "@types/sinon": "^10.0.20", + "@types/sinon-chai": "^3.2.12", + "@types/validator": "^13.12.2", + "chai": "^5.1.2", + "chai-as-promised": "^7.1.2", + "chai-dom": "^1.12.0", + "chai-like": "^1.1.3", + "karma": "^6.4.4", + "karma-viewport": "^1.0.9", + "sinon": "^16.1.3", + "sinon-chai": "^3.7.0", + "typescript": "5.7.2" }, "peerDependencies": { - "react": "^18", - "react-router-dom": "^6" + "react": "18 || 19", + "react-dom": "18 || 19" } }, "node_modules/@ampproject/remapping": { @@ -677,12 +745,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -690,30 +759,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", - "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz", - "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.6", - "@babel/generator": "^7.24.6", - "@babel/helper-compilation-targets": "^7.24.6", - "@babel/helper-module-transforms": "^7.24.6", - "@babel/helpers": "^7.24.6", - "@babel/parser": "^7.24.6", - "@babel/template": "^7.24.6", - "@babel/traverse": "^7.24.6", - "@babel/types": "^7.24.6", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -729,27 +798,28 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "dev": true, "dependencies": { - "@babel/types": "^7.24.7", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -768,14 +838,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", - "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.24.6", - "@babel/helper-validator-option": "^7.24.6", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -889,29 +959,27 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", - "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-module-imports": "^7.24.6", - "@babel/helper-simple-access": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -933,9 +1001,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -976,12 +1044,13 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", - "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", "dev": true, "dependencies": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1012,27 +1081,27 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -1053,38 +1122,26 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.6.tgz", - "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "dependencies": { - "@babel/template": "^7.24.6", - "@babel/types": "^7.24.6" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/types": "^7.26.0" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -1270,12 +1327,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2005,12 +2062,12 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", - "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2020,16 +2077,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz", - "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2039,12 +2096,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", - "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", "dev": true, "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.24.7" + "@babel/plugin-transform-react-jsx": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2054,12 +2111,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.6.tgz", - "integrity": "sha512-FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2069,12 +2126,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.6.tgz", - "integrity": "sha512-BQTBCXmFRreU3oTUXcGKuPOfXAGb1liNY4AvvFKsOBAJ89RKcTsIrSsnMYkj59fNa66OFKnSa4AJZfy5Y4B9WA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2084,13 +2141,13 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", - "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2378,17 +2435,17 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", - "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", + "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-transform-react-display-name": "^7.24.7", - "@babel/plugin-transform-react-jsx": "^7.24.7", - "@babel/plugin-transform-react-jsx-development": "^7.24.7", - "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-react-display-name": "^7.25.9", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/plugin-transform-react-jsx-development": "^7.25.9", + "@babel/plugin-transform-react-pure-annotations": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2416,33 +2473,30 @@ } }, "node_modules/@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2451,385 +2505,441 @@ } }, "node_modules/@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "cpu": [ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@isaacs/cliui": { @@ -2837,6 +2947,7 @@ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2908,14 +3019,15 @@ } }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", - "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", + "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==" }, "node_modules/@lit/react": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@lit/react/-/react-1.0.3.tgz", - "integrity": "sha512-RGoPMrAPbFjQFXFbfmYdotw000DyChehTim+d562HRXvFGw//KxouI8jNOcc3Kw/1uqUA1SJqXFtKKxK0NUrww==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@lit/react/-/react-1.0.6.tgz", + "integrity": "sha512-QIss8MPh6qUoFJmuaF4dSHts3qCsA36S3HcOLiNPShxhgYPr4XJRnCBKPipk85sR9xr6TQrOcDMfexwbNdJHYA==", + "license": "BSD-3-Clause", "peerDependencies": { "@types/react": "17 || 18" } @@ -3003,39 +3115,72 @@ } }, "node_modules/@open-wc/dedupe-mixin": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.3.1.tgz", - "integrity": "sha512-ukowSvzpZQDUH0Y3znJTsY88HkiGk3Khc0WGpIPhap1xlerieYi27QBg6wx/nTurpWfU6XXXsx9ocxDYCdtw0Q==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", + "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==" }, "node_modules/@petamoriken/float16": { - "version": "3.8.6", - "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.8.6.tgz", - "integrity": "sha512-GNJhABTtcmt9al/nqdJPycwFD46ww2+q2zwZzTjY0dFFwUAFRw9zszvEr9osyJRd9krRGy6hUDopWUg9fX7VVw==" + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.9.0.tgz", + "integrity": "sha512-rYUZ+VFjPHD0NT2JYKj64NxXxrV642IiyaUxxorTEj0S3hT7B5Ixezyc9Fn+XvSk0ETEBp5VWjGIErzh0ug0Xw==" }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "node_modules/@polymer/polymer": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.2.tgz", + "integrity": "sha512-fWwImY/UH4bb2534DVSaX+Azs2yKg8slkMBHOyGeU2kKx7Xmxp6Lee0jP8p6B3d7c1gFUPB2Z976dTUtX81pQA==", + "dependencies": { + "@webcomponents/shadycss": "^1.9.1" + } + }, + "node_modules/@preact/signals-core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.8.0.tgz", + "integrity": "sha512-OBvUsRZqNmjzCZXWLxkZfhcgT+Fk8DDcT/8vD6a1xhDemodyy87UJRJfASMuSD8FaAIeGgGm85ydXhm7lr4fyA==", "dev": true, - "optional": true, - "engines": { - "node": ">=14" + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" } }, - "node_modules/@polymer/polymer": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.1.tgz", - "integrity": "sha512-JlAHuy+1qIC6hL1ojEUfIVD58fzTpJAoCxFwV5yr0mYTXV1H8bz5zy0+rC963Cgr9iNXQ4T9ncSjC2fkF9BQfw==", + "node_modules/@preact/signals-react": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@preact/signals-react/-/signals-react-3.0.0.tgz", + "integrity": "sha512-lCG3HIH5NlpQscVKQ5b+hgmRKorra/BcjMdEloMoa+/eLYmve06j3tFetN+nedDSpIHtSb3FFX0y3wUg/Nuxyw==", + "dev": true, + "license": "MIT", "dependencies": { - "@webcomponents/shadycss": "^1.9.1" + "@preact/signals-core": "^1.7.0", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + }, + "peerDependencies": { + "react": "^16.14.0 || 17.x || 18.x || 19.x" } }, - "node_modules/@remix-run/router": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.16.1.tgz", - "integrity": "sha512-es2g3dq6Nb07iFxGk5GuHN20RwBZOsuDQN7izWIisUcv9r+d2C5jQxqmgkdebXgReWfiyUabcki6Fg77mSNrig==", - "engines": { - "node": ">=14.0.0" + "node_modules/@preact/signals-react-transform": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@preact/signals-react-transform/-/signals-react-transform-0.5.1.tgz", + "integrity": "sha512-/w1rgu7i/qDk8dhDj+6AVVVJ+b1W11YkP3vfPPPyrn1tDCPb8orYwETa3JCvYxMtJBHbvIYEjhXvZ8Ab2cWC8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@preact/signals-react": "^3.0.0", + "debug": "^4.3.4", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "react": "^16.14.0 || 17.x || 18.x || 19.x" } }, "node_modules/@rollup/plugin-node-resolve": { @@ -3064,10 +3209,11 @@ } }, "node_modules/@rollup/plugin-replace": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz", - "integrity": "sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.2.tgz", + "integrity": "sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "magic-string": "^0.30.3" @@ -3107,14 +3253,15 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "picomatch": "^4.0.2" }, "engines": { "node": ">=14.0.0" @@ -3128,10 +3275,22 @@ } } }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz", + "integrity": "sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==", "cpu": [ "arm" ], @@ -3142,9 +3301,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.0.tgz", + "integrity": "sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==", "cpu": [ "arm64" ], @@ -3155,9 +3314,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz", + "integrity": "sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==", "cpu": [ "arm64" ], @@ -3168,9 +3327,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.0.tgz", + "integrity": "sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==", "cpu": [ "x64" ], @@ -3180,10 +3339,49 @@ "darwin" ] }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.0.tgz", + "integrity": "sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.0.tgz", + "integrity": "sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.0.tgz", + "integrity": "sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.0.tgz", + "integrity": "sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==", "cpu": [ "arm" ], @@ -3194,9 +3392,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.0.tgz", + "integrity": "sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==", "cpu": [ "arm64" ], @@ -3207,9 +3405,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.0.tgz", + "integrity": "sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==", "cpu": [ "arm64" ], @@ -3219,10 +3417,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.0.tgz", + "integrity": "sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.0.tgz", + "integrity": "sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==", "cpu": [ "riscv64" ], @@ -3232,10 +3443,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.0.tgz", + "integrity": "sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.0.tgz", + "integrity": "sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==", "cpu": [ "x64" ], @@ -3246,9 +3470,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.0.tgz", + "integrity": "sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==", "cpu": [ "x64" ], @@ -3259,9 +3483,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.0.tgz", + "integrity": "sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==", "cpu": [ "arm64" ], @@ -3272,9 +3496,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.0.tgz", + "integrity": "sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==", "cpu": [ "ia32" ], @@ -3285,9 +3509,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.0.tgz", + "integrity": "sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==", "cpu": [ "x64" ], @@ -3359,10 +3583,15 @@ "@babel/types": "^7.20.7" } }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" + }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, "node_modules/@types/node": { @@ -3382,21 +3611,23 @@ "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" }, "node_modules/@types/react": { - "version": "18.3.3", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", - "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", + "license": "MIT", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", - "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "version": "18.3.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", + "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", "devOptional": true, - "dependencies": { - "@types/react": "*" + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" } }, "node_modules/@types/resolve": { @@ -3411,168 +3642,179 @@ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" }, "node_modules/@vaadin/a11y-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.5.0-alpha3.tgz", - "integrity": "sha512-hJN/e1FbzwkT6b3QEma04UHX0B8q8KlwGmIfnJG19FPb/UynuzSoaZguMljT/YvpiBgBFZT+Fem6WliprwU3wg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.7.0-alpha4.tgz", + "integrity": "sha512-s1sdmb5rX8i6bxCPl6AyzV+6n32ym0u1bMcJwrhYoXm9qK0wnNz0hsTt9r9wNuZRjxpbGmuRd2rpLh6twAbuDA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/accordion": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/accordion/-/accordion-24.5.0-alpha3.tgz", - "integrity": "sha512-DvHt1w1D4fUl0eqWiN7ZS7QHbEkUdcELS2nDnwncfwQicdaJfJjJ3jCXFPa1EW8JQ1pmdn7m4yy2gD0inrXj5g==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/accordion/-/accordion-24.7.0-alpha4.tgz", + "integrity": "sha512-edxsM7v4NLocZvblZEWiQmUrRW4yfTYgZrqRNV0QKUQTEMX+e1XfeLD+kZBWjxD6ASipDPLW98GlRWfrGFZj7Q==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/details": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/details": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/app-layout": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/app-layout/-/app-layout-24.5.0-alpha3.tgz", - "integrity": "sha512-nwriF6k6DTT7A/OeQ6C92N0d2D+QNwOWal+N3hUf1lMsoNrNvyEKsRAi6VinBwQh+Sfndjdi0yUGu2zog0KJ1w==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/app-layout/-/app-layout-24.7.0-alpha4.tgz", + "integrity": "sha512-TrDZSFWImNp0U2LF9JBBzaQZ08lCp9spTZ/2maDPWxXlaDXb8H/UVOii6PloAy4EE5ImijHArW7TLCdRr8U2Gg==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/avatar": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-24.5.0-alpha3.tgz", - "integrity": "sha512-DbOx+QHqcx8kixN4HnVB8f1SNSXGU93u6MKKMKHrj4ErLypyJ0TrsvtzOhyJWehEnFl/LrhmKdQ5PVvgAwMGqA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-24.7.0-alpha4.tgz", + "integrity": "sha512-z+DhMZCdMgNJJP0c6eKpFXW6nK0u+kG0purw75YIwyb85BAV2TOrMFY8FmoARL5WKMXw2OpAi5+jvX4UUYHgVA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/avatar-group": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/avatar-group/-/avatar-group-24.5.0-alpha3.tgz", - "integrity": "sha512-+dVJn509EfIimYf9r1vb+tZ64/sJcgD2pFf7ssB0pMOAI/La1IGJbM8K8SeQGPviH/rFoFafJ17ZkR6xeAJA+Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/avatar-group/-/avatar-group-24.7.0-alpha4.tgz", + "integrity": "sha512-DlOElt7nsS9I2CuxGn9WtEg6ZWkcWdRo7sW8LKz4jmUNVUCwDXW5A73dDGTxI/gnY5Dbq8QnYRQauV2r1PrOCw==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/avatar": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/list-box": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/avatar": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/list-box": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/board": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/board/-/board-24.5.0-alpha3.tgz", - "integrity": "sha512-mbKw0XpnIvmpIde+AOEKYIVtX5PawRJ1IKFwpS8Hwr6d7Df34IHuOM8D+UCscNuDkZLhcjVSkn87y07gp4GRNQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/board/-/board-24.7.0-alpha4.tgz", + "integrity": "sha512-AzmAu1kJMqtNzTZ44imFxkPthOFKtfptp7/P4/don5c/jfOwj2UHPgo8TDIXY5SAWWzlClXf21sy6lJExjsXyg==", + "license": "SEE LICENSE IN LICENSE", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4" } }, "node_modules/@vaadin/bundles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/bundles/-/bundles-24.5.0-alpha3.tgz", - "integrity": "sha512-uTTz1HioSAlibL1f6hKTEebzV4pswiVQXoQX7qIDt7s2lW9W53cSVywivROlUgjXmaNTNuR8NlhuGCpo78NTGg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/bundles/-/bundles-24.7.0-alpha4.tgz", + "integrity": "sha512-EPdTTwe+AvPoec10FeYcCZ5AS+9Avt7YDnpcEmD+lZ7rrbM4aosIUp52n4hK1gSDvMD8P9lvvWcWdig5ain7jA==", + "license": "(Apache-2.0 OR SEE LICENSE IN https://vaadin.com/license/cvdl-4.0)", "peerDependencies": { - "@open-wc/dedupe-mixin": "1.3.1", - "@polymer/polymer": "3.5.1", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/accordion": "24.5.0-alpha3", - "@vaadin/app-layout": "24.5.0-alpha3", - "@vaadin/avatar": "24.5.0-alpha3", - "@vaadin/avatar-group": "24.5.0-alpha3", - "@vaadin/board": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/charts": "24.5.0-alpha3", - "@vaadin/checkbox": "24.5.0-alpha3", - "@vaadin/checkbox-group": "24.5.0-alpha3", - "@vaadin/combo-box": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/confirm-dialog": "24.5.0-alpha3", - "@vaadin/context-menu": "24.5.0-alpha3", - "@vaadin/cookie-consent": "24.5.0-alpha3", - "@vaadin/crud": "24.5.0-alpha3", - "@vaadin/custom-field": "24.5.0-alpha3", - "@vaadin/date-picker": "24.5.0-alpha3", - "@vaadin/date-time-picker": "24.5.0-alpha3", - "@vaadin/details": "24.5.0-alpha3", - "@vaadin/dialog": "24.5.0-alpha3", - "@vaadin/email-field": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/field-highlighter": "24.5.0-alpha3", - "@vaadin/form-layout": "24.5.0-alpha3", - "@vaadin/grid": "24.5.0-alpha3", - "@vaadin/grid-pro": "24.5.0-alpha3", - "@vaadin/horizontal-layout": "24.5.0-alpha3", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/icons": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/integer-field": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/list-box": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/login": "24.5.0-alpha3", - "@vaadin/map": "24.5.0-alpha3", - "@vaadin/menu-bar": "24.5.0-alpha3", - "@vaadin/message-input": "24.5.0-alpha3", - "@vaadin/message-list": "24.5.0-alpha3", - "@vaadin/multi-select-combo-box": "24.5.0-alpha3", - "@vaadin/notification": "24.5.0-alpha3", - "@vaadin/number-field": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/password-field": "24.5.0-alpha3", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/popover": "24.5.0-alpha3", - "@vaadin/progress-bar": "24.5.0-alpha3", - "@vaadin/radio-group": "24.5.0-alpha3", - "@vaadin/rich-text-editor": "24.5.0-alpha3", - "@vaadin/scroller": "24.5.0-alpha3", - "@vaadin/select": "24.5.0-alpha3", - "@vaadin/side-nav": "24.5.0-alpha3", - "@vaadin/split-layout": "24.5.0-alpha3", - "@vaadin/tabs": "24.5.0-alpha3", - "@vaadin/tabsheet": "24.5.0-alpha3", - "@vaadin/text-area": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/time-picker": "24.5.0-alpha3", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/upload": "24.5.0-alpha3", + "@open-wc/dedupe-mixin": "1.4.0", + "@polymer/polymer": "3.5.2", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/accordion": "24.7.0-alpha4", + "@vaadin/app-layout": "24.7.0-alpha4", + "@vaadin/avatar": "24.7.0-alpha4", + "@vaadin/avatar-group": "24.7.0-alpha4", + "@vaadin/board": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/card": "24.7.0-alpha4", + "@vaadin/charts": "24.7.0-alpha4", + "@vaadin/checkbox": "24.7.0-alpha4", + "@vaadin/checkbox-group": "24.7.0-alpha4", + "@vaadin/combo-box": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/confirm-dialog": "24.7.0-alpha4", + "@vaadin/context-menu": "24.7.0-alpha4", + "@vaadin/cookie-consent": "24.7.0-alpha4", + "@vaadin/crud": "24.7.0-alpha4", + "@vaadin/custom-field": "24.7.0-alpha4", + "@vaadin/dashboard": "24.7.0-alpha4", + "@vaadin/date-picker": "24.7.0-alpha4", + "@vaadin/date-time-picker": "24.7.0-alpha4", + "@vaadin/details": "24.7.0-alpha4", + "@vaadin/dialog": "24.7.0-alpha4", + "@vaadin/email-field": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/field-highlighter": "24.7.0-alpha4", + "@vaadin/form-layout": "24.7.0-alpha4", + "@vaadin/grid": "24.7.0-alpha4", + "@vaadin/grid-pro": "24.7.0-alpha4", + "@vaadin/horizontal-layout": "24.7.0-alpha4", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/icons": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/integer-field": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/list-box": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/login": "24.7.0-alpha4", + "@vaadin/map": "24.7.0-alpha4", + "@vaadin/menu-bar": "24.7.0-alpha4", + "@vaadin/message-input": "24.7.0-alpha4", + "@vaadin/message-list": "24.7.0-alpha4", + "@vaadin/multi-select-combo-box": "24.7.0-alpha4", + "@vaadin/notification": "24.7.0-alpha4", + "@vaadin/number-field": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/password-field": "24.7.0-alpha4", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/popover": "24.7.0-alpha4", + "@vaadin/progress-bar": "24.7.0-alpha4", + "@vaadin/radio-group": "24.7.0-alpha4", + "@vaadin/rich-text-editor": "24.7.0-alpha4", + "@vaadin/scroller": "24.7.0-alpha4", + "@vaadin/select": "24.7.0-alpha4", + "@vaadin/side-nav": "24.7.0-alpha4", + "@vaadin/split-layout": "24.7.0-alpha4", + "@vaadin/tabs": "24.7.0-alpha4", + "@vaadin/tabsheet": "24.7.0-alpha4", + "@vaadin/text-area": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/time-picker": "24.7.0-alpha4", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/upload": "24.7.0-alpha4", "@vaadin/vaadin-development-mode-detector": "2.0.7", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "@vaadin/vaadin-usage-statistics": "2.1.2", - "@vaadin/vertical-layout": "24.5.0-alpha3", - "@vaadin/virtual-list": "24.5.0-alpha3", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "@vaadin/vaadin-usage-statistics": "2.1.3", + "@vaadin/vertical-layout": "24.7.0-alpha4", + "@vaadin/virtual-list": "24.7.0-alpha4", "cookieconsent": "3.1.1", "highcharts": "9.2.2", - "lit": "3.1.4", + "lit": "3.2.1", "ol": "6.13.0", "quickselect": "2.0.0", "rbush": "3.0.1" @@ -3605,6 +3847,9 @@ "@vaadin/button": { "optional": true }, + "@vaadin/card": { + "optional": true + }, "@vaadin/charts": { "optional": true }, @@ -3635,6 +3880,9 @@ "@vaadin/custom-field": { "optional": true }, + "@vaadin/dashboard": { + "optional": true + }, "@vaadin/date-picker": { "optional": true }, @@ -3806,82 +4054,102 @@ } }, "node_modules/@vaadin/button": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-24.5.0-alpha3.tgz", - "integrity": "sha512-ayjnZF1Uerjh6wTUhGApoDlRma97xJqG31BwwJjJO/lPKmKXTuqzbe77Mtfwzj6dt6s53eebf8qreee7okRE9Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-24.7.0-alpha4.tgz", + "integrity": "sha512-I2OuiFmY1VHAvrnP6dIUhuDW/8u45b83t7i0YSMOPK0pGdi+M4THoUD/0kYAugNdWvdx+6GJ1H1Os6w8maigWw==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" + } + }, + "node_modules/@vaadin/card": { + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/card/-/card-24.7.0-alpha4.tgz", + "integrity": "sha512-DoAklsqRll0l/2ILdJOU4PGigirj/ffwR1iuQ72eIrsz6/lYnWMDPdOVONRLYvKbOhAhX2W4Lqg64DYlKlE6qQ==", + "license": "Apache-2.0", + "dependencies": { + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/charts": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/charts/-/charts-24.5.0-alpha3.tgz", - "integrity": "sha512-T3ujXahPGZlVk2ioINZmW5l7EJdK3GPyqtxLW15PeNFdRCLdD5q3z60ctvANw+FHm3uJ5appYl/q2IbZifQQ2g==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/charts/-/charts-24.7.0-alpha4.tgz", + "integrity": "sha512-SDLlZcBG8iuz0daLaSjqEH1RTE1udouYhZqxnVLffDoIyBZeztoGVOnlh9puzzRlbGkuURri48QtKlr5Oe7t9g==", + "license": "SEE LICENSE IN LICENSE", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "highcharts": "9.2.2" } }, "node_modules/@vaadin/checkbox": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.5.0-alpha3.tgz", - "integrity": "sha512-mtizPscNAu4NrjdzzNquCefxvmYDtiY7WoFVlOCMXwJELr0lziza4PPAGgKkzat0gQAEnbjQ1ITRjfWYp/XO1A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.7.0-alpha4.tgz", + "integrity": "sha512-mD4GKGhyL6eRxDV0FPFiBHDLhq0WRLlCoW00NpFqjCtrviAOyorom2ySrvh4eXNqRhPPIepGM/RkWNLSkcYiVQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/checkbox-group": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/checkbox-group/-/checkbox-group-24.5.0-alpha3.tgz", - "integrity": "sha512-j6AF1FTHU9Jl91NmOtzgMdondr/g7hM/WHEUK23DFOfupnOYWcXRl90tLdzZFfRiR/4H4LsD+HJOkVbp8ls/0A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox-group/-/checkbox-group-24.7.0-alpha4.tgz", + "integrity": "sha512-/VtIxC3jnzeBeoq3lRh5B3dwJdhQWXqibB5jUv/y3MrD6VdfKWFAAH7IAc7Qi2BW/PKLAQHpNrSaGfqrXeYwxA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/checkbox": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/checkbox": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/combo-box": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/combo-box/-/combo-box-24.5.0-alpha3.tgz", - "integrity": "sha512-4aWbFV/WvExZjrv0qgZ4hpCq/omzMt/izwti/RYRO9iXGAqL+6IEY8oVERuytTt6cA3aPOjsFh3tEKHyWDKi9Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/combo-box/-/combo-box-24.7.0-alpha4.tgz", + "integrity": "sha512-AWFGO0j0xDQsRApqnZ47q3JF8l01zJBbzF5Q9EfDKuVUh+ctvM+DShJ9zRGz1IfSSP4l3X4Hibk42AoXmUEsvA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/common-frontend": { @@ -3896,9 +4164,10 @@ } }, "node_modules/@vaadin/component-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.5.0-alpha3.tgz", - "integrity": "sha512-3OAScmXraCAihHCJ62ZNEy9LsMpeWh2/KnPN4tsot1piHtMSnH7r4SFKC/4iNjQsuecou5TmDXuMACFcrlbouA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.7.0-alpha4.tgz", + "integrity": "sha512-oAnXewVRiCa43n7NTeQhof6sd1ib9AQ/wZEVeKESx+/To0cSZEWzdq7uClLYnpw6ah5kVXdGQDozEHkc+o+tEQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", @@ -3908,244 +4177,279 @@ } }, "node_modules/@vaadin/confirm-dialog": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/confirm-dialog/-/confirm-dialog-24.5.0-alpha3.tgz", - "integrity": "sha512-6wVyLDsoGNCBRvxgDgrbfHIJI8F8SqLnx2tmOvpVFrbG/9WdjQO4n40NZSZOtWuTndqOVe6ZcYR3pGrzX7dGsw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/confirm-dialog/-/confirm-dialog-24.7.0-alpha4.tgz", + "integrity": "sha512-jyoXZeCsZ83R1a1hlHcqvYMgcdK6zWSyVmu5mVMXLjj/BqLLmshs+ddBIs+5SoMMp8i4WW7cO4mOtObrhvaOBw==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/dialog": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/dialog": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/context-menu": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/context-menu/-/context-menu-24.5.0-alpha3.tgz", - "integrity": "sha512-DMyG0bTOp22PKAa70FvkL6wAUMFfKx9RC+1eff4t8JHgmyMcS20mfdHvzv6ChmD64RCRnEglHWr0Ueu/3WLoxQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/context-menu/-/context-menu-24.7.0-alpha4.tgz", + "integrity": "sha512-y7V5fCHv4OKm14SwjngBSSCCLdNUoD33OEm/3pQ0aNqj9gPcXb5CKmJA+MLt2ovI06LMtulYO80S+Dv8RyrCQg==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/list-box": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/list-box": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/cookie-consent": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/cookie-consent/-/cookie-consent-24.5.0-alpha3.tgz", - "integrity": "sha512-k8Cunm1D/AsG47UEqEGCR/1yn6EbVrK9zTN8KaNPchLUowT92MdIQjNLP/iPb5tTYNyq9AFTg6Kgna45/V2HlQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/cookie-consent/-/cookie-consent-24.7.0-alpha4.tgz", + "integrity": "sha512-eMNOCS7ZvbeyLN0Tgo2Z5n9qbPqUbbXoaY4p4a7pGzU9LXol+4NnHfXnlPvZteAYcyaTaeUcbCuO27GGRWaJrQ==", + "license": "SEE LICENSE IN LICENSE", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", "cookieconsent": "^3.0.6" } }, "node_modules/@vaadin/crud": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/crud/-/crud-24.5.0-alpha3.tgz", - "integrity": "sha512-6a3EzzSGirGaYWZ4f53gvuhHtT+w2QIYvx9rrBr9bHSO8QO64Th+QegZn0mutqa0FXJzoegJdfrjwis0HC63jw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/crud/-/crud-24.7.0-alpha4.tgz", + "integrity": "sha512-7gcmckDtDwHg9wMI2F8G6QGpHVlRw8R5QHT65HbTLz8SWrG1Ze+zgXyr4BLZvhNvQr0tpaTcC5DV2zbeFEoYtA==", + "license": "SEE LICENSE IN LICENSE", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/confirm-dialog": "24.5.0-alpha3", - "@vaadin/dialog": "24.5.0-alpha3", - "@vaadin/form-layout": "24.5.0-alpha3", - "@vaadin/grid": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/confirm-dialog": "24.7.0-alpha4", + "@vaadin/dialog": "24.7.0-alpha4", + "@vaadin/form-layout": "24.7.0-alpha4", + "@vaadin/grid": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "node_modules/@vaadin/custom-field": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/custom-field/-/custom-field-24.5.0-alpha3.tgz", - "integrity": "sha512-cZMnD6Z4B1LTxS+JhI5LoX8rYZYVoekx3+VWoRu/TvNm9Kw64fTlCg7SmBpplfEIoe9SbpeqxzVeTecFeBJgsQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/custom-field/-/custom-field-24.7.0-alpha4.tgz", + "integrity": "sha512-Y4ScJUtpKUYhyyFRUAH9IF1GWavvogrC8tOjboS/0zgbznDs5YGobFnbWdsWZrshVUR8K1pmC06osa+Wme5mNA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" + } + }, + "node_modules/@vaadin/dashboard": { + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/dashboard/-/dashboard-24.7.0-alpha4.tgz", + "integrity": "sha512-L4hjp7kzd9zc6AGC5YdHLMtqY+nwRFcLZDTVAv12upxinz5nt5qp5ynUuJzcEcn4K2UCfj5pfbmU3z7xKszHyg==", + "license": "SEE LICENSE IN LICENSE", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/date-picker": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/date-picker/-/date-picker-24.5.0-alpha3.tgz", - "integrity": "sha512-Ppk2W1onwn07DW/A0RBsJJC+pCs22R6Dbu8X4Ax2vXz+YdrHHsn629CbewOERceiNYhOX/4N7ITCONC5mBMbkw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/date-picker/-/date-picker-24.7.0-alpha4.tgz", + "integrity": "sha512-FGbs2UaJpMLqnAdvlbv/hVQzYAaIrIA7cosUKTY2AwFDxSxZSzgA5mcLfHaCfKNo1I1v/1WjVzmVtPZcSj6PVQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.2.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/date-time-picker": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/date-time-picker/-/date-time-picker-24.5.0-alpha3.tgz", - "integrity": "sha512-54xOSfn5f3sxSwyizPC2ANtD0kamX4YGyyiFiIRQz07zp1BhHLK/kWeEzygb6PJchu7EjYxgp5dYEm3Ms3P2fA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/date-time-picker/-/date-time-picker-24.7.0-alpha4.tgz", + "integrity": "sha512-JOKVQot8/7OrJAffbLhDMW88rzIHggraNfBd8ynSGTE1Tw0Xhtb8+83Nq3t/gOcAo5Ioq5X3b3diNHuAvrxs3A==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/custom-field": "24.5.0-alpha3", - "@vaadin/date-picker": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/time-picker": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/custom-field": "24.7.0-alpha4", + "@vaadin/date-picker": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/time-picker": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/details": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/details/-/details-24.5.0-alpha3.tgz", - "integrity": "sha512-bpwbJirSLJtz7p3VHVhVifkRycr1hth0yC0dBirpDtUf0JOvmkHlKrAiDIlgdmCtIbe0mGOwyBMfZPa/O2I28w==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/details/-/details-24.7.0-alpha4.tgz", + "integrity": "sha512-w6+sDe9ZsjdNCA0gm7XlGHkTYhUmdL2Mr7fnun4G1r3+XzidOqfiR/dkPFXtDm2sJBFvwrFpaCZk1rNTkh1U/w==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/dialog": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/dialog/-/dialog-24.5.0-alpha3.tgz", - "integrity": "sha512-FjPxpNpQ9m5JhT2G5g+ayipwLJZo/M2nAnpyXvHBh5zo74qNeVoQpnltCPgZ2aQeIND9bPQ7KmFL1ZAEPKaSEA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/dialog/-/dialog-24.7.0-alpha4.tgz", + "integrity": "sha512-KwnG+tkDbDXZ0MQuh0zeGGe0Y8x1yjph8e+N0/8W4rTdw2V+7MuLFfYEsW/XQskCuPreO/qeXcKLOzn12kcBeg==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/email-field": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/email-field/-/email-field-24.5.0-alpha3.tgz", - "integrity": "sha512-tkgyn3wP21vbdcfDjI1zejTkFr8SjUCtjThld8JAM/EsnZMvRPX+X9MDUOFvzVI58qYq0RRXyQR12IwKZ6j5ww==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/email-field/-/email-field-24.7.0-alpha4.tgz", + "integrity": "sha512-zb0AQab/giaAMMtBXflPNz60L+7X5kN+Sv8YeVbRhSkrB/aRCxkSxRf064e70swmwn8RLtQw2gem36bLn1BAKQ==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/field-base": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.5.0-alpha3.tgz", - "integrity": "sha512-ahTZ0trRiTO8200Iwub/cToBUVfOMMu+zhHCTu4S8O/zVnc/KMUNINc5tIby6BP9BYB05OjvXahyAyUa7uqdcQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.7.0-alpha4.tgz", + "integrity": "sha512-QCeor3PgWemIb7oRCmkhwqBM1LmXk8gsGl+T3c/fT8TgIMkZB/IOG6QaGjHcsMgBHHZmfmYIciXipsvxQ3FY+Q==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/field-highlighter": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/field-highlighter/-/field-highlighter-24.5.0-alpha3.tgz", - "integrity": "sha512-tUvuuMAXEUSuifAU4h4EGszHBPKh5jsAiwoRSRN7I5b83lUsoDd8V+bZSO6FUwNh9lubNsiAZc27sakwJsBJgA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/field-highlighter/-/field-highlighter-24.7.0-alpha4.tgz", + "integrity": "sha512-7Vdb91NS335xLVBeKp1czzPULJNQ6DeISqDzzpjC+UQnp90FGG/+PrP5peq+MBXS5N8/970JoWGo9OmzzdEl1g==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/form-layout": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/form-layout/-/form-layout-24.5.0-alpha3.tgz", - "integrity": "sha512-9NCTFd6fTWbXAzh3yzJDZctV/75zmTXowSfUx0ZYHtN7eBfNuHP4jw7F4TA5QdWzqEGac+AuMLfwsnHKSemGvg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/form-layout/-/form-layout-24.7.0-alpha4.tgz", + "integrity": "sha512-yhGHUS2rMKvKURazParKPnii+3dyd3l5emEcim8nKYts37T1Zy3bXV31AedWdGvvageKwF6lT9+shTVhiBe90A==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "node_modules/@vaadin/grid": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.5.0-alpha3.tgz", - "integrity": "sha512-Kr66LMmzHBG/46nNucxt0hOpkAHhqPX9bKmcy0nI1U9T4XyjukD+c8j5w7aBQBqkwOObgMGXlB59DIH/GDiKtQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.7.0-alpha4.tgz", + "integrity": "sha512-plXEcgTCTE8pttu6Rhx3XdroNECg9LgMI+3F2ww4uGOA5z0safM3HVsqQiBnLpfLmC2hUQ5FZQHCAcFuVbGhBw==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/checkbox": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/checkbox": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/grid-pro": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/grid-pro/-/grid-pro-24.5.0-alpha3.tgz", - "integrity": "sha512-k4c56mz/8XVaHmb46AfPZJoDI0J6WmGPHged0rJ0zNYQiixw6+tPMJBXoVubnrFep7lqT3nc23AA5XhlGgNAgw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/grid-pro/-/grid-pro-24.7.0-alpha4.tgz", + "integrity": "sha512-YQ8FGuiyz7RYZfz6vT7LyNuvKXnqnASOlOUTmJI3Z8NsTOdGcKq+pafbDy5PRi8vmOd7JG4z1zyRvALBbBBrKQ==", + "license": "SEE LICENSE IN LICENSE", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/checkbox": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/grid": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/select": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/checkbox": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/grid": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/select": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, @@ -4185,6 +4489,10 @@ "resolved": "../../../../ts/generator-plugin-push", "link": true }, + "node_modules/@vaadin/hilla-generator-plugin-signals": { + "resolved": "../../../../ts/generator-plugin-signals", + "link": true + }, "node_modules/@vaadin/hilla-generator-plugin-subtypes": { "resolved": "../../../../ts/generator-plugin-subtypes", "link": true @@ -4218,390 +4526,425 @@ "link": true }, "node_modules/@vaadin/horizontal-layout": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/horizontal-layout/-/horizontal-layout-24.5.0-alpha3.tgz", - "integrity": "sha512-T7faH120WTHZe3xIcUY/ulFIlJt34MjuhkLfTg6bWtJszpSS5obDac3cH/Jgc1J+pj+7ezhg93RfZpYNIhGvPQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/horizontal-layout/-/horizontal-layout-24.7.0-alpha4.tgz", + "integrity": "sha512-YNW2OYY+AjTDFsj3p5DxlBzwsMQccNNpcAFu5O5cavXlRhOCcXFCQY8GxohhrfbIM6qTu22NLY3529/sgfHCHA==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/icon": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.5.0-alpha3.tgz", - "integrity": "sha512-CUVOeGF+kJ/lE3r/pJuShGTvfQyApFGoephomig4HQ3NJupazAANLnRXAconLAod/RPUWVKhLGqD33SnPKyp7A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.7.0-alpha4.tgz", + "integrity": "sha512-ELyn24AgdCRk9sOWnHbJqb4G8Gj2xr2YuC87dSKCg0E2mpAzxgA0xIObPO2DjWTzhprRy2XWsbkklzJFLKv1ag==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/icons": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.5.0-alpha3.tgz", - "integrity": "sha512-LZjQrwgw34HILPhSXpvabVQiEZzEDeeePFIdkIaxcjqC6bc2JjAecA0rPh2sci6mqCTed7ap9mZPxlitDi/uBQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.7.0-alpha4.tgz", + "integrity": "sha512-b2C00K2zkxg8dOsKSvWjBO/gVfSx96uQilksTZBOI3GXi1+UTqc5DzzYrOOH+Y0XqcqU7ynqqmkRTeyWJSiSSw==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/icon": "24.5.0-alpha3" + "@vaadin/icon": "24.7.0-alpha4" } }, "node_modules/@vaadin/input-container": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.5.0-alpha3.tgz", - "integrity": "sha512-iMr4LeRWM+eXmRIDXP1WAxhbgTmGVxWqp75ix4cEOQi36zrO6+/W83tf192CeJ2gC5f4lAPXTFgGdtPKQBE1Mg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.7.0-alpha4.tgz", + "integrity": "sha512-V36O33xvrf37ZwFyQJ9yMLjs6VnXJGR3D3uMbht8eElXEtZu4cyS6FK7LXbwDIRoPjgnvBsvDemdCzBZ7HmHLQ==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/integer-field": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/integer-field/-/integer-field-24.5.0-alpha3.tgz", - "integrity": "sha512-UbUQb5JZRVYP0Tvq6s1tmPy9PKT0Zk6J7vAPwsNfjoQ1VuUCs76uUSOQXQMbsecJswtoXXJgH/4tIke0zPoi8g==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/integer-field/-/integer-field-24.7.0-alpha4.tgz", + "integrity": "sha512-qkGXdFGLzJn8VbYvjIya+ZQgyUfOriBLodrkmEVonPUL2hrZX3qFzg7VkJjo8f5G/hEd0XqrMCOABawEwlT0+Q==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/number-field": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/number-field": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4" } }, "node_modules/@vaadin/item": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-24.5.0-alpha3.tgz", - "integrity": "sha512-dRhcrZZZ1XcUIOsjDOmJXr8MjnyA1eaao7rLzVPv0vYdHi3SGlUbhxDZzqn3ra4K4nKxyFJy1xtCWbi/5gQA+Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-24.7.0-alpha4.tgz", + "integrity": "sha512-LzsnG/l7tQDyRcMUi8SLsnMbsD0OVB8L4jKA1qhqTuzbQnNTY3NEWZ1jwenpX+b0SI7nDhC7/4LOgnI9C3h8cA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/list-box": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-24.5.0-alpha3.tgz", - "integrity": "sha512-GSsEOvTb+tx8bGWILAAySxSebe0Lq5bHrvUwnhScd6pneJKbYCMhGT/e3A+/NQqhrsL2iHxwdaAQPngp0DlJPA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-24.7.0-alpha4.tgz", + "integrity": "sha512-FH1LUqV7kxkqzlKopIkl+okQD+ZHIcPQOKVRfmo9q/xqCZGwFvGf958ISqvY9JSAyzIaWe1S4SR9YMSTNsUIcA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/lit-renderer": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.5.0-alpha3.tgz", - "integrity": "sha512-LeCZxZ2jiiN9A4YCYi10GR7MjP3PIMdcwOKouRUFdHPtIWqJNQHX9EkqgCyZiWSuIq1fsTWdQQEU4SnhJt2J7A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.7.0-alpha4.tgz", + "integrity": "sha512-jsgSnG3RoG0XX9k02cA0lqYw4KctzkW+hzq8+rAE1zLIJs4CQpe0jUzu1cGVy1bgJlPguvYVbQAitPc3+hFn/w==", + "license": "Apache-2.0", "dependencies": { "lit": "^3.0.0" } }, "node_modules/@vaadin/login": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/login/-/login-24.5.0-alpha3.tgz", - "integrity": "sha512-zXyBVpZ6RbpalNYZB8GrROkIUtWSdJatmELBOPFkv/HbJah8XyfmF+WD9j6gFkR2GSNjaXdEVKFN7rTfT2pqQA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/login/-/login-24.7.0-alpha4.tgz", + "integrity": "sha512-zT+qoPXglsYrtFl2YGRwYtE5SQdVracm8ybbrp2Eya7HQLxX/iDfIkS9Npztfi14vlB6ygHfkSmrDXU6CN2JzA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/password-field": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/password-field": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/map": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/map/-/map-24.5.0-alpha3.tgz", - "integrity": "sha512-T6kQWIczO/2NCS9pxxDc+mfotvV0TdXWG/oZiT+5tyF9hT8HF3laPf5r720XTaIOjzspIPJvIZikNyEx0SXaEA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/map/-/map-24.7.0-alpha4.tgz", + "integrity": "sha512-IewsGtNVQJUB4/+hMb2p+4+3aGPHoClMcU6EPhNHjnu9vch1nkg7kYNvAUXRKySmDqTWC0lxi3DyU+dYe4gzzQ==", + "license": "SEE LICENSE IN LICENSE", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "ol": "6.13.0" } }, "node_modules/@vaadin/menu-bar": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/menu-bar/-/menu-bar-24.5.0-alpha3.tgz", - "integrity": "sha512-oFd64rmmhXS9Ht4EJ3UisAPN4DcwIPF8YeWuR395sN8AbPREiuhP5xoPjiDeNuZ2MSgwjHjwRMruLGHVf2AkuQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/menu-bar/-/menu-bar-24.7.0-alpha4.tgz", + "integrity": "sha512-tGd6LBNCJEovrCDKe5GFPPtGCE1Ygks0vZk25AT9evKZkD/gL58otBw6a2uhykxeFZuM3c8LDYH33K/e6WxJ3g==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/context-menu": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/list-box": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/context-menu": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/list-box": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/message-input": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/message-input/-/message-input-24.5.0-alpha3.tgz", - "integrity": "sha512-MUOwAkdL2ZsRQuj8Wcsua5X4jR6ehUFWfE0vdQbGlurkrsqLW2gcagHutiySbBcb2Y/jeuV4s9Nbd+qKAjoY2w==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/message-input/-/message-input-24.7.0-alpha4.tgz", + "integrity": "sha512-+qa97ABGimz7pp4SNfL6kG5tAHAShmzZIhODsW/rVy9oC+toetmi6PvZVAaV0Ganh35NIg60hBgHGX2ZA0BKJA==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/text-area": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/text-area": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/message-list": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/message-list/-/message-list-24.5.0-alpha3.tgz", - "integrity": "sha512-xrsikxP4+zn1UwyMLvOu2jsgb6nvz6PIV+j1EoTnAW8KOkWN6TW1XX/zRmaMHkhbqS92ekUMYSHL70mXwnpvWw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/message-list/-/message-list-24.7.0-alpha4.tgz", + "integrity": "sha512-lVQlpeKpllZ6ZJuyavtrZBSIMTsP893LEJjpX9QElpvFumFJPto8+9xOJ16cK5+R8ETMYWUcDyrZhsrnJF8k8A==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/avatar": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/avatar": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/multi-select-combo-box": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/multi-select-combo-box/-/multi-select-combo-box-24.5.0-alpha3.tgz", - "integrity": "sha512-2wMbL0dbidiKZu3xberJ8HeUw+2wBxpQi8LJpYRWJzJSZWBJSf3+R+FVZeFmPufde/katw4OEW1sUKFeOYoPyQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/multi-select-combo-box/-/multi-select-combo-box-24.7.0-alpha4.tgz", + "integrity": "sha512-a7BuEw2qqZl/POjzghNxkK4BIMhTotWHxAhK95ODC49S9iMiYabVzeNrS1EVxEjGTNWlJtI+nIC4RePzk4rCcw==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/combo-box": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/combo-box": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/notification": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/notification/-/notification-24.5.0-alpha3.tgz", - "integrity": "sha512-pFtrKopNvHMLZ074yQoos3OvYBDLy3h0fTKSyxZfWo70+Calu/nqvSonxJG+ZZb8XOgsvBOmrufwcT8Chyvbpg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/notification/-/notification-24.7.0-alpha4.tgz", + "integrity": "sha512-r/iMpaBh6taE/oRifwMrEMPRGD/HFHe2x8+oYcisJXC/jKL9YA1N88t3IlnfoswEN92LYibMZ6JjfeRc8ND63A==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/number-field": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/number-field/-/number-field-24.5.0-alpha3.tgz", - "integrity": "sha512-43MNQ6NuYjWZiGe/zLZkLv5ZmaDLRxbGqiguWgAab8/3q8UN+2/oBJoFsKADIhAal7F6dhcHIdU50BWKM24Row==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/number-field/-/number-field-24.7.0-alpha4.tgz", + "integrity": "sha512-eZMusLorEM0peyW4UXJQUDEMkG92jUcbI/71PXs5qbh8Jo2dEGIfmXXYNl4nELyji6bqPdFCRGbWmpyWJ1L4Sw==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/overlay": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.5.0-alpha3.tgz", - "integrity": "sha512-zH72InlWhwkBqdUMoIbHPXUajHapTVTwebZgddqE9FjBxRyfSF2062jrHcX6dFR4tNlspbem6z/EeWk4BWxBQw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.7.0-alpha4.tgz", + "integrity": "sha512-z2eHVojBg7o0vQWRhLPy2jfhuhTWrjnvOdw3FmkUnw8jy11Qqf/Pz0hMvy7cWE2d6ThLMjAnTzjlnRX/8y7U0w==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/password-field": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-24.5.0-alpha3.tgz", - "integrity": "sha512-bUpjZJr2e72uHCPjUHBoUxfyvX/hU3Wp8qr8KmuXJPBMbsB+IlS4INWJRlZga+FVx3Z9iJZonNAOey/+VnytNA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-24.7.0-alpha4.tgz", + "integrity": "sha512-CIZzVIXfHpFcu/uMWSchrcGSJ5kgy3oMa57RwnaOLuXwhMgld2gHBRXw23lpcRkadmFeFMYxc+N2Wgry6N4kKg==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/polymer-legacy-adapter": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.5.0-alpha3.tgz", - "integrity": "sha512-W9yXABgFVqyIvMaHXewyqn4Tg3HiVEhDYbW8it9YZVnu9ej5msYXzyowZf/Lt4RQM9ogp9hx+deXR9W+297ivg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.7.0-alpha4.tgz", + "integrity": "sha512-+CvDzDA1a+9f877179k5ilVLq40e8HUSzvzGgiZDyrW1txmSRRdbQq5rX/qjHDjBXORqLLJGbkDRQmS2Y455yg==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/popover": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.5.0-alpha3.tgz", - "integrity": "sha512-niIKAipighHRoxcdteoptEu+JjyXT5TQhXagypI0hp0Sme7ZwQBnxlh+JdfKN/OV6hGrMt411wZntnc7bnVl7Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.7.0-alpha4.tgz", + "integrity": "sha512-KwhcnwrJoKjkVeScRF5RvBjBO8pS68Sgxd801qUj+X6bSBgtAAxMTS+yyQDUTVbAFmyr/pl2p8xE2mX5Hdi0ZQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/progress-bar": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/progress-bar/-/progress-bar-24.5.0-alpha3.tgz", - "integrity": "sha512-h3TA0h3hFL2X3JPG4PZyOVZ1NnQJCF+ot2c0A95FaxXnLoHFxQ/9Twwdx/fkVR+r8KvsfjHV4IcvyPScmVpjzg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/progress-bar/-/progress-bar-24.7.0-alpha4.tgz", + "integrity": "sha512-tQI0KGB2vXcAF9JPTX6KXeTl6J2WQ1fsOxdHsgAVRtZu353jizy38d9pEYx3dsdRg6mRdE0TqRtGbYCVpagXnA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/radio-group": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/radio-group/-/radio-group-24.5.0-alpha3.tgz", - "integrity": "sha512-tTxa8VpcnjwGI5Uo2WpEpQNsJLQ37rsJHBoAfFvrWgeTPqgx+i6FoRjGifOXy3A6Ukvi0SPHIbkYPuYpz/9twQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/radio-group/-/radio-group-24.7.0-alpha4.tgz", + "integrity": "sha512-wpFWPsjB4EzJ9GWXgTlFi2ht0ORM+3raqtakCxg3msXw00b/x5A+3ryXfKDMbj4dQ5ZkoALQ+/tIEeR5Mq8CTw==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/react-components": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/react-components/-/react-components-24.5.0-alpha3.tgz", - "integrity": "sha512-bJJVYQhdvfK/97OjTSqO6Ig1cvPCE1LJGLVaRzG8d3OxU1BXjKE/RMLU/WDTSLiF/yUT0JrdOvCqFDqDJL72dw==", - "dependencies": { - "@lit/react": "^1.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/accordion": "24.5.0-alpha3", - "@vaadin/app-layout": "24.5.0-alpha3", - "@vaadin/avatar": "24.5.0-alpha3", - "@vaadin/avatar-group": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/checkbox": "24.5.0-alpha3", - "@vaadin/checkbox-group": "24.5.0-alpha3", - "@vaadin/combo-box": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/confirm-dialog": "24.5.0-alpha3", - "@vaadin/context-menu": "24.5.0-alpha3", - "@vaadin/custom-field": "24.5.0-alpha3", - "@vaadin/date-picker": "24.5.0-alpha3", - "@vaadin/date-time-picker": "24.5.0-alpha3", - "@vaadin/details": "24.5.0-alpha3", - "@vaadin/dialog": "24.5.0-alpha3", - "@vaadin/email-field": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/field-highlighter": "24.5.0-alpha3", - "@vaadin/form-layout": "24.5.0-alpha3", - "@vaadin/grid": "24.5.0-alpha3", - "@vaadin/horizontal-layout": "24.5.0-alpha3", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/icons": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/integer-field": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/list-box": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/login": "24.5.0-alpha3", - "@vaadin/menu-bar": "24.5.0-alpha3", - "@vaadin/message-input": "24.5.0-alpha3", - "@vaadin/message-list": "24.5.0-alpha3", - "@vaadin/multi-select-combo-box": "24.5.0-alpha3", - "@vaadin/notification": "24.5.0-alpha3", - "@vaadin/number-field": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/password-field": "24.5.0-alpha3", - "@vaadin/popover": "24.5.0-alpha3", - "@vaadin/progress-bar": "24.5.0-alpha3", - "@vaadin/radio-group": "24.5.0-alpha3", - "@vaadin/scroller": "24.5.0-alpha3", - "@vaadin/select": "24.5.0-alpha3", - "@vaadin/side-nav": "24.5.0-alpha3", - "@vaadin/split-layout": "24.5.0-alpha3", - "@vaadin/tabs": "24.5.0-alpha3", - "@vaadin/tabsheet": "24.5.0-alpha3", - "@vaadin/text-area": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/time-picker": "24.5.0-alpha3", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/upload": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "@vaadin/vertical-layout": "24.5.0-alpha3", - "@vaadin/virtual-list": "24.5.0-alpha3" + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/react-components/-/react-components-24.7.0-alpha4.tgz", + "integrity": "sha512-MjhmoNwjer9XDBcd1WUgWAD5axq67J5QvQrKLs32fHyJ2oBucHjs0l9C9/LeMcaJzmaR8AWm3zebQH8T4vIeHg==", + "license": "Apache-2.0", + "dependencies": { + "@lit/react": "^1.0.6", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/accordion": "24.7.0-alpha4", + "@vaadin/app-layout": "24.7.0-alpha4", + "@vaadin/avatar": "24.7.0-alpha4", + "@vaadin/avatar-group": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/card": "24.7.0-alpha4", + "@vaadin/checkbox": "24.7.0-alpha4", + "@vaadin/checkbox-group": "24.7.0-alpha4", + "@vaadin/combo-box": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/confirm-dialog": "24.7.0-alpha4", + "@vaadin/context-menu": "24.7.0-alpha4", + "@vaadin/custom-field": "24.7.0-alpha4", + "@vaadin/date-picker": "24.7.0-alpha4", + "@vaadin/date-time-picker": "24.7.0-alpha4", + "@vaadin/details": "24.7.0-alpha4", + "@vaadin/dialog": "24.7.0-alpha4", + "@vaadin/email-field": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/field-highlighter": "24.7.0-alpha4", + "@vaadin/form-layout": "24.7.0-alpha4", + "@vaadin/grid": "24.7.0-alpha4", + "@vaadin/horizontal-layout": "24.7.0-alpha4", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/icons": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/integer-field": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/list-box": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/login": "24.7.0-alpha4", + "@vaadin/menu-bar": "24.7.0-alpha4", + "@vaadin/message-input": "24.7.0-alpha4", + "@vaadin/message-list": "24.7.0-alpha4", + "@vaadin/multi-select-combo-box": "24.7.0-alpha4", + "@vaadin/notification": "24.7.0-alpha4", + "@vaadin/number-field": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/password-field": "24.7.0-alpha4", + "@vaadin/popover": "24.7.0-alpha4", + "@vaadin/progress-bar": "24.7.0-alpha4", + "@vaadin/radio-group": "24.7.0-alpha4", + "@vaadin/scroller": "24.7.0-alpha4", + "@vaadin/select": "24.7.0-alpha4", + "@vaadin/side-nav": "24.7.0-alpha4", + "@vaadin/split-layout": "24.7.0-alpha4", + "@vaadin/tabs": "24.7.0-alpha4", + "@vaadin/tabsheet": "24.7.0-alpha4", + "@vaadin/text-area": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/time-picker": "24.7.0-alpha4", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/upload": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "@vaadin/vertical-layout": "24.7.0-alpha4", + "@vaadin/virtual-list": "24.7.0-alpha4" }, "peerDependencies": { - "@types/react": "^18.2.37", - "@types/react-dom": "^18.2.15", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "@types/react": "^18.2.37 || ^19", + "@types/react-dom": "^18.2.15 || ^19", + "react": "^18.2.0 || ^19", + "react-dom": "^18.2.0 || ^19" }, "peerDependenciesMeta": { "@types/react": { @@ -4613,25 +4956,27 @@ } }, "node_modules/@vaadin/react-components-pro": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/react-components-pro/-/react-components-pro-24.5.0-alpha3.tgz", - "integrity": "sha512-f/Wq0TnruXRRHbka9QqtTeX+bok97nckbIaGqEFpo4ffATTN7cOfp9QL9UFYf1KoZ9sy1xwBlNnIJ7/PQVFfAg==", - "dependencies": { - "@lit/react": "^1.0.0", - "@vaadin/board": "24.5.0-alpha3", - "@vaadin/charts": "24.5.0-alpha3", - "@vaadin/cookie-consent": "24.5.0-alpha3", - "@vaadin/crud": "24.5.0-alpha3", - "@vaadin/grid-pro": "24.5.0-alpha3", - "@vaadin/map": "24.5.0-alpha3", - "@vaadin/react-components": "24.5.0-alpha3", - "@vaadin/rich-text-editor": "24.5.0-alpha3" + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/react-components-pro/-/react-components-pro-24.7.0-alpha4.tgz", + "integrity": "sha512-ejXx1BWHN8ZyQNsYjToTKuPgJ1Dnj71GQbGXQ4h1NAkZ8aRfOt8DjtX+wDp9O1ynHPT77xzGjJ50Ic+XBuPLZg==", + "license": "SEE LICENSE IN LICENSE", + "dependencies": { + "@lit/react": "^1.0.6", + "@vaadin/board": "24.7.0-alpha4", + "@vaadin/charts": "24.7.0-alpha4", + "@vaadin/cookie-consent": "24.7.0-alpha4", + "@vaadin/crud": "24.7.0-alpha4", + "@vaadin/dashboard": "24.7.0-alpha4", + "@vaadin/grid-pro": "24.7.0-alpha4", + "@vaadin/map": "24.7.0-alpha4", + "@vaadin/react-components": "24.7.0-alpha4", + "@vaadin/rich-text-editor": "24.7.0-alpha4" }, "peerDependencies": { - "@types/react": "^18.2.37", - "@types/react-dom": "^18.2.15", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "@types/react": "^18.2.37 || ^19", + "@types/react-dom": "^18.2.15 || ^19", + "react": "^18.2.0 || ^19", + "react-dom": "^18.2.0 || ^19" }, "peerDependenciesMeta": { "@types/react": { @@ -4643,206 +4988,217 @@ } }, "node_modules/@vaadin/rich-text-editor": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/rich-text-editor/-/rich-text-editor-24.5.0-alpha3.tgz", - "integrity": "sha512-31/l+iSBMmvFHwjX4Q5U75MK2UJ+OBLEL2KH/mLQMZBsmnlnXKrNrzsTc6YrX0tp0fkx5E/ien3/gYpyAyYXoA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/rich-text-editor/-/rich-text-editor-24.7.0-alpha4.tgz", + "integrity": "sha512-zwHtN3K8jYpYXc8suUvE42akaNXPcP1+/2Y5l3MXh1nkEQ/vbqlsu9Vs3bf7mr0oLQp5CjgjDiX3slUd7lBZCg==", + "license": "SEE LICENSE IN LICENSE", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/confirm-dialog": "24.5.0-alpha3", - "@vaadin/text-field": "24.5.0-alpha3", - "@vaadin/tooltip": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/confirm-dialog": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/text-field": "24.7.0-alpha4", + "@vaadin/tooltip": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, - "node_modules/@vaadin/router": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-1.7.5.tgz", - "integrity": "sha512-uRN3vd1ihgd596bF/NMZqpgxau0nlvIc0/JDd1EwStFNbZID/xIVse5LXdQhIyUKLmSl4T0GeCQK505xerWX0w==", - "dependencies": { - "@vaadin/vaadin-usage-statistics": "^2.1.0", - "path-to-regexp": "2.4.0" - } - }, "node_modules/@vaadin/scroller": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/scroller/-/scroller-24.5.0-alpha3.tgz", - "integrity": "sha512-Trq8onnUc/7vIqhyizYFQYT8Zl+2jNdlQJPa9ecwhagcKLmfEHGpj4Mj3SJvydgG5QFYACRVzKJK44fMakTcKg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/scroller/-/scroller-24.7.0-alpha4.tgz", + "integrity": "sha512-9SYK0Sbh6Pw0eVZCgdqS7LwsHn4R5MMn725LSwfsTTp534Tc0P8vkO04l0jSeB0r15UcXOu1oXVG9C1jrqiuDA==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/select": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/select/-/select-24.5.0-alpha3.tgz", - "integrity": "sha512-BlpFZd0eRDohJ/jZ4vqRschfxworvCnMlhk8COmhFnzyoJ6eTNO+Nb3xVgljXyO7D24e4gXC1Pc3i7nOLg9JCQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/select/-/select-24.7.0-alpha4.tgz", + "integrity": "sha512-50Sg+Syi1SfoS92GriJaUU3xH1rVdXckqbtta56qs9FtiVhcLO+qgLzvUYqhlbiy/d1G7eI84S/0yTf6iT5pqQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.2.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/list-box": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/list-box": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/side-nav": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/side-nav/-/side-nav-24.5.0-alpha3.tgz", - "integrity": "sha512-7+3BTXlQm4DvzHAhZvFCiYVd6RbjYxXw8g1aiodh4dYh0C+VrDQBKCHEAlOuEwWNDMSDdNGLeHmDjdVncAee8w==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/side-nav/-/side-nav-24.7.0-alpha4.tgz", + "integrity": "sha512-LmT/CT+AAUKg3M42Tot5iVvP+2aqTSDX+aOIhoi288cABRW6W1hkgC7dxlJ5jzQ97w56oEYe8VXAyYtcRI/Gcg==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/split-layout": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/split-layout/-/split-layout-24.5.0-alpha3.tgz", - "integrity": "sha512-oiCdrpEPsXiQsCKOJVegR6kZ2mPevin7Bx2NMwhHpWWsG9vC82TRn/Wa8disv1rTrkQcCik9TEojf2PgQhERCg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/split-layout/-/split-layout-24.7.0-alpha4.tgz", + "integrity": "sha512-BcoeOWHSZ3rSGLcaHDUEh8sYRY7ahQmXjbQ/c6PzdGJJIOGhcL3O+XyLq+3LYCKwQvnbnqZY8Oiy4X3fv1LtQg==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/tabs": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/tabs/-/tabs-24.5.0-alpha3.tgz", - "integrity": "sha512-1T99hCAU8VIDEWG2Vpr3WenAhG5VnbhAIOIYfEknncy4FZaWf8rxwx32tqVilngc98LGf5tQDUGVZRAaVpZqHw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/tabs/-/tabs-24.7.0-alpha4.tgz", + "integrity": "sha512-tTVIhSANTvksDF/32XwSMypfYMK4GA/DDuJk8SE2ZdUBgEQpkBuQtsx6DGezlsaCo+0kdyZ78s8kA9AvjXnimg==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/tabsheet": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/tabsheet/-/tabsheet-24.5.0-alpha3.tgz", - "integrity": "sha512-pyHH4KCbpLYbnkW84ZYjYJ+vbHYup+VYnHcOJ6HBheMeSso4xGJcl6ZPcYkgriKA0/8SVEyczZ6+E+17d5MSFA==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/tabsheet/-/tabsheet-24.7.0-alpha4.tgz", + "integrity": "sha512-/g8mNJAZv6KN2T3XPG8DlEc0GHadkRkN+NqljtVKMlUdyL7UnvH9g8oR6jQY1c0KedPSu3f8F73D6WFZJmgH5g==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/scroller": "24.5.0-alpha3", - "@vaadin/tabs": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/scroller": "24.7.0-alpha4", + "@vaadin/tabs": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/text-area": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/text-area/-/text-area-24.5.0-alpha3.tgz", - "integrity": "sha512-xy0np0EMhRtfvVFEBEJ5KW82X1qm5aIiK+zGPfWkhlCJvKHP4rpQYQvgcXiPzcUaTrQuDGb9LKnTJOBS8Kun/w==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/text-area/-/text-area-24.7.0-alpha4.tgz", + "integrity": "sha512-SrYxQee6sLx7fxbsYKspWmrrC3sWmnjuuAzd0zTsiGu5A30b6KhPFJVPqUKxG3Lz3wnXyTNavc0XmGp2J6c1KA==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/text-field": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.5.0-alpha3.tgz", - "integrity": "sha512-0RSG/a9EX6feS9qdGOMGG7XGbPopmOpMyEsF9MFEbB4FCo9FdNt/6t/8nnQvjm0prO1rvfhUc9CIYjAeNsb6wQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.7.0-alpha4.tgz", + "integrity": "sha512-FimpLa4DSU3AmcNZVHGmDdMrLHGCGGNCXPIc+xFqht22ahh20CkdeKio8ZgBNBiYujr0V+3z2G/K36iktD0Tog==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vaadin/time-picker": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/time-picker/-/time-picker-24.5.0-alpha3.tgz", - "integrity": "sha512-8eG8R8uQW2USWrXS0pLAECVGRUWlhFETj5RgCc32RuQHt0kG/S8VvYykn4vS26hIUOOutG511N0JeyhUB1YMUg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/time-picker/-/time-picker-24.7.0-alpha4.tgz", + "integrity": "sha512-fSEVzSfTrVJNeW7mdGF+VQlLVMd4GY2JhOimDu9f8LpDP2gOFixi32k74nowOo0HDwDMTf7O/ANnPhEMUGC6ow==", + "license": "Apache-2.0", "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/combo-box": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/field-base": "24.5.0-alpha3", - "@vaadin/input-container": "24.5.0-alpha3", - "@vaadin/item": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/combo-box": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/field-base": "24.7.0-alpha4", + "@vaadin/input-container": "24.7.0-alpha4", + "@vaadin/item": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/tooltip": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.5.0-alpha3.tgz", - "integrity": "sha512-q5K9g3dCp/P8ED1/twharFiSGk1Zf09mApNdxyFl/wYduLxVnDG2h0WfE4rEl9Ix6h8N5NVmJ6Vl48UAZ5vgYQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.7.0-alpha4.tgz", + "integrity": "sha512-6Eb8kaZTpPCF6fptSAXlpYHO5HBDQiTMCbDtLX4cA0ov0rpaJ9YljVaZYYHyVF5lDDPhEfTGUq+f9MhMmIpW0w==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/overlay": "24.5.0-alpha3", - "@vaadin/popover": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/overlay": "24.7.0-alpha4", + "@vaadin/popover": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/upload": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/upload/-/upload-24.5.0-alpha3.tgz", - "integrity": "sha512-f+GjVU/Jhn9KVpLJ4mkKB2iuvOBzn1biW1jZR5RNAY63qQfScK7P4dNoLmzJl/SY5qd6dqGYBOpyboE/NkAQmQ==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/upload/-/upload-24.7.0-alpha4.tgz", + "integrity": "sha512-n7Z711lwD8vvYOJfjzWCkiWslR7Y1mG+a+OMQDa+g0uC3uJRxrxxeA7RGXI4iqScTe/Xj80FhLTjFEaf58PO2A==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.5.0-alpha3", - "@vaadin/button": "24.5.0-alpha3", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/progress-bar": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/a11y-base": "24.7.0-alpha4", + "@vaadin/button": "24.7.0-alpha4", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/progress-bar": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, @@ -4852,39 +5208,42 @@ "integrity": "sha512-9FhVhr0ynSR3X2ao+vaIEttcNU5XfzCbxtmYOV8uIRnUCtNgbvMOIcyGBvntsX9I5kvIP2dV3cFAOG9SILJzEA==" }, "node_modules/@vaadin/vaadin-lumo-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-9zswr9ZNP6L7+VLCpD8yKKrlRzEC5gKJtfSRVhXqZwJ7x5Na1LVpJDzhDoKlqEcyPCsL/mcRllYAkT20hj0+8Q==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-L+rF8XYF+7hisu48wZK8MDjbwVMTmEteZsoTk1uyY6oCXyJEvBup1WwN2I0fFRlvSHMKnHNWDOuHmIfevK0uKQ==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/icon": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/icon": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "node_modules/@vaadin/vaadin-material-styles": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.5.0-alpha3.tgz", - "integrity": "sha512-6CYxTPmT0ZU64H3wwzeDOrVF87wyU8CtLWLXNhXNkB+DSO44pCLML5kg1LwRRqnixY95x26LY+iSSITUSD8Pmw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.7.0-alpha4.tgz", + "integrity": "sha512-8fcm8oLtaI3BHewsP2d07YcIHw3GgFfFp83IHIoTG7MlaeJvAqvs2aPMcszLJ4s3WCLZnvsSkdwbgjdE0oYbhw==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4" } }, "node_modules/@vaadin/vaadin-themable-mixin": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.5.0-alpha3.tgz", - "integrity": "sha512-gm/Adnsms4nUYONQPBDK91bPE7lfHFb27dBo31io7QAm5Cr+lBTd2U/Ce8eyK5+MialbabyZ2YQCgF3l2l8xWg==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.7.0-alpha4.tgz", + "integrity": "sha512-x8Shc4t2WTV/2UtsXY8+n6KDYMvVaq0ZfNdldNkthfZjVfpCgioyZAtB6hZbEirvY6a5RRSQKcr12k2lrKDbTQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "lit": "^3.0.0" } }, "node_modules/@vaadin/vaadin-usage-statistics": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-usage-statistics/-/vaadin-usage-statistics-2.1.2.tgz", - "integrity": "sha512-xKs1PvRfTXsG0eWWcImLXWjv7D+f1vfoIvovppv6pZ5QX8xgcxWUdNgERlOOdGt3CTuxQXukTBW3+Qfva+OXSg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-usage-statistics/-/vaadin-usage-statistics-2.1.3.tgz", + "integrity": "sha512-8r4TNknD7OJQADe3VygeofFR7UNAXZ2/jjBFP5dgI8+2uMfnuGYgbuHivasKr9WSQ64sPej6m8rDoM1uSllXjQ==", "hasInstallScript": true, "dependencies": { "@vaadin/vaadin-development-mode-detector": "^2.0.0" @@ -4894,41 +5253,44 @@ } }, "node_modules/@vaadin/vertical-layout": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/vertical-layout/-/vertical-layout-24.5.0-alpha3.tgz", - "integrity": "sha512-vRKkfDtCIaoud8m03t3DhFdPPkiCJxZpNIvm/6gmaSQaznfLornzdFkd/cGYyBwGOYkbGq3J84yfIJXNNycDbw==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/vertical-layout/-/vertical-layout-24.7.0-alpha4.tgz", + "integrity": "sha512-zyU203DhiaxZCBKx09U1Olq5RJivpBrXwr5kVT1heiF/aioKzOJVHratZcxx0jd0YuAJARt9ODgvYGBPi9HrYw==", + "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3" + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "lit": "^3.0.0" } }, "node_modules/@vaadin/virtual-list": { - "version": "24.5.0-alpha3", - "resolved": "https://registry.npmjs.org/@vaadin/virtual-list/-/virtual-list-24.5.0-alpha3.tgz", - "integrity": "sha512-MJBTySDtlWbqVryS8IpIyAcWDfda3AWnapI5QPS/eO/kYXPgXGCAsJ/SQJ5H+JOKiZ79Rjkkv4zMm5c7rs968A==", + "version": "24.7.0-alpha4", + "resolved": "https://registry.npmjs.org/@vaadin/virtual-list/-/virtual-list-24.7.0-alpha4.tgz", + "integrity": "sha512-kNd/HF+yrefuzECTBRY7c+l2B0VKnLaCzjDdDcYYRuzMm2c9ee38JejIULvGlhO+/E7/Ow6JYxAj+RfFc3a6JQ==", + "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.5.0-alpha3", - "@vaadin/lit-renderer": "24.5.0-alpha3", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-material-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", + "@vaadin/component-base": "24.7.0-alpha4", + "@vaadin/lit-renderer": "24.7.0-alpha4", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-material-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", "lit": "^3.0.0" } }, "node_modules/@vitejs/plugin-react": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", - "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", "dev": true, "dependencies": { - "@babel/core": "^7.24.5", - "@babel/plugin-transform-react-jsx-self": "^7.24.5", - "@babel/plugin-transform-react-jsx-source": "^7.24.1", + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", "@types/babel__core": "^7.20.5", "react-refresh": "^0.14.2" }, @@ -4936,7 +5298,7 @@ "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" } }, "node_modules/@webcomponents/shadycss": { @@ -5008,10 +5370,11 @@ } }, "node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -5020,15 +5383,16 @@ } }, "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/anymatch": { @@ -5083,9 +5447,9 @@ } }, "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "dev": true }, "node_modules/at-least-node": { @@ -5191,9 +5555,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", - "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", "dev": true, "funding": [ { @@ -5210,10 +5574,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001580", - "electron-to-chromium": "^1.4.648", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -5259,9 +5623,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001585", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001585.tgz", - "integrity": "sha512-yr2BWR1yLXQ8fMpdS/4ZZXpseBgE7o4g41x3a6AJOqZuOi+iE/WdJYAuZ6Y95i4Ohd2Y+9MzIWRR+uGABH4s3Q==", + "version": "1.0.30001667", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", + "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", "dev": true, "funding": [ { @@ -5278,20 +5642,6 @@ } ] }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -5354,24 +5704,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/cliui/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cliui/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -5422,19 +5754,24 @@ } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" }, "node_modules/commander": { "version": "8.3.0", @@ -5471,6 +5808,14 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "engines": { + "node": ">=18" + } + }, "node_modules/cookieconsent": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/cookieconsent/-/cookieconsent-3.1.1.tgz", @@ -5599,7 +5944,8 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ejs": { "version": "3.1.9", @@ -5617,16 +5963,17 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.659", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.659.tgz", - "integrity": "sha512-sRJ3nV3HowrYpBtPF9bASQV7OW49IgZC01Xiq43WfSE3RTCkK0/JidoCmR73Hyc1mN+l/H4Yqx0eNiomvExFZg==", + "version": "1.5.33", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.33.tgz", + "integrity": "sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==", "dev": true }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/es-abstract": { "version": "1.22.3", @@ -5722,47 +6069,50 @@ } }, "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "engines": { "node": ">=6" @@ -6035,22 +6385,24 @@ } }, "node_modules/glob": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", "minipass": "^7.1.2", - "path-scurry": "^1.11.1" + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -6140,15 +6492,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/has-property-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", @@ -6635,21 +6978,19 @@ "dev": true }, "node_modules/jackspeak": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", - "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=14" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/jake": { @@ -6711,24 +7052,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jake/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/jake/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -6768,15 +7091,15 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-schema": { @@ -6844,29 +7167,29 @@ } }, "node_modules/lit": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.4.tgz", - "integrity": "sha512-q6qKnKXHy2g1kjBaNfcoLlgbI3+aSOZ9Q4tiGa9bGYXq5RBXxkVTqTIVmP2VWMp29L4GyvCFm8ZQ2o56eUAMyA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz", + "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==", "dependencies": { "@lit/reactive-element": "^2.0.4", - "lit-element": "^4.0.4", - "lit-html": "^3.1.2" + "lit-element": "^4.1.0", + "lit-html": "^3.2.0" } }, "node_modules/lit-element": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", - "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz", + "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==", "dependencies": { "@lit-labs/ssr-dom-shim": "^1.2.0", "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.1.2" + "lit-html": "^3.2.0" } }, "node_modules/lit-html": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", - "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz", + "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==", "dependencies": { "@types/trusted-types": "^2.0.2" } @@ -6922,9 +7245,9 @@ } }, "node_modules/mapbox-to-css-font": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.4.tgz", - "integrity": "sha512-X1dtuTuH2D1MRMuductMZCLV/fy9EoIgqW/lmu8vQSAhEatx/tdFebkYT3TVhdTwqFDHbLEgQBD3IKA4KI7aoQ==" + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.5.tgz", + "integrity": "sha512-VJ6nB8emkO9VODI0Fk+TQ/0zKBTqmf/Pkt8Xv0kHstoc0iXRajA00DAid4Kc3K5xeFIOoiZrVxijEzj0GLVO2w==" }, "node_modules/merge-source-map": { "version": "1.0.4", @@ -6967,15 +7290,16 @@ } }, "node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -6994,6 +7318,7 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -7085,9 +7410,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true, "funding": [ { @@ -7103,9 +7428,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, "node_modules/normalize-path": { @@ -7216,6 +7541,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, "node_modules/pako": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", @@ -7251,35 +7582,32 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", "dev": true, + "license": "ISC", "engines": { - "node": "14 || >=16.14" + "node": "20 || >=22" } }, - "node_modules/path-to-regexp": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.4.0.tgz", - "integrity": "sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w==" - }, "node_modules/pbf": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", @@ -7293,9 +7621,9 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, "node_modules/picomatch": { @@ -7311,9 +7639,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, "funding": [ { @@ -7331,8 +7659,8 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -7465,33 +7793,27 @@ } }, "node_modules/react-router": { - "version": "6.23.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.23.1.tgz", - "integrity": "sha512-fzcOaRF69uvqbbM7OhvQyBTFDVrrGlsFdS3AL+1KfIBtGETibHzi3FkoTRyiDJnWNc2VxrfvR+657ROHjaNjqQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.1.tgz", + "integrity": "sha512-39sXJkftkKWRZ2oJtHhCxmoCrBCULr/HAH4IT5DHlgu/Q0FCPV0S4Lx+abjDTx/74xoZzNYDYbOZWlJjruyuDQ==", + "license": "MIT", "dependencies": { - "@remix-run/router": "1.16.1" + "@types/cookie": "^0.6.0", + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=20.0.0" }, "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-router-dom": { - "version": "6.23.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.23.1.tgz", - "integrity": "sha512-utP+K+aSTtEdbWpC+4gxhdlPFwuEfDKq8ZrPFU65bbRJY+l706qjR7yaidBpo3MSeA/fzwbXWbKBI6ftOnP3OQ==", - "dependencies": { - "@remix-run/router": "1.16.1", - "react-router": "6.23.1" - }, - "engines": { - "node": ">=14.0.0" + "react": ">=18", + "react-dom": ">=18" }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } } }, "node_modules/readdirp": { @@ -7648,12 +7970,12 @@ } }, "node_modules/rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.0.tgz", + "integrity": "sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==", "dev": true, "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -7663,19 +7985,24 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", + "@rollup/rollup-android-arm-eabi": "4.28.0", + "@rollup/rollup-android-arm64": "4.28.0", + "@rollup/rollup-darwin-arm64": "4.28.0", + "@rollup/rollup-darwin-x64": "4.28.0", + "@rollup/rollup-freebsd-arm64": "4.28.0", + "@rollup/rollup-freebsd-x64": "4.28.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.28.0", + "@rollup/rollup-linux-arm-musleabihf": "4.28.0", + "@rollup/rollup-linux-arm64-gnu": "4.28.0", + "@rollup/rollup-linux-arm64-musl": "4.28.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.28.0", + "@rollup/rollup-linux-riscv64-gnu": "4.28.0", + "@rollup/rollup-linux-s390x-gnu": "4.28.0", + "@rollup/rollup-linux-x64-gnu": "4.28.0", + "@rollup/rollup-linux-x64-musl": "4.28.0", + "@rollup/rollup-win32-arm64-msvc": "4.28.0", + "@rollup/rollup-win32-ia32-msvc": "4.28.0", + "@rollup/rollup-win32-x64-msvc": "4.28.0", "fsevents": "~2.3.2" } }, @@ -7689,13 +8016,14 @@ } }, "node_modules/rollup-plugin-visualizer": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz", - "integrity": "sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==", + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.13.1.tgz", + "integrity": "sha512-vMg8i6BprL8aFm9DKvL2c8AwS8324EgymYQo9o6E26wgVvwMhsJxS37aNL6ZsU7X9iAcMYwdME7gItLfG5fwJg==", "dev": true, + "license": "MIT", "dependencies": { "open": "^8.4.0", - "picomatch": "^2.3.1", + "picomatch": "^4.0.2", "source-map": "^0.7.4", "yargs": "^17.5.1" }, @@ -7703,17 +8031,34 @@ "rollup-plugin-visualizer": "dist/bin/cli.js" }, "engines": { - "node": ">=14" + "node": ">=18" }, "peerDependencies": { + "rolldown": "1.x", "rollup": "2.x || 3.x || 4.x" }, "peerDependenciesMeta": { + "rolldown": { + "optional": true + }, "rollup": { "optional": true } } }, + "node_modules/rollup-plugin-visualizer/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -7823,6 +8168,11 @@ "randombytes": "^2.1.0" } }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==" + }, "node_modules/set-function-length": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", @@ -7949,9 +8299,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -7988,6 +8338,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -8006,6 +8357,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -8020,6 +8372,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8028,13 +8381,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -8135,6 +8490,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -8151,6 +8507,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -8163,6 +8520,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8191,18 +8549,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -8296,15 +8642,6 @@ "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==", "dev": true }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -8361,6 +8698,11 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==" + }, "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", @@ -8439,10 +8781,11 @@ } }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -8546,9 +8889,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "funding": [ { @@ -8565,8 +8908,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -8584,21 +8927,32 @@ "punycode": "^2.1.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/vite": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", - "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.6.tgz", + "integrity": "sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==", "dev": true, + "license": "MIT", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.38", - "rollup": "^4.13.0" + "esbuild": "^0.24.2", + "postcss": "^8.4.49", + "rollup": "^4.23.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -8607,18 +8961,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", - "terser": "^5.4.0" + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -8628,6 +8989,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -8636,13 +9000,19 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, "node_modules/vite-plugin-checker": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.6.4.tgz", - "integrity": "sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.8.0.tgz", + "integrity": "sha512-UA5uzOGm97UvZRTdZHiQVYFnd86AVn8EVaD4L3PoVzxH+IZSfaAw14WGFwX9QS23UW3lV/5bVKZn6l0w+q9P0g==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", @@ -8653,7 +9023,6 @@ "fast-glob": "^3.2.7", "fs-extra": "^11.1.0", "npm-run-path": "^4.0.1", - "semver": "^7.5.0", "strip-ansi": "^6.0.0", "tiny-invariant": "^1.1.0", "vscode-languageclient": "^7.0.0", @@ -8665,6 +9034,7 @@ "node": ">=14.16" }, "peerDependencies": { + "@biomejs/biome": ">=1.7", "eslint": ">=7", "meow": "^9.0.0", "optionator": "^0.9.1", @@ -8673,9 +9043,12 @@ "vite": ">=2.0.0", "vls": "*", "vti": "*", - "vue-tsc": ">=1.3.9" + "vue-tsc": "~2.1.6" }, "peerDependenciesMeta": { + "@biomejs/biome": { + "optional": true + }, "eslint": { "optional": true }, @@ -8742,24 +9115,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/vite-plugin-checker/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/vite-plugin-checker/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/vite-plugin-checker/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -8769,33 +9124,6 @@ "node": ">=8" } }, - "node_modules/vite-plugin-checker/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/vite-plugin-checker/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/vite-plugin-checker/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -8820,12 +9148,6 @@ "node": ">=8" } }, - "node_modules/vite-plugin-checker/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/vscode-jsonrpc": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz", @@ -9022,28 +9344,28 @@ } }, "node_modules/workbox-background-sync": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.1.0.tgz", - "integrity": "sha512-rMbgrzueVWDFcEq1610YyDW71z0oAXLfdRHRQcKw4SGihkfOK0JUEvqWHFwA6rJ+6TClnMIn7KQI5PNN1XQXwQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.3.0.tgz", + "integrity": "sha512-PCSk3eK7Mxeuyatb22pcSx9dlgWNv3+M8PqPaYDokks8Y5/FX4soaOqj3yhAZr5k6Q5JWTOMYgaJBpbw11G9Eg==", "dev": true, "dependencies": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-broadcast-update": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.1.0.tgz", - "integrity": "sha512-O36hIfhjej/c5ar95pO67k1GQw0/bw5tKP7CERNgK+JdxBANQhDmIuOXZTNvwb2IHBx9hj2kxvcDyRIh5nzOgQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.3.0.tgz", + "integrity": "sha512-T9/F5VEdJVhwmrIAE+E/kq5at2OY6+OXXgOWQevnubal6sO92Gjo24v6dCVwQiclAF5NS3hlmsifRrpQzZCdUA==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-build": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.1.1.tgz", - "integrity": "sha512-WdkVdC70VMpf5NBCtNbiwdSZeKVuhTEd5PV3mAwpTQCGAB5XbOny1P9egEgNdetv4srAMmMKjvBk4RD58LpooA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.3.0.tgz", + "integrity": "sha512-JGL6vZTPlxnlqZRhR/K/msqg3wKP+m0wfEUVosK7gsYzSgeIxvZLi1ViJJzVL7CEeI8r7rGFV973RiEqkP3lWQ==", "dev": true, "dependencies": { "@apideck/better-ajv-errors": "^0.3.1", @@ -9068,21 +9390,21 @@ "strip-comments": "^2.0.1", "tempy": "^0.6.0", "upath": "^1.2.0", - "workbox-background-sync": "7.1.0", - "workbox-broadcast-update": "7.1.0", - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-google-analytics": "7.1.0", - "workbox-navigation-preload": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-range-requests": "7.1.0", - "workbox-recipes": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0", - "workbox-streams": "7.1.0", - "workbox-sw": "7.1.0", - "workbox-window": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-broadcast-update": "7.3.0", + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-google-analytics": "7.3.0", + "workbox-navigation-preload": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-range-requests": "7.3.0", + "workbox-recipes": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0", + "workbox-streams": "7.3.0", + "workbox-sw": "7.3.0", + "workbox-window": "7.3.0" }, "engines": { "node": ">=16.0.0" @@ -9247,127 +9569,127 @@ } }, "node_modules/workbox-cacheable-response": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.1.0.tgz", - "integrity": "sha512-iwsLBll8Hvua3xCuBB9h92+/e0wdsmSVgR2ZlvcfjepZWwhd3osumQB3x9o7flj+FehtWM2VHbZn8UJeBXXo6Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.3.0.tgz", + "integrity": "sha512-eAFERIg6J2LuyELhLlmeRcJFa5e16Mj8kL2yCDbhWE+HUun9skRQrGIFVUagqWj4DMaaPSMWfAolM7XZZxNmxA==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-core": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.1.0.tgz", - "integrity": "sha512-5KB4KOY8rtL31nEF7BfvU7FMzKT4B5TkbYa2tzkS+Peqj0gayMT9SytSFtNzlrvMaWgv6y/yvP9C0IbpFjV30Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.3.0.tgz", + "integrity": "sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw==", "dev": true }, "node_modules/workbox-expiration": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.1.0.tgz", - "integrity": "sha512-m5DcMY+A63rJlPTbbBNtpJ20i3enkyOtSgYfv/l8h+D6YbbNiA0zKEkCUaMsdDlxggla1oOfRkyqTvl5Ni5KQQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.3.0.tgz", + "integrity": "sha512-lpnSSLp2BM+K6bgFCWc5bS1LR5pAwDWbcKt1iL87/eTSJRdLdAwGQznZE+1czLgn/X05YChsrEegTNxjM067vQ==", "dev": true, "dependencies": { "idb": "^7.0.1", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-google-analytics": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.1.0.tgz", - "integrity": "sha512-FvE53kBQHfVTcZyczeBVRexhh7JTkyQ8HAvbVY6mXd2n2A7Oyz/9fIwnY406ZcDhvE4NFfKGjW56N4gBiqkrew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.3.0.tgz", + "integrity": "sha512-ii/tSfFdhjLHZ2BrYgFNTrb/yk04pw2hasgbM70jpZfLk0vdJAXgaiMAWsoE+wfJDNWoZmBYY0hMVI0v5wWDbg==", "dev": true, "dependencies": { - "workbox-background-sync": "7.1.0", - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-background-sync": "7.3.0", + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "node_modules/workbox-navigation-preload": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.1.0.tgz", - "integrity": "sha512-4wyAbo0vNI/X0uWNJhCMKxnPanNyhybsReMGN9QUpaePLTiDpKxPqFxl4oUmBNddPwIXug01eTSLVIFXimRG/A==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.3.0.tgz", + "integrity": "sha512-fTJzogmFaTv4bShZ6aA7Bfj4Cewaq5rp30qcxl2iYM45YD79rKIhvzNHiFj1P+u5ZZldroqhASXwwoyusnr2cg==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-precaching": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.1.0.tgz", - "integrity": "sha512-LyxzQts+UEpgtmfnolo0hHdNjoB7EoRWcF7EDslt+lQGd0lW4iTvvSe3v5JiIckQSB5KTW5xiCqjFviRKPj1zA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.3.0.tgz", + "integrity": "sha512-ckp/3t0msgXclVAYaNndAGeAoWQUv7Rwc4fdhWL69CCAb2UHo3Cef0KIUctqfQj1p8h6aGyz3w8Cy3Ihq9OmIw==", "dev": true, "dependencies": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "node_modules/workbox-range-requests": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.1.0.tgz", - "integrity": "sha512-m7+O4EHolNs5yb/79CrnwPR/g/PRzMFYEdo01LqwixVnc/sbzNSvKz0d04OE3aMRel1CwAAZQheRsqGDwATgPQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.3.0.tgz", + "integrity": "sha512-EyFmM1KpDzzAouNF3+EWa15yDEenwxoeXu9bgxOEYnFfCxns7eAxA9WSSaVd8kujFFt3eIbShNqa4hLQNFvmVQ==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-recipes": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.1.0.tgz", - "integrity": "sha512-NRrk4ycFN9BHXJB6WrKiRX3W3w75YNrNrzSX9cEZgFB5ubeGoO8s/SDmOYVrFYp9HMw6sh1Pm3eAY/1gVS8YLg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.3.0.tgz", + "integrity": "sha512-BJro/MpuW35I/zjZQBcoxsctgeB+kyb2JAP5EB3EYzePg8wDGoQuUdyYQS+CheTb+GhqJeWmVs3QxLI8EBP1sg==", "dev": true, "dependencies": { - "workbox-cacheable-response": "7.1.0", - "workbox-core": "7.1.0", - "workbox-expiration": "7.1.0", - "workbox-precaching": "7.1.0", - "workbox-routing": "7.1.0", - "workbox-strategies": "7.1.0" + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" } }, "node_modules/workbox-routing": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.1.0.tgz", - "integrity": "sha512-oOYk+kLriUY2QyHkIilxUlVcFqwduLJB7oRZIENbqPGeBP/3TWHYNNdmGNhz1dvKuw7aqvJ7CQxn27/jprlTdg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.3.0.tgz", + "integrity": "sha512-ZUlysUVn5ZUzMOmQN3bqu+gK98vNfgX/gSTZ127izJg/pMMy4LryAthnYtjuqcjkN4HEAx1mdgxNiKJMZQM76A==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-strategies": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.1.0.tgz", - "integrity": "sha512-/UracPiGhUNehGjRm/tLUQ+9PtWmCbRufWtV0tNrALuf+HZ4F7cmObSEK+E4/Bx1p8Syx2tM+pkIrvtyetdlew==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.3.0.tgz", + "integrity": "sha512-tmZydug+qzDFATwX7QiEL5Hdf7FrkhjaF9db1CbB39sDmEZJg3l9ayDvPxy8Y18C3Y66Nrr9kkN1f/RlkDgllg==", "dev": true, "dependencies": { - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/workbox-streams": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.1.0.tgz", - "integrity": "sha512-WyHAVxRXBMfysM8ORwiZnI98wvGWTVAq/lOyBjf00pXFvG0mNaVz4Ji+u+fKa/mf1i2SnTfikoYKto4ihHeS6w==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.3.0.tgz", + "integrity": "sha512-SZnXucyg8x2Y61VGtDjKPO5EgPUG5NDn/v86WYHX+9ZqvAsGOytP0Jxp1bl663YUuMoXSAtsGLL+byHzEuMRpw==", "dev": true, "dependencies": { - "workbox-core": "7.1.0", - "workbox-routing": "7.1.0" + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0" } }, "node_modules/workbox-sw": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.1.0.tgz", - "integrity": "sha512-Hml/9+/njUXBglv3dtZ9WBKHI235AQJyLBV1G7EFmh4/mUdSQuXui80RtjDeVRrXnm/6QWgRUEHG3/YBVbxtsA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.3.0.tgz", + "integrity": "sha512-aCUyoAZU9IZtH05mn0ACUpyHzPs0lMeJimAYkQkBsOWiqaJLgusfDCR+yllkPkFRxWpZKF8vSvgHYeG7LwhlmA==", "dev": true }, "node_modules/workbox-window": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.1.0.tgz", - "integrity": "sha512-ZHeROyqR+AS5UPzholQRDttLFqGMwP0Np8MKWAdyxsDETxq3qOAyXvqessc3GniohG6e0mAqSQyKOHmT8zPF7g==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.3.0.tgz", + "integrity": "sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==", "dev": true, "dependencies": { "@types/trusted-types": "^2.0.2", - "workbox-core": "7.1.0" + "workbox-core": "7.3.0" } }, "node_modules/wrap-ansi": { @@ -9375,6 +9697,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -9393,6 +9716,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -9410,6 +9734,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -9419,6 +9744,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -9429,35 +9755,19 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -9472,6 +9782,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -9479,18 +9790,6 @@ "node": ">=8" } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -9498,9 +9797,9 @@ "dev": true }, "node_modules/xml-utils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.7.0.tgz", - "integrity": "sha512-bWB489+RQQclC7A9OW8e5BzbT8Tu//jtAOvkYwewFr+Q9T9KDGvfzC1lp0pYPEQPEoPQLDkmxkepSC/2gIAZGw==" + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.10.1.tgz", + "integrity": "sha512-Dn6vJ1Z9v1tepSjvnCpwk5QqwIPcEFKdgnjqfYOABv1ngSofuAhtlugcUC3ehS1OHdgDWSG6C5mvj+Qm15udTQ==" }, "node_modules/xtend": { "version": "4.0.2", diff --git a/packages/java/tests/spring/react-i18n/package.json b/packages/java/tests/spring/react-i18n/package.json index e08ae534e3..3b804091be 100644 --- a/packages/java/tests/spring/react-i18n/package.json +++ b/packages/java/tests/spring/react-i18n/package.json @@ -1,10 +1,10 @@ { - "name": "no-name", + "private": true, "license": "UNLICENSED", "type": "module", "dependencies": { - "@polymer/polymer": "3.5.1", - "@vaadin/bundles": "24.5.0-alpha3", + "@polymer/polymer": "3.5.2", + "@vaadin/bundles": "24.7.0-alpha4", "@vaadin/common-frontend": "0.0.19", "@vaadin/hilla-file-router": "file:../../../../ts/file-router", "@vaadin/hilla-frontend": "file:../../../../ts/frontend", @@ -14,26 +14,26 @@ "@vaadin/hilla-react-form": "file:../../../../ts/react-form", "@vaadin/hilla-react-i18n": "file:../../../../ts/react-i18n", "@vaadin/hilla-react-signals": "file:../../../../ts/react-signals", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/react-components": "24.5.0-alpha3", - "@vaadin/react-components-pro": "24.5.0-alpha3", - "@vaadin/router": "1.7.5", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/react-components": "24.7.0-alpha4", + "@vaadin/react-components-pro": "24.7.0-alpha4", "@vaadin/vaadin-development-mode-detector": "2.0.7", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "@vaadin/vaadin-usage-statistics": "2.1.2", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "@vaadin/vaadin-usage-statistics": "2.1.3", "construct-style-sheets-polyfill": "3.1.0", - "lit": "3.1.4", + "lit": "3.2.1", "react": "18.3.1", "react-dom": "18.3.1", - "react-router-dom": "6.23.1" + "react-router": "7.1.1" }, "devDependencies": { - "@babel/preset-react": "7.24.7", - "@rollup/plugin-replace": "5.0.7", - "@rollup/pluginutils": "5.1.0", - "@types/react": "18.3.3", - "@types/react-dom": "18.3.0", + "@babel/preset-react": "7.26.3", + "@preact/signals-react-transform": "0.5.1", + "@rollup/plugin-replace": "6.0.2", + "@rollup/pluginutils": "5.1.4", + "@types/react": "18.3.18", + "@types/react-dom": "18.3.5", "@vaadin/hilla-generator-cli": "file:../../../../ts/generator-cli", "@vaadin/hilla-generator-core": "file:../../../../ts/generator-core", "@vaadin/hilla-generator-plugin-backbone": "file:../../../../ts/generator-plugin-backbone", @@ -41,79 +41,81 @@ "@vaadin/hilla-generator-plugin-client": "file:../../../../ts/generator-plugin-client", "@vaadin/hilla-generator-plugin-model": "file:../../../../ts/generator-plugin-model", "@vaadin/hilla-generator-plugin-push": "file:../../../../ts/generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "file:../../../../ts/generator-plugin-signals", "@vaadin/hilla-generator-plugin-subtypes": "file:../../../../ts/generator-plugin-subtypes", "@vaadin/hilla-generator-utils": "file:../../../../ts/generator-utils", - "@vitejs/plugin-react": "4.3.1", - "async": "3.2.5", - "glob": "10.4.1", + "@vitejs/plugin-react": "4.3.4", + "async": "3.2.6", + "glob": "11.0.0", "rollup-plugin-brotli": "3.1.0", - "rollup-plugin-visualizer": "5.12.0", + "rollup-plugin-visualizer": "5.13.1", "strip-css-comments": "5.0.0", "transform-ast": "2.4.4", - "typescript": "5.4.5", - "vite": "5.3.1", - "vite-plugin-checker": "0.6.4", - "workbox-build": "7.1.1", - "workbox-core": "7.1.0", - "workbox-precaching": "7.1.0" + "typescript": "5.7.3", + "vite": "6.0.6", + "vite-plugin-checker": "0.8.0", + "workbox-build": "7.3.0", + "workbox-core": "7.3.0", + "workbox-precaching": "7.3.0" }, "vaadin": { "dependencies": { - "@polymer/polymer": "3.5.1", - "@vaadin/bundles": "24.5.0-alpha3", + "@polymer/polymer": "3.5.2", + "@vaadin/bundles": "24.7.0-alpha4", "@vaadin/common-frontend": "0.0.19", - "@vaadin/hilla-file-router": "24.5.0-alpha2", - "@vaadin/hilla-frontend": "24.5.0-alpha2", - "@vaadin/hilla-lit-form": "24.5.0-alpha2", - "@vaadin/hilla-react-auth": "24.5.0-alpha2", - "@vaadin/hilla-react-crud": "24.5.0-alpha2", - "@vaadin/hilla-react-form": "24.5.0-alpha2", - "@vaadin/hilla-react-i18n": "24.5.0-alpha2", - "@vaadin/hilla-react-signals": "24.5.0-alpha2", - "@vaadin/polymer-legacy-adapter": "24.5.0-alpha3", - "@vaadin/react-components": "24.5.0-alpha3", - "@vaadin/react-components-pro": "24.5.0-alpha3", - "@vaadin/router": "1.7.5", + "@vaadin/hilla-file-router": "24.7.0-alpha5", + "@vaadin/hilla-frontend": "24.7.0-alpha5", + "@vaadin/hilla-lit-form": "24.7.0-alpha5", + "@vaadin/hilla-react-auth": "24.7.0-alpha5", + "@vaadin/hilla-react-crud": "24.7.0-alpha5", + "@vaadin/hilla-react-form": "24.7.0-alpha5", + "@vaadin/hilla-react-i18n": "24.7.0-alpha5", + "@vaadin/hilla-react-signals": "24.7.0-alpha5", + "@vaadin/polymer-legacy-adapter": "24.7.0-alpha4", + "@vaadin/react-components": "24.7.0-alpha4", + "@vaadin/react-components-pro": "24.7.0-alpha4", "@vaadin/vaadin-development-mode-detector": "2.0.7", - "@vaadin/vaadin-lumo-styles": "24.5.0-alpha3", - "@vaadin/vaadin-themable-mixin": "24.5.0-alpha3", - "@vaadin/vaadin-usage-statistics": "2.1.2", + "@vaadin/vaadin-lumo-styles": "24.7.0-alpha4", + "@vaadin/vaadin-themable-mixin": "24.7.0-alpha4", + "@vaadin/vaadin-usage-statistics": "2.1.3", "construct-style-sheets-polyfill": "3.1.0", - "lit": "3.1.4", + "lit": "3.2.1", "react": "18.3.1", "react-dom": "18.3.1", - "react-router-dom": "6.23.1" + "react-router": "7.1.1" }, "devDependencies": { - "@babel/preset-react": "7.24.7", - "@rollup/plugin-replace": "5.0.7", - "@rollup/pluginutils": "5.1.0", - "@types/react": "18.3.3", - "@types/react-dom": "18.3.0", - "@vaadin/hilla-generator-cli": "24.5.0-alpha2", - "@vaadin/hilla-generator-core": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-backbone": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-barrel": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-client": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-model": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-push": "24.5.0-alpha2", - "@vaadin/hilla-generator-plugin-subtypes": "24.5.0-alpha2", - "@vaadin/hilla-generator-utils": "24.5.0-alpha2", - "@vitejs/plugin-react": "4.3.1", - "async": "3.2.5", - "glob": "10.4.1", + "@babel/preset-react": "7.26.3", + "@preact/signals-react-transform": "0.5.1", + "@rollup/plugin-replace": "6.0.2", + "@rollup/pluginutils": "5.1.4", + "@types/react": "18.3.18", + "@types/react-dom": "18.3.5", + "@vaadin/hilla-generator-cli": "24.7.0-alpha5", + "@vaadin/hilla-generator-core": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-backbone": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-barrel": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-client": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-model": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-push": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-signals": "24.7.0-alpha5", + "@vaadin/hilla-generator-plugin-subtypes": "24.7.0-alpha5", + "@vaadin/hilla-generator-utils": "24.7.0-alpha5", + "@vitejs/plugin-react": "4.3.4", + "async": "3.2.6", + "glob": "11.0.0", "rollup-plugin-brotli": "3.1.0", - "rollup-plugin-visualizer": "5.12.0", + "rollup-plugin-visualizer": "5.13.1", "strip-css-comments": "5.0.0", "transform-ast": "2.4.4", - "typescript": "5.4.5", - "vite": "5.3.1", - "vite-plugin-checker": "0.6.4", - "workbox-build": "7.1.1", - "workbox-core": "7.1.0", - "workbox-precaching": "7.1.0" + "typescript": "5.7.3", + "vite": "6.0.6", + "vite-plugin-checker": "0.8.0", + "workbox-build": "7.3.0", + "workbox-core": "7.3.0", + "workbox-precaching": "7.3.0" }, - "hash": "68ebce7dffa1e9533019990f67598371fad14ee125f8288ff6ae63e84a41c0f0" + "hash": "8643ab3815724609fb5c2b4c4c822c014a920c038d21af0f5435004e63894239" }, "overrides": { "@vaadin/common-frontend": "$@vaadin/common-frontend", @@ -123,6 +125,7 @@ "@vaadin/hilla-generator-plugin-model": "$@vaadin/hilla-generator-plugin-model", "@vaadin/hilla-generator-plugin-barrel": "$@vaadin/hilla-generator-plugin-barrel", "@vaadin/hilla-generator-plugin-push": "$@vaadin/hilla-generator-plugin-push", + "@vaadin/hilla-generator-plugin-signals": "$@vaadin/hilla-generator-plugin-signals", "@vaadin/hilla-generator-core": "$@vaadin/hilla-generator-core", "@vaadin/hilla-generator-plugin-client": "$@vaadin/hilla-generator-plugin-client", "@vaadin/hilla-generator-utils": "$@vaadin/hilla-generator-utils", @@ -130,7 +133,6 @@ "@vaadin/hilla-generator-cli": "$@vaadin/hilla-generator-cli", "@vaadin/hilla-react-form": "$@vaadin/hilla-react-form", "@vaadin/hilla-react-crud": "$@vaadin/hilla-react-crud", - "react-router-dom": "$react-router-dom", "@vaadin/hilla-react-auth": "$@vaadin/hilla-react-auth", "@vaadin/hilla-frontend": "$@vaadin/hilla-frontend", "@vaadin/hilla-generator-plugin-subtypes": "$@vaadin/hilla-generator-plugin-subtypes", @@ -143,10 +145,10 @@ "@vaadin/bundles": "$@vaadin/bundles", "@vaadin/polymer-legacy-adapter": "$@vaadin/polymer-legacy-adapter", "@vaadin/vaadin-development-mode-detector": "$@vaadin/vaadin-development-mode-detector", - "@vaadin/router": "$@vaadin/router", "@vaadin/vaadin-usage-statistics": "$@vaadin/vaadin-usage-statistics", "@vaadin/react-components-pro": "$@vaadin/react-components-pro", "@vaadin/vaadin-themable-mixin": "$@vaadin/vaadin-themable-mixin", - "@vaadin/vaadin-lumo-styles": "$@vaadin/vaadin-lumo-styles" + "@vaadin/vaadin-lumo-styles": "$@vaadin/vaadin-lumo-styles", + "react-router": "$react-router" } } diff --git a/packages/java/tests/spring/react-i18n/pom.xml b/packages/java/tests/spring/react-i18n/pom.xml index 24ab6bc9b0..d7dfd0ae8f 100644 --- a/packages/java/tests/spring/react-i18n/pom.xml +++ b/packages/java/tests/spring/react-i18n/pom.xml @@ -6,7 +6,7 @@ com.vaadin tests-spring - 24.5-SNAPSHOT + 24.7-SNAPSHOT tests-react-i18n ITs for React I18N diff --git a/packages/java/tests/spring/react-signals/frontend/App.tsx b/packages/java/tests/spring/react-signals/frontend/App.tsx deleted file mode 100644 index 6b7546d1ed..0000000000 --- a/packages/java/tests/spring/react-signals/frontend/App.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import router from 'Frontend/routes.js'; -import { RouterProvider } from 'react-router-dom'; - -export default function App() { - return ; -} diff --git a/packages/java/tests/spring/react-signals/frontend/MainLayout.tsx b/packages/java/tests/spring/react-signals/frontend/MainLayout.tsx deleted file mode 100644 index 779dbd23bb..0000000000 --- a/packages/java/tests/spring/react-signals/frontend/MainLayout.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { AppLayout } from '@vaadin/react-components/AppLayout.js'; -import { DrawerToggle } from '@vaadin/react-components/DrawerToggle.js'; -import { Scroller } from '@vaadin/react-components/Scroller.js'; -import { routes } from 'Frontend/routes.js'; -import { NavLink, Outlet } from 'react-router-dom'; - -export default function MainLayout() { - const menuRoutes = routes[0]!.children; - - return ( - -
-

My App

-
- - - -