diff --git a/package-lock.json b/package-lock.json index f5ed986a05..1705782e17 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1133,6 +1133,10 @@ "resolved": "packages/ts/generator-typescript-utils", "link": true }, + "node_modules/@hilla/react-auth": { + "resolved": "packages/ts/react-auth", + "link": true + }, "node_modules/@hilla/react-components": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/@hilla/react-components/-/react-components-2.1.8.tgz", @@ -2736,6 +2740,15 @@ "@webcomponents/shadycss": "^1.9.1" } }, + "node_modules/@remix-run/router": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.9.0.tgz", + "integrity": "sha512-bV63itrKBC0zdT27qYm6SDZHlkXwFL1xMBuhkn+X7l0+IIhNaH5wuuvZKp6eKhCD4KFhujhfhCT1YxXW6esUIA==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@sigstore/bundle": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-1.1.0.tgz", @@ -16631,6 +16644,38 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, + "node_modules/react-router": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.16.0.tgz", + "integrity": "sha512-VT4Mmc4jj5YyjpOi5jOf0I+TYzGpvzERy4ckNSvSh2RArv8LLoCxlsZ2D+tc7zgjxcY34oTz2hZaeX5RVprKqA==", + "dev": true, + "dependencies": { + "@remix-run/router": "1.9.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.16.0.tgz", + "integrity": "sha512-aTfBLv3mk/gaKLxgRDUPbPw+s4Y/O+ma3rEN1u8EgEpLpPe6gNjIsWt9rxushMHHMb7mSwxRGdGlGdvmFsyPIg==", + "dev": true, + "dependencies": { + "@remix-run/router": "1.9.0", + "react-router": "6.16.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, "node_modules/read": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/read/-/read-2.1.0.tgz", @@ -20368,6 +20413,34 @@ "lit": "^2.3.0" } }, + "packages/ts/react-auth": { + "name": "@hilla/react-auth", + "version": "2.2.0-beta1", + "license": "Apache-2.0", + "dependencies": { + "@hilla/frontend": "*" + }, + "devDependencies": { + "@esm-bundle/chai": "^4.3.4-fix.0", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.4.3", + "@types/chai": "^4.3.5", + "@types/chai-dom": "^1.11.0", + "@types/mocha": "^10.0.1", + "@types/react": "^18.2.20", + "@types/sinon": "^10.0.16", + "@types/sinon-chai": "^3.2.9", + "@types/validator": "^13.11.1", + "chai-dom": "^1.11.0", + "react-router-dom": "^6.16.0", + "sinon": "^15.2.0", + "sinon-chai": "^3.7.0", + "typescript": "^5.1.6" + }, + "peerDependencies": { + "react": "^18" + } + }, "packages/ts/react-form": { "name": "@hilla/react-form", "version": "2.3.0-alpha3", diff --git a/packages/java/hilla-react/src/main/java/dev/hilla/HillaReactAuth.java b/packages/java/hilla-react/src/main/java/dev/hilla/HillaReactAuth.java new file mode 100644 index 0000000000..a68a25e963 --- /dev/null +++ b/packages/java/hilla-react/src/main/java/dev/hilla/HillaReactAuth.java @@ -0,0 +1,10 @@ +package dev.hilla; + +import com.vaadin.flow.component.dependency.NpmPackage; + +/** + * Empty class that adds @hilla/react-auth npm package dependency. + */ +@NpmPackage(value = "@hilla/react-auth", version = "2.2.0-beta1") +public class HillaReactAuth { +} 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 f1f081b792..f275fea977 100644 --- a/packages/java/tests/gradle/single-module-tests/package-lock.json +++ b/packages/java/tests/gradle/single-module-tests/package-lock.json @@ -18,6 +18,7 @@ "@hilla/generator-typescript-plugin-push": "file:../../../../ts/generator-typescript-plugin-push", "@hilla/generator-typescript-utils": "file:../../../../ts/generator-typescript-utils", "@hilla/hilla-frontend": "file:../../../../ts/hilla-frontend", + "@hilla/react-auth": "file:../../../../ts/react-auth", "@hilla/react-components": "2.1.0-alpha9", "@hilla/react-form": "file:../../../../ts/react-form", "@hilla/react-grid": "file:../../../../ts/react-grid", @@ -63,11 +64,11 @@ } }, "../../../../ts/form": { - "version": "2.2.0-beta1", + "name": "@hilla/form", + "version": "2.3.0-alpha1", "license": "Apache-2.0", "dependencies": { "@hilla/frontend": "*", - "rimraf": "^5.0.1", "validator": "^13.11.0" }, "devDependencies": { @@ -88,10 +89,11 @@ } }, "../../../../ts/generator-typescript-cli": { - "version": "2.2.0-beta1", + "name": "@hilla/generator-typescript-cli", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "get-stdin": "^9.0.0", "meow": "^12.1.0" }, @@ -99,7 +101,7 @@ "tsgen": "bin/index.js" }, "devDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/chai-as-promised": "^7.1.5", "@types/mocha": "^10.0.1", @@ -122,15 +124,16 @@ "node": ">= 16.13" }, "peerDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1" + "@hilla/generator-typescript-core": "^2.3.0-alpha1" } }, "../../../../ts/generator-typescript-core": { - "version": "2.2.0-beta1", + "name": "@hilla/generator-typescript-core", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { "@apidevtools/swagger-parser": "^10.1.0", - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "meow": "^12.1.0", "openapi-types": "^12.1.3", "typescript": "^5.1.6" @@ -156,17 +159,18 @@ } }, "../../../../ts/generator-typescript-plugin-backbone": { - "version": "2.2.0-beta1", + "name": "@hilla/generator-typescript-plugin-backbone", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "^5.1.6" }, "devDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -187,20 +191,21 @@ "node": ">= 16.13" }, "peerDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1" + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1" } }, "../../../../ts/generator-typescript-plugin-barrel": { - "version": "2.2.0-beta1", + "name": "@hilla/generator-typescript-plugin-barrel", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "typescript": "^5.1.6" }, "devDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-backbone": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-backbone": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -221,19 +226,20 @@ "node": ">= 16.13" }, "peerDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-backbone": "^2.2.0-beta1" + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-backbone": "^2.3.0-alpha1" } }, "../../../../ts/generator-typescript-plugin-client": { - "version": "2.2.0-beta1", + "name": "@hilla/generator-typescript-plugin-client", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "typescript": "^5.1.6" }, "devDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -254,21 +260,22 @@ "node": ">= 16.13" }, "peerDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1" + "@hilla/generator-typescript-core": "^2.3.0-alpha1" } }, "../../../../ts/generator-typescript-plugin-model": { - "version": "2.2.0-beta1", + "name": "@hilla/generator-typescript-plugin-model", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "^5.1.6" }, "devDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -289,23 +296,24 @@ "node": ">= 16.13" }, "peerDependencies": { - "@hilla/form": "^2.2.0-beta1", - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-backbone": "^2.2.0-beta1" + "@hilla/form": "^2.3.0-alpha1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-backbone": "^2.3.0-alpha1" } }, "../../../../ts/generator-typescript-plugin-push": { - "version": "2.2.0-beta1", + "name": "@hilla/generator-typescript-plugin-push", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "^5.1.6" }, "devDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -326,12 +334,13 @@ "node": ">= 16.13" }, "peerDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1" + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1" } }, "../../../../ts/generator-typescript-utils": { - "version": "2.2.0-beta1", + "name": "@hilla/generator-typescript-utils", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { "pino": "^8.15.0", @@ -389,12 +398,11 @@ "lit": "^2.3.0" } }, - "../../../../ts/react-form": { + "../../../../ts/react-auth": { "version": "2.2.0-beta1", "license": "Apache-2.0", "dependencies": { - "@hilla/form": "*", - "@types/react": "^18.2.20" + "@hilla/frontend": "*" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -403,6 +411,36 @@ "@types/chai": "^4.3.5", "@types/chai-dom": "^1.11.0", "@types/mocha": "^10.0.1", + "@types/react": "^18.2.20", + "@types/sinon": "^10.0.16", + "@types/sinon-chai": "^3.2.9", + "@types/validator": "^13.11.1", + "chai-dom": "^1.11.0", + "react-router-dom": "^6.16.0", + "sinon": "^15.2.0", + "sinon-chai": "^3.7.0", + "typescript": "^5.1.6" + }, + "peerDependencies": { + "react": "^18", + "react-router-dom": "^6" + } + }, + "../../../../ts/react-form": { + "name": "@hilla/react-form", + "version": "2.3.0-alpha1", + "license": "Apache-2.0", + "dependencies": { + "@hilla/form": "*" + }, + "devDependencies": { + "@esm-bundle/chai": "^4.3.4-fix.0", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.4.3", + "@types/chai": "^4.3.5", + "@types/chai-dom": "^1.11.0", + "@types/mocha": "^10.0.1", + "@types/react": "^18.2.20", "@types/sinon": "^10.0.16", "@types/sinon-chai": "^3.2.9", "@types/validator": "^13.11.1", @@ -416,10 +454,12 @@ } }, "../../../../ts/react-grid": { - "version": "2.2.0-beta1", + "name": "@hilla/react-grid", + "version": "2.3.0-alpha1", "license": "Apache-2.0", "dependencies": { - "@types/react": "^18.2.20" + "@hilla/form": "*", + "@hilla/react-components": "^2.1.7" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -428,6 +468,7 @@ "@types/chai": "^4.3.5", "@types/chai-dom": "^1.11.0", "@types/mocha": "^10.0.1", + "@types/react": "^18.2.20", "@types/sinon": "^10.0.16", "@types/sinon-chai": "^3.2.9", "@types/validator": "^13.11.1", @@ -2615,6 +2656,10 @@ "resolved": "../../../../ts/hilla-frontend", "link": true }, + "node_modules/@hilla/react-auth": { + "resolved": "../../../../ts/react-auth", + "link": true + }, "node_modules/@hilla/react-components": { "version": "2.1.0-alpha9", "resolved": "https://registry.npmjs.org/@hilla/react-components/-/react-components-2.1.0-alpha9.tgz", @@ -10311,7 +10356,6 @@ "@types/sinon-chai": "^3.2.9", "@types/validator": "^13.11.1", "chai-dom": "^1.11.0", - "rimraf": "^5.0.1", "sinon": "^15.2.0", "sinon-chai": "^3.7.0", "typescript": "^5.1.6", @@ -10346,8 +10390,8 @@ "@hilla/generator-typescript-cli": { "version": "file:../../../../ts/generator-typescript-cli", "requires": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/chai-as-promised": "^7.1.5", "@types/mocha": "^10.0.1", @@ -10373,7 +10417,7 @@ "version": "file:../../../../ts/generator-typescript-core", "requires": { "@apidevtools/swagger-parser": "^10.1.0", - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -10396,9 +10440,9 @@ "@hilla/generator-typescript-plugin-backbone": { "version": "file:../../../../ts/generator-typescript-plugin-backbone", "requires": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1", - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -10422,9 +10466,9 @@ "@hilla/generator-typescript-plugin-barrel": { "version": "file:../../../../ts/generator-typescript-plugin-barrel", "requires": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-backbone": "^2.2.0-beta1", - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-backbone": "^2.3.0-alpha1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -10446,8 +10490,8 @@ "@hilla/generator-typescript-plugin-client": { "version": "file:../../../../ts/generator-typescript-plugin-client", "requires": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -10469,9 +10513,9 @@ "@hilla/generator-typescript-plugin-model": { "version": "file:../../../../ts/generator-typescript-plugin-model", "requires": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1", - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -10495,9 +10539,9 @@ "@hilla/generator-typescript-plugin-push": { "version": "file:../../../../ts/generator-typescript-plugin-push", "requires": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1", - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -10565,6 +10609,27 @@ "typescript": "^5.1.6" } }, + "@hilla/react-auth": { + "version": "file:../../../../ts/react-auth", + "requires": { + "@esm-bundle/chai": "^4.3.4-fix.0", + "@hilla/frontend": "*", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.4.3", + "@types/chai": "^4.3.5", + "@types/chai-dom": "^1.11.0", + "@types/mocha": "^10.0.1", + "@types/react": "^18.2.20", + "@types/sinon": "^10.0.16", + "@types/sinon-chai": "^3.2.9", + "@types/validator": "^13.11.1", + "chai-dom": "^1.11.0", + "react-router-dom": "^6.16.0", + "sinon": "^15.2.0", + "sinon-chai": "^3.7.0", + "typescript": "^5.1.6" + } + }, "@hilla/react-components": { "version": "2.1.0-alpha9", "resolved": "https://registry.npmjs.org/@hilla/react-components/-/react-components-2.1.0-alpha9.tgz", @@ -10652,6 +10717,8 @@ "version": "file:../../../../ts/react-grid", "requires": { "@esm-bundle/chai": "^4.3.4-fix.0", + "@hilla/form": "*", + "@hilla/react-components": "^2.1.7", "@testing-library/react": "^14.0.0", "@testing-library/user-event": "^14.4.3", "@types/chai": "^4.3.5", diff --git a/packages/java/tests/gradle/single-module-tests/package.json b/packages/java/tests/gradle/single-module-tests/package.json index 68612927c8..fc2edda468 100644 --- a/packages/java/tests/gradle/single-module-tests/package.json +++ b/packages/java/tests/gradle/single-module-tests/package.json @@ -13,6 +13,7 @@ "@hilla/generator-typescript-plugin-push": "file:../../../../ts/generator-typescript-plugin-push", "@hilla/generator-typescript-utils": "file:../../../../ts/generator-typescript-utils", "@hilla/hilla-frontend": "file:../../../../ts/hilla-frontend", + "@hilla/react-auth": "file:../../../../ts/react-auth", "@hilla/react-components": "2.1.0-alpha9", "@hilla/react-form": "file:../../../../ts/react-form", "@hilla/react-grid": "file:../../../../ts/react-grid", diff --git a/packages/java/tests/gradle/single-module/package-lock.json b/packages/java/tests/gradle/single-module/package-lock.json index cf5585e57c..aa3e06acbf 100644 --- a/packages/java/tests/gradle/single-module/package-lock.json +++ b/packages/java/tests/gradle/single-module/package-lock.json @@ -18,9 +18,9 @@ "@hilla/generator-typescript-plugin-push": "file:../../../../ts/generator-typescript-plugin-push", "@hilla/generator-typescript-utils": "file:../../../../ts/generator-typescript-utils", "@hilla/hilla-frontend": "file:../../../../ts/hilla-frontend", + "@hilla/react-auth": "file:../../../../ts/react-auth", "@hilla/react-components": "2.1.7", "@hilla/react-form": "file:../../../../ts/react-form", - "@hilla/react-grid": "file:../../../../ts/react-grid", "@polymer/polymer": "3.5.1", "@vaadin-component-factory/vcf-nav": "1.1.0", "@vaadin/bundles": "24.1.7", @@ -57,11 +57,10 @@ }, "../../../../ts/form": { "name": "@hilla/form", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache-2.0", "dependencies": { "@hilla/frontend": "*", - "rimraf": "^5.0.1", "validator": "^13.11.0" }, "devDependencies": { @@ -83,10 +82,10 @@ }, "../../../../ts/generator-typescript-cli": { "name": "@hilla/generator-typescript-cli", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "get-stdin": "^9.0.0", "meow": "^12.1.0" }, @@ -94,7 +93,7 @@ "tsgen": "bin/index.js" }, "devDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/chai-as-promised": "^7.1.5", "@types/mocha": "^10.0.1", @@ -117,16 +116,16 @@ "node": ">= 16.13" }, "peerDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1" + "@hilla/generator-typescript-core": "^2.3.0-alpha1" } }, "../../../../ts/generator-typescript-core": { "name": "@hilla/generator-typescript-core", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { "@apidevtools/swagger-parser": "^10.1.0", - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "meow": "^12.1.0", "openapi-types": "^12.1.3", "typescript": "^5.1.6" @@ -153,17 +152,17 @@ }, "../../../../ts/generator-typescript-plugin-backbone": { "name": "@hilla/generator-typescript-plugin-backbone", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "^5.1.6" }, "devDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -184,21 +183,21 @@ "node": ">= 16.13" }, "peerDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1" + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1" } }, "../../../../ts/generator-typescript-plugin-barrel": { "name": "@hilla/generator-typescript-plugin-barrel", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "typescript": "^5.1.6" }, "devDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-backbone": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-backbone": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -219,20 +218,20 @@ "node": ">= 16.13" }, "peerDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-backbone": "^2.2.0-beta1" + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-backbone": "^2.3.0-alpha1" } }, "../../../../ts/generator-typescript-plugin-client": { "name": "@hilla/generator-typescript-plugin-client", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "typescript": "^5.1.6" }, "devDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -253,22 +252,22 @@ "node": ">= 16.13" }, "peerDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1" + "@hilla/generator-typescript-core": "^2.3.0-alpha1" } }, "../../../../ts/generator-typescript-plugin-model": { "name": "@hilla/generator-typescript-plugin-model", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "^5.1.6" }, "devDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -289,24 +288,24 @@ "node": ">= 16.13" }, "peerDependencies": { - "@hilla/form": "^2.2.0-beta1", - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-backbone": "^2.2.0-beta1" + "@hilla/form": "^2.3.0-alpha1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-backbone": "^2.3.0-alpha1" } }, "../../../../ts/generator-typescript-plugin-push": { "name": "@hilla/generator-typescript-plugin-push", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "^5.1.6" }, "devDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -327,13 +326,13 @@ "node": ">= 16.13" }, "peerDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1" + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1" } }, "../../../../ts/generator-typescript-utils": { "name": "@hilla/generator-typescript-utils", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { "pino": "^8.15.0", @@ -392,12 +391,41 @@ "lit": "^2.3.0" } }, - "../../../../ts/react-form": { + "../../../../ts/react-auth": { + "name": "@hilla/react-auth", "version": "2.2.0-beta1", "license": "Apache-2.0", "dependencies": { - "@hilla/form": "*", - "@types/react": "^18.2.20" + "@hilla/frontend": "*" + }, + "devDependencies": { + "@esm-bundle/chai": "^4.3.4-fix.0", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.4.3", + "@types/chai": "^4.3.5", + "@types/chai-dom": "^1.11.0", + "@types/mocha": "^10.0.1", + "@types/react": "^18.2.20", + "@types/sinon": "^10.0.16", + "@types/sinon-chai": "^3.2.9", + "@types/validator": "^13.11.1", + "chai-dom": "^1.11.0", + "react-router-dom": "^6.16.0", + "sinon": "^15.2.0", + "sinon-chai": "^3.7.0", + "typescript": "^5.1.6" + }, + "peerDependencies": { + "react": "^18", + "react-router-dom": "^6" + } + }, + "../../../../ts/react-form": { + "name": "@hilla/react-form", + "version": "2.3.0-alpha1", + "license": "Apache-2.0", + "dependencies": { + "@hilla/form": "*" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -406,6 +434,7 @@ "@types/chai": "^4.3.5", "@types/chai-dom": "^1.11.0", "@types/mocha": "^10.0.1", + "@types/react": "^18.2.20", "@types/sinon": "^10.0.16", "@types/sinon-chai": "^3.2.9", "@types/validator": "^13.11.1", @@ -419,10 +448,13 @@ } }, "../../../../ts/react-grid": { - "version": "2.2.0-beta1", + "name": "@hilla/react-grid", + "version": "2.3.0-alpha1", + "extraneous": true, "license": "Apache-2.0", "dependencies": { - "@types/react": "^18.2.20" + "@hilla/form": "*", + "@hilla/react-components": "^2.1.7" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -431,6 +463,7 @@ "@types/chai": "^4.3.5", "@types/chai-dom": "^1.11.0", "@types/mocha": "^10.0.1", + "@types/react": "^18.2.20", "@types/sinon": "^10.0.16", "@types/sinon-chai": "^3.2.9", "@types/validator": "^13.11.1", @@ -2618,6 +2651,10 @@ "resolved": "../../../../ts/hilla-frontend", "link": true }, + "node_modules/@hilla/react-auth": { + "resolved": "../../../../ts/react-auth", + "link": true + }, "node_modules/@hilla/react-components": { "version": "2.1.7", "resolved": "https://registry.npmjs.org/@hilla/react-components/-/react-components-2.1.7.tgz", @@ -2700,10 +2737,6 @@ "resolved": "../../../../ts/react-form", "link": true }, - "node_modules/@hilla/react-grid": { - "resolved": "../../../../ts/react-grid", - "link": true - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", @@ -10336,7 +10369,6 @@ "@types/sinon-chai": "^3.2.9", "@types/validator": "^13.11.1", "chai-dom": "^1.11.0", - "rimraf": "^5.0.1", "sinon": "^15.2.0", "sinon-chai": "^3.7.0", "typescript": "^5.1.6", @@ -10371,8 +10403,8 @@ "@hilla/generator-typescript-cli": { "version": "file:../../../../ts/generator-typescript-cli", "requires": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/chai-as-promised": "^7.1.5", "@types/mocha": "^10.0.1", @@ -10398,7 +10430,7 @@ "version": "file:../../../../ts/generator-typescript-core", "requires": { "@apidevtools/swagger-parser": "^10.1.0", - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -10421,9 +10453,9 @@ "@hilla/generator-typescript-plugin-backbone": { "version": "file:../../../../ts/generator-typescript-plugin-backbone", "requires": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1", - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -10447,9 +10479,9 @@ "@hilla/generator-typescript-plugin-barrel": { "version": "file:../../../../ts/generator-typescript-plugin-barrel", "requires": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-backbone": "^2.2.0-beta1", - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-backbone": "^2.3.0-alpha1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -10471,8 +10503,8 @@ "@hilla/generator-typescript-plugin-client": { "version": "file:../../../../ts/generator-typescript-plugin-client", "requires": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -10494,9 +10526,9 @@ "@hilla/generator-typescript-plugin-model": { "version": "file:../../../../ts/generator-typescript-plugin-model", "requires": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1", - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -10520,9 +10552,9 @@ "@hilla/generator-typescript-plugin-push": { "version": "file:../../../../ts/generator-typescript-plugin-push", "requires": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1", - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -10590,6 +10622,27 @@ "typescript": "^5.1.6" } }, + "@hilla/react-auth": { + "version": "file:../../../../ts/react-auth", + "requires": { + "@esm-bundle/chai": "^4.3.4-fix.0", + "@hilla/frontend": "*", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.4.3", + "@types/chai": "^4.3.5", + "@types/chai-dom": "^1.11.0", + "@types/mocha": "^10.0.1", + "@types/react": "^18.2.20", + "@types/sinon": "^10.0.16", + "@types/sinon-chai": "^3.2.9", + "@types/validator": "^13.11.1", + "chai-dom": "^1.11.0", + "react-router-dom": "^6.16.0", + "sinon": "^15.2.0", + "sinon-chai": "^3.7.0", + "typescript": "^5.1.6" + } + }, "@hilla/react-components": { "version": "2.1.7", "resolved": "https://registry.npmjs.org/@hilla/react-components/-/react-components-2.1.7.tgz", @@ -10673,25 +10726,6 @@ "typescript": "^5.1.6" } }, - "@hilla/react-grid": { - "version": "file:../../../../ts/react-grid", - "requires": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@testing-library/react": "^14.0.0", - "@testing-library/user-event": "^14.4.3", - "@types/chai": "^4.3.5", - "@types/chai-dom": "^1.11.0", - "@types/mocha": "^10.0.1", - "@types/react": "^18.2.20", - "@types/sinon": "^10.0.16", - "@types/sinon-chai": "^3.2.9", - "@types/validator": "^13.11.1", - "chai-dom": "^1.11.0", - "sinon": "^15.2.0", - "sinon-chai": "^3.7.0", - "typescript": "^5.1.6" - } - }, "@jridgewell/gen-mapping": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", diff --git a/packages/java/tests/gradle/single-module/package.json b/packages/java/tests/gradle/single-module/package.json index 54134d28b3..48d5ab820c 100644 --- a/packages/java/tests/gradle/single-module/package.json +++ b/packages/java/tests/gradle/single-module/package.json @@ -13,9 +13,9 @@ "@hilla/generator-typescript-plugin-push": "file:../../../../ts/generator-typescript-plugin-push", "@hilla/generator-typescript-utils": "file:../../../../ts/generator-typescript-utils", "@hilla/hilla-frontend": "file:../../../../ts/hilla-frontend", + "@hilla/react-auth": "file:../../../../ts/react-auth", "@hilla/react-components": "2.1.7", "@hilla/react-form": "file:../../../../ts/react-form", - "@hilla/react-grid": "file:../../../../ts/react-grid", "@polymer/polymer": "3.5.1", "@vaadin-component-factory/vcf-nav": "1.1.0", "@vaadin/bundles": "24.1.7", @@ -71,23 +71,21 @@ "@hilla/frontend": "$@hilla/frontend", "@hilla/generator-typescript-plugin-backbone": "$@hilla/generator-typescript-plugin-backbone", "@hilla/generator-typescript-cli": "$@hilla/generator-typescript-cli", - "@hilla/react-form": "$@hilla/react-form", - "@hilla/react-grid": "$@hilla/react-grid" + "@hilla/react-form": "$@hilla/react-form" }, "vaadin": { "dependencies": { - "@hilla/frontend": "2.2.0-beta1", - "@hilla/generator-typescript-cli": "2.2.0-beta1", - "@hilla/generator-typescript-core": "2.2.0-beta1", - "@hilla/generator-typescript-plugin-backbone": "2.2.0-beta1", - "@hilla/generator-typescript-plugin-barrel": "2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "2.2.0-beta1", - "@hilla/generator-typescript-plugin-model": "2.2.0-beta1", - "@hilla/generator-typescript-plugin-push": "2.2.0-beta1", - "@hilla/generator-typescript-utils": "2.2.0-beta1", + "@hilla/frontend": "2.2.0", + "@hilla/generator-typescript-cli": "2.2.0", + "@hilla/generator-typescript-core": "2.2.0", + "@hilla/generator-typescript-plugin-backbone": "2.2.0", + "@hilla/generator-typescript-plugin-barrel": "2.2.0", + "@hilla/generator-typescript-plugin-client": "2.2.0", + "@hilla/generator-typescript-plugin-model": "2.2.0", + "@hilla/generator-typescript-plugin-push": "2.2.0", + "@hilla/generator-typescript-utils": "2.2.0", "@hilla/react-components": "2.1.7", "@hilla/react-form": "2.2.0-beta1", - "@hilla/react-grid": "2.2.0-beta1", "@polymer/polymer": "3.5.1", "@vaadin/bundles": "24.1.7", "@vaadin/common-frontend": "0.0.18", @@ -113,6 +111,6 @@ "workbox-core": "7.0.0", "workbox-precaching": "7.0.0" }, - "hash": "be720bae2db7c9b9737b636825188bcaa8f7696a83469e8db52fdedceb335fe8" + "hash": "c4360e2342108739748ec7dd8502a5d3fcfa6bfe528c4d03122f27663602c572" } } 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 7b9b253f0d..d76a350638 100644 --- a/packages/java/tests/spring/react-grid-test/package-lock.json +++ b/packages/java/tests/spring/react-grid-test/package-lock.json @@ -18,11 +18,12 @@ "@hilla/generator-typescript-plugin-push": "file:../../../../ts/generator-typescript-plugin-push", "@hilla/generator-typescript-utils": "file:../../../../ts/generator-typescript-utils", "@hilla/hilla-frontend": "file:../../../../ts/hilla-frontend", - "@hilla/react-components": "2.1.7", + "@hilla/react-auth": "file:../../../../ts/react-auth", + "@hilla/react-components": "2.1.9", "@hilla/react-form": "file:../../../../ts/react-form", "@hilla/react-grid": "file:../../../../ts/react-grid", "@polymer/polymer": "3.5.1", - "@vaadin/bundles": "24.1.7", + "@vaadin/bundles": "24.1.9", "@vaadin/common-frontend": "0.0.18", "@vaadin/router": "1.7.5", "construct-style-sheets-polyfill": "3.1.0", @@ -50,7 +51,7 @@ }, "../../../../ts/form": { "name": "@hilla/form", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache-2.0", "dependencies": { "@hilla/frontend": "*", @@ -75,7 +76,7 @@ }, "../../../../ts/frontend": { "name": "@hilla/frontend", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache-2.0", "dependencies": { "@vaadin/common-frontend": "^0.0.18", @@ -106,10 +107,10 @@ }, "../../../../ts/generator-typescript-cli": { "name": "@hilla/generator-typescript-cli", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "get-stdin": "^9.0.0", "meow": "^12.1.0" }, @@ -117,7 +118,7 @@ "tsgen": "bin/index.js" }, "devDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/chai-as-promised": "^7.1.5", "@types/mocha": "^10.0.1", @@ -140,16 +141,16 @@ "node": ">= 16.13" }, "peerDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1" + "@hilla/generator-typescript-core": "^2.3.0-alpha1" } }, "../../../../ts/generator-typescript-core": { "name": "@hilla/generator-typescript-core", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { "@apidevtools/swagger-parser": "^10.1.0", - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "meow": "^12.1.0", "openapi-types": "^12.1.3", "typescript": "^5.1.6" @@ -176,17 +177,17 @@ }, "../../../../ts/generator-typescript-plugin-backbone": { "name": "@hilla/generator-typescript-plugin-backbone", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "^5.1.6" }, "devDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -207,21 +208,21 @@ "node": ">= 16.13" }, "peerDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1" + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1" } }, "../../../../ts/generator-typescript-plugin-barrel": { "name": "@hilla/generator-typescript-plugin-barrel", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "typescript": "^5.1.6" }, "devDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-backbone": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-backbone": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -242,20 +243,20 @@ "node": ">= 16.13" }, "peerDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-backbone": "^2.2.0-beta1" + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-backbone": "^2.3.0-alpha1" } }, "../../../../ts/generator-typescript-plugin-client": { "name": "@hilla/generator-typescript-plugin-client", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "typescript": "^5.1.6" }, "devDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -276,22 +277,22 @@ "node": ">= 16.13" }, "peerDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1" + "@hilla/generator-typescript-core": "^2.3.0-alpha1" } }, "../../../../ts/generator-typescript-plugin-model": { "name": "@hilla/generator-typescript-plugin-model", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "^5.1.6" }, "devDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -312,24 +313,24 @@ "node": ">= 16.13" }, "peerDependencies": { - "@hilla/form": "^2.2.0-beta1", - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-backbone": "^2.2.0-beta1" + "@hilla/form": "^2.3.0-alpha1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-backbone": "^2.3.0-alpha1" } }, "../../../../ts/generator-typescript-plugin-push": { "name": "@hilla/generator-typescript-plugin-push", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { - "@hilla/generator-typescript-utils": "^2.2.0-beta1", + "@hilla/generator-typescript-utils": "^2.3.0-alpha1", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "^5.1.6" }, "devDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1", + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1", "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", @@ -350,13 +351,13 @@ "node": ">= 16.13" }, "peerDependencies": { - "@hilla/generator-typescript-core": "^2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "^2.2.0-beta1" + "@hilla/generator-typescript-core": "^2.3.0-alpha1", + "@hilla/generator-typescript-plugin-client": "^2.3.0-alpha1" } }, "../../../../ts/generator-typescript-utils": { "name": "@hilla/generator-typescript-utils", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache 2.0", "dependencies": { "pino": "^8.15.0", @@ -384,9 +385,38 @@ } }, "../../../../ts/hilla-frontend": {}, + "../../../../ts/react-auth": { + "name": "@hilla/react-auth", + "version": "2.2.0-beta1", + "license": "Apache-2.0", + "dependencies": { + "@hilla/frontend": "*" + }, + "devDependencies": { + "@esm-bundle/chai": "^4.3.4-fix.0", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.4.3", + "@types/chai": "^4.3.5", + "@types/chai-dom": "^1.11.0", + "@types/mocha": "^10.0.1", + "@types/react": "^18.2.20", + "@types/sinon": "^10.0.16", + "@types/sinon-chai": "^3.2.9", + "@types/validator": "^13.11.1", + "chai-dom": "^1.11.0", + "react-router-dom": "^6.16.0", + "sinon": "^15.2.0", + "sinon-chai": "^3.7.0", + "typescript": "^5.1.6" + }, + "peerDependencies": { + "react": "^18", + "react-router-dom": "^6" + } + }, "../../../../ts/react-form": { "name": "@hilla/react-form", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache-2.0", "dependencies": { "@hilla/form": "*" @@ -413,7 +443,7 @@ }, "../../../../ts/react-grid": { "name": "@hilla/react-grid", - "version": "2.2.0-beta1", + "version": "2.3.0-alpha1", "license": "Apache-2.0", "dependencies": { "@hilla/form": "*", @@ -2533,67 +2563,71 @@ "resolved": "../../../../ts/hilla-frontend", "link": true }, + "node_modules/@hilla/react-auth": { + "resolved": "../../../../ts/react-auth", + "link": true + }, "node_modules/@hilla/react-components": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@hilla/react-components/-/react-components-2.1.7.tgz", - "integrity": "sha512-Msk5rVHVm9mQQer+D+e27hV3Ny8rLsV7YaYFucZl+qVGgC0/fscMGYOtVc0uTl/qV/Tcq4k68JXWTRw5EybOgQ==", - "dependencies": { - "@vaadin/accordion": "24.1.7", - "@vaadin/app-layout": "24.1.7", - "@vaadin/avatar": "24.1.7", - "@vaadin/avatar-group": "24.1.7", - "@vaadin/board": "24.1.7", - "@vaadin/button": "24.1.7", - "@vaadin/charts": "24.1.7", - "@vaadin/checkbox": "24.1.7", - "@vaadin/checkbox-group": "24.1.7", - "@vaadin/combo-box": "24.1.7", - "@vaadin/confirm-dialog": "24.1.7", - "@vaadin/context-menu": "24.1.7", - "@vaadin/cookie-consent": "24.1.7", - "@vaadin/crud": "24.1.7", - "@vaadin/custom-field": "24.1.7", - "@vaadin/date-picker": "24.1.7", - "@vaadin/date-time-picker": "24.1.7", - "@vaadin/details": "24.1.7", - "@vaadin/dialog": "24.1.7", - "@vaadin/email-field": "24.1.7", - "@vaadin/field-base": "24.1.7", - "@vaadin/field-highlighter": "24.1.7", - "@vaadin/form-layout": "24.1.7", - "@vaadin/grid": "24.1.7", - "@vaadin/grid-pro": "24.1.7", - "@vaadin/horizontal-layout": "24.1.7", - "@vaadin/icon": "24.1.7", - "@vaadin/icons": "24.1.7", - "@vaadin/input-container": "24.1.7", - "@vaadin/integer-field": "24.1.7", - "@vaadin/item": "24.1.7", - "@vaadin/list-box": "24.1.7", - "@vaadin/login": "24.1.7", - "@vaadin/map": "24.1.7", - "@vaadin/menu-bar": "24.1.7", - "@vaadin/message-input": "24.1.7", - "@vaadin/message-list": "24.1.7", - "@vaadin/multi-select-combo-box": "24.1.7", - "@vaadin/notification": "24.1.7", - "@vaadin/number-field": "24.1.7", - "@vaadin/password-field": "24.1.7", - "@vaadin/progress-bar": "24.1.7", - "@vaadin/radio-group": "24.1.7", - "@vaadin/rich-text-editor": "24.1.7", - "@vaadin/scroller": "24.1.7", - "@vaadin/select": "24.1.7", - "@vaadin/split-layout": "24.1.7", - "@vaadin/tabs": "24.1.7", - "@vaadin/tabsheet": "24.1.7", - "@vaadin/text-area": "24.1.7", - "@vaadin/text-field": "24.1.7", - "@vaadin/time-picker": "24.1.7", - "@vaadin/tooltip": "24.1.7", - "@vaadin/upload": "24.1.7", - "@vaadin/vertical-layout": "24.1.7", - "@vaadin/virtual-list": "24.1.7" + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@hilla/react-components/-/react-components-2.1.9.tgz", + "integrity": "sha512-fqd6MyzO5WxzXBrB7SRiw5s0dxr+NviBO9M571enIIQt/xzB7Y0FzF0Fst+sQN+4LLfGR7GAfR1frmHG2tofkg==", + "dependencies": { + "@vaadin/accordion": "24.1.9", + "@vaadin/app-layout": "24.1.9", + "@vaadin/avatar": "24.1.9", + "@vaadin/avatar-group": "24.1.9", + "@vaadin/board": "24.1.9", + "@vaadin/button": "24.1.9", + "@vaadin/charts": "24.1.9", + "@vaadin/checkbox": "24.1.9", + "@vaadin/checkbox-group": "24.1.9", + "@vaadin/combo-box": "24.1.9", + "@vaadin/confirm-dialog": "24.1.9", + "@vaadin/context-menu": "24.1.9", + "@vaadin/cookie-consent": "24.1.9", + "@vaadin/crud": "24.1.9", + "@vaadin/custom-field": "24.1.9", + "@vaadin/date-picker": "24.1.9", + "@vaadin/date-time-picker": "24.1.9", + "@vaadin/details": "24.1.9", + "@vaadin/dialog": "24.1.9", + "@vaadin/email-field": "24.1.9", + "@vaadin/field-base": "24.1.9", + "@vaadin/field-highlighter": "24.1.9", + "@vaadin/form-layout": "24.1.9", + "@vaadin/grid": "24.1.9", + "@vaadin/grid-pro": "24.1.9", + "@vaadin/horizontal-layout": "24.1.9", + "@vaadin/icon": "24.1.9", + "@vaadin/icons": "24.1.9", + "@vaadin/input-container": "24.1.9", + "@vaadin/integer-field": "24.1.9", + "@vaadin/item": "24.1.9", + "@vaadin/list-box": "24.1.9", + "@vaadin/login": "24.1.9", + "@vaadin/map": "24.1.9", + "@vaadin/menu-bar": "24.1.9", + "@vaadin/message-input": "24.1.9", + "@vaadin/message-list": "24.1.9", + "@vaadin/multi-select-combo-box": "24.1.9", + "@vaadin/notification": "24.1.9", + "@vaadin/number-field": "24.1.9", + "@vaadin/password-field": "24.1.9", + "@vaadin/progress-bar": "24.1.9", + "@vaadin/radio-group": "24.1.9", + "@vaadin/rich-text-editor": "24.1.9", + "@vaadin/scroller": "24.1.9", + "@vaadin/select": "24.1.9", + "@vaadin/split-layout": "24.1.9", + "@vaadin/tabs": "24.1.9", + "@vaadin/tabsheet": "24.1.9", + "@vaadin/text-area": "24.1.9", + "@vaadin/text-field": "24.1.9", + "@vaadin/time-picker": "24.1.9", + "@vaadin/tooltip": "24.1.9", + "@vaadin/upload": "24.1.9", + "@vaadin/vertical-layout": "24.1.9", + "@vaadin/virtual-list": "24.1.9" }, "peerDependencies": { "@lit-labs/react": "^1.1.0", @@ -2776,9 +2810,9 @@ "integrity": "sha512-ukowSvzpZQDUH0Y3znJTsY88HkiGk3Khc0WGpIPhap1xlerieYi27QBg6wx/nTurpWfU6XXXsx9ocxDYCdtw0Q==" }, "node_modules/@petamoriken/float16": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.8.3.tgz", - "integrity": "sha512-an2OZ7/6er9Jja8EDUvU/tmtGIutdlb6LwXOwgjzoCjDRAsUd8sRZMBjoPEy78Xa9iOp+Kglk2CHgVwZuZbWbw==" + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.8.4.tgz", + "integrity": "sha512-kB+NJ5Br56ZhElKsf0pM7/PQfrDdDVMRz8f0JM6eVOGE+L89z9hwcst9QvWBBnazzuqGTGtPsJNZoQ1JdNiGSQ==" }, "node_modules/@polymer/polymer": { "version": "3.5.1", @@ -2887,162 +2921,162 @@ "integrity": "sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==" }, "node_modules/@vaadin/a11y-base": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.1.7.tgz", - "integrity": "sha512-XVf1fecPz8aJuI0wDLNvRgk5RmoAFLfAO4A80MA7KSegWkRJyUA64wZtDnvCf2GAXtIQUGKmpKqP8Kl8yfeJ0g==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.1.9.tgz", + "integrity": "sha512-uGGygUjHAeZOnUBf1ZX9O0VQV1t+493h6YXtRxjsf2BXWXZMAlj8tbXsB/y1rOs3tiQUDewsVPlx8Bn0JAnPdQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.7", + "@vaadin/component-base": "~24.1.9", "lit": "^2.0.0" } }, "node_modules/@vaadin/accordion": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/accordion/-/accordion-24.1.7.tgz", - "integrity": "sha512-0q0eCz364f6jFzeh9MliLWwMfXsniDAQtUcTNbMrG3RlKRkfSy+e+TJ5SlkF73QwhWz6nk4W+I9Bdy9zsydKMQ==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/accordion/-/accordion-24.1.9.tgz", + "integrity": "sha512-S1XSW2sXeFL5pPrw19a0re06Xqy2tI4tey1sLHzaUCIKNI9P4haid+StpqbOFYP5YKiWfClRSgCSl7RGLqUjyA==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/details": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/details": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/app-layout": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/app-layout/-/app-layout-24.1.7.tgz", - "integrity": "sha512-NvvT705cUMZHz+QrGiWIRIgZOLTJexnHfCa9JqgXi7gFHxZXVCXgAUMDhCorlm6hMO6naKfVjoUoVpJdIKBJEw==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/app-layout/-/app-layout-24.1.9.tgz", + "integrity": "sha512-1ryOvkowzfYDeBUka087N2vXAjCN1ExVrl54PKUyE+bj8ApGDUi/r9bNjOtduzura2Kbfkfv8PO6nZmzWPQTkw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/button": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/button": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/avatar": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-24.1.7.tgz", - "integrity": "sha512-LEIvZnIGNTsks6pR8zvYBqVfOBJ3bEqHteOGGYVyCnFVcZ5Iap91ria5+J5pjZeyj4wc5KIQR//mqfEdO95khw==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-24.1.9.tgz", + "integrity": "sha512-RuyhyZIBEWVhdD8trrnYsUf6HzdXJxjJoydipa4KVtzgSE6EstHve5rySqdZ93CbDepX2zTSIUBRTD4RU4zlgA==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/item": "~24.1.7", - "@vaadin/list-box": "~24.1.7", - "@vaadin/overlay": "~24.1.7", - "@vaadin/tooltip": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/item": "~24.1.9", + "@vaadin/list-box": "~24.1.9", + "@vaadin/overlay": "~24.1.9", + "@vaadin/tooltip": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/avatar-group": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/avatar-group/-/avatar-group-24.1.7.tgz", - "integrity": "sha512-ggfJJ+OQ+AIAYVFNGfaIVc5m8lOObs1t3TR2scUtKqYrv3s5eOvCHAQrmE7LZ7CSWUdPqKHqu054hO623yTA2g==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/avatar-group/-/avatar-group-24.1.9.tgz", + "integrity": "sha512-L0ichu+i4QxrsiAI/Ud6GqEjWrsEt2SLJXqFzSWVNcG7/ILCaldth+ofDBEIvskb6qq6SEr3UXqTRSexRcnLWQ==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/avatar": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/item": "~24.1.7", - "@vaadin/list-box": "~24.1.7", - "@vaadin/overlay": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7", + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/avatar": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/item": "~24.1.9", + "@vaadin/list-box": "~24.1.9", + "@vaadin/overlay": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9", "lit": "^2.0.0" } }, "node_modules/@vaadin/board": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/board/-/board-24.1.7.tgz", - "integrity": "sha512-SQgUYAR3BWkpvzZaLiSFLx3bP8RC5AYYHplQyFtEGZ+e0k+bcYln+L9mwfFuL0ATWF7ElY893EEE870Xw7QRfQ==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/board/-/board-24.1.9.tgz", + "integrity": "sha512-rljqzgW6azoECTYieG6hTVHOaPxKt8dTmY9JxTcv9aPpZ0/WgcqgIKYo/tH9Rt3XAvWsJr3Us4JRSQm4EFtO5Q==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9" } }, "node_modules/@vaadin/bundles": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/bundles/-/bundles-24.1.7.tgz", - "integrity": "sha512-8yxsbRWXbjL56Vb8fX5mo1OSOs5kbsWkIuwlX1bYdLIe+txq1GA1ynUFyJ53TXhki/kndPEfJT+6IcIqC/Fz+g==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/bundles/-/bundles-24.1.9.tgz", + "integrity": "sha512-Q9Q1XFWDLDrp/49Kbhj4dwx2fSGvNZHOE0I/nclrc1u7KLptB/Kcp3Sa81CmMRdeue4LARhxE2jfbooB7Sm5Xg==", "peerDependencies": { "@open-wc/dedupe-mixin": "1.3.1", "@polymer/polymer": "3.5.1", - "@vaadin/a11y-base": "24.1.7", - "@vaadin/accordion": "24.1.7", - "@vaadin/app-layout": "24.1.7", - "@vaadin/avatar": "24.1.7", - "@vaadin/avatar-group": "24.1.7", - "@vaadin/board": "24.1.7", - "@vaadin/button": "24.1.7", - "@vaadin/charts": "24.1.7", - "@vaadin/checkbox": "24.1.7", - "@vaadin/checkbox-group": "24.1.7", - "@vaadin/combo-box": "24.1.7", - "@vaadin/component-base": "24.1.7", - "@vaadin/confirm-dialog": "24.1.7", - "@vaadin/context-menu": "24.1.7", - "@vaadin/cookie-consent": "24.1.7", - "@vaadin/crud": "24.1.7", - "@vaadin/custom-field": "24.1.7", - "@vaadin/date-picker": "24.1.7", - "@vaadin/date-time-picker": "24.1.7", - "@vaadin/details": "24.1.7", - "@vaadin/dialog": "24.1.7", - "@vaadin/email-field": "24.1.7", - "@vaadin/field-base": "24.1.7", - "@vaadin/field-highlighter": "24.1.7", - "@vaadin/form-layout": "24.1.7", - "@vaadin/grid": "24.1.7", - "@vaadin/grid-pro": "24.1.7", - "@vaadin/horizontal-layout": "24.1.7", - "@vaadin/icon": "24.1.7", - "@vaadin/icons": "24.1.7", - "@vaadin/input-container": "24.1.7", - "@vaadin/integer-field": "24.1.7", - "@vaadin/item": "24.1.7", - "@vaadin/list-box": "24.1.7", - "@vaadin/lit-renderer": "24.1.7", - "@vaadin/login": "24.1.7", - "@vaadin/map": "24.1.7", - "@vaadin/menu-bar": "24.1.7", - "@vaadin/message-input": "24.1.7", - "@vaadin/message-list": "24.1.7", - "@vaadin/multi-select-combo-box": "24.1.7", - "@vaadin/notification": "24.1.7", - "@vaadin/number-field": "24.1.7", - "@vaadin/overlay": "24.1.7", - "@vaadin/password-field": "24.1.7", - "@vaadin/polymer-legacy-adapter": "24.1.7", - "@vaadin/progress-bar": "24.1.7", - "@vaadin/radio-group": "24.1.7", - "@vaadin/rich-text-editor": "24.1.7", - "@vaadin/scroller": "24.1.7", - "@vaadin/select": "24.1.7", - "@vaadin/side-nav": "24.1.7", - "@vaadin/split-layout": "24.1.7", - "@vaadin/tabs": "24.1.7", - "@vaadin/tabsheet": "24.1.7", - "@vaadin/text-area": "24.1.7", - "@vaadin/text-field": "24.1.7", - "@vaadin/time-picker": "24.1.7", - "@vaadin/tooltip": "24.1.7", - "@vaadin/upload": "24.1.7", + "@vaadin/a11y-base": "24.1.9", + "@vaadin/accordion": "24.1.9", + "@vaadin/app-layout": "24.1.9", + "@vaadin/avatar": "24.1.9", + "@vaadin/avatar-group": "24.1.9", + "@vaadin/board": "24.1.9", + "@vaadin/button": "24.1.9", + "@vaadin/charts": "24.1.9", + "@vaadin/checkbox": "24.1.9", + "@vaadin/checkbox-group": "24.1.9", + "@vaadin/combo-box": "24.1.9", + "@vaadin/component-base": "24.1.9", + "@vaadin/confirm-dialog": "24.1.9", + "@vaadin/context-menu": "24.1.9", + "@vaadin/cookie-consent": "24.1.9", + "@vaadin/crud": "24.1.9", + "@vaadin/custom-field": "24.1.9", + "@vaadin/date-picker": "24.1.9", + "@vaadin/date-time-picker": "24.1.9", + "@vaadin/details": "24.1.9", + "@vaadin/dialog": "24.1.9", + "@vaadin/email-field": "24.1.9", + "@vaadin/field-base": "24.1.9", + "@vaadin/field-highlighter": "24.1.9", + "@vaadin/form-layout": "24.1.9", + "@vaadin/grid": "24.1.9", + "@vaadin/grid-pro": "24.1.9", + "@vaadin/horizontal-layout": "24.1.9", + "@vaadin/icon": "24.1.9", + "@vaadin/icons": "24.1.9", + "@vaadin/input-container": "24.1.9", + "@vaadin/integer-field": "24.1.9", + "@vaadin/item": "24.1.9", + "@vaadin/list-box": "24.1.9", + "@vaadin/lit-renderer": "24.1.9", + "@vaadin/login": "24.1.9", + "@vaadin/map": "24.1.9", + "@vaadin/menu-bar": "24.1.9", + "@vaadin/message-input": "24.1.9", + "@vaadin/message-list": "24.1.9", + "@vaadin/multi-select-combo-box": "24.1.9", + "@vaadin/notification": "24.1.9", + "@vaadin/number-field": "24.1.9", + "@vaadin/overlay": "24.1.9", + "@vaadin/password-field": "24.1.9", + "@vaadin/polymer-legacy-adapter": "24.1.9", + "@vaadin/progress-bar": "24.1.9", + "@vaadin/radio-group": "24.1.9", + "@vaadin/rich-text-editor": "24.1.9", + "@vaadin/scroller": "24.1.9", + "@vaadin/select": "24.1.9", + "@vaadin/side-nav": "24.1.9", + "@vaadin/split-layout": "24.1.9", + "@vaadin/tabs": "24.1.9", + "@vaadin/tabsheet": "24.1.9", + "@vaadin/text-area": "24.1.9", + "@vaadin/text-field": "24.1.9", + "@vaadin/time-picker": "24.1.9", + "@vaadin/tooltip": "24.1.9", + "@vaadin/upload": "24.1.9", "@vaadin/vaadin-development-mode-detector": "2.0.6", - "@vaadin/vaadin-lumo-styles": "24.1.7", - "@vaadin/vaadin-themable-mixin": "24.1.7", + "@vaadin/vaadin-lumo-styles": "24.1.9", + "@vaadin/vaadin-themable-mixin": "24.1.9", "@vaadin/vaadin-usage-statistics": "2.1.2", - "@vaadin/vertical-layout": "24.1.7", - "@vaadin/virtual-list": "24.1.7", + "@vaadin/vertical-layout": "24.1.9", + "@vaadin/virtual-list": "24.1.9", "cookieconsent": "3.1.1", "highcharts": "9.2.2", "lit": "2.7.6", @@ -3276,81 +3310,81 @@ } }, "node_modules/@vaadin/button": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-24.1.7.tgz", - "integrity": "sha512-fVvbNrorgYCvKcw25Q0RG+CmxZPDeV+QRDlJYVfjuEmk8vAoDtHSEQPVm9kn/WKu7/fOHH9lz5CWMa2YWvWSkw==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-24.1.9.tgz", + "integrity": "sha512-8IQ/bgURIIVOrMVMt6VWsP1n8bLOM1YftNJv2k6mPROC1mtgh/0e5KFsjU28p2BEQmVzICjbFcd6HBbz1FcsdA==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7", + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9", "lit": "^2.0.0" } }, "node_modules/@vaadin/charts": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/charts/-/charts-24.1.7.tgz", - "integrity": "sha512-Lzh8ZlLKBvmAjBZkjqMAuOXqwy69qiKwEMA88dK5O81nRegkhCZ5szYdgU+C4qMaxtBmZUD29cZdLwwNJRxrKw==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/charts/-/charts-24.1.9.tgz", + "integrity": "sha512-o/LghqLLufs5GQ82WHKbocJ9sFlCgk4tudqJGHKPySJUogNQDc3ajBu90UCvlnhnDw6ofcjGcZkLyn/CmhYDBw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7", + "@vaadin/component-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9", "highcharts": "9.2.2" } }, "node_modules/@vaadin/checkbox": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.1.7.tgz", - "integrity": "sha512-MnfmcFMMXilf8yFa/aHmr0v8FDOb8xzhHPCuV9FZRA9vk3MTyI84nzMc19ODkA1xXjFGrwqU8p+eeySsym330g==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.1.9.tgz", + "integrity": "sha512-uavynErkZUXbAZCNudIo/eT+o8lHmrxvWDYvos9dcQGza4YIQRpDoqdBjgSpqkC7WrlEi+J39uOcsdmARamapw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/field-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7", + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/field-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9", "lit": "^2.0.0" } }, "node_modules/@vaadin/checkbox-group": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/checkbox-group/-/checkbox-group-24.1.7.tgz", - "integrity": "sha512-DMOXUlDpd/i3j28NG3uVTLD7b3A/Y4qAUN4MbVx2XnqdXLWR7Y9IqrDOFocTajVx/nur6LNJyuc2aJi0egY+ZA==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox-group/-/checkbox-group-24.1.9.tgz", + "integrity": "sha512-na+gJbakWuUoKfCAq9XBttu85A8mQ3pCmmd8e1JpEwHY/V95HLWmm+EF7X0qV3nCGH6gzC80q6RYuRsj0eky6g==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/checkbox": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/field-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/checkbox": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/field-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/combo-box": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/combo-box/-/combo-box-24.1.7.tgz", - "integrity": "sha512-ACuQGP3jaDv10aaPvSSVsfRGmzyPYycBTLlnizKUeSuuxEzvelRpZp2PwscOM5vk0owc/6seVnje8CqPUy9Sbg==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/combo-box/-/combo-box-24.1.9.tgz", + "integrity": "sha512-wBcAVFo96+fUCgbGYcQA4gztBuJGktjBhgKSj5zJt6G3N2UtFzjd81KrWSQAHuHSv8PfV3E0ndkJkSPdprAqpg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/field-base": "~24.1.7", - "@vaadin/input-container": "~24.1.7", - "@vaadin/item": "~24.1.7", - "@vaadin/lit-renderer": "~24.1.7", - "@vaadin/overlay": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/field-base": "~24.1.9", + "@vaadin/input-container": "~24.1.9", + "@vaadin/item": "~24.1.9", + "@vaadin/lit-renderer": "~24.1.9", + "@vaadin/overlay": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/common-frontend": { @@ -3365,9 +3399,9 @@ } }, "node_modules/@vaadin/component-base": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.1.7.tgz", - "integrity": "sha512-Wn5hlk9xfMjEoWN/XIDqtQqAI5bnE8CWgwNod+s4EtquM9aw0iWFEa+n5b2a9FEZnvWU1ZG4uhado7hPg3AvIA==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.1.9.tgz", + "integrity": "sha512-2PcyY1uOvxDPrQoB2C80FoajK+uOUCi1lTsmmn2flt/qrokPLD7yB/vcmDdiZFyBLmUgagKZL35MjuGQ7h1Bcw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", @@ -3377,530 +3411,530 @@ } }, "node_modules/@vaadin/confirm-dialog": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/confirm-dialog/-/confirm-dialog-24.1.7.tgz", - "integrity": "sha512-7lbIExEwpiNBk/ZnTc5Cs0HkQGKpoao92IBVBQ9XOs4MJksXW/SIORfdF6TUp44Bf1POb7DfymW79iSHZANmTg==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/confirm-dialog/-/confirm-dialog-24.1.9.tgz", + "integrity": "sha512-qldcaK3/WBLfuBGEGbthFCENBbHk5QDG78aEJrTSjjQW3JA2kUJJWpMLPN7b5hQvBLnaov16HjO0+ztBZx375g==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/button": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/dialog": "~24.1.7", - "@vaadin/overlay": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/button": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/dialog": "~24.1.9", + "@vaadin/overlay": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/context-menu": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/context-menu/-/context-menu-24.1.7.tgz", - "integrity": "sha512-2ocMJsPAD36C23XezhIiL43kXeiJFG7xfflvW8w70lnLPK8mFVkCfWyOuGrxl1CGzx/yAhMbs23UiGB337U7MQ==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/context-menu/-/context-menu-24.1.9.tgz", + "integrity": "sha512-ZF6YzxTwl/+HJCNd3P+PcGOIU+HBF2D9csRx0peRiKSE1E5lvCFvWhHJnJc0E0WNGM8OzWZa2F6wDMHzgKK1qg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/item": "~24.1.7", - "@vaadin/list-box": "~24.1.7", - "@vaadin/lit-renderer": "~24.1.7", - "@vaadin/overlay": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/item": "~24.1.9", + "@vaadin/list-box": "~24.1.9", + "@vaadin/lit-renderer": "~24.1.9", + "@vaadin/overlay": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/cookie-consent": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/cookie-consent/-/cookie-consent-24.1.7.tgz", - "integrity": "sha512-w0yEIIrX1Z1F8JtDa4Gn/0BYNqwFKcjrQcszJwDiuzxhTH92JsAnlGp6Y2dYTQ5YxvLw79SwMb9bsv8h30GDcA==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/cookie-consent/-/cookie-consent-24.1.9.tgz", + "integrity": "sha512-qCBsYdc4jCThYnuqTNCR2OeKKr+VGR+IXILElW9mLUPQfyTo6Jnoxefu47HK0ZQzCyK42xJG7/Sh0HsNYooY8g==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", + "@vaadin/component-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", "cookieconsent": "^3.0.6" } }, "node_modules/@vaadin/crud": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/crud/-/crud-24.1.7.tgz", - "integrity": "sha512-4y2AzUYB0I09wp0cEn+XKx8xmwUwcOpPAgCiYhdRrBoV/UpKSDnGgTDDTPBKZ6yjxJYq2YNPzcVRDi2iX2iWDw==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/crud/-/crud-24.1.9.tgz", + "integrity": "sha512-gkA2Z+OeR6s5xVLlnwaTZrcLhvDcXfo18UPL5McHY+oP1ca7vWxOASNNNJ4bERCskN4wbce9gFTaQxM9ow8lyQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/confirm-dialog": "~24.1.7", - "@vaadin/dialog": "~24.1.7", - "@vaadin/form-layout": "~24.1.7", - "@vaadin/grid": "~24.1.7", - "@vaadin/text-field": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/button": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/confirm-dialog": "~24.1.9", + "@vaadin/dialog": "~24.1.9", + "@vaadin/form-layout": "~24.1.9", + "@vaadin/grid": "~24.1.9", + "@vaadin/text-field": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/custom-field": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/custom-field/-/custom-field-24.1.7.tgz", - "integrity": "sha512-ysnQ5rGrjeO3KnvF3UdVD82iZnmqUmm9TgU3E1k9t8g0xTpfexZAYJwaGVtqzvkS1tBvG0Jhi6zp29KPEdcJFw==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/custom-field/-/custom-field-24.1.9.tgz", + "integrity": "sha512-74dX3JFIUotaznuuC/d/OpRB8Oastt9qaOrEwN0vizxMi1zwrJxExy3/4usJ8716bj9W02c7qTzNHkFst6jAVg==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/field-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/field-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/date-picker": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/date-picker/-/date-picker-24.1.7.tgz", - "integrity": "sha512-qgZUG7DElGcMH0neKTiqLVxujRE+NIWa4qeuRIhp/VsfK3zkH/Yy/NXvh22EkORYA2arXIZkRYDQezcMxGf19w==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/date-picker/-/date-picker-24.1.9.tgz", + "integrity": "sha512-KioRnutT1pfQY1AmvjGYgCpbrThV+t2ub0/7P+pYolWJQWjVZcfDnurUbR7foik89aIOummrkBaeKJMvts1vsg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.2.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/button": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/field-base": "~24.1.7", - "@vaadin/input-container": "~24.1.7", - "@vaadin/overlay": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/button": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/field-base": "~24.1.9", + "@vaadin/input-container": "~24.1.9", + "@vaadin/overlay": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/date-time-picker": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/date-time-picker/-/date-time-picker-24.1.7.tgz", - "integrity": "sha512-zTXLO26FWVkmjBeeeBlYNB+ZwtqdbSWKYW4QGvg3rfC3v3GK/cmh5sFi6I2fqkIhz2pQxqB5grBrT8x7BwXyFg==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/date-time-picker/-/date-time-picker-24.1.9.tgz", + "integrity": "sha512-IQqVvjO4ARNLfxhfD9zO+yXKIbqMH+qJ23yCBYSwKsOGyF9EfsVkm/ZssAEKjvcqozyF+1BOH6Blx5A/KIieVw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/custom-field": "~24.1.7", - "@vaadin/date-picker": "~24.1.7", - "@vaadin/field-base": "~24.1.7", - "@vaadin/time-picker": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/custom-field": "~24.1.9", + "@vaadin/date-picker": "~24.1.9", + "@vaadin/field-base": "~24.1.9", + "@vaadin/time-picker": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/details": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/details/-/details-24.1.7.tgz", - "integrity": "sha512-KyaWaXm4G0jygm1Ne3vIOYpY8i9p1hzouXNsNrpYWzIALpnwiFleA4TeAxSjBxZMHXkEDjZZRQYXpQO6fFpeNw==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/details/-/details-24.1.9.tgz", + "integrity": "sha512-hRZ3WS8zQrBmQ2HpyXNvytLYXdIx0eOLNdOXPsCNl6e4/JV+hlDQd+X7bYYs0mmNsbWJM+uUwieRuTscvdMwyw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/button": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/button": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/dialog": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/dialog/-/dialog-24.1.7.tgz", - "integrity": "sha512-Dye+unWVZKv4TeTE1qg35OtbJ/eieMNueqzU1C5vKse4BdIxlFs5kRnOiIi/mqpklt+6leYFYjbw1G9Szkf6eA==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/dialog/-/dialog-24.1.9.tgz", + "integrity": "sha512-wmgZ0l7GGNkR6qsOSAn3ftGJ68t4V1VihowW7dKqBHPWjkzLfW9SciLAhf8poZWxduo2iwAQjxU+zwVB1SyP2g==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.7", - "@vaadin/lit-renderer": "~24.1.7", - "@vaadin/overlay": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/component-base": "~24.1.9", + "@vaadin/lit-renderer": "~24.1.9", + "@vaadin/overlay": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/email-field": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/email-field/-/email-field-24.1.7.tgz", - "integrity": "sha512-TazC/kyyvaekliqZGJfknwoSSZ4s1vj99KpZFtodUNMsdKn81uRbRSZk4gbOitzsjv6vGskGvCyagntUkVFqeg==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/email-field/-/email-field-24.1.9.tgz", + "integrity": "sha512-BwFifGnU/1rjFO6XvpMTgvc6rekD4Q2uHz+saI2kLqqkLwNxosTzY6lP76v2Y1Jvk1Aj4ijIUtGeQbL17zitPg==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.7", - "@vaadin/text-field": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7", + "@vaadin/component-base": "~24.1.9", + "@vaadin/text-field": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9", "lit": "^2.0.0" } }, "node_modules/@vaadin/field-base": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.1.7.tgz", - "integrity": "sha512-AkdfXlRSlRgnAz4rb5CufYqB++XVMUBi50sDI/CHKUTxGxd/4fysWeenvqY42AN8wqb8/Ohs5DFCIUj9LzxVCQ==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.1.9.tgz", + "integrity": "sha512-swqtzcYnKdo+/qJRZ1ae5abJ05Ee1uVGpdSWIFA9baJcMaDMBa78dyIHtTQ5opjCt3cEHpLTQO87QppKKFUDSw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", "lit": "^2.0.0" } }, "node_modules/@vaadin/field-highlighter": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/field-highlighter/-/field-highlighter-24.1.7.tgz", - "integrity": "sha512-u1RBGTtd0OYYWEbAW2t3A4uB7RIbuSj1goborJm5O/X8TvtXlrklMeA6NNM9G5ln4YDHCtyX/4vTtR5EH1Vrjw==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/field-highlighter/-/field-highlighter-24.1.9.tgz", + "integrity": "sha512-/PXazFlX8UumKdaySJsK2mwaec9SCcowvZ5yp8RC+Fom/iwAr4hoD1PF0RHCudMQ7Egk0Gfl+DNTEaRptmC53A==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.7", - "@vaadin/overlay": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7", + "@vaadin/component-base": "~24.1.9", + "@vaadin/overlay": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9", "lit": "^2.0.0" } }, "node_modules/@vaadin/form-layout": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/form-layout/-/form-layout-24.1.7.tgz", - "integrity": "sha512-+o7dij54B9PLD11Sj+TNE3/knUDsnFmyMsVKSh4wam2fXFFCaFyOQVoQchkTbMY0+6hOm7jgcxXVciUAww+1hw==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/form-layout/-/form-layout-24.1.9.tgz", + "integrity": "sha512-wFbF1L/hkDLcesqJROc7J4x3tjMCIJm52pVUCWsIFQgXTJUzcfe9r8utJOxJoUL9+F2WR9E3YT51fI2LuPcHZw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/component-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/grid": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.1.7.tgz", - "integrity": "sha512-XCH1IWmL/uFc4Grt9IrB0xWFAVt/aOWeoaXZDXXdGpHkUWiZyHUtweIyukDEsIOxQJBM911yIdmC/FiyjC/lRA==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.1.9.tgz", + "integrity": "sha512-FGouiDpiOeBV/Zgqq+INLXL+BHR3FEcEw12BPpfAd8HRN9GXZSQ/3TD32IL9icXLd9dH2nbI3OSDGGyh2oCnjg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/checkbox": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/lit-renderer": "~24.1.7", - "@vaadin/text-field": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/checkbox": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/lit-renderer": "~24.1.9", + "@vaadin/text-field": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/grid-pro": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/grid-pro/-/grid-pro-24.1.7.tgz", - "integrity": "sha512-VTgGUPuaait3UnzoKUu6E3Rnrcvbdv1E/KrMbufffTHwf9kmkJnlSnNud8yYGhUJa++RCPhS8omzzlJztqZl/w==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/grid-pro/-/grid-pro-24.1.9.tgz", + "integrity": "sha512-iTINx1/WieoB3FevIn/l8T94R3nmog2xXLbT3FlsUS+1VaotTcrFcDvUiIrspbx4JMfQ3QBzHnJfQAxZimMppg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/checkbox": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/grid": "~24.1.7", - "@vaadin/item": "~24.1.7", - "@vaadin/list-box": "~24.1.7", - "@vaadin/lit-renderer": "~24.1.7", - "@vaadin/select": "~24.1.7", - "@vaadin/text-field": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/checkbox": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/grid": "~24.1.9", + "@vaadin/item": "~24.1.9", + "@vaadin/list-box": "~24.1.9", + "@vaadin/lit-renderer": "~24.1.9", + "@vaadin/select": "~24.1.9", + "@vaadin/text-field": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/horizontal-layout": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/horizontal-layout/-/horizontal-layout-24.1.7.tgz", - "integrity": "sha512-FchOdt9cHmPHyrcz1JnU4QZFXRYb3GyWIbDt9gJsRuXAGHDKuMO5s1JtTUlVz1HVpGD/91ES0z0jAqAZ0D7qTw==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/horizontal-layout/-/horizontal-layout-24.1.9.tgz", + "integrity": "sha512-ueO390RTWZ+Fy6OGXic8HGeRfOVlPv+1DqX9NJOCvJbOduduU7GDUMBkB1FjTvZ1g2sMkW2UDoUfQSQbdokVhg==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/component-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/icon": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.1.7.tgz", - "integrity": "sha512-8Pr91YBQ+NW95yLroQjj/CEXji0aUWNbSDUb3A5YN8jErmAIEP5X3TSmtM2IwKJjUZA44DrvBuZ7zRbk+j9bgw==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.1.9.tgz", + "integrity": "sha512-1A2ySp+ldAIo0uME4U4DQu01haIz2+aX+34hSWnLhCgEjfMknuEk4W2dRLtWAffBp+yihD+ZsUMg/g5oLvlChg==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7", + "@vaadin/component-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9", "lit": "^2.0.0" } }, "node_modules/@vaadin/icons": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.1.7.tgz", - "integrity": "sha512-hhm59x4/PBKjsvC1K2nRu69baoUPq91l/9HIcGpI3YvdFdnsP/VJi5NP1avPzmV+2wkrkwHuiKPxPwPXu+lEUw==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.1.9.tgz", + "integrity": "sha512-DM8nwyBx3fB6OSRynl69Led+6ckhBLZGbBD5DJ/Gya7jtUneHRK2B2mF5krD/KEPL+yJZsxWf+eAdNbSu4EIsw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/icon": "~24.1.7" + "@vaadin/icon": "~24.1.9" } }, "node_modules/@vaadin/input-container": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.1.7.tgz", - "integrity": "sha512-YgdJEF9+RfNV+9LrJBAxN4coKOeypf07zCDRwTQsygVBFz6zysGxT8sAo1lhnEtqI1wR6HtWjms3F8mpBfBzRA==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.1.9.tgz", + "integrity": "sha512-495NMWPw8RAWHw25t5885h6DlPSyf7ipXffIA14C8g0qjrtBqX8RkwCc8vAEl93tuTXFmWcTSox9QUbZMEQA8w==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/component-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/integer-field": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/integer-field/-/integer-field-24.1.7.tgz", - "integrity": "sha512-gPMqkWuNT4r7TOzF+gi594mhODBxfqVE3B0RrBI+gBgLRutRSj3Mv+WQXmfrWjYgeAV7KWCLUeASOrxeS56fmQ==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/integer-field/-/integer-field-24.1.9.tgz", + "integrity": "sha512-IIy0NL/nZbCPj45sR8G99tPBLGAY44IqxBBHwmu0Fk/WbHlJk9816F0twoi+l+UVZn/AIh+HVyQ0pIyVSTH6HA==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.7", - "@vaadin/number-field": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7" + "@vaadin/component-base": "~24.1.9", + "@vaadin/number-field": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9" } }, "node_modules/@vaadin/item": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-24.1.7.tgz", - "integrity": "sha512-DXqSpqUp9JF5Zxruev53IAx6tM8uHmpbzXnp4y1cs1CUtJIYKXREq3aA/Zl27n0yXz9PH5ZkQNosEWiN/3LoNA==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-24.1.9.tgz", + "integrity": "sha512-iMeAmewzKxD9TYWpqEh+ssi5xbTWlU7BJEbgMrrCgyHyLol5HU9Byeca6Ez5HKKn+kp3TtGW9Z7J7P5bsfn6kw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/list-box": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-24.1.7.tgz", - "integrity": "sha512-P4swwYJHn7jpMwB6gLfWVhKz0X1eGPtGhOTx+tD/4TvOUXc3pZJS/eTsCksqCoHJm45siKKQueITSufWnRHvuw==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-24.1.9.tgz", + "integrity": "sha512-cMjTjYI0hUmdvFdymzNkvaO7zd71rW4jlcuBLKS8SSjMtmQXkO6ixN5cUkTtBt93nCqmZYNqQRUQxKSwRlhhqQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/item": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/item": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/lit-renderer": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.1.7.tgz", - "integrity": "sha512-VIOQaoMKW003/5lkEqIlqFGNs8B2bzKbuUOTWwMJN6x6x9KQMq7T0cwtcB7fnAYy+0PYqZOFYvJ1EhzyovpwWw==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.1.9.tgz", + "integrity": "sha512-zSQQWtMkDp2DCOYArnDiVYBFroUy/tsk6nCyuYjKBDTHD7IbjcKAtksAY/3/oO17cs7AQLwBRpbRN+e9H5MG0w==", "dependencies": { "lit": "^2.0.0" } }, "node_modules/@vaadin/login": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/login/-/login-24.1.7.tgz", - "integrity": "sha512-iCGQoe/4bAHnJTeeTaVKqTasbzXiI1ZuXBL+Q22imr1K+H/+FzB1gQOcAmcW8G5cYAU/N1+SDYo2rPUEDdIkaw==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/login/-/login-24.1.9.tgz", + "integrity": "sha512-AnzwHOTbHeODcOnPZ3Dy8M4cAyaQKP8K4rtdBlIfu/WW1/2FPqjCQ3GXPdKe9Xknk7oP+bdvKk0m+DGWBTv57g==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/overlay": "~24.1.7", - "@vaadin/password-field": "~24.1.7", - "@vaadin/text-field": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/button": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/overlay": "~24.1.9", + "@vaadin/password-field": "~24.1.9", + "@vaadin/text-field": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/map": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/map/-/map-24.1.7.tgz", - "integrity": "sha512-e6K28v19RWvbd5kb+RG5C+ONGU0BS1LUPlnjQun6huYDHjH12VailL9No5JCmKtaooZ2CoD4JA5fbMdM+y3eUg==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/map/-/map-24.1.9.tgz", + "integrity": "sha512-nchz97gPCsI7zb4fT2cf3eYd4EVH6YRNtl1xzLICSnY9wy1bq9G5435gnIfunq74bAXY0WnhZ1HIefAhn3Jw3Q==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7", + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9", "ol": "6.13.0" } }, "node_modules/@vaadin/menu-bar": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/menu-bar/-/menu-bar-24.1.7.tgz", - "integrity": "sha512-g8w29qpi1oJvPK37dSqT3DJD9enDiwlJwNcJQ7BRPBidmRIuOjGTqG0t4+k1J49qSssNv1KLcfHcWaCFMnlyYw==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/menu-bar/-/menu-bar-24.1.9.tgz", + "integrity": "sha512-ebXJx6M3QPhqJduuRhhq1Ps5XzZ/l5hJgAAbeAK+KjM508CkAkRh19+QrxRXI3FyL5v2WOFsTi/Wt+1K67x7uQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/button": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/context-menu": "~24.1.7", - "@vaadin/item": "~24.1.7", - "@vaadin/list-box": "~24.1.7", - "@vaadin/overlay": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/button": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/context-menu": "~24.1.9", + "@vaadin/item": "~24.1.9", + "@vaadin/list-box": "~24.1.9", + "@vaadin/overlay": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/message-input": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/message-input/-/message-input-24.1.7.tgz", - "integrity": "sha512-e/klldLLqsnauUwVzGH0hqxABKUgAxXg6guNynE40w2MHBdEZMh3xM37DBZNDTTuGz5yDnJqIZMufhSJOsNPcA==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/message-input/-/message-input-24.1.9.tgz", + "integrity": "sha512-9sQinkk/AzN5t8CtA+XW9VdfVbtqbJtnlcwRtiQGkJeISxeaHj0RbUtnZ0nUqodx3M4aAVuBdHfT+/Ji10HbcQ==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/button": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/text-area": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/button": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/text-area": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/message-list": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/message-list/-/message-list-24.1.7.tgz", - "integrity": "sha512-FsZuTNfP5TZcwpyL+f/RiRosVkEMH8lM3IYCxNKCD76uysa0YFDZSwjWuI4iSLDcO7ZBbQW/XZ7jZCXdDbGu9A==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/message-list/-/message-list-24.1.9.tgz", + "integrity": "sha512-wj+a6J6s7vKb0tmQiGiZAyh+XZPieJ9fLPP1qUUVpy1XGWSDzrpOM3kH3f5n6jK4x4Vl4DmRaK6k4I/wkZCN2A==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/avatar": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7", + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/avatar": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9", "lit": "^2.0.0" } }, "node_modules/@vaadin/multi-select-combo-box": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/multi-select-combo-box/-/multi-select-combo-box-24.1.7.tgz", - "integrity": "sha512-rn+LfQBOcJP3qJhROQhFbyMoBfoOJZT9BZVQxxCBxNz4xGfGDKpdIXGw4Y8TXddBwd7vi548+NPEFCuazSiXvw==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/multi-select-combo-box/-/multi-select-combo-box-24.1.9.tgz", + "integrity": "sha512-UTFOAtdqo8lvRbEGh1FIF/pZcQ1Oiff7NSRL/NVPsOyvs081liHo3ucJy7RZ7lfmC/sDkRRl4iLZLHJ2FcCXqg==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/combo-box": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/field-base": "~24.1.7", - "@vaadin/input-container": "~24.1.7", - "@vaadin/item": "~24.1.7", - "@vaadin/lit-renderer": "~24.1.7", - "@vaadin/overlay": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/combo-box": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/field-base": "~24.1.9", + "@vaadin/input-container": "~24.1.9", + "@vaadin/item": "~24.1.9", + "@vaadin/lit-renderer": "~24.1.9", + "@vaadin/overlay": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/notification": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/notification/-/notification-24.1.7.tgz", - "integrity": "sha512-RxuCrqw7q2EI+VHNtOeqKaOZNnkk4/aY11mEx8ka5lSOdT3C22VVcfyG9hPwDESqvSn8BeBMF3JBYHS1+0E8jA==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/notification/-/notification-24.1.9.tgz", + "integrity": "sha512-ZxLQr3W445hQzcbLN4oxu28nA9xxMIof0uayl40bLTl0CGXmjPH3QYBd4Apn3jIvB3rsdVGM3E89NyzD2XBiuw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.7", - "@vaadin/lit-renderer": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7", + "@vaadin/component-base": "~24.1.9", + "@vaadin/lit-renderer": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9", "lit": "^2.0.0" } }, "node_modules/@vaadin/number-field": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/number-field/-/number-field-24.1.7.tgz", - "integrity": "sha512-ipFQSoT9S9EkxoZYEBWZ7PJjG156MGaGJ3jdI8UlSoP7IZQcHE89L4rp9cVYrJxwsS34PI1AEBqK+PXdKeYVig==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/number-field/-/number-field-24.1.9.tgz", + "integrity": "sha512-11wXtFp2Z5cymvOr3cGmagRn5fxBXyEutnHb1lpKwOZEzohGXefAaD+ESDHwl5SH3IbomcPdjMizlZDBEQao6g==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/field-base": "~24.1.7", - "@vaadin/input-container": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7", + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/field-base": "~24.1.9", + "@vaadin/input-container": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9", "lit": "^2.0.0" } }, "node_modules/@vaadin/overlay": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.1.7.tgz", - "integrity": "sha512-fKi5osY+nDqlyxeld5uZ0oHQrEUCKYf6VwngAip93fWg1P7TfXHrq2HmsugTaeDl7qmnqCU9eItwSbUd4k//9Q==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.1.9.tgz", + "integrity": "sha512-jVF3njZZpMf+dng6uGiXKDEq5qhZgNMQe/jFog81s3Y9txHviB5GyZcinkOA4YzqVpk4ZjsE7/4PnF0EtS9xKg==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/password-field": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-24.1.7.tgz", - "integrity": "sha512-CG86xgdMKOfRP/aUrpkFE249KpklktP16Sm60M6aaEWNPt/x/GMQb/WhN2ELx+qNlTkpAc2qMW35oj126Yim4w==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-24.1.9.tgz", + "integrity": "sha512-tLA2aQXQ8QvOJPaWe3JktxM56QgWLjZmiqKixvyAWHVpAIgs5STUeJ4A6+dHsA1jnars9deoonBJ7er26vMBwA==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/button": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/text-field": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/button": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/text-field": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/progress-bar": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/progress-bar/-/progress-bar-24.1.7.tgz", - "integrity": "sha512-93Y/omq14bSQ9QW5BGjHbo+OUHW7ISB2THMDsGUx7qs6uSxMpAnhhltks40x+cRk+Z+8aMfH5r6SFCqx4n5lXQ==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/progress-bar/-/progress-bar-24.1.9.tgz", + "integrity": "sha512-6Ncv0Dr0uP0CZP5XD62rTgAIg4NaFq1FE251ZdjSKra6klLW3GMBv1ENf0KS9bH2kmK7302hFuopkI/UTqAGKw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7", + "@vaadin/component-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9", "lit": "^2.0.0" } }, "node_modules/@vaadin/radio-group": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/radio-group/-/radio-group-24.1.7.tgz", - "integrity": "sha512-dJ+ZH4SPrZnGswW6REdwLeFGdFf6HW+2BUVHzhxO116/kjvWZDWtvYmPsgDMy1MNO8OChAChb1KbLx/SSHMOpA==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/radio-group/-/radio-group-24.1.9.tgz", + "integrity": "sha512-9JwmwoCwPdA4TTy1dvee/57dafrroa12AOD7Z226Mar0Gg/dUjWjoPNymSk+Z+TUHpZhgqh+uEzyMtLgxAzf/Q==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/field-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/field-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/rich-text-editor": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/rich-text-editor/-/rich-text-editor-24.1.7.tgz", - "integrity": "sha512-tPwDG66oV92/7GWSz3i1gswAvsF1YayOgflSk6Sx97ApVb2MG1U/BU/fYbbrpEmFCKEddMbcGqwbMvURoWRE9Q==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/rich-text-editor/-/rich-text-editor-24.1.9.tgz", + "integrity": "sha512-qeOZhRSlE2M9fzWZeKYbFXyFhriXbDzGQhFPDQfjfFJJuSgE2EicVJHyIwKshfPgB3QkUIo2kpbPj5k6K7eJFQ==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/button": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/confirm-dialog": "~24.1.7", - "@vaadin/text-field": "~24.1.7", - "@vaadin/tooltip": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/button": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/confirm-dialog": "~24.1.9", + "@vaadin/text-field": "~24.1.9", + "@vaadin/tooltip": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/router": { @@ -3913,156 +3947,156 @@ } }, "node_modules/@vaadin/scroller": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/scroller/-/scroller-24.1.7.tgz", - "integrity": "sha512-5YGaCB2wF0DuEgl3uqbOXFN819Hqx9e8qFYMtvx9fz0epB/lE1HoDNvVkrnwWY2eoGP29zgtdcJGiilTn1rpWg==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/scroller/-/scroller-24.1.9.tgz", + "integrity": "sha512-hylRECxaLKVH5kYnsfOPv+NQJbGg+CS6AYR8jpJGTikIeKU7ImFPEL6v1JhVinoXtg4PFECbVXQ+c06467xlSQ==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/select": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/select/-/select-24.1.7.tgz", - "integrity": "sha512-3rS0CjZneEUP9W6pC50zsaeASy9mHfWoS1DXOyS0JMfodgI4+jvmNY5kDdxdX57rBnWPsXhpqxzjZSqhpjcQsA==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/select/-/select-24.1.9.tgz", + "integrity": "sha512-q59WHqqFFt/BkMMMoWebcUmDETiAHKQZdJIgnMAavWR7rW1kXYWagGS5bgCj3lfJq9G/+vun8CHOFr5mAwQvIg==", "dependencies": { "@polymer/polymer": "^3.2.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/button": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/field-base": "~24.1.7", - "@vaadin/input-container": "~24.1.7", - "@vaadin/item": "~24.1.7", - "@vaadin/list-box": "~24.1.7", - "@vaadin/lit-renderer": "~24.1.7", - "@vaadin/overlay": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/button": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/field-base": "~24.1.9", + "@vaadin/input-container": "~24.1.9", + "@vaadin/item": "~24.1.9", + "@vaadin/list-box": "~24.1.9", + "@vaadin/lit-renderer": "~24.1.9", + "@vaadin/overlay": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/split-layout": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/split-layout/-/split-layout-24.1.7.tgz", - "integrity": "sha512-Xo1xW4FuOzYhDIPiRlYvStMzjslYrb8r01VQPXgwq+4J319pXsSNAAZAnga3n55p0V3MP9QeEeLWYPrbNrEibA==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/split-layout/-/split-layout-24.1.9.tgz", + "integrity": "sha512-lnygzdAKRG1DMzYFhCmtOtcCNaQGACbHgG9O6x4IpJrAN2mU8MGOmWIRLRKtiXAB1ckHv7fC5yukGsJqoJG7WA==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/component-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/tabs": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/tabs/-/tabs-24.1.7.tgz", - "integrity": "sha512-sbM3fQLsdSyC/dOHa0fsdkEx0b84q2FTda0ZyYZIf2gIwpuQvkhyfF80Bo3TyiWeAXqzCG0243jvx1v0dtIxgQ==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/tabs/-/tabs-24.1.9.tgz", + "integrity": "sha512-i+4g77xaKzAvAIE9XpwEACAcPl7Yf/EDUwz5fe1kuzWQwv3vBuQYcmpaFqwEtoODTe02DLzupNW26DF0WCJtMQ==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/item": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/item": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/tabsheet": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/tabsheet/-/tabsheet-24.1.7.tgz", - "integrity": "sha512-9yI03sfjcqIQna70Ar4yAiNcLgXPoCNaEMl9X8TasQm2rnAoA0HCqyn3SS7Ncaj2D7764tN+WQsnOAKatkaS9A==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/tabsheet/-/tabsheet-24.1.9.tgz", + "integrity": "sha512-l85JP/kJtu/p1Uw1tu9Efe8EB6LvUyNIs6pdtSKjRNSdB/UpwK6tqLuVknTl2pWwNk5jKRc5C/o0X0g0LfUeZw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.7", - "@vaadin/scroller": "~24.1.7", - "@vaadin/tabs": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/component-base": "~24.1.9", + "@vaadin/scroller": "~24.1.9", + "@vaadin/tabs": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/text-area": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/text-area/-/text-area-24.1.7.tgz", - "integrity": "sha512-RpRuwCgmwhp/b/Z/WK/v7ZwlKzITynYhzNlzR+DEATMOzA1a+S4Zux2ZBK/f7McY5kcUccUWLGd7SHy4ey+DLA==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/text-area/-/text-area-24.1.9.tgz", + "integrity": "sha512-7N8KGu8cxhqKrQJ3F0d3WL0LayD2H5BqpGzSt3aLUgR/t/ddhBbUVk1D8yKoMXPdIyQtrTybUaJ+8ScFXyuxRQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/field-base": "~24.1.7", - "@vaadin/input-container": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7", + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/field-base": "~24.1.9", + "@vaadin/input-container": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9", "lit": "^2.0.0" } }, "node_modules/@vaadin/text-field": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.1.7.tgz", - "integrity": "sha512-14aOoRSH1Vp5LUUDmZbBS7oXdTsT6UfOc9QyAvRcF82Z1s38ZGExN0WH3HAiyAc46SL4aydKWNMg6T5NgrhnMg==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.1.9.tgz", + "integrity": "sha512-azMFAGhY2fWNC0J53EVe8UaaLlpKgzOwddrut/OLFvCcm5tsi7F5XJssK5BTvB2QbE78xQsYqr4GvlTWdIS1Dw==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/field-base": "~24.1.7", - "@vaadin/input-container": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7", + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/field-base": "~24.1.9", + "@vaadin/input-container": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9", "lit": "^2.0.0" } }, "node_modules/@vaadin/time-picker": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/time-picker/-/time-picker-24.1.7.tgz", - "integrity": "sha512-+kcEUWjqndMaBeuEsRoRWM++MYhOtL+S76TVaBQ9tork9Hc8n6poDKxZMCuf+Zom9VABWgXU7uxwYlq/GgRXUg==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/time-picker/-/time-picker-24.1.9.tgz", + "integrity": "sha512-jgSRjeBN0bt2buozYPbQgi6IUuFROr1sw2Q/X0XB7kykpjoMVSdLr7D+KhQbrOQ+d1wIbufNASZen2OFXGdk8w==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/combo-box": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/field-base": "~24.1.7", - "@vaadin/input-container": "~24.1.7", - "@vaadin/item": "~24.1.7", - "@vaadin/overlay": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/combo-box": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/field-base": "~24.1.9", + "@vaadin/input-container": "~24.1.9", + "@vaadin/item": "~24.1.9", + "@vaadin/overlay": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/tooltip": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.1.7.tgz", - "integrity": "sha512-0FkW83xNShg4J9YJbL0XyoeMY3uWcJKgBAwm+9lLc9nxTly9RYpBH6CtDS+KnuLN5YQmBRQRQT70q6XhkjUlxA==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.1.9.tgz", + "integrity": "sha512-0TyfFiav5dcyGmQkLEszre5pVEmpSIEPAJVGKaFEWGk68CLMpY1ivv48rR3WKLpGXZj7tKgKddBQbiI9XbKBUw==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/overlay": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/overlay": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/upload": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/upload/-/upload-24.1.7.tgz", - "integrity": "sha512-VcV+TNMwe2kJVKH484VvooslPZt8kv7j4nLrlGwI77lx+MXRzPYhKqNYeDDErS4TpmtMcfjw0FsTvGitFjQKQQ==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/upload/-/upload-24.1.9.tgz", + "integrity": "sha512-GEXgoEYcMMhz6d3Dr5BlKveXS741o7Vx6c/0qCX1R2okqUWto2xgpDUu3EktOInGq9jfkAiBnGiU8ziOTTN5CQ==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.7", - "@vaadin/button": "~24.1.7", - "@vaadin/component-base": "~24.1.7", - "@vaadin/progress-bar": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7", + "@vaadin/a11y-base": "~24.1.9", + "@vaadin/button": "~24.1.9", + "@vaadin/component-base": "~24.1.9", + "@vaadin/progress-bar": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9", "lit": "^2.0.0" } }, @@ -4072,28 +4106,28 @@ "integrity": "sha512-N6a5nLT/ytEUlpPo+nvdCKIGoyNjPsj3rzPGvGYK8x9Ceg76OTe1xI/GtN71mRW9e2HUScR0kCNOkl1Z63YDjw==" }, "node_modules/@vaadin/vaadin-lumo-styles": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.1.7.tgz", - "integrity": "sha512-RQ8iV7SyezoC7HFtX8/dMZg6qX476v0FuEc6lRajWKZxOXdmZzmB86/IZdBnFQRYgt/8HTBAIZqpMu/hlY9bQQ==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.1.9.tgz", + "integrity": "sha512-oKkwypmlxsC7Ux7ZDrAFJutPY/Qfobhj8AZSxaYKpQyI9ET+C4BbmP7G2IYmAU0qHIkSFnpaEzgUqYJiA3PBOA==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/icon": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/icon": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/vaadin-material-styles": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.1.7.tgz", - "integrity": "sha512-pLpjfHQfYcryJyxXRh0drV6hg8uH0DkUNWOQxlH4JBYljpJY9YgLYdds+o+3JnSe6oMh4vVumjQpbT6rHYeVdQ==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.1.9.tgz", + "integrity": "sha512-qS3mt5eDsNr9b8CGKcYDgkOCnxnRcssi2DaDFO+voJ9DQHRYC09XjMUCCBFnMfPcjo7ByxGp3g7IlwK5QXlVqQ==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/vaadin-themable-mixin": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.1.7.tgz", - "integrity": "sha512-52durAg1EdtExtjP7YTjJcDBpaGYAq85+cnQ0jMvQ/H/mjwu/Du7MrEW/oh4S/1XZmOLWNAo14+CnmeJt/wbLQ==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.1.9.tgz", + "integrity": "sha512-r7dpKLbGHG4QHmhty21yaXC+YWP5nWv5UmpVMwzP1S96MgGs3lntHG7rhhATn7MGTUFowHSCJvxoyaqxn5u4vQ==", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "lit": "^2.0.0" @@ -4112,28 +4146,28 @@ } }, "node_modules/@vaadin/vertical-layout": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/vertical-layout/-/vertical-layout-24.1.7.tgz", - "integrity": "sha512-ftclwgrX4jmswg1o4OytgDSwYKRfXh5UaoFWIbpFp8C4VkBGmCi7njCLa6R99gL4t9JuNZrTnm0oqKmv4GCs9A==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/vertical-layout/-/vertical-layout-24.1.9.tgz", + "integrity": "sha512-1kUO8QJ3uIJcJl9q3yi0kZVBIAi4H9KtNxG4cVhfHbDgtyt20ai24PKHzGcFgJyL9SUD+w/L4kgATDycjz5h7w==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/component-base": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vaadin/virtual-list": { - "version": "24.1.7", - "resolved": "https://registry.npmjs.org/@vaadin/virtual-list/-/virtual-list-24.1.7.tgz", - "integrity": "sha512-x82r84n2+BtyZSkNxQOf5SM0QC1c0fwuZqCXK9QHrp1x+dGs3GjbYSpjKFJxA+HTyJ0vOY/ZD7piamUZPng1gA==", + "version": "24.1.9", + "resolved": "https://registry.npmjs.org/@vaadin/virtual-list/-/virtual-list-24.1.9.tgz", + "integrity": "sha512-6pjYKzbFvOTOmQbm/bMSUT1rEMfqB5X242gfctSUxUjL6b/0gLvPzuKaM40/x9btQgpwvGSS6wvTrNUTF42xag==", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.7", - "@vaadin/lit-renderer": "~24.1.7", - "@vaadin/vaadin-lumo-styles": "~24.1.7", - "@vaadin/vaadin-material-styles": "~24.1.7", - "@vaadin/vaadin-themable-mixin": "~24.1.7" + "@vaadin/component-base": "~24.1.9", + "@vaadin/lit-renderer": "~24.1.9", + "@vaadin/vaadin-lumo-styles": "~24.1.9", + "@vaadin/vaadin-material-styles": "~24.1.9", + "@vaadin/vaadin-themable-mixin": "~24.1.9" } }, "node_modules/@vitejs/plugin-react": { diff --git a/packages/java/tests/spring/react-grid-test/package.json b/packages/java/tests/spring/react-grid-test/package.json index 371663ffe5..b9315678a2 100644 --- a/packages/java/tests/spring/react-grid-test/package.json +++ b/packages/java/tests/spring/react-grid-test/package.json @@ -14,11 +14,12 @@ "@hilla/generator-typescript-plugin-push": "file:../../../../ts/generator-typescript-plugin-push", "@hilla/generator-typescript-utils": "file:../../../../ts/generator-typescript-utils", "@hilla/hilla-frontend": "file:../../../../ts/hilla-frontend", - "@hilla/react-components": "2.1.7", + "@hilla/react-auth": "file:../../../../ts/react-auth", + "@hilla/react-components": "2.1.9", "@hilla/react-form": "file:../../../../ts/react-form", "@hilla/react-grid": "file:../../../../ts/react-grid", "@polymer/polymer": "3.5.1", - "@vaadin/bundles": "24.1.7", + "@vaadin/bundles": "24.1.9", "@vaadin/common-frontend": "0.0.18", "@vaadin/router": "1.7.5", "construct-style-sheets-polyfill": "3.1.0", @@ -45,20 +46,21 @@ }, "vaadin": { "dependencies": { - "@hilla/frontend": "2.2.0-beta1", - "@hilla/generator-typescript-cli": "2.2.0-beta1", - "@hilla/generator-typescript-core": "2.2.0-beta1", - "@hilla/generator-typescript-plugin-backbone": "2.2.0-beta1", - "@hilla/generator-typescript-plugin-barrel": "2.2.0-beta1", - "@hilla/generator-typescript-plugin-client": "2.2.0-beta1", - "@hilla/generator-typescript-plugin-model": "2.2.0-beta1", - "@hilla/generator-typescript-plugin-push": "2.2.0-beta1", - "@hilla/generator-typescript-utils": "2.2.0-beta1", - "@hilla/react-components": "2.1.7", - "@hilla/react-form": "2.2.0-beta1", - "@hilla/react-grid": "2.2.0-beta1", + "@hilla/frontend": "2.3.0-alpha3", + "@hilla/generator-typescript-cli": "2.3.0-alpha3", + "@hilla/generator-typescript-core": "2.3.0-alpha3", + "@hilla/generator-typescript-plugin-backbone": "2.3.0-alpha3", + "@hilla/generator-typescript-plugin-barrel": "2.3.0-alpha3", + "@hilla/generator-typescript-plugin-client": "2.3.0-alpha3", + "@hilla/generator-typescript-plugin-model": "2.3.0-alpha3", + "@hilla/generator-typescript-plugin-push": "2.3.0-alpha3", + "@hilla/generator-typescript-utils": "2.3.0-alpha3", + "@hilla/react-auth": "2.2.0-beta1", + "@hilla/react-components": "2.1.9", + "@hilla/react-form": "2.3.0-alpha1", + "@hilla/react-grid": "2.3.0-alpha1", "@polymer/polymer": "3.5.1", - "@vaadin/bundles": "24.1.7", + "@vaadin/bundles": "24.1.9", "@vaadin/common-frontend": "0.0.18", "@vaadin/router": "1.7.5", "construct-style-sheets-polyfill": "3.1.0", @@ -82,7 +84,7 @@ "workbox-core": "7.0.0", "workbox-precaching": "7.0.0" }, - "hash": "7f85992b371b0029ddda175ca883c5f04f3060483376b52d1a46498b49451fa7" + "hash": "c58b0ee59141aeca3ed6e0f4ecefdf2231f5322549a820a0179f1798df5dd52b" }, "overrides": { "@vaadin/common-frontend": "$@vaadin/common-frontend", diff --git a/packages/ts/react-auth/.eslintrc b/packages/ts/react-auth/.eslintrc new file mode 100644 index 0000000000..d445a4e4e1 --- /dev/null +++ b/packages/ts/react-auth/.eslintrc @@ -0,0 +1,5 @@ +{ + "parserOptions": { + "project": "./tsconfig.json" + } +} diff --git a/packages/ts/react-auth/.lintstagedrc.js b/packages/ts/react-auth/.lintstagedrc.js new file mode 100644 index 0000000000..4ea5625af3 --- /dev/null +++ b/packages/ts/react-auth/.lintstagedrc.js @@ -0,0 +1,6 @@ +import { commands } from '../../../.lintstagedrc.js'; + +export default { + 'src/**/*.{js,ts}': commands, + 'test/**/*.{js,ts}': commands, +}; diff --git a/packages/ts/react-auth/LICENSE b/packages/ts/react-auth/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/packages/ts/react-auth/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/packages/ts/react-auth/README.md b/packages/ts/react-auth/README.md new file mode 100644 index 0000000000..7a047846fc --- /dev/null +++ b/packages/ts/react-auth/README.md @@ -0,0 +1,24 @@ +# Hilla React Auth + +[![Latest Stable Version](https://img.shields.io/npm/v/@hilla/auth.svg)](https://www.npmjs.com/package/@hilla/auth) + +A set of utilities to help with authentication and authorization in a Hilla+React application. + +A part of the Hilla project. + +## Installation + +```bash +$ npm install @hilla/react-auth +``` + +## Contribution + +Read the [contributing guide](https://vaadin.com/docs/latest/contributing-docs/overview) to learn about our development process, how to propose bugfixes and improvements, and how to test your changes. + +## License + +Apache License 2.0 + +Vaadin collects development time usage statistics to improve this product. +For details and to opt-out, see https://github.com/vaadin/vaadin-usage-statistics. diff --git a/packages/ts/react-auth/package.json b/packages/ts/react-auth/package.json new file mode 100644 index 0000000000..23226e5ae5 --- /dev/null +++ b/packages/ts/react-auth/package.json @@ -0,0 +1,69 @@ +{ + "name": "@hilla/react-auth", + "version": "2.2.0-beta1", + "description": "Hilla auth utils for React", + "main": "index.js", + "module": "index.js", + "type": "module", + "repository": { + "type": "git", + "url": "https://github.com/vaadin/hilla.git", + "directory": "packages/ts/react-auth" + }, + "keywords": [ + "Hilla", + "Authentication", + "React" + ], + "scripts": { + "build": "tsc --isolatedModules -p tsconfig.build.json", + "lint": "eslint src test", + "lint:fix": "eslint src test --fix", + "test": "karma start ../../../karma.config.cjs --port 9877", + "test:coverage": "echo \"Skipping\"", + "test:watch": "npm run test -- --watch", + "typecheck": "tsc --noEmit", + "version": "node ../../../scripts/bump/package-update.js" + }, + "exports": { + ".": { + "default": "./index.js" + } + }, + "author": "Vaadin Ltd", + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/vaadin/hilla/issues" + }, + "homepage": "https://hilla.dev", + "files": [ + "*.{d.ts.map,d.ts,js.map,js}" + ], + "publishConfig": { + "access": "public" + }, + "dependencies": { + "@hilla/frontend": "*" + }, + "peerDependencies": { + "react": "^18", + "react-router-dom": "^6" + }, + "devDependencies": { + "@esm-bundle/chai": "^4.3.4-fix.0", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.4.3", + "@types/chai": "^4.3.5", + "@types/chai-dom": "^1.11.0", + "@types/mocha": "^10.0.1", + "@types/react": "^18.2.20", + "@types/sinon": "^10.0.16", + "@types/sinon-chai": "^3.2.9", + "@types/validator": "^13.11.1", + "chai-dom": "^1.11.0", + "react-router-dom": "^6.16.0", + "sinon": "^15.2.0", + "sinon-chai": "^3.7.0", + "typescript": "^5.1.6" + } +} diff --git a/packages/ts/react-auth/src/ProtectedRoute.tsx b/packages/ts/react-auth/src/ProtectedRoute.tsx new file mode 100644 index 0000000000..134190ed94 --- /dev/null +++ b/packages/ts/react-auth/src/ProtectedRoute.tsx @@ -0,0 +1,89 @@ +import { useContext } from 'react'; +import type { RouteObject } from 'react-router-dom'; +import { type IndexRouteObject, Navigate, type NonIndexRouteObject, useLocation } from 'react-router-dom'; +import { type AccessProps, AuthContext } from './useAuth.js'; + +type CustomMetadata = Record; + +type HandleWithAuth = Readonly<{ handle?: AccessProps & CustomMetadata }>; + +type Override = E & Omit; + +type IndexRouteObjectWithAuth = Override; +type NonIndexRouteObjectWithAuth = Override< + Override, + { + children?: RouteObjectWithAuth[]; + } +>; +export type RouteObjectWithAuth = IndexRouteObjectWithAuth | NonIndexRouteObjectWithAuth; + +interface ProtectedRouteProps { + redirectPath: string; + access: AccessProps; + element: JSX.Element; +} + +function ProtectedRoute({ redirectPath, access, element }: ProtectedRouteProps): JSX.Element | null { + const { + state: { initializing, loading, user }, + hasAccess, + } = useContext(AuthContext); + + const location = useLocation(); + + if (initializing || loading) { + return
; + } + + if (!hasAccess(access)) { + return ; + } + + return element; +} + +const collectRoutes = (routes: T[]): T[] => { + const allRoutes: T[] = []; + routes.forEach((route) => { + allRoutes.push(route); + if ((route as RouteObject).children !== undefined) { + allRoutes.push(...collectRoutes((route as RouteObject).children as T[])); + } + }); + return allRoutes; +}; + +/** + * Adds protection to routes that require authentication. + * These routes should contain the {@link AccessProps.requiresLogin} and/or + * {@link AccessProps.rolesAllowed} properties. + * + * @param routes - the routes to check if any of them needs to be protected + * @param redirectPath - the path to redirect to if the route is + * protected and the user is not authenticated. + * @returns the routes extended with protection if needed + */ +export const protectRoutes = ( + routes: RouteObjectWithAuth[], + redirectPath: string = '/login', +): RouteObjectWithAuth[] => { + const allRoutes: RouteObjectWithAuth[] = collectRoutes(routes); + + allRoutes.forEach((route) => { + const { handle } = route; + const requiresAuth = handle?.requiresLogin ?? handle?.rolesAllowed?.length; + + if (requiresAuth) { + route.element = ( + + ); + } + }); + + return routes; +}; diff --git a/packages/ts/react-auth/src/index.ts b/packages/ts/react-auth/src/index.ts new file mode 100644 index 0000000000..7365eac500 --- /dev/null +++ b/packages/ts/react-auth/src/index.ts @@ -0,0 +1,2 @@ +export * from './ProtectedRoute.js'; +export * from './useAuth.js'; diff --git a/packages/ts/react-auth/src/useAuth.tsx b/packages/ts/react-auth/src/useAuth.tsx new file mode 100644 index 0000000000..70330b2cae --- /dev/null +++ b/packages/ts/react-auth/src/useAuth.tsx @@ -0,0 +1,225 @@ +import { login as _login, logout as _logout, type LoginResult } from '@hilla/frontend'; +import { createContext, type Dispatch, useEffect, useReducer } from 'react'; + +type LoginFunction = (username: string, password: string) => Promise; +type LogoutFunction = () => Promise; + +const LOGIN_FETCH = 'LOGIN_FETCH'; +const LOGIN_SUCCESS = 'LOGIN_SUCCESS'; +const LOGIN_FAILURE = 'LOGIN_FAILURE'; +const LOGOUT = 'LOGOUT'; + +/** + * The user object returned from the authentication provider. + * The properties are the same as the ones returned from the + * {@link https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims | OpenID Connect Standard Claims} + * specification, with the addition of the `roles` property. + * + * The user is not required to comply with this format. This is just for convenience. + */ +export type AuthUser = Readonly<{ + sub?: string; + name?: string; + givenName?: string; + familyName?: string; + middleName?: string; + nickName?: string; + preferredUsername?: string; + profile?: string; + picture?: string; + website?: string; + email?: string; + emailVerified?: boolean; + gender?: string; + birthdate?: string; + zoneinfo?: string; + locale?: string; + phoneNumber?: string; + phoneNumberVerified?: boolean; + roles?: string[]; +}>; + +/** + * The type of the function that is used to get the authenticated user. + */ +export type AuthFunctionType = () => Promise | undefined>; + +type AuthState = Readonly<{ + initializing: boolean; + loading: boolean; + user?: AuthUser; + error?: string; + getAuthenticatedUser?: AuthFunctionType; +}>; + +type LoginFetchAction = Readonly<{ + type: typeof LOGIN_FETCH; +}>; + +type LoginSuccessAction = Readonly<{ + user: AuthUser; + type: typeof LOGIN_SUCCESS; +}>; + +type LoginFailureAction = Readonly<{ + error: string; + type: typeof LOGIN_FAILURE; +}>; + +type LoginActions = LoginFailureAction | LoginFetchAction | LoginSuccessAction; + +type LogoutAction = Readonly<{ + type: typeof LOGOUT; +}>; + +function createAuthenticateThunk(dispatch: Dispatch, getAuthenticatedUser: AuthFunctionType) { + async function authenticate() { + dispatch({ type: LOGIN_FETCH }); + + // Get user info from endpoint + const user = await getAuthenticatedUser(); + if (user) { + dispatch({ + user, + type: LOGIN_SUCCESS, + }); + } else { + dispatch({ + error: 'Not authenticated', + type: LOGIN_FAILURE, + }); + } + } + + return authenticate; +} + +function createUnauthenticateThunk(dispatch: Dispatch) { + return () => { + dispatch({ type: LOGOUT }); + }; +} + +const initialState: AuthState = { + initializing: true, + loading: false, +}; + +function reducer(state: AuthState, action: LoginActions | LogoutAction) { + switch (action.type) { + case LOGIN_FETCH: + return { + initializing: false, + loading: true, + }; + case LOGIN_SUCCESS: + return { + initializing: false, + loading: false, + user: action.user, + }; + case LOGIN_FAILURE: + return { + initializing: false, + loading: false, + error: action.error, + }; + case LOGOUT: + return { initializing: false, loading: false }; + default: + return state; + } +} + +/** + * The properties that can be used to control access to a route. + * They can be added to the route type handler as properties. + */ +export type AccessProps = Readonly<{ + requiresLogin?: boolean; + rolesAllowed?: readonly string[]; +}>; + +/** + * The type of the authentication hook. + */ +export type Authentication = Readonly<{ + state: AuthState; + login: LoginFunction; + logout: LogoutFunction; + hasAccess(accessProps: AccessProps): boolean; +}>; + +/** + * The hook that can be used to authenticate the user. + * It returns the state of the authentication and the functions + * to authenticate and unauthenticate the user. + */ +export function useAuth(getAuthenticatedUser?: AuthFunctionType): Authentication { + const [state, dispatch] = useReducer(reducer, initialState); + const authenticate = createAuthenticateThunk( + dispatch, + getAuthenticatedUser ?? (async () => Promise.resolve(undefined)), + ); + const unauthenticate = createUnauthenticateThunk(dispatch); + + async function login(username: string, password: string): Promise { + const result = await _login(username, password); + + if (!result.error) { + await authenticate(); + } + + return result; + } + + async function logout(): Promise { + await _logout(); + unauthenticate(); + } + + useEffect(() => { + authenticate().catch(() => { + // Do nothing + }); + }, []); + + return { + state, + login, + logout, + hasAccess(accessProps: AccessProps): boolean { + const requiresAuth = accessProps.requiresLogin ?? accessProps.rolesAllowed; + if (!requiresAuth) { + return true; + } + + if (!state.user) { + return false; + } + + if (accessProps.rolesAllowed) { + return accessProps.rolesAllowed.some((allowedRole) => state.user?.roles?.includes(allowedRole)); + } + + return true; + }, + }; +} + +/** + * The hook that can be used to get the authentication state. + * It returns the state of the authentication. + */ +export const AuthContext = createContext({ + state: initialState, + async login() { + throw new Error('AuthContext not initialized'); + }, + async logout() { + throw new Error('AuthContext not initialized'); + }, + hasAccess(): boolean { + throw new Error('AuthContext not initialized'); + }, +}); diff --git a/packages/ts/react-auth/test/ProtectedRoute.spec.tsx b/packages/ts/react-auth/test/ProtectedRoute.spec.tsx new file mode 100644 index 0000000000..6f16daa05c --- /dev/null +++ b/packages/ts/react-auth/test/ProtectedRoute.spec.tsx @@ -0,0 +1,120 @@ +import { expect } from '@esm-bundle/chai'; +import { render, waitFor } from '@testing-library/react'; +import { createMemoryRouter, RouterProvider } from 'react-router-dom'; +import { AuthContext, type AuthUser, protectRoutes, type RouteObjectWithAuth, useAuth } from '../src'; + +function TestView({ route }: { route: string }) { + return
{`route: ${route}`}
; +} + +const testRoutes: RouteObjectWithAuth[] = [ + { + path: '/login', + element: , + }, + { + path: '/public', + element: , + }, + { + path: '/protected/login', + element: , + handle: { + requiresLogin: true, + }, + }, + { + path: '/protected/role/user', + element: , + handle: { + requiresLogin: true, + rolesAllowed: ['user'], + }, + }, + { + path: '/protected/role/admin', + element: , + handle: { + requiresLogin: true, + rolesAllowed: ['admin'], + }, + }, + { + path: '/protected/roleonly/user', + element: , + handle: { + rolesAllowed: ['user'], + }, + }, + { + path: '/protected/roleonly/admin', + element: , + handle: { + rolesAllowed: ['admin'], + }, + }, +]; + +function TestApp({ user, initialRoute }: { user?: AuthUser; initialRoute: string }) { + const auth = useAuth(async () => Promise.resolve(user)); + const protectedRoutes = protectRoutes(testRoutes); + const router = createMemoryRouter(protectedRoutes, { + initialEntries: [initialRoute], + }); + + return ( + + + + ); +} + +describe('@hilla/react-auth', () => { + describe('protectRoutes', () => { + async function testRoute(route: string, user: AuthUser | undefined, canAccess: boolean) { + const result = render(); + const expectedText = canAccess ? `route: ${route}` : 'route: /login'; + await waitFor(() => expect(result.getByText(expectedText)).to.exist); + result.unmount(); + } + + it('should protect routes when no user is authenticated', async () => { + await testRoute('/public', undefined, true); + await testRoute('/protected/login', undefined, false); + await testRoute('/protected/role/user', undefined, false); + await testRoute('/protected/role/admin', undefined, false); + await testRoute('/protected/roleonly/user', undefined, false); + await testRoute('/protected/roleonly/admin', undefined, false); + }); + + it('should protect routes when user without roles is authenticated', async () => { + const user = { name: 'John' }; + await testRoute('/public', user, true); + await testRoute('/protected/login', user, true); + await testRoute('/protected/role/user', user, false); + await testRoute('/protected/role/admin', user, false); + await testRoute('/protected/roleonly/user', user, false); + await testRoute('/protected/roleonly/admin', user, false); + }); + + it('should protect routes when user with user role is authenticated', async () => { + const user = { name: 'John', roles: ['user'] }; + await testRoute('/public', user, true); + await testRoute('/protected/login', user, true); + await testRoute('/protected/role/user', user, true); + await testRoute('/protected/role/admin', user, false); + await testRoute('/protected/roleonly/user', user, true); + await testRoute('/protected/roleonly/admin', user, false); + }); + + it('should protect routes when user with all roles is authenticated', async () => { + const user = { name: 'John', roles: ['user', 'admin'] }; + await testRoute('/public', user, true); + await testRoute('/protected/login', user, true); + await testRoute('/protected/role/user', user, true); + await testRoute('/protected/role/admin', user, true); + await testRoute('/protected/roleonly/user', user, true); + await testRoute('/protected/roleonly/admin', user, true); + }); + }); +}); diff --git a/packages/ts/react-auth/test/useAuth.spec.tsx b/packages/ts/react-auth/test/useAuth.spec.tsx new file mode 100644 index 0000000000..ac24e45a42 --- /dev/null +++ b/packages/ts/react-auth/test/useAuth.spec.tsx @@ -0,0 +1,39 @@ +import { expect } from '@esm-bundle/chai'; +import { render, waitFor } from '@testing-library/react'; +import { AuthContext, useAuth } from '../src'; + +function SuccessfulLoginComponent() { + const getAuthenticatedUser = async () => Promise.resolve({ name: 'John', roles: ['admin'] }); + const auth = useAuth(getAuthenticatedUser); + + return ( + +
{auth.state.user?.name}
+
+ ); +} + +function FailedLoginComponent() { + const getAuthenticatedUser = async () => Promise.resolve(undefined); + const auth = useAuth(getAuthenticatedUser); + + return ( + +
{auth.state.user ? auth.state.user.name : 'Not logged in'}
+
+ ); +} + +describe('@hilla/react-auth', () => { + describe('useAuth', () => { + it('should be able to access user information after login', async () => { + const { getByText } = render(); + await waitFor(() => expect(getByText('John')).to.exist); + }); + + it('should not be able to access user information after login', async () => { + const { getByText } = render(); + await waitFor(() => expect(getByText('Not logged in')).to.exist); + }); + }); +}); diff --git a/packages/ts/react-auth/tsconfig.build.json b/packages/ts/react-auth/tsconfig.build.json new file mode 100644 index 0000000000..445f3f4492 --- /dev/null +++ b/packages/ts/react-auth/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "." + }, + "include": ["src"] +} diff --git a/packages/ts/react-auth/tsconfig.json b/packages/ts/react-auth/tsconfig.json new file mode 100644 index 0000000000..440ed221a9 --- /dev/null +++ b/packages/ts/react-auth/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../../tsconfig.json", + "compilerOptions": { + "jsx": "react-jsx", + "experimentalDecorators": true, + "target": "es2022" + }, + "include": ["src", "test"], + "exclude": ["test/**/*.snap.ts"] +}