keycloakify 10.0.0-rc.2 → 10.0.0-rc.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/PUBLIC_URL.js +1 -1
- package/PUBLIC_URL.js.map +1 -1
- package/account/Fallback.js +3 -0
- package/account/Fallback.js.map +1 -1
- package/account/Template.js +7 -7
- package/account/Template.js.map +1 -1
- package/account/i18n/baseMessages/index.js.map +1 -1
- package/account/i18n/i18n.d.ts +3 -4
- package/account/i18n/i18n.js +38 -31
- package/account/i18n/i18n.js.map +1 -1
- package/account/index.d.ts +1 -1
- package/account/kcContext/KcContext.d.ts +62 -59
- package/account/kcContext/KcContext.js.map +1 -1
- package/account/kcContext/createGetKcContext.d.ts +3 -3
- package/account/kcContext/createGetKcContext.js +20 -15
- package/account/kcContext/createGetKcContext.js.map +1 -1
- package/account/kcContext/getKcContext.js.map +1 -1
- package/account/kcContext/getKcContextFromWindow.d.ts +3 -1
- package/account/kcContext/getKcContextFromWindow.js +1 -1
- package/account/kcContext/getKcContextFromWindow.js.map +1 -1
- package/account/kcContext/kcContextMocks.js +155 -143
- package/account/kcContext/kcContextMocks.js.map +1 -1
- package/account/lib/useGetClassName.js +14 -14
- package/account/lib/useGetClassName.js.map +1 -1
- package/account/pages/Account.js +2 -2
- package/account/pages/Account.js.map +1 -1
- package/account/pages/Applications.js +3 -3
- package/account/pages/Applications.js.map +1 -1
- package/account/pages/FederatedIdentity.d.ts +7 -0
- package/account/pages/FederatedIdentity.js +8 -0
- package/account/pages/FederatedIdentity.js.map +1 -0
- package/account/pages/Log.js +2 -2
- package/account/pages/Log.js.map +1 -1
- package/account/pages/Password.js +9 -11
- package/account/pages/Password.js.map +1 -1
- package/account/pages/Sessions.js +1 -5
- package/account/pages/Sessions.js.map +1 -1
- package/account/pages/Totp.js +5 -5
- package/account/pages/Totp.js.map +1 -1
- package/bin/246.index.js +466 -0
- package/bin/420.index.js +508 -0
- package/bin/509.index.js +438 -0
- package/bin/772.index.js +1524 -0
- package/bin/main.js +155612 -0
- package/bin/{keycloakify/generateFtl/pageId.d.ts → shared/constants.d.ts} +16 -1
- package/bin/shared/constants.js +63 -0
- package/bin/shared/constants.js.map +1 -0
- package/lib/BASE_URL.js.map +1 -1
- package/lib/isStorybook.js +2 -1
- package/lib/isStorybook.js.map +1 -1
- package/lib/useGetClassName.js.map +1 -1
- package/login/Fallback.js.map +1 -1
- package/login/Template.js +17 -17
- package/login/Template.js.map +1 -1
- package/login/UserProfileFormFields.js +59 -59
- package/login/UserProfileFormFields.js.map +1 -1
- package/login/i18n/baseMessages/ca.d.ts +1 -1
- package/login/i18n/baseMessages/ca.js +1 -1
- package/login/i18n/baseMessages/el.d.ts +0 -1
- package/login/i18n/baseMessages/el.js +0 -1
- package/login/i18n/baseMessages/el.js.map +1 -1
- package/login/i18n/baseMessages/en.d.ts +1 -1
- package/login/i18n/baseMessages/en.js +1 -1
- package/login/i18n/baseMessages/es.d.ts +1 -1
- package/login/i18n/baseMessages/es.js +1 -1
- package/login/i18n/baseMessages/fa.d.ts +0 -1
- package/login/i18n/baseMessages/fa.js +0 -1
- package/login/i18n/baseMessages/fa.js.map +1 -1
- package/login/i18n/baseMessages/hu.d.ts +1 -1
- package/login/i18n/baseMessages/hu.js +1 -1
- package/login/i18n/baseMessages/index.d.ts +1 -2
- package/login/i18n/baseMessages/index.js.map +1 -1
- package/login/i18n/baseMessages/zh-CN.d.ts +1 -1
- package/login/i18n/baseMessages/zh-CN.js +1 -1
- package/login/i18n/i18n.d.ts +5 -5
- package/login/i18n/i18n.js +59 -41
- package/login/i18n/i18n.js.map +1 -1
- package/login/index.d.ts +1 -1
- package/login/kcContext/KcContext.d.ts +1 -0
- package/login/kcContext/KcContext.js +1 -0
- package/login/kcContext/KcContext.js.map +1 -1
- package/login/kcContext/createGetKcContext.d.ts +3 -3
- package/login/kcContext/createGetKcContext.js +30 -22
- package/login/kcContext/createGetKcContext.js.map +1 -1
- package/login/kcContext/getKcContext.js.map +1 -1
- package/login/kcContext/getKcContextFromWindow.d.ts +3 -1
- package/login/kcContext/getKcContextFromWindow.js +1 -1
- package/login/kcContext/getKcContextFromWindow.js.map +1 -1
- package/login/kcContext/kcContextMocks.js +235 -232
- package/login/kcContext/kcContextMocks.js.map +1 -1
- package/login/lib/useDownloadTerms.js +5 -6
- package/login/lib/useDownloadTerms.js.map +1 -1
- package/login/lib/useGetClassName.js +112 -112
- package/login/lib/useGetClassName.js.map +1 -1
- package/login/lib/useUserProfileForm.js +188 -188
- package/login/lib/useUserProfileForm.js.map +1 -1
- package/login/pages/Code.js +1 -1
- package/login/pages/Code.js.map +1 -1
- package/login/pages/DeleteAccountConfirm.js +5 -1
- package/login/pages/DeleteAccountConfirm.js.map +1 -1
- package/login/pages/DeleteCredential.js +1 -1
- package/login/pages/DeleteCredential.js.map +1 -1
- package/login/pages/Error.js +1 -1
- package/login/pages/Error.js.map +1 -1
- package/login/pages/FrontchannelLogout.js +1 -1
- package/login/pages/FrontchannelLogout.js.map +1 -1
- package/login/pages/IdpReviewUserProfile.js +1 -1
- package/login/pages/IdpReviewUserProfile.js.map +1 -1
- package/login/pages/Info.js +5 -5
- package/login/pages/Info.js.map +1 -1
- package/login/pages/Login.js +4 -4
- package/login/pages/Login.js.map +1 -1
- package/login/pages/LoginConfigTotp.js +2 -2
- package/login/pages/LoginConfigTotp.js.map +1 -1
- package/login/pages/LoginIdpLinkConfirm.js +1 -1
- package/login/pages/LoginIdpLinkConfirm.js.map +1 -1
- package/login/pages/LoginIdpLinkEmail.js +1 -1
- package/login/pages/LoginIdpLinkEmail.js.map +1 -1
- package/login/pages/LoginOauth2DeviceVerifyUserCode.js +1 -1
- package/login/pages/LoginOauth2DeviceVerifyUserCode.js.map +1 -1
- package/login/pages/LoginOauthGrant.js +2 -2
- package/login/pages/LoginOauthGrant.js.map +1 -1
- package/login/pages/LoginOtp.js +1 -1
- package/login/pages/LoginOtp.js.map +1 -1
- package/login/pages/LoginPageExpired.js +1 -1
- package/login/pages/LoginPageExpired.js.map +1 -1
- package/login/pages/LoginPassword.js +3 -3
- package/login/pages/LoginPassword.js.map +1 -1
- package/login/pages/LoginRecoveryAuthnCodeConfig.js +6 -6
- package/login/pages/LoginRecoveryAuthnCodeConfig.js.map +1 -1
- package/login/pages/LoginRecoveryAuthnCodeInput.js +1 -1
- package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -1
- package/login/pages/LoginResetOtp.js +1 -1
- package/login/pages/LoginResetOtp.js.map +1 -1
- package/login/pages/LoginResetPassword.js +2 -2
- package/login/pages/LoginResetPassword.js.map +1 -1
- package/login/pages/LoginUpdatePassword.js +3 -3
- package/login/pages/LoginUpdatePassword.js.map +1 -1
- package/login/pages/LoginUpdateProfile.js +2 -4
- package/login/pages/LoginUpdateProfile.js.map +1 -1
- package/login/pages/LoginUsername.js +3 -3
- package/login/pages/LoginUsername.js.map +1 -1
- package/login/pages/LoginVerifyEmail.js +1 -1
- package/login/pages/LoginVerifyEmail.js.map +1 -1
- package/login/pages/LoginX509Info.js +1 -1
- package/login/pages/LoginX509Info.js.map +1 -1
- package/login/pages/LogoutConfirm.js +1 -1
- package/login/pages/LogoutConfirm.js.map +1 -1
- package/login/pages/Register.js +4 -8
- package/login/pages/Register.js.map +1 -1
- package/login/pages/SamlPostForm.js +1 -1
- package/login/pages/SamlPostForm.js.map +1 -1
- package/login/pages/SelectAuthenticator.js +2 -2
- package/login/pages/SelectAuthenticator.js.map +1 -1
- package/login/pages/Terms.js +1 -1
- package/login/pages/Terms.js.map +1 -1
- package/login/pages/UpdateEmail.js +3 -5
- package/login/pages/UpdateEmail.js.map +1 -1
- package/login/pages/WebauthnAuthenticate.js +17 -14
- package/login/pages/WebauthnAuthenticate.js.map +1 -1
- package/login/pages/WebauthnError.js +2 -2
- package/login/pages/WebauthnError.js.map +1 -1
- package/login/pages/WebauthnRegister.js +10 -10
- package/login/pages/WebauthnRegister.js.map +1 -1
- package/package.json +103 -512
- package/src/PUBLIC_URL.ts +4 -1
- package/src/account/Fallback.tsx +3 -0
- package/src/account/Template.tsx +7 -10
- package/src/account/TemplateProps.ts +4 -1
- package/src/account/i18n/i18n.tsx +44 -37
- package/src/account/index.ts +1 -1
- package/src/account/kcContext/KcContext.ts +76 -63
- package/src/account/kcContext/createGetKcContext.ts +48 -22
- package/src/account/kcContext/getKcContext.ts +3 -1
- package/src/account/kcContext/getKcContextFromWindow.ts +7 -3
- package/src/account/kcContext/kcContextMocks.ts +172 -162
- package/src/account/lib/useGetClassName.ts +15 -14
- package/src/account/pages/Account.tsx +2 -2
- package/src/account/pages/Applications.tsx +2 -2
- package/src/account/pages/FederatedIdentity.tsx +58 -0
- package/src/account/pages/Log.tsx +1 -1
- package/src/account/pages/Password.tsx +8 -8
- package/src/account/pages/Sessions.tsx +0 -3
- package/src/account/pages/Totp.tsx +23 -26
- package/src/bin/copy-keycloak-resources-to-public.ts +10 -106
- package/src/bin/download-keycloak-default-theme.ts +63 -0
- package/src/bin/eject-page.ts +176 -0
- package/src/bin/initialize-email-theme.ts +38 -29
- package/src/bin/keycloakify/buildJars/buildJar.ts +192 -72
- package/src/bin/keycloakify/buildJars/buildJars.ts +41 -23
- package/src/bin/keycloakify/buildJars/extensionVersions.ts +2 -1
- package/src/bin/keycloakify/buildJars/generatePom.ts +12 -4
- package/src/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.ts +73 -21
- package/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +182 -252
- package/src/bin/keycloakify/generateFtl/generateFtl.ts +59 -15
- package/src/bin/keycloakify/generateFtl/index.ts +0 -1
- package/src/bin/keycloakify/{generateTheme → generateSrcMainResources}/bringInAccountV1.ts +34 -22
- package/src/bin/keycloakify/{generateTheme → generateSrcMainResources}/generateMessageProperties.ts +72 -20
- package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResources.ts +34 -0
- package/src/bin/keycloakify/{generateTheme/generateSrcMainResources.ts → generateSrcMainResources/generateSrcMainResourcesForMainTheme.ts} +113 -74
- package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForThemeVariant.ts +80 -0
- package/src/bin/keycloakify/generateSrcMainResources/index.ts +1 -0
- package/src/bin/keycloakify/{generateTheme → generateSrcMainResources}/readExtraPageNames.ts +21 -8
- package/src/bin/keycloakify/generateSrcMainResources/readFieldNameUsage.ts +83 -0
- package/src/bin/keycloakify/generateStartKeycloakTestingContainer.ts +31 -18
- package/src/bin/keycloakify/index.ts +0 -7
- package/src/bin/keycloakify/keycloakify.ts +77 -69
- package/src/bin/keycloakify/replacers/replaceImportsInCssCode.ts +26 -7
- package/src/bin/keycloakify/replacers/replaceImportsInInlineCssCode.ts +8 -4
- package/src/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.ts +7 -4
- package/src/bin/keycloakify/replacers/replaceImportsInJsCode/vite.ts +25 -7
- package/src/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.ts +50 -12
- package/src/bin/main.ts +212 -0
- package/src/bin/shared/KeycloakVersionRange.ts +9 -0
- package/src/bin/shared/buildOptions.ts +307 -0
- package/src/bin/{keycloakify/generateFtl/pageId.ts → shared/constants.ts} +31 -1
- package/src/bin/shared/copyKeycloakResourcesToPublic.ts +104 -0
- package/src/bin/shared/downloadKeycloakDefaultTheme.ts +207 -0
- package/src/bin/shared/downloadKeycloakStaticResources.ts +53 -0
- package/src/bin/shared/getJarFileBasename.ts +11 -0
- package/src/bin/{getThemeSrcDirPath.ts → shared/getThemeSrcDirPath.ts} +6 -3
- package/src/bin/shared/metaInfKeycloakThemes.ts +61 -0
- package/src/bin/shared/promptKeycloakVersion.ts +125 -0
- package/src/bin/start-keycloak/appBuild.ts +129 -0
- package/src/bin/start-keycloak/index.ts +1 -0
- package/src/bin/start-keycloak/keycloakifyBuild.ts +41 -0
- package/src/bin/start-keycloak/myrealm-realm-23.json +2142 -0
- package/src/bin/start-keycloak/myrealm-realm-24.json +2318 -0
- package/src/bin/start-keycloak/start-keycloak.ts +467 -0
- package/src/bin/tools/SemVer.ts +32 -13
- package/src/bin/tools/String.prototype.replaceAll.ts +9 -2
- package/src/bin/tools/crawl.ts +4 -1
- package/src/bin/tools/crc32.ts +42 -24
- package/src/bin/tools/downloadAndExtractArchive/downloadAndExtractArchive.ts +262 -0
- package/src/bin/tools/downloadAndExtractArchive/fetchProxyOptions.ts +96 -0
- package/src/bin/tools/downloadAndExtractArchive/index.ts +1 -0
- package/src/bin/tools/extractArchive.ts +132 -0
- package/src/bin/tools/fetchProxyOptions.ts +31 -8
- package/src/bin/tools/fs.rmSync.ts +4 -4
- package/src/bin/tools/getAbsoluteAndInOsFormatPath.ts +17 -2
- package/src/bin/tools/getNpmWorkspaceRootDirPath.ts +73 -0
- package/src/bin/tools/octokit-addons/getLatestsSemVersionedTag.ts +8 -2
- package/src/bin/tools/octokit-addons/listTags.ts +15 -4
- package/src/bin/tools/partitionPromiseSettledResults.ts +12 -3
- package/src/bin/tools/{readThisNpmProjectVersion.ts → readThisNpmPackageVersion.ts} +6 -2
- package/src/bin/tools/transformCodebase.ts +29 -10
- package/src/bin/tools/trimIndent.ts +4 -1
- package/src/lib/isStorybook.ts +3 -1
- package/src/lib/useGetClassName.ts +12 -3
- package/src/login/Template.tsx +20 -36
- package/src/login/TemplateProps.ts +4 -1
- package/src/login/UserProfileFormFields.tsx +46 -47
- package/src/login/i18n/baseMessages/ca.ts +1 -1
- package/src/login/i18n/baseMessages/el.ts +0 -1
- package/src/login/i18n/baseMessages/en.ts +1 -1
- package/src/login/i18n/baseMessages/es.ts +1 -1
- package/src/login/i18n/baseMessages/fa.ts +0 -1
- package/src/login/i18n/baseMessages/hu.ts +1 -1
- package/src/login/i18n/baseMessages/zh-CN.ts +1 -1
- package/src/login/i18n/i18n.tsx +77 -54
- package/src/login/index.ts +1 -1
- package/src/login/kcContext/KcContext.ts +23 -4
- package/src/login/kcContext/createGetKcContext.ts +84 -37
- package/src/login/kcContext/getKcContext.ts +3 -1
- package/src/login/kcContext/getKcContextFromWindow.ts +7 -3
- package/src/login/kcContext/kcContextMocks.ts +340 -326
- package/src/login/lib/useDownloadTerms.ts +13 -9
- package/src/login/lib/useGetClassName.ts +119 -112
- package/src/login/lib/useUserProfileForm.tsx +227 -213
- package/src/login/pages/Code.tsx +1 -1
- package/src/login/pages/DeleteAccountConfirm.tsx +9 -3
- package/src/login/pages/FrontchannelLogout.tsx +1 -1
- package/src/login/pages/IdpReviewUserProfile.tsx +1 -1
- package/src/login/pages/Login.tsx +3 -3
- package/src/login/pages/LoginRecoveryAuthnCodeConfig.tsx +3 -3
- package/src/login/pages/LoginResetPassword.tsx +2 -2
- package/src/login/pages/LoginUpdateProfile.tsx +1 -1
- package/src/login/pages/LoginUsername.tsx +3 -3
- package/src/login/pages/Register.tsx +1 -1
- package/src/login/pages/UpdateEmail.tsx +1 -1
- package/src/login/pages/WebauthnAuthenticate.tsx +11 -8
- package/src/login/pages/WebauthnRegister.tsx +8 -8
- package/src/tools/AndByDiscriminatingKey.ts +12 -6
- package/src/tools/Array.prototype.every.ts +4 -1
- package/src/tools/LazyOrNot.ts +3 -1
- package/src/tools/StatefulObservable/README.md +16 -0
- package/src/tools/StatefulObservable/StatefulObservable.ts +58 -0
- package/src/tools/StatefulObservable/hooks/index.ts +2 -0
- package/src/tools/StatefulObservable/hooks/useObservable.ts +25 -0
- package/src/tools/StatefulObservable/hooks/useRerenderOnChange.ts +19 -0
- package/src/tools/StatefulObservable/index.ts +2 -0
- package/src/tools/clsx.ts +7 -1
- package/src/tools/deepAssign.ts +15 -8
- package/src/tools/deepClone.ts +3 -1
- package/src/tools/formatNumber.ts +4 -1
- package/src/tools/useConstCallback.ts +3 -1
- package/src/tools/useInsertLinkTags.ts +20 -7
- package/src/tools/useInsertScriptTags.ts +7 -2
- package/src/tools/useSetClassName.ts +4 -1
- package/src/vite-plugin/tsconfig.json +2 -1
- package/src/vite-plugin/vite-plugin.ts +64 -52
- package/tools/Array.prototype.every.js +2 -1
- package/tools/Array.prototype.every.js.map +1 -1
- package/tools/HTMLElement.prototype.prepend.js.map +1 -1
- package/tools/StatefulObservable/StatefulObservable.d.ts +8 -0
- package/tools/StatefulObservable/StatefulObservable.js +36 -0
- package/tools/StatefulObservable/StatefulObservable.js.map +1 -0
- package/tools/StatefulObservable/hooks/index.d.ts +2 -0
- package/tools/StatefulObservable/hooks/index.js +3 -0
- package/tools/StatefulObservable/hooks/index.js.map +1 -0
- package/tools/StatefulObservable/hooks/useObservable.d.ts +8 -0
- package/tools/StatefulObservable/hooks/useObservable.js +17 -0
- package/tools/StatefulObservable/hooks/useObservable.js.map +1 -0
- package/tools/StatefulObservable/hooks/useRerenderOnChange.d.ts +5 -0
- package/tools/StatefulObservable/hooks/useRerenderOnChange.js +14 -0
- package/tools/StatefulObservable/hooks/useRerenderOnChange.js.map +1 -0
- package/tools/StatefulObservable/index.d.ts +2 -0
- package/tools/StatefulObservable/index.js +3 -0
- package/tools/StatefulObservable/index.js.map +1 -0
- package/tools/clsx.js.map +1 -1
- package/tools/deepAssign.js +9 -7
- package/tools/deepAssign.js.map +1 -1
- package/tools/deepClone.js.map +1 -1
- package/tools/formatNumber.js.map +1 -1
- package/tools/memoize.js.map +1 -1
- package/tools/useConstCallback.js.map +1 -1
- package/tools/useInsertLinkTags.js +5 -4
- package/tools/useInsertLinkTags.js.map +1 -1
- package/tools/useInsertScriptTags.js +5 -2
- package/tools/useInsertScriptTags.js.map +1 -1
- package/tools/useSetClassName.js.map +1 -1
- package/vite-plugin/index.js +50234 -3
- package/bin/constants.d.ts +0 -10
- package/bin/constants.js +0 -13
- package/bin/constants.js.map +0 -1
- package/bin/copy-keycloak-resources-to-public.d.ts +0 -14
- package/bin/copy-keycloak-resources-to-public.js +0 -216
- package/bin/copy-keycloak-resources-to-public.js.map +0 -1
- package/bin/download-builtin-keycloak-theme.d.ts +0 -10
- package/bin/download-builtin-keycloak-theme.js +0 -352
- package/bin/download-builtin-keycloak-theme.js.map +0 -1
- package/bin/downloadAndUnzip.d.ts +0 -16
- package/bin/downloadAndUnzip.js +0 -255
- package/bin/downloadAndUnzip.js.map +0 -1
- package/bin/eject-keycloak-page.d.ts +0 -2
- package/bin/eject-keycloak-page.js +0 -132
- package/bin/eject-keycloak-page.js.map +0 -1
- package/bin/getThemeSrcDirPath.d.ts +0 -6
- package/bin/getThemeSrcDirPath.js +0 -123
- package/bin/getThemeSrcDirPath.js.map +0 -1
- package/bin/initialize-email-theme.d.ts +0 -2
- package/bin/initialize-email-theme.js +0 -121
- package/bin/initialize-email-theme.js.map +0 -1
- package/bin/keycloakify/buildJars/buildJar.d.ts +0 -14
- package/bin/keycloakify/buildJars/buildJar.js +0 -224
- package/bin/keycloakify/buildJars/buildJar.js.map +0 -1
- package/bin/keycloakify/buildJars/buildJars.d.ts +0 -10
- package/bin/keycloakify/buildJars/buildJars.js +0 -95
- package/bin/keycloakify/buildJars/buildJars.js.map +0 -1
- package/bin/keycloakify/buildJars/extensionVersions.d.ts +0 -12
- package/bin/keycloakify/buildJars/extensionVersions.js +0 -7
- package/bin/keycloakify/buildJars/extensionVersions.js.map +0 -1
- package/bin/keycloakify/buildJars/generatePom.d.ts +0 -13
- package/bin/keycloakify/buildJars/generatePom.js +0 -95
- package/bin/keycloakify/buildJars/generatePom.js.map +0 -1
- package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.d.ts +0 -6
- package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.js +0 -35
- package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.js.map +0 -1
- package/bin/keycloakify/buildJars/index.d.ts +0 -1
- package/bin/keycloakify/buildJars/index.js +0 -18
- package/bin/keycloakify/buildJars/index.js.map +0 -1
- package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.d.ts +0 -35
- package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.js +0 -14
- package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.js.map +0 -1
- package/bin/keycloakify/buildOptions/buildOptions.d.ts +0 -25
- package/bin/keycloakify/buildOptions/buildOptions.js +0 -178
- package/bin/keycloakify/buildOptions/buildOptions.js.map +0 -1
- package/bin/keycloakify/buildOptions/getCacheDirPath.d.ts +0 -5
- package/bin/keycloakify/buildOptions/getCacheDirPath.js +0 -22
- package/bin/keycloakify/buildOptions/getCacheDirPath.js.map +0 -1
- package/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.d.ts +0 -5
- package/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.js +0 -86
- package/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.js.map +0 -1
- package/bin/keycloakify/buildOptions/getReactAppRootDirPath.d.ts +0 -5
- package/bin/keycloakify/buildOptions/getReactAppRootDirPath.js +0 -26
- package/bin/keycloakify/buildOptions/getReactAppRootDirPath.js.map +0 -1
- package/bin/keycloakify/buildOptions/index.d.ts +0 -1
- package/bin/keycloakify/buildOptions/index.js +0 -18
- package/bin/keycloakify/buildOptions/index.js.map +0 -1
- package/bin/keycloakify/buildOptions/parsedPackageJson.d.ts +0 -10
- package/bin/keycloakify/buildOptions/parsedPackageJson.js +0 -49
- package/bin/keycloakify/buildOptions/parsedPackageJson.js.map +0 -1
- package/bin/keycloakify/buildOptions/resolvedViteConfig.d.ts +0 -13
- package/bin/keycloakify/buildOptions/resolvedViteConfig.js +0 -77
- package/bin/keycloakify/buildOptions/resolvedViteConfig.js.map +0 -1
- package/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +0 -604
- package/bin/keycloakify/generateFtl/generateFtl.d.ts +0 -23
- package/bin/keycloakify/generateFtl/generateFtl.js +0 -169
- package/bin/keycloakify/generateFtl/generateFtl.js.map +0 -1
- package/bin/keycloakify/generateFtl/index.d.ts +0 -2
- package/bin/keycloakify/generateFtl/index.js +0 -19
- package/bin/keycloakify/generateFtl/index.js.map +0 -1
- package/bin/keycloakify/generateFtl/pageId.js +0 -41
- package/bin/keycloakify/generateFtl/pageId.js.map +0 -1
- package/bin/keycloakify/generateStartKeycloakTestingContainer.d.ts +0 -11
- package/bin/keycloakify/generateStartKeycloakTestingContainer.js +0 -89
- package/bin/keycloakify/generateStartKeycloakTestingContainer.js.map +0 -1
- package/bin/keycloakify/generateTheme/bringInAccountV1.d.ts +0 -9
- package/bin/keycloakify/generateTheme/bringInAccountV1.js +0 -153
- package/bin/keycloakify/generateTheme/bringInAccountV1.js.map +0 -1
- package/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.d.ts +0 -11
- package/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.js +0 -102
- package/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.js.map +0 -1
- package/bin/keycloakify/generateTheme/generateMessageProperties.d.ts +0 -8
- package/bin/keycloakify/generateTheme/generateMessageProperties.js +0 -271
- package/bin/keycloakify/generateTheme/generateMessageProperties.js.map +0 -1
- package/bin/keycloakify/generateTheme/generateSrcMainResources.d.ts +0 -21
- package/bin/keycloakify/generateTheme/generateSrcMainResources.js +0 -340
- package/bin/keycloakify/generateTheme/generateSrcMainResources.js.map +0 -1
- package/bin/keycloakify/generateTheme/generateTheme.d.ts +0 -13
- package/bin/keycloakify/generateTheme/generateTheme.js +0 -115
- package/bin/keycloakify/generateTheme/generateTheme.js.map +0 -1
- package/bin/keycloakify/generateTheme/generateThemeVariants.d.ts +0 -5
- package/bin/keycloakify/generateTheme/generateThemeVariants.js +0 -67
- package/bin/keycloakify/generateTheme/generateThemeVariants.js.map +0 -1
- package/bin/keycloakify/generateTheme/index.d.ts +0 -1
- package/bin/keycloakify/generateTheme/index.js +0 -18
- package/bin/keycloakify/generateTheme/index.js.map +0 -1
- package/bin/keycloakify/generateTheme/readExtraPageNames.d.ts +0 -5
- package/bin/keycloakify/generateTheme/readExtraPageNames.js +0 -105
- package/bin/keycloakify/generateTheme/readExtraPageNames.js.map +0 -1
- package/bin/keycloakify/generateTheme/readFieldNameUsage.d.ts +0 -7
- package/bin/keycloakify/generateTheme/readFieldNameUsage.js +0 -141
- package/bin/keycloakify/generateTheme/readFieldNameUsage.js.map +0 -1
- package/bin/keycloakify/index.d.ts +0 -2
- package/bin/keycloakify/index.js +0 -23
- package/bin/keycloakify/index.js.map +0 -1
- package/bin/keycloakify/keycloakify.d.ts +0 -1
- package/bin/keycloakify/keycloakify.js +0 -166
- package/bin/keycloakify/keycloakify.js.map +0 -1
- package/bin/keycloakify/replacers/replaceImportsInCssCode.d.ts +0 -15
- package/bin/keycloakify/replacers/replaceImportsInCssCode.js +0 -88
- package/bin/keycloakify/replacers/replaceImportsInCssCode.js.map +0 -1
- package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.d.ts +0 -9
- package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.js +0 -38
- package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.js.map +0 -1
- package/bin/keycloakify/replacers/replaceImportsInJsCode/index.d.ts +0 -1
- package/bin/keycloakify/replacers/replaceImportsInJsCode/index.js +0 -18
- package/bin/keycloakify/replacers/replaceImportsInJsCode/index.js.map +0 -1
- package/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.d.ts +0 -12
- package/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.js +0 -70
- package/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.js.map +0 -1
- package/bin/keycloakify/replacers/replaceImportsInJsCode/vite.d.ts +0 -13
- package/bin/keycloakify/replacers/replaceImportsInJsCode/vite.js +0 -95
- package/bin/keycloakify/replacers/replaceImportsInJsCode/vite.js.map +0 -1
- package/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.d.ts +0 -12
- package/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.js +0 -103
- package/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.js.map +0 -1
- package/bin/promptKeycloakVersion.d.ts +0 -3
- package/bin/promptKeycloakVersion.js +0 -121
- package/bin/promptKeycloakVersion.js.map +0 -1
- package/bin/tools/OptionalIfCanBeUndefined.d.ts +0 -14
- package/bin/tools/OptionalIfCanBeUndefined.js +0 -3
- package/bin/tools/OptionalIfCanBeUndefined.js.map +0 -1
- package/bin/tools/SemVer.d.ts +0 -26
- package/bin/tools/SemVer.js +0 -119
- package/bin/tools/SemVer.js.map +0 -1
- package/bin/tools/String.prototype.replaceAll.d.ts +0 -1
- package/bin/tools/String.prototype.replaceAll.js +0 -29
- package/bin/tools/String.prototype.replaceAll.js.map +0 -1
- package/bin/tools/crawl.d.ts +0 -5
- package/bin/tools/crawl.js +0 -74
- package/bin/tools/crawl.js.map +0 -1
- package/bin/tools/crc32.d.ts +0 -9
- package/bin/tools/crc32.js +0 -64
- package/bin/tools/crc32.js.map +0 -1
- package/bin/tools/deflate.d.ts +0 -24
- package/bin/tools/deflate.js +0 -155
- package/bin/tools/deflate.js.map +0 -1
- package/bin/tools/fetchProxyOptions.d.ts +0 -5
- package/bin/tools/fetchProxyOptions.js +0 -172
- package/bin/tools/fetchProxyOptions.js.map +0 -1
- package/bin/tools/fs.existsAsync.d.ts +0 -1
- package/bin/tools/fs.existsAsync.js +0 -86
- package/bin/tools/fs.existsAsync.js.map +0 -1
- package/bin/tools/fs.rm.d.ts +0 -8
- package/bin/tools/fs.rm.js +0 -151
- package/bin/tools/fs.rm.js.map +0 -1
- package/bin/tools/fs.rmSync.d.ts +0 -8
- package/bin/tools/fs.rmSync.js +0 -58
- package/bin/tools/fs.rmSync.js.map +0 -1
- package/bin/tools/getAbsoluteAndInOsFormatPath.d.ts +0 -4
- package/bin/tools/getAbsoluteAndInOsFormatPath.js +0 -16
- package/bin/tools/getAbsoluteAndInOsFormatPath.js.map +0 -1
- package/bin/tools/getThisCodebaseRootDirPath.d.ts +0 -1
- package/bin/tools/getThisCodebaseRootDirPath.js +0 -43
- package/bin/tools/getThisCodebaseRootDirPath.js.map +0 -1
- package/bin/tools/grant-exec-perms.d.ts +0 -1
- package/bin/tools/grant-exec-perms.js +0 -100
- package/bin/tools/grant-exec-perms.js.map +0 -1
- package/bin/tools/isInside.d.ts +0 -4
- package/bin/tools/isInside.js +0 -10
- package/bin/tools/isInside.js.map +0 -1
- package/bin/tools/kebabCaseToSnakeCase.d.ts +0 -1
- package/bin/tools/kebabCaseToSnakeCase.js +0 -35
- package/bin/tools/kebabCaseToSnakeCase.js.map +0 -1
- package/bin/tools/logger.d.ts +0 -12
- package/bin/tools/logger.js +0 -23
- package/bin/tools/logger.js.map +0 -1
- package/bin/tools/octokit-addons/getLatestsSemVersionedTag.d.ts +0 -14
- package/bin/tools/octokit-addons/getLatestsSemVersionedTag.js +0 -119
- package/bin/tools/octokit-addons/getLatestsSemVersionedTag.js.map +0 -1
- package/bin/tools/octokit-addons/listTags.d.ts +0 -13
- package/bin/tools/octokit-addons/listTags.js +0 -154
- package/bin/tools/octokit-addons/listTags.js.map +0 -1
- package/bin/tools/partitionPromiseSettledResults.d.ts +0 -2
- package/bin/tools/partitionPromiseSettledResults.js +0 -41
- package/bin/tools/partitionPromiseSettledResults.js.map +0 -1
- package/bin/tools/readThisNpmProjectVersion.d.ts +0 -1
- package/bin/tools/readThisNpmProjectVersion.js +0 -37
- package/bin/tools/readThisNpmProjectVersion.js.map +0 -1
- package/bin/tools/tee.d.ts +0 -3
- package/bin/tools/tee.js +0 -37
- package/bin/tools/tee.js.map +0 -1
- package/bin/tools/transformCodebase.d.ts +0 -20
- package/bin/tools/transformCodebase.js +0 -97
- package/bin/tools/transformCodebase.js.map +0 -1
- package/bin/tools/trimIndent.d.ts +0 -5
- package/bin/tools/trimIndent.js +0 -82
- package/bin/tools/trimIndent.js.map +0 -1
- package/bin/tools/unzip.d.ts +0 -2
- package/bin/tools/unzip.js +0 -274
- package/bin/tools/unzip.js.map +0 -1
- package/index.d.ts +0 -1
- package/index.js +0 -2
- package/index.js.map +0 -1
- package/lib/keycloakJsAdapter.d.ts +0 -51
- package/lib/keycloakJsAdapter.js +0 -74
- package/lib/keycloakJsAdapter.js.map +0 -1
- package/src/bin/constants.ts +0 -13
- package/src/bin/download-builtin-keycloak-theme.ts +0 -290
- package/src/bin/downloadAndUnzip.ts +0 -203
- package/src/bin/eject-keycloak-page.ts +0 -64
- package/src/bin/keycloakify/buildOptions/UserProvidedBuildOptions.ts +0 -21
- package/src/bin/keycloakify/buildOptions/buildOptions.ts +0 -189
- package/src/bin/keycloakify/buildOptions/getCacheDirPath.ts +0 -25
- package/src/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.ts +0 -49
- package/src/bin/keycloakify/buildOptions/getReactAppRootDirPath.ts +0 -23
- package/src/bin/keycloakify/buildOptions/index.ts +0 -1
- package/src/bin/keycloakify/buildOptions/parsedPackageJson.ts +0 -32
- package/src/bin/keycloakify/buildOptions/resolvedViteConfig.ts +0 -74
- package/src/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.ts +0 -49
- package/src/bin/keycloakify/generateTheme/generateTheme.ts +0 -44
- package/src/bin/keycloakify/generateTheme/generateThemeVariants.ts +0 -50
- package/src/bin/keycloakify/generateTheme/index.ts +0 -1
- package/src/bin/keycloakify/generateTheme/readFieldNameUsage.ts +0 -55
- package/src/bin/promptKeycloakVersion.ts +0 -49
- package/src/bin/tools/grant-exec-perms.ts +0 -19
- package/src/bin/tools/logger.ts +0 -27
- package/src/bin/tools/unzip.ts +0 -141
- package/src/index.ts +0 -1
- package/src/lib/keycloakJsAdapter.ts +0 -118
- package/vite-plugin/index.js.map +0 -1
- package/vite-plugin/tsconfig.tsbuildinfo +0 -1
- package/vite-plugin/vite-plugin.d.ts +0 -6
- package/vite-plugin/vite-plugin.js +0 -158
- package/vite-plugin/vite-plugin.js.map +0 -1
@@ -43,7 +43,7 @@ export default function UserProfileFormFields(props: UserProfileFormFieldsProps)
|
|
43
43
|
onIsFormSubmittableValueChange(isFormSubmittable);
|
44
44
|
}, [isFormSubmittable]);
|
45
45
|
|
46
|
-
const groupNameRef = {
|
46
|
+
const groupNameRef = { current: "" };
|
47
47
|
|
48
48
|
return (
|
49
49
|
<>
|
@@ -62,7 +62,9 @@ export default function UserProfileFormFields(props: UserProfileFormFieldsProps)
|
|
62
62
|
)}
|
63
63
|
<div
|
64
64
|
className={getClassName("kcFormGroupClass")}
|
65
|
-
style={{
|
65
|
+
style={{
|
66
|
+
display: attribute.name === "password-confirm" && !doMakeUserConfirmPassword ? "none" : undefined
|
67
|
+
}}
|
66
68
|
>
|
67
69
|
<div className={getClassName("kcLabelWrapperClass")}>
|
68
70
|
<label htmlFor={attribute.name} className={getClassName("kcLabelClass")}>
|
@@ -201,18 +203,15 @@ function FieldErrors(props: {
|
|
201
203
|
<span
|
202
204
|
id={`input-error-${attribute.name}${fieldIndex === undefined ? "" : `-${fieldIndex}`}`}
|
203
205
|
className={getClassName("kcInputErrorMessageClass")}
|
204
|
-
style={{
|
205
|
-
"position": displayableErrors.length === 1 ? "absolute" : undefined
|
206
|
-
}}
|
207
206
|
aria-live="polite"
|
208
207
|
>
|
209
208
|
{displayableErrors
|
210
209
|
.filter(error => error.fieldIndex === fieldIndex)
|
211
210
|
.map(({ errorMessage }, i, arr) => (
|
212
|
-
|
211
|
+
<Fragment key={i}>
|
213
212
|
<span key={i}>{errorMessage}</span>
|
214
213
|
{arr.length - 1 !== i && <br />}
|
215
|
-
|
214
|
+
</Fragment>
|
216
215
|
))}
|
217
216
|
</span>
|
218
217
|
);
|
@@ -345,9 +344,9 @@ function InputTag(props: InputFiledByTypeProps & { fieldIndex: number | undefine
|
|
345
344
|
{...Object.fromEntries(Object.entries(attribute.html5DataAnnotations ?? {}).map(([key, value]) => [`data-${key}`, value]))}
|
346
345
|
onChange={event =>
|
347
346
|
formValidationDispatch({
|
348
|
-
|
349
|
-
|
350
|
-
|
347
|
+
action: "update",
|
348
|
+
name: attribute.name,
|
349
|
+
valueOrValues: (() => {
|
351
350
|
if (fieldIndex !== undefined) {
|
352
351
|
assert(valueOrValues instanceof Array);
|
353
352
|
|
@@ -366,9 +365,9 @@ function InputTag(props: InputFiledByTypeProps & { fieldIndex: number | undefine
|
|
366
365
|
}
|
367
366
|
onBlur={() =>
|
368
367
|
props.formValidationDispatch({
|
369
|
-
|
370
|
-
|
371
|
-
|
368
|
+
action: "focus lost",
|
369
|
+
name: attribute.name,
|
370
|
+
fieldIndex: fieldIndex
|
372
371
|
})
|
373
372
|
}
|
374
373
|
/>
|
@@ -487,9 +486,9 @@ function AddRemoveButtonsMultiValuedAttribute(props: {
|
|
487
486
|
className="pf-c-button pf-m-inline pf-m-link"
|
488
487
|
onClick={() =>
|
489
488
|
dispatchFormAction({
|
490
|
-
|
491
|
-
|
492
|
-
|
489
|
+
action: "update",
|
490
|
+
name: attribute.name,
|
491
|
+
valueOrValues: values.filter((_, i) => i !== fieldIndex)
|
493
492
|
})
|
494
493
|
}
|
495
494
|
>
|
@@ -504,9 +503,9 @@ function AddRemoveButtonsMultiValuedAttribute(props: {
|
|
504
503
|
className="pf-c-button pf-m-inline pf-m-link"
|
505
504
|
onClick={() =>
|
506
505
|
dispatchFormAction({
|
507
|
-
|
508
|
-
|
509
|
-
|
506
|
+
action: "update",
|
507
|
+
name: attribute.name,
|
508
|
+
valueOrValues: [...values, ""]
|
510
509
|
})
|
511
510
|
}
|
512
511
|
>
|
@@ -530,17 +529,17 @@ function InputTagSelects(props: InputFiledByTypeProps) {
|
|
530
529
|
switch (inputType) {
|
531
530
|
case "select-radiobuttons":
|
532
531
|
return {
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
532
|
+
inputType: "radio",
|
533
|
+
classDiv: getClassName("kcInputClassRadio"),
|
534
|
+
classInput: getClassName("kcInputClassRadioInput"),
|
535
|
+
classLabel: getClassName("kcInputClassRadioLabel")
|
537
536
|
};
|
538
537
|
case "multiselect-checkboxes":
|
539
538
|
return {
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
539
|
+
inputType: "checkbox",
|
540
|
+
classDiv: getClassName("kcInputClassCheckbox"),
|
541
|
+
classInput: getClassName("kcInputClassCheckboxInput"),
|
542
|
+
classLabel: getClassName("kcInputClassCheckboxLabel")
|
544
543
|
};
|
545
544
|
}
|
546
545
|
})();
|
@@ -584,9 +583,9 @@ function InputTagSelects(props: InputFiledByTypeProps) {
|
|
584
583
|
checked={valueOrValues.includes(option)}
|
585
584
|
onChange={event =>
|
586
585
|
formValidationDispatch({
|
587
|
-
|
588
|
-
|
589
|
-
|
586
|
+
action: "update",
|
587
|
+
name: attribute.name,
|
588
|
+
valueOrValues: (() => {
|
590
589
|
const isChecked = event.target.checked;
|
591
590
|
|
592
591
|
if (valueOrValues instanceof Array) {
|
@@ -607,9 +606,9 @@ function InputTagSelects(props: InputFiledByTypeProps) {
|
|
607
606
|
}
|
608
607
|
onBlur={() =>
|
609
608
|
formValidationDispatch({
|
610
|
-
|
611
|
-
|
612
|
-
|
609
|
+
action: "focus lost",
|
610
|
+
name: attribute.name,
|
611
|
+
fieldIndex: undefined
|
613
612
|
})
|
614
613
|
}
|
615
614
|
/>
|
@@ -645,16 +644,16 @@ function TextareaTag(props: InputFiledByTypeProps) {
|
|
645
644
|
value={value}
|
646
645
|
onChange={event =>
|
647
646
|
formValidationDispatch({
|
648
|
-
|
649
|
-
|
650
|
-
|
647
|
+
action: "update",
|
648
|
+
name: attribute.name,
|
649
|
+
valueOrValues: event.target.value
|
651
650
|
})
|
652
651
|
}
|
653
652
|
onBlur={() =>
|
654
653
|
formValidationDispatch({
|
655
|
-
|
656
|
-
|
657
|
-
|
654
|
+
action: "focus lost",
|
655
|
+
name: attribute.name,
|
656
|
+
fieldIndex: undefined
|
658
657
|
})
|
659
658
|
}
|
660
659
|
/>
|
@@ -680,9 +679,9 @@ function SelectTag(props: InputFiledByTypeProps) {
|
|
680
679
|
value={valueOrValues}
|
681
680
|
onChange={event =>
|
682
681
|
formValidationDispatch({
|
683
|
-
|
684
|
-
|
685
|
-
|
682
|
+
action: "update",
|
683
|
+
name: attribute.name,
|
684
|
+
valueOrValues: (() => {
|
686
685
|
if (isMultiple) {
|
687
686
|
return Array.from(event.target.selectedOptions).map(option => option.value);
|
688
687
|
}
|
@@ -693,9 +692,9 @@ function SelectTag(props: InputFiledByTypeProps) {
|
|
693
692
|
}
|
694
693
|
onBlur={() =>
|
695
694
|
formValidationDispatch({
|
696
|
-
|
697
|
-
|
698
|
-
|
695
|
+
action: "focus lost",
|
696
|
+
name: attribute.name,
|
697
|
+
fieldIndex: undefined
|
699
698
|
})
|
700
699
|
}
|
701
700
|
>
|
@@ -705,12 +704,12 @@ function SelectTag(props: InputFiledByTypeProps) {
|
|
705
704
|
walk: {
|
706
705
|
const { inputOptionsFromValidation } = attribute.annotations;
|
707
706
|
|
708
|
-
assert(typeof inputOptionsFromValidation === "string");
|
709
|
-
|
710
707
|
if (inputOptionsFromValidation === undefined) {
|
711
708
|
break walk;
|
712
709
|
}
|
713
710
|
|
711
|
+
assert(typeof inputOptionsFromValidation === "string");
|
712
|
+
|
714
713
|
const validator = (attribute.validators as Record<string, { options?: string[] }>)[inputOptionsFromValidation];
|
715
714
|
|
716
715
|
if (validator === undefined) {
|
@@ -342,7 +342,7 @@ const messages= {
|
|
342
342
|
"locale_nl": "neerlandès",
|
343
343
|
"locale_no": "noruec",
|
344
344
|
"locale_pl": "polonès",
|
345
|
-
"
|
345
|
+
"locale_pt-BR": "portuguès (Brasil)",
|
346
346
|
"locale_ru": "rus",
|
347
347
|
"locale_sk": "eslovè",
|
348
348
|
"locale_sv": "suec",
|
@@ -349,7 +349,7 @@ const messages= {
|
|
349
349
|
"locale_nl": "Nederlands",
|
350
350
|
"locale_no": "Norsk",
|
351
351
|
"locale_pl": "Polski",
|
352
|
-
"
|
352
|
+
"locale_pt-BR": "Português (Brasil)",
|
353
353
|
"locale_ru": "Русский",
|
354
354
|
"locale_sk": "Slovenčina",
|
355
355
|
"locale_sv": "Svenska",
|
@@ -376,7 +376,7 @@ const messages= {
|
|
376
376
|
"locale_nl": "Nederlands",
|
377
377
|
"locale_no": "Norsk",
|
378
378
|
"locale_pl": "Polski",
|
379
|
-
"
|
379
|
+
"locale_pt-BR": "Português (Brasil)",
|
380
380
|
"locale_ru": "Русский",
|
381
381
|
"locale_sk": "Slovenčina",
|
382
382
|
"locale_sv": "Svenska",
|
@@ -342,7 +342,7 @@ const messages= {
|
|
342
342
|
"locale_nl": "Nederlands",
|
343
343
|
"locale_no": "Norsk",
|
344
344
|
"locale_pl": "Polski",
|
345
|
-
"
|
345
|
+
"locale_pt-BR": "Português (Brasil)",
|
346
346
|
"locale_ru": "Русский",
|
347
347
|
"locale_sk": "Slovenčina",
|
348
348
|
"locale_sv": "Svenska",
|
@@ -346,7 +346,7 @@ const messages= {
|
|
346
346
|
"locale_nl": "Nederlands",
|
347
347
|
"locale_no": "Norsk",
|
348
348
|
"locale_pl": "Polski",
|
349
|
-
"
|
349
|
+
"locale_pt-BR": "Português (Brasil)",
|
350
350
|
"locale_ru": "Русский",
|
351
351
|
"locale_sk": "Slovenčina",
|
352
352
|
"locale_sv": "Svenska",
|
package/src/login/i18n/i18n.tsx
CHANGED
@@ -1,11 +1,9 @@
|
|
1
1
|
import "minimal-polyfills/Object.fromEntries";
|
2
|
-
//NOTE for later: https://github.com/remarkjs/react-markdown/blob/236182ecf30bd89c1e5a7652acaf8d0bf81e6170/src/renderers.js#L7-L35
|
3
2
|
import { useEffect, useState, useRef } from "react";
|
4
3
|
import fallbackMessages from "./baseMessages/en";
|
5
4
|
import { getMessages } from "./baseMessages";
|
6
5
|
import { assert } from "tsafe/assert";
|
7
6
|
import type { KcContext } from "../kcContext/KcContext";
|
8
|
-
import { Markdown } from "keycloakify/tools/Markdown";
|
9
7
|
|
10
8
|
export const fallbackLanguageTag = "en";
|
11
9
|
|
@@ -14,6 +12,7 @@ export type KcContextLike = {
|
|
14
12
|
currentLanguageTag: string;
|
15
13
|
supported: { languageTag: string; url: string; label: string }[];
|
16
14
|
};
|
15
|
+
__localizationRealmOverridesUserProfile: Record<string, string>;
|
17
16
|
};
|
18
17
|
|
19
18
|
assert<KcContext extends KcContextLike ? true : false>();
|
@@ -28,11 +27,10 @@ export type GenericI18n<MessageKey extends string> = {
|
|
28
27
|
*/
|
29
28
|
currentLanguageTag: string;
|
30
29
|
/**
|
31
|
-
*
|
32
|
-
*
|
33
|
-
* on next load currentLanguageTag === newLanguageTag
|
30
|
+
* Redirect to this url to change the language.
|
31
|
+
* After reload currentLanguageTag === newLanguageTag
|
34
32
|
*/
|
35
|
-
|
33
|
+
getChangeLocalUrl: (newLanguageTag: string) => string;
|
36
34
|
/**
|
37
35
|
* e.g. "en" => "English", "fr" => "Français", ...
|
38
36
|
*
|
@@ -63,7 +61,7 @@ export type GenericI18n<MessageKey extends string> = {
|
|
63
61
|
/**
|
64
62
|
* Examples assuming currentLanguageTag === "en"
|
65
63
|
* advancedMsg("${access-denied} foo bar") === msg("access-denied") + " foo bar" === "Access denied foo bar"
|
66
|
-
* advancedMsg("${not-a-message-key}") === advancedMsg(not-a-message-key") === "not-a-message-key"
|
64
|
+
* advancedMsg("${not-a-message-key}") === advancedMsg("not-a-message-key") === "not-a-message-key"
|
67
65
|
*/
|
68
66
|
advancedMsgStr: (key: string, ...args: (string | undefined)[]) => string;
|
69
67
|
};
|
@@ -92,19 +90,20 @@ export function createUseI18n<ExtraMessageKey extends string = never>(extraMessa
|
|
92
90
|
|
93
91
|
setI18n({
|
94
92
|
...createI18nTranslationFunctions({
|
95
|
-
|
93
|
+
fallbackMessages: {
|
96
94
|
...fallbackMessages,
|
97
95
|
...(keycloakifyExtraMessages[fallbackLanguageTag] ?? {}),
|
98
96
|
...(extraMessages[fallbackLanguageTag] ?? {})
|
99
97
|
} as any,
|
100
|
-
|
98
|
+
messages: {
|
101
99
|
...(await getMessages(currentLanguageTag)),
|
102
100
|
...((keycloakifyExtraMessages as any)[currentLanguageTag] ?? {}),
|
103
101
|
...(extraMessages[currentLanguageTag] ?? {})
|
104
|
-
} as any
|
102
|
+
} as any,
|
103
|
+
__localizationRealmOverridesUserProfile: kcContext.__localizationRealmOverridesUserProfile
|
105
104
|
}),
|
106
105
|
currentLanguageTag,
|
107
|
-
|
106
|
+
getChangeLocalUrl: newLanguageTag => {
|
108
107
|
const { locale } = kcContext;
|
109
108
|
|
110
109
|
assert(locale !== undefined, "Internationalization not enabled");
|
@@ -113,11 +112,9 @@ export function createUseI18n<ExtraMessageKey extends string = never>(extraMessa
|
|
113
112
|
|
114
113
|
assert(targetSupportedLocale !== undefined, `${newLanguageTag} need to be enabled in Keycloak admin`);
|
115
114
|
|
116
|
-
|
117
|
-
|
118
|
-
assert(false, "never");
|
115
|
+
return targetSupportedLocale.url;
|
119
116
|
},
|
120
|
-
|
117
|
+
labelBySupportedLanguageTag: Object.fromEntries(
|
121
118
|
(kcContext.locale?.supported ?? []).map(({ languageTag, label }) => [languageTag, label])
|
122
119
|
)
|
123
120
|
});
|
@@ -133,11 +130,12 @@ export function createUseI18n<ExtraMessageKey extends string = never>(extraMessa
|
|
133
130
|
function createI18nTranslationFunctions<MessageKey extends string>(params: {
|
134
131
|
fallbackMessages: Record<MessageKey, string>;
|
135
132
|
messages: Record<MessageKey, string>;
|
133
|
+
__localizationRealmOverridesUserProfile: Record<string, string>;
|
136
134
|
}): Pick<GenericI18n<MessageKey>, "msg" | "msgStr" | "advancedMsg" | "advancedMsgStr"> {
|
137
|
-
const { fallbackMessages, messages } = params;
|
135
|
+
const { fallbackMessages, messages /*__localizationRealmOverridesUserProfile*/ } = params;
|
138
136
|
|
139
|
-
function resolveMsg(props: { key: string; args: (string | undefined)[];
|
140
|
-
const { key, args,
|
137
|
+
function resolveMsg(props: { key: string; args: (string | undefined)[]; doRenderAsHtml: boolean }): string | JSX.Element | undefined {
|
138
|
+
const { key, args, doRenderAsHtml } = props;
|
141
139
|
|
142
140
|
const messageOrUndefined: string | undefined = (messages as any)[key] ?? (fallbackMessages as any)[key];
|
143
141
|
|
@@ -166,70 +164,95 @@ function createI18nTranslationFunctions<MessageKey extends string>(params: {
|
|
166
164
|
return;
|
167
165
|
}
|
168
166
|
|
169
|
-
messageWithArgsInjected = messageWithArgsInjected.replace(
|
167
|
+
messageWithArgsInjected = messageWithArgsInjected.replace(
|
168
|
+
new RegExp(`\\{${i + startIndex}\\}`, "g"),
|
169
|
+
arg.replace(/</g, "<").replace(/>/g, ">")
|
170
|
+
);
|
170
171
|
});
|
171
172
|
|
172
173
|
return messageWithArgsInjected;
|
173
174
|
})();
|
174
175
|
|
175
|
-
return
|
176
|
-
<
|
177
|
-
|
178
|
-
|
176
|
+
return doRenderAsHtml ? (
|
177
|
+
<span
|
178
|
+
// NOTE: The message is trusted. The arguments are not but are escaped.
|
179
|
+
dangerouslySetInnerHTML={{
|
180
|
+
__html: messageWithArgsInjectedIfAny
|
181
|
+
}}
|
182
|
+
/>
|
179
183
|
) : (
|
180
184
|
messageWithArgsInjectedIfAny
|
181
185
|
);
|
182
186
|
}
|
183
187
|
|
184
|
-
function resolveMsgAdvanced(props: { key: string; args: (string | undefined)[];
|
185
|
-
const { key, args,
|
188
|
+
function resolveMsgAdvanced(props: { key: string; args: (string | undefined)[]; doRenderAsHtml: boolean }): JSX.Element | string {
|
189
|
+
const { key, args, doRenderAsHtml } = props;
|
190
|
+
|
191
|
+
// TODO:
|
192
|
+
/*
|
193
|
+
if( key in __localizationRealmOverridesUserProfile ){
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
}
|
198
|
+
*/
|
186
199
|
|
187
200
|
const match = key.match(/^\$\{([^{]+)\}$/);
|
188
201
|
|
189
202
|
const keyUnwrappedFromCurlyBraces = match === null ? key : match[1];
|
190
203
|
|
191
204
|
const out = resolveMsg({
|
192
|
-
|
205
|
+
key: keyUnwrappedFromCurlyBraces,
|
193
206
|
args,
|
194
|
-
|
207
|
+
doRenderAsHtml
|
195
208
|
});
|
196
209
|
|
197
|
-
return (out !== undefined ? out :
|
210
|
+
return (out !== undefined ? out : doRenderAsHtml ? <span>{keyUnwrappedFromCurlyBraces}</span> : keyUnwrappedFromCurlyBraces) as any;
|
198
211
|
}
|
199
212
|
|
200
213
|
return {
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
214
|
+
msgStr: (key, ...args) => resolveMsg({ key, args, doRenderAsHtml: false }) as string,
|
215
|
+
msg: (key, ...args) => resolveMsg({ key, args, doRenderAsHtml: true }) as JSX.Element,
|
216
|
+
advancedMsg: (key, ...args) =>
|
217
|
+
resolveMsgAdvanced({
|
218
|
+
key,
|
219
|
+
args,
|
220
|
+
doRenderAsHtml: true
|
221
|
+
}) as JSX.Element,
|
222
|
+
advancedMsgStr: (key, ...args) =>
|
223
|
+
resolveMsgAdvanced({
|
224
|
+
key,
|
225
|
+
args,
|
226
|
+
doRenderAsHtml: false
|
227
|
+
}) as string
|
205
228
|
};
|
206
229
|
}
|
207
230
|
|
208
231
|
const keycloakifyExtraMessages = {
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
232
|
+
en: {
|
233
|
+
shouldBeEqual: "{0} should be equal to {1}",
|
234
|
+
shouldBeDifferent: "{0} should be different to {1}",
|
235
|
+
shouldMatchPattern: "Pattern should match: `/{0}/`",
|
236
|
+
mustBeAnInteger: "Must be an integer",
|
237
|
+
notAValidOption: "Not a valid option",
|
238
|
+
selectAnOption: "Select an option",
|
239
|
+
remove: "Remove",
|
240
|
+
addValue: "Add value"
|
218
241
|
},
|
219
|
-
|
242
|
+
fr: {
|
220
243
|
/* spell-checker: disable */
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
244
|
+
shouldBeEqual: "{0} doit être égal à {1}",
|
245
|
+
shouldBeDifferent: "{0} doit être différent de {1}",
|
246
|
+
shouldMatchPattern: "Dois respecter le schéma: `/{0}/`",
|
247
|
+
mustBeAnInteger: "Doit être un nombre entier",
|
248
|
+
notAValidOption: "N'est pas une option valide",
|
249
|
+
|
250
|
+
logoutConfirmTitle: "Déconnexion",
|
251
|
+
logoutConfirmHeader: "Êtes-vous sûr(e) de vouloir vous déconnecter ?",
|
252
|
+
doLogout: "Se déconnecter",
|
253
|
+
selectAnOption: "Sélectionner une option",
|
254
|
+
remove: "Supprimer",
|
255
|
+
addValue: "Ajouter une valeur"
|
233
256
|
/* spell-checker: enable */
|
234
257
|
}
|
235
258
|
};
|
package/src/login/index.ts
CHANGED
@@ -5,7 +5,7 @@ export default Fallback;
|
|
5
5
|
export { useDownloadTerms } from "keycloakify/login/lib/useDownloadTerms";
|
6
6
|
export { getKcContext } from "keycloakify/login/kcContext/getKcContext";
|
7
7
|
export { createGetKcContext } from "keycloakify/login/kcContext/createGetKcContext";
|
8
|
-
export type { LoginThemePageId as PageId } from "keycloakify/bin/
|
8
|
+
export type { LoginThemePageId as PageId } from "keycloakify/bin/shared/constants";
|
9
9
|
export { createUseI18n } from "keycloakify/login/i18n/i18n";
|
10
10
|
|
11
11
|
export type { PageProps } from "keycloakify/login/pages/PageProps";
|
@@ -1,10 +1,16 @@
|
|
1
|
-
import type {
|
2
|
-
|
1
|
+
import type {
|
2
|
+
ThemeType,
|
3
|
+
LoginThemePageId,
|
4
|
+
nameOfTheLocalizationRealmOverridesUserProfileProperty
|
5
|
+
} from "keycloakify/bin/shared/constants";
|
3
6
|
import { assert } from "tsafe/assert";
|
4
7
|
import type { Equals } from "tsafe";
|
5
8
|
import type { MessageKey } from "../i18n/i18n";
|
6
9
|
|
7
|
-
type ExtractAfterStartingWith<
|
10
|
+
type ExtractAfterStartingWith<
|
11
|
+
Prefix extends string,
|
12
|
+
StrEnum
|
13
|
+
> = StrEnum extends `${Prefix}${infer U}` ? U : never;
|
8
14
|
|
9
15
|
/** Take theses type definition with a grain of salt.
|
10
16
|
* Some values might be undefined on some pages.
|
@@ -104,7 +110,10 @@ export declare namespace KcContext {
|
|
104
110
|
* @param text to return
|
105
111
|
* @return text if message exists for given field, else undefined
|
106
112
|
*/
|
107
|
-
printIfExists: <T extends string>(
|
113
|
+
printIfExists: <T extends string>(
|
114
|
+
fieldName: string,
|
115
|
+
text: T
|
116
|
+
) => T | undefined;
|
108
117
|
/**
|
109
118
|
* Check if exists error message for given fields
|
110
119
|
*
|
@@ -135,6 +144,7 @@ export declare namespace KcContext {
|
|
135
144
|
tabId: string;
|
136
145
|
ssoLoginInOtherTabsUrl: string;
|
137
146
|
};
|
147
|
+
__localizationRealmOverridesUserProfile: Record<string, string>;
|
138
148
|
};
|
139
149
|
|
140
150
|
export type SamlPostForm = Common & {
|
@@ -745,3 +755,12 @@ export type PasswordPolicies = {
|
|
745
755
|
/** Whether the password can be the email address */
|
746
756
|
notEmail?: boolean;
|
747
757
|
};
|
758
|
+
|
759
|
+
assert<
|
760
|
+
KcContext.Common extends Record<
|
761
|
+
typeof nameOfTheLocalizationRealmOverridesUserProfileProperty,
|
762
|
+
unknown
|
763
|
+
>
|
764
|
+
? true
|
765
|
+
: false
|
766
|
+
>();
|