diff --git a/docs/documentation/upgrading/topics/changes/changes-26_0_0.adoc b/docs/documentation/upgrading/topics/changes/changes-26_0_0.adoc index a37922af55..b91714b244 100644 --- a/docs/documentation/upgrading/topics/changes/changes-26_0_0.adoc +++ b/docs/documentation/upgrading/topics/changes/changes-26_0_0.adoc @@ -167,3 +167,19 @@ If the table currently contains more than 300.000 entries, on the console during migration. In this case, the statements must be run manually in the DB after {project_name}'s startup. Also, the `kc.org` and `hideOnLoginPage` configuration attributes were migrated to the identity provider itself, to allow for more efficient queries when searching for providers. As such, API clients should use the `getOrganizationId/setOrganizationId` and `isHideOnLogin/setHideOnLogin` methods in the `IdentityProviderRepresentation`, and avoid setting these properties using the legacy config attributes that are now deprecated. + += Paths for `common` theme resources have changed + +Some of the paths for the `common` resources of the `keycloak` theme have changed, specifically the resources for third-party libraries. Make sure to update your custom themes accordingly: + +- `node_modules/patternfly/dist` is now `vendor/patternfly-v3` +- `node_modules/@patternfly/patternfly` is now `vendor/patternfly-v4` +- `node_modules/@patternfly-v5/patternfly` is now `vendor/patternfly-v5` +- `node_modules/rfc4648/lib` is now `vendor/rfc4648` + +Additionally, the following resources have been removed from the `common` theme: + +- `node_modules/alpinejs` +- `node_modules/jquery` + +If you previously used any of the removed resources in your theme, make sure to add them to your own theme resources instead. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 71cfa700d2..6d01be7061 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -482,7 +482,7 @@ importers: specifier: ^2.0.5 version: 2.0.5(@types/node@22.4.1)(jsdom@24.1.1)(lightningcss@1.26.0)(terser@5.31.3) - themes/src/main/resources/theme/keycloak/common/resources: + themes: dependencies: '@patternfly-v5/patternfly': specifier: npm:@patternfly/patternfly@^5.3.1 @@ -490,12 +490,6 @@ importers: '@patternfly/patternfly': specifier: ^4.224.5 version: 4.224.5 - alpinejs: - specifier: ^3.14.1 - version: 3.14.1 - jquery: - specifier: ^3.7.1 - version: 3.7.1 patternfly: specifier: ^3.59.5 version: 3.59.5 @@ -1928,12 +1922,6 @@ packages: typescript: optional: true - '@vue/reactivity@3.1.5': - resolution: {integrity: sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==} - - '@vue/shared@3.1.5': - resolution: {integrity: sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==} - '@vue/shared@3.4.27': resolution: {integrity: sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==} @@ -1992,9 +1980,6 @@ packages: ajv@8.13.0: resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} - alpinejs@3.14.1: - resolution: {integrity: sha512-ICar8UsnRZAYvv/fCNfNeKMXNoXGUfwHrjx7LqXd08zIP95G2d9bAOuaL97re+1mgt/HojqHsfdOLo/A5LuWgQ==} - ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} @@ -3493,9 +3478,6 @@ packages: jquery@3.4.1: resolution: {integrity: sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==} - jquery@3.7.1: - resolution: {integrity: sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==} - js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -5980,7 +5962,7 @@ snapshots: '@rollup/plugin-replace@5.0.7(rollup@4.21.0)': dependencies: '@rollup/pluginutils': 5.1.0(rollup@4.21.0) - magic-string: 0.30.10 + magic-string: 0.30.11 optionalDependencies: rollup: 4.21.0 @@ -6622,12 +6604,6 @@ snapshots: optionalDependencies: typescript: 5.5.4 - '@vue/reactivity@3.1.5': - dependencies: - '@vue/shared': 3.1.5 - - '@vue/shared@3.1.5': {} - '@vue/shared@3.4.27': {} abstract-logging@2.0.1: {} @@ -6686,10 +6662,6 @@ snapshots: require-from-string: 2.0.2 uri-js: 4.4.1 - alpinejs@3.14.1: - dependencies: - '@vue/reactivity': 3.1.5 - ansi-colors@4.1.3: {} ansi-escapes@4.3.2: @@ -8375,8 +8347,6 @@ snapshots: jquery@3.4.1: {} - jquery@3.7.1: {} - js-tokens@4.0.0: {} js-yaml@4.1.0: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 7d52f42c03..6042f9e345 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,4 +1,4 @@ packages: - js/apps/* - js/libs/* - - themes/src/main/resources/theme/keycloak/common/resources + - themes diff --git a/themes/.gitignore b/themes/.gitignore deleted file mode 100644 index 22d0d82f80..0000000000 --- a/themes/.gitignore +++ /dev/null @@ -1 +0,0 @@ -vendor diff --git a/themes/src/main/resources/theme/keycloak/common/resources/package.json b/themes/package.json similarity index 92% rename from themes/src/main/resources/theme/keycloak/common/resources/package.json rename to themes/package.json index fbadb246cd..78cc25da98 100644 --- a/themes/src/main/resources/theme/keycloak/common/resources/package.json +++ b/themes/package.json @@ -9,8 +9,6 @@ "dependencies": { "@patternfly-v5/patternfly": "npm:@patternfly/patternfly@^5.3.1", "@patternfly/patternfly": "^4.224.5", - "alpinejs": "^3.14.1", - "jquery": "^3.7.1", "patternfly": "^3.59.5", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/themes/pom.xml b/themes/pom.xml index e93927b98e..1ff3c9eaed 100755 --- a/themes/pom.xml +++ b/themes/pom.xml @@ -13,12 +13,7 @@ jar - src/main/resources/theme/keycloak/common/resources - - src/main/resources/theme/keycloak/common/resources/node_modules - src/main/resources/theme/keycloak/common/resources/vendor - src/main/resources/theme/keycloak.v2/welcome/node_modules - src/main/resources/theme/keycloak.v2/welcome/resources/vendor + theme/keycloak/common/resources/vendor @@ -40,20 +35,92 @@ - - maven-source-plugin - - - **/node_modules/** - - - com.github.eirslett frontend-maven-plugin - - src/main/resources/theme/keycloak/common/resources - + + + maven-resources-plugin + + + copy-rfc4648 + generate-resources + + copy-resources + + + ${project.build.outputDirectory}/${dir.vendor}/rfc4648 + + + node_modules/rfc4648/lib + + rfc4648.js + + + + + + + copy-patternfly-v3 + generate-resources + + copy-resources + + + ${project.build.outputDirectory}/${dir.vendor}/patternfly-v3 + + + node_modules/patternfly/dist + + css/patternfly.min.css + css/patternfly-additions.min.css + fonts/** + img/** + + + + + + + copy-patternfly-v4 + generate-resources + + copy-resources + + + ${project.build.outputDirectory}/${dir.vendor}/patternfly-v4 + + + node_modules/@patternfly/patternfly + + patternfly.min.css + assets/** + + + + + + + copy-patternfly-v5 + generate-resources + + copy-resources + + + ${project.build.outputDirectory}/${dir.vendor}/patternfly-v5 + + + node_modules/@patternfly-v5/patternfly + + patternfly.min.css + patternfly-addons.css + assets/** + + + + + + diff --git a/themes/src/main/resources/theme/keycloak/common/resources/rollup.config.js b/themes/rollup.config.js similarity index 83% rename from themes/src/main/resources/theme/keycloak/common/resources/rollup.config.js rename to themes/rollup.config.js index d50b94b80b..7cc197f519 100644 --- a/themes/src/main/resources/theme/keycloak/common/resources/rollup.config.js +++ b/themes/rollup.config.js @@ -3,6 +3,7 @@ import { nodeResolve } from "@rollup/plugin-node-resolve"; import commonjs from "@rollup/plugin-commonjs"; import replace from "@rollup/plugin-replace"; import terser from "@rollup/plugin-terser"; +import path from "node:path"; const plugins = [ nodeResolve(), @@ -16,6 +17,8 @@ const plugins = [ terser(), ]; +const targetDir = "target/classes/theme/keycloak/common/resources/vendor"; + export default defineConfig([ { input: [ @@ -23,7 +26,7 @@ export default defineConfig([ "node_modules/react/cjs/react-jsx-runtime.production.min.js", ], output: { - dir: "vendor/react", + dir: path.join(targetDir, "react"), format: "es", }, plugins, @@ -31,7 +34,7 @@ export default defineConfig([ { input: "node_modules/react-dom/cjs/react-dom.production.min.js", output: { - dir: "vendor/react-dom", + dir: path.join(targetDir, "react-dom"), format: "es", }, external: ["react"], diff --git a/themes/src/main/resources/theme/base/login/template.ftl b/themes/src/main/resources/theme/base/login/template.ftl index f7ba320dfa..f82c7bbdb1 100644 --- a/themes/src/main/resources/theme/base/login/template.ftl +++ b/themes/src/main/resources/theme/base/login/template.ftl @@ -33,7 +33,7 @@ diff --git a/themes/src/main/resources/theme/keycloak.v2/login/template.ftl b/themes/src/main/resources/theme/keycloak.v2/login/template.ftl index e0e4a7040b..c3d3544d6b 100644 --- a/themes/src/main/resources/theme/keycloak.v2/login/template.ftl +++ b/themes/src/main/resources/theme/keycloak.v2/login/template.ftl @@ -28,7 +28,7 @@ diff --git a/themes/src/main/resources/theme/keycloak.v2/login/theme.properties b/themes/src/main/resources/theme/keycloak.v2/login/theme.properties index c684fcc4bd..c5a86ee692 100644 --- a/themes/src/main/resources/theme/keycloak.v2/login/theme.properties +++ b/themes/src/main/resources/theme/keycloak.v2/login/theme.properties @@ -2,7 +2,7 @@ parent=keycloak import=common/keycloak styles=css/styles.css -stylesCommon=node_modules/@patternfly-v5/patternfly/patternfly.min.css node_modules/@patternfly-v5/patternfly/patternfly-addons.css +stylesCommon=vendor/patternfly-v5/patternfly.min.css vendor/patternfly-v5/patternfly-addons.css kcFormGroupClass=pf-v5-c-form__group kcLabelClass=pf-v5-c-form__label diff --git a/themes/src/main/resources/theme/keycloak/login/theme.properties b/themes/src/main/resources/theme/keycloak/login/theme.properties index f3555bc833..d7b2721489 100644 --- a/themes/src/main/resources/theme/keycloak/login/theme.properties +++ b/themes/src/main/resources/theme/keycloak/login/theme.properties @@ -2,7 +2,7 @@ parent=base import=common/keycloak styles=css/login.css -stylesCommon=node_modules/@patternfly/patternfly/patternfly.min.css node_modules/patternfly/dist/css/patternfly.min.css node_modules/patternfly/dist/css/patternfly-additions.min.css lib/pficon/pficon.css +stylesCommon=vendor/patternfly-v4/patternfly.min.css vendor/patternfly-v3/css/patternfly.min.css vendor/patternfly-v3/css/patternfly-additions.min.css lib/pficon/pficon.css meta=viewport==width=device-width,initial-scale=1 diff --git a/themes/src/main/resources/theme/keycloak/welcome/theme.properties b/themes/src/main/resources/theme/keycloak/welcome/theme.properties index fe106f84e8..17f7fb4218 100644 --- a/themes/src/main/resources/theme/keycloak/welcome/theme.properties +++ b/themes/src/main/resources/theme/keycloak/welcome/theme.properties @@ -1,6 +1,6 @@ import=common/keycloak -stylesCommon=node_modules/@patternfly-v5/patternfly/patternfly.min.css node_modules/@patternfly-v5/patternfly/patternfly-addons.css +stylesCommon=vendor/patternfly-v5/patternfly.min.css vendor/patternfly-v5/patternfly-addons.css styles=css/welcome.css # When set to true, the user will be redirected to the Administration Console if an administrative users already exists.