keycloakify 10.0.0-rc.1 → 10.0.0-rc.3

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.
Files changed (68) hide show
  1. package/account/Template.js +2 -2
  2. package/account/Template.js.map +1 -1
  3. package/account/i18n/i18n.d.ts +3 -4
  4. package/account/i18n/i18n.js +2 -3
  5. package/account/i18n/i18n.js.map +1 -1
  6. package/account/kcContext/KcContext.d.ts +0 -15
  7. package/account/kcContext/KcContext.js.map +1 -1
  8. package/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +160 -232
  9. package/bin/keycloakify/generateFtl/generateFtl.js +1 -1
  10. package/bin/keycloakify/generateFtl/generateFtl.js.map +1 -1
  11. package/bin/keycloakify/generateStartKeycloakTestingContainer.d.ts +2 -0
  12. package/bin/keycloakify/generateStartKeycloakTestingContainer.js +9 -12
  13. package/bin/keycloakify/generateStartKeycloakTestingContainer.js.map +1 -1
  14. package/bin/keycloakify/generateTheme/generateThemeVariants.js +1 -1
  15. package/bin/keycloakify/generateTheme/generateThemeVariants.js.map +1 -1
  16. package/bin/keycloakify/keycloakify.js +1 -0
  17. package/bin/keycloakify/keycloakify.js.map +1 -1
  18. package/login/Template.js +2 -2
  19. package/login/Template.js.map +1 -1
  20. package/login/i18n/i18n.d.ts +3 -4
  21. package/login/i18n/i18n.js +2 -3
  22. package/login/i18n/i18n.js.map +1 -1
  23. package/login/kcContext/KcContext.d.ts +1 -0
  24. package/login/kcContext/KcContext.js.map +1 -1
  25. package/login/kcContext/kcContextMocks.js +2 -1
  26. package/login/kcContext/kcContextMocks.js.map +1 -1
  27. package/login/pages/Code.js +1 -1
  28. package/login/pages/Code.js.map +1 -1
  29. package/login/pages/IdpReviewUserProfile.js.map +1 -1
  30. package/login/pages/Login.js +1 -1
  31. package/login/pages/Login.js.map +1 -1
  32. package/login/pages/LoginConfigTotp.js +1 -9
  33. package/login/pages/LoginConfigTotp.js.map +1 -1
  34. package/login/pages/LoginUpdateProfile.js +1 -1
  35. package/login/pages/LoginUpdateProfile.js.map +1 -1
  36. package/login/pages/LoginUsername.js +1 -1
  37. package/login/pages/LoginUsername.js.map +1 -1
  38. package/login/pages/Register.js +1 -1
  39. package/login/pages/Register.js.map +1 -1
  40. package/login/pages/UpdateEmail.js.map +1 -1
  41. package/login/pages/WebauthnRegister.js +1 -1
  42. package/login/pages/WebauthnRegister.js.map +1 -1
  43. package/package.json +1 -7
  44. package/src/account/Template.tsx +2 -5
  45. package/src/account/i18n/i18n.tsx +5 -8
  46. package/src/account/kcContext/KcContext.ts +0 -15
  47. package/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +160 -232
  48. package/src/bin/keycloakify/generateFtl/generateFtl.ts +1 -1
  49. package/src/bin/keycloakify/generateStartKeycloakTestingContainer.ts +13 -14
  50. package/src/bin/keycloakify/generateTheme/generateThemeVariants.ts +1 -1
  51. package/src/bin/keycloakify/keycloakify.ts +1 -0
  52. package/src/login/Template.tsx +6 -22
  53. package/src/login/i18n/i18n.tsx +5 -8
  54. package/src/login/kcContext/KcContext.ts +1 -0
  55. package/src/login/kcContext/kcContextMocks.ts +2 -1
  56. package/src/login/pages/Code.tsx +1 -1
  57. package/src/login/pages/IdpReviewUserProfile.tsx +1 -1
  58. package/src/login/pages/Login.tsx +1 -1
  59. package/src/login/pages/LoginConfigTotp.tsx +1 -9
  60. package/src/login/pages/LoginUpdateProfile.tsx +1 -1
  61. package/src/login/pages/LoginUsername.tsx +1 -1
  62. package/src/login/pages/Register.tsx +1 -1
  63. package/src/login/pages/UpdateEmail.tsx +1 -1
  64. package/src/login/pages/WebauthnRegister.tsx +1 -1
  65. package/bin/tools/grant-exec-perms.d.ts +0 -1
  66. package/bin/tools/grant-exec-perms.js +0 -100
  67. package/bin/tools/grant-exec-perms.js.map +0 -1
  68. package/src/bin/tools/grant-exec-perms.ts +0 -19
@@ -9,7 +9,7 @@ const { useInsertLinkTags } = createUseInsertLinkTags();
9
9
  export default function Template(props) {
10
10
  const { kcContext, i18n, doUseDefaultCss, active, classes, children } = props;
11
11
  const { getClassName } = useGetClassName({ doUseDefaultCss, classes });
12
- const { msg, msgStr, changeLocale, labelBySupportedLanguageTag, currentLanguageTag } = i18n;
12
+ const { msg, msgStr, getChangeLocalUrl, labelBySupportedLanguageTag, currentLanguageTag } = i18n;
13
13
  const { locale, url, features, realm, message, referrer } = kcContext;
14
14
  useEffect(() => {
15
15
  document.title = msgStr("accountManagementTitle");
@@ -43,6 +43,6 @@ export default function Template(props) {
43
43
  if (!areAllStyleSheetsLoaded) {
44
44
  return null;
45
45
  }
46
- return (_jsxs(_Fragment, { children: [_jsx("header", Object.assign({ className: "navbar navbar-default navbar-pf navbar-main header" }, { children: _jsxs("nav", Object.assign({ className: "navbar", role: "navigation" }, { children: [_jsx("div", Object.assign({ className: "navbar-header" }, { children: _jsx("div", Object.assign({ className: "container" }, { children: _jsx("h1", Object.assign({ className: "navbar-title" }, { children: "Keycloak" })) })) })), _jsx("div", Object.assign({ className: "navbar-collapse navbar-collapse-1" }, { children: _jsx("div", Object.assign({ className: "container" }, { children: _jsxs("ul", Object.assign({ className: "nav navbar-nav navbar-utility" }, { children: [realm.internationalizationEnabled && (assert(locale !== undefined), true) && locale.supported.length > 1 && (_jsx("li", { children: _jsxs("div", Object.assign({ className: "kc-dropdown", id: "kc-locale-dropdown" }, { children: [_jsx("a", Object.assign({ href: "#", id: "kc-current-locale-link" }, { children: labelBySupportedLanguageTag[currentLanguageTag] })), _jsx("ul", { children: locale.supported.map(({ languageTag }) => (_jsx("li", Object.assign({ className: "kc-dropdown-item" }, { children: _jsx("a", Object.assign({ href: "#", onClick: () => changeLocale(languageTag) }, { children: labelBySupportedLanguageTag[languageTag] })) }), languageTag))) })] })) })), (referrer === null || referrer === void 0 ? void 0 : referrer.url) && (_jsx("li", { children: _jsx("a", Object.assign({ href: referrer.url, id: "referrer" }, { children: msg("backTo", referrer.name) })) })), _jsx("li", { children: _jsx("a", Object.assign({ href: url.getLogoutUrl() }, { children: msg("doSignOut") })) })] })) })) }))] })) })), _jsxs("div", Object.assign({ className: "container" }, { children: [_jsx("div", Object.assign({ className: "bs-sidebar col-sm-3" }, { children: _jsxs("ul", { children: [_jsx("li", Object.assign({ className: clsx(active === "account" && "active") }, { children: _jsx("a", Object.assign({ href: url.accountUrl }, { children: msg("account") })) })), features.passwordUpdateSupported && (_jsx("li", Object.assign({ className: clsx(active === "password" && "active") }, { children: _jsx("a", Object.assign({ href: url.passwordUrl }, { children: msg("password") })) }))), _jsx("li", Object.assign({ className: clsx(active === "totp" && "active") }, { children: _jsx("a", Object.assign({ href: url.totpUrl }, { children: msg("authenticator") })) })), features.identityFederation && (_jsx("li", Object.assign({ className: clsx(active === "social" && "active") }, { children: _jsx("a", Object.assign({ href: url.socialUrl }, { children: msg("federatedIdentity") })) }))), _jsx("li", Object.assign({ className: clsx(active === "sessions" && "active") }, { children: _jsx("a", Object.assign({ href: url.sessionsUrl }, { children: msg("sessions") })) })), _jsx("li", Object.assign({ className: clsx(active === "applications" && "active") }, { children: _jsx("a", Object.assign({ href: url.applicationsUrl }, { children: msg("applications") })) })), features.log && (_jsx("li", Object.assign({ className: clsx(active === "log" && "active") }, { children: _jsx("a", Object.assign({ href: url.logUrl }, { children: msg("log") })) }))), realm.userManagedAccessAllowed && features.authorization && (_jsx("li", Object.assign({ className: clsx(active === "authorization" && "active") }, { children: _jsx("a", Object.assign({ href: url.resourceUrl }, { children: msg("myResources") })) })))] }) })), _jsxs("div", Object.assign({ className: "col-sm-9 content-area" }, { children: [message !== undefined && (_jsxs("div", Object.assign({ className: clsx("alert", `alert-${message.type}`) }, { children: [message.type === "success" && _jsx("span", { className: "pficon pficon-ok" }), message.type === "error" && _jsx("span", { className: "pficon pficon-error-circle-o" }), _jsx("span", Object.assign({ className: "kc-feedback-text" }, { children: message.summary }))] }))), children] }))] }))] }));
46
+ return (_jsxs(_Fragment, { children: [_jsx("header", Object.assign({ className: "navbar navbar-default navbar-pf navbar-main header" }, { children: _jsxs("nav", Object.assign({ className: "navbar", role: "navigation" }, { children: [_jsx("div", Object.assign({ className: "navbar-header" }, { children: _jsx("div", Object.assign({ className: "container" }, { children: _jsx("h1", Object.assign({ className: "navbar-title" }, { children: "Keycloak" })) })) })), _jsx("div", Object.assign({ className: "navbar-collapse navbar-collapse-1" }, { children: _jsx("div", Object.assign({ className: "container" }, { children: _jsxs("ul", Object.assign({ className: "nav navbar-nav navbar-utility" }, { children: [realm.internationalizationEnabled && (assert(locale !== undefined), true) && locale.supported.length > 1 && (_jsx("li", { children: _jsxs("div", Object.assign({ className: "kc-dropdown", id: "kc-locale-dropdown" }, { children: [_jsx("a", Object.assign({ href: "#", id: "kc-current-locale-link" }, { children: labelBySupportedLanguageTag[currentLanguageTag] })), _jsx("ul", { children: locale.supported.map(({ languageTag }) => (_jsx("li", Object.assign({ className: "kc-dropdown-item" }, { children: _jsx("a", Object.assign({ href: getChangeLocalUrl(languageTag) }, { children: labelBySupportedLanguageTag[languageTag] })) }), languageTag))) })] })) })), (referrer === null || referrer === void 0 ? void 0 : referrer.url) && (_jsx("li", { children: _jsx("a", Object.assign({ href: referrer.url, id: "referrer" }, { children: msg("backTo", referrer.name) })) })), _jsx("li", { children: _jsx("a", Object.assign({ href: url.getLogoutUrl() }, { children: msg("doSignOut") })) })] })) })) }))] })) })), _jsxs("div", Object.assign({ className: "container" }, { children: [_jsx("div", Object.assign({ className: "bs-sidebar col-sm-3" }, { children: _jsxs("ul", { children: [_jsx("li", Object.assign({ className: clsx(active === "account" && "active") }, { children: _jsx("a", Object.assign({ href: url.accountUrl }, { children: msg("account") })) })), features.passwordUpdateSupported && (_jsx("li", Object.assign({ className: clsx(active === "password" && "active") }, { children: _jsx("a", Object.assign({ href: url.passwordUrl }, { children: msg("password") })) }))), _jsx("li", Object.assign({ className: clsx(active === "totp" && "active") }, { children: _jsx("a", Object.assign({ href: url.totpUrl }, { children: msg("authenticator") })) })), features.identityFederation && (_jsx("li", Object.assign({ className: clsx(active === "social" && "active") }, { children: _jsx("a", Object.assign({ href: url.socialUrl }, { children: msg("federatedIdentity") })) }))), _jsx("li", Object.assign({ className: clsx(active === "sessions" && "active") }, { children: _jsx("a", Object.assign({ href: url.sessionsUrl }, { children: msg("sessions") })) })), _jsx("li", Object.assign({ className: clsx(active === "applications" && "active") }, { children: _jsx("a", Object.assign({ href: url.applicationsUrl }, { children: msg("applications") })) })), features.log && (_jsx("li", Object.assign({ className: clsx(active === "log" && "active") }, { children: _jsx("a", Object.assign({ href: url.logUrl }, { children: msg("log") })) }))), realm.userManagedAccessAllowed && features.authorization && (_jsx("li", Object.assign({ className: clsx(active === "authorization" && "active") }, { children: _jsx("a", Object.assign({ href: url.resourceUrl }, { children: msg("myResources") })) })))] }) })), _jsxs("div", Object.assign({ className: "col-sm-9 content-area" }, { children: [message !== undefined && (_jsxs("div", Object.assign({ className: clsx("alert", `alert-${message.type}`) }, { children: [message.type === "success" && _jsx("span", { className: "pficon pficon-ok" }), message.type === "error" && _jsx("span", { className: "pficon pficon-error-circle-o" }), _jsx("span", Object.assign({ className: "kc-feedback-text" }, { children: message.summary }))] }))), children] }))] }))] }));
47
47
  }
48
48
  //# sourceMappingURL=Template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Template.js","sourceRoot":"","sources":["../src/account/Template.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Template.js","sourceRoot":"","sources":["../src/account/Template.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAGpE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,MAAM,EAAE,iBAAiB,EAAE,GAAG,uBAAuB,EAAE,CAAC;AAExD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAqC;IAClE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE9E,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC;IAEvE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;IAEjG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IAEtE,SAAS,CAAC,GAAG,EAAE;QACX,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;IACtD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,eAAe,CAAC;QACZ,eAAe,EAAE,MAAM;QACvB,WAAW,EAAE,YAAY,CAAC,aAAa,CAAC;KAC3C,CAAC,CAAC;IAEH,eAAe,CAAC;QACZ,eAAe,EAAE,MAAM;QACvB,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;KAC1E,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;QAE5C,IAAI,kBAAkB,KAAK,SAAS,EAAE;YAClC,OAAO;SACV;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACnC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,EAAE,uBAAuB,EAAE,GAAG,iBAAiB,CAAC;QAClD,OAAO,EAAE,CAAC,eAAe;YACrB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACI,GAAG,GAAG,CAAC,mBAAmB,sDAAsD;gBAChF,GAAG,GAAG,CAAC,mBAAmB,gEAAgE;gBAC1F,GAAG,GAAG,CAAC,aAAa,kBAAkB;aACzC;KACV,CAAC,CAAC;IAEH,IAAI,CAAC,uBAAuB,EAAE;QAC1B,OAAO,IAAI,CAAC;KACf;IAED,OAAO,CACH,8BACI,+BAAQ,SAAS,EAAC,oDAAoD,gBAClE,6BAAK,SAAS,EAAC,QAAQ,EAAC,IAAI,EAAC,YAAY,iBACrC,4BAAK,SAAS,EAAC,eAAe,gBAC1B,4BAAK,SAAS,EAAC,WAAW,gBACtB,2BAAI,SAAS,EAAC,cAAc,8BAAc,IACxC,IACJ,EACN,4BAAK,SAAS,EAAC,mCAAmC,gBAC9C,4BAAK,SAAS,EAAC,WAAW,gBACtB,4BAAI,SAAS,EAAC,+BAA+B,iBACxC,KAAK,CAAC,2BAA2B,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACzG,uBACI,6BAAK,SAAS,EAAC,aAAa,EAAC,EAAE,EAAC,oBAAoB,iBAEhD,0BAAG,IAAI,EAAC,GAAG,EAAC,EAAE,EAAC,wBAAwB,gBAClC,2BAA2B,CAAC,kBAAkB,CAAC,IAChD,EACJ,uBACK,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CACvC,2BAAsB,SAAS,EAAC,kBAAkB,gBAC9C,0BAAG,IAAI,EAAE,iBAAiB,CAAC,WAAW,CAAC,gBAAG,2BAA2B,CAAC,WAAW,CAAC,IAAK,KADlF,WAAW,CAEf,CACR,CAAC,GACD,KACH,GACL,CACR,EACA,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,KAAI,CACd,uBACI,0BAAG,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAC,UAAU,gBAC/B,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAC7B,GACH,CACR,EACD,uBACI,0BAAG,IAAI,EAAE,GAAG,CAAC,YAAY,EAAE,gBAAG,GAAG,CAAC,WAAW,CAAC,IAAK,GAClD,KACJ,IACH,IACJ,KACJ,IACD,EAET,6BAAK,SAAS,EAAC,WAAW,iBACtB,4BAAK,SAAS,EAAC,qBAAqB,gBAChC,yBACI,2BAAI,SAAS,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,gBACjD,0BAAG,IAAI,EAAE,GAAG,CAAC,UAAU,gBAAG,GAAG,CAAC,SAAS,CAAC,IAAK,IAC5C,EACJ,QAAQ,CAAC,uBAAuB,IAAI,CACjC,2BAAI,SAAS,EAAE,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,QAAQ,CAAC,gBAClD,0BAAG,IAAI,EAAE,GAAG,CAAC,WAAW,gBAAG,GAAG,CAAC,UAAU,CAAC,IAAK,IAC9C,CACR,EACD,2BAAI,SAAS,EAAE,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,gBAC9C,0BAAG,IAAI,EAAE,GAAG,CAAC,OAAO,gBAAG,GAAG,CAAC,eAAe,CAAC,IAAK,IAC/C,EACJ,QAAQ,CAAC,kBAAkB,IAAI,CAC5B,2BAAI,SAAS,EAAE,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,gBAChD,0BAAG,IAAI,EAAE,GAAG,CAAC,SAAS,gBAAG,GAAG,CAAC,mBAAmB,CAAC,IAAK,IACrD,CACR,EACD,2BAAI,SAAS,EAAE,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,QAAQ,CAAC,gBAClD,0BAAG,IAAI,EAAE,GAAG,CAAC,WAAW,gBAAG,GAAG,CAAC,UAAU,CAAC,IAAK,IAC9C,EACL,2BAAI,SAAS,EAAE,IAAI,CAAC,MAAM,KAAK,cAAc,IAAI,QAAQ,CAAC,gBACtD,0BAAG,IAAI,EAAE,GAAG,CAAC,eAAe,gBAAG,GAAG,CAAC,cAAc,CAAC,IAAK,IACtD,EACJ,QAAQ,CAAC,GAAG,IAAI,CACb,2BAAI,SAAS,EAAE,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,QAAQ,CAAC,gBAC7C,0BAAG,IAAI,EAAE,GAAG,CAAC,MAAM,gBAAG,GAAG,CAAC,KAAK,CAAC,IAAK,IACpC,CACR,EACA,KAAK,CAAC,wBAAwB,IAAI,QAAQ,CAAC,aAAa,IAAI,CACzD,2BAAI,SAAS,EAAE,IAAI,CAAC,MAAM,KAAK,eAAe,IAAI,QAAQ,CAAC,gBACvD,0BAAG,IAAI,EAAE,GAAG,CAAC,WAAW,gBAAG,GAAG,CAAC,aAAa,CAAC,IAAK,IACjD,CACR,IACA,IACH,EAEN,6BAAK,SAAS,EAAC,uBAAuB,iBACjC,OAAO,KAAK,SAAS,IAAI,CACtB,6BAAK,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,OAAO,CAAC,IAAI,EAAE,CAAC,iBACjD,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,eAAM,SAAS,EAAC,kBAAkB,GAAQ,EACxE,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,eAAM,SAAS,EAAC,8BAA8B,GAAQ,EACnF,6BAAM,SAAS,EAAC,kBAAkB,gBAAE,OAAO,CAAC,OAAO,IAAQ,KACzD,CACT,EAEA,QAAQ,KACP,KACJ,IACP,CACN,CAAC;AACN,CAAC"}
@@ -21,11 +21,10 @@ export type GenericI18n<MessageKey extends string> = {
21
21
  */
22
22
  currentLanguageTag: string;
23
23
  /**
24
- * To call when the user switch language.
25
- * This will cause the page to be reloaded,
26
- * on next load currentLanguageTag === newLanguageTag
24
+ * Redirect to this url to change the language.
25
+ * After reload currentLanguageTag === newLanguageTag
27
26
  */
28
- changeLocale: (newLanguageTag: string) => never;
27
+ getChangeLocalUrl: (newLanguageTag: string) => string;
29
28
  /**
30
29
  * e.g. "en" => "English", "fr" => "Français", ...
31
30
  *
@@ -24,13 +24,12 @@ export function createUseI18n(extraMessages) {
24
24
  setI18n(Object.assign(Object.assign({}, createI18nTranslationFunctions({
25
25
  "fallbackMessages": Object.assign(Object.assign(Object.assign({}, fallbackMessages), ((_b = keycloakifyExtraMessages[fallbackLanguageTag]) !== null && _b !== void 0 ? _b : {})), ((_c = extraMessages[fallbackLanguageTag]) !== null && _c !== void 0 ? _c : {})),
26
26
  "messages": Object.assign(Object.assign(Object.assign({}, (await getMessages(currentLanguageTag))), ((_d = keycloakifyExtraMessages[currentLanguageTag]) !== null && _d !== void 0 ? _d : {})), ((_e = extraMessages[currentLanguageTag]) !== null && _e !== void 0 ? _e : {}))
27
- })), { currentLanguageTag, "changeLocale": newLanguageTag => {
27
+ })), { currentLanguageTag, "getChangeLocalUrl": newLanguageTag => {
28
28
  const { locale } = kcContext;
29
29
  assert(locale !== undefined, "Internationalization not enabled");
30
30
  const targetSupportedLocale = locale.supported.find(({ languageTag }) => languageTag === newLanguageTag);
31
31
  assert(targetSupportedLocale !== undefined, `${newLanguageTag} need to be enabled in Keycloak admin`);
32
- window.location.href = targetSupportedLocale.url;
33
- assert(false, "never");
32
+ return targetSupportedLocale.url;
34
33
  }, "labelBySupportedLanguageTag": Object.fromEntries(((_g = (_f = kcContext.locale) === null || _f === void 0 ? void 0 : _f.supported) !== null && _g !== void 0 ? _g : []).map(({ languageTag, label }) => [languageTag, label])) }));
35
34
  })();
36
35
  }, []);
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/account/i18n/i18n.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/account/i18n/i18n.tsx"],"names":[],"mappings":"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"}
@@ -153,21 +153,6 @@ export declare namespace KcContext {
153
153
  };
154
154
  mode?: "qr" | "manual" | undefined | null;
155
155
  isAppInitiatedAction: boolean;
156
- url: {
157
- accountUrl: string;
158
- passwordUrl: string;
159
- totpUrl: string;
160
- socialUrl: string;
161
- sessionsUrl: string;
162
- applicationsUrl: string;
163
- logUrl: string;
164
- resourceUrl: string;
165
- resourcesCommonPath: string;
166
- resourcesPath: string;
167
- /** @deprecated, not present in recent keycloak version apparently, use kcContext.referrer instead */
168
- referrerURI?: string;
169
- getLogoutUrl: () => string;
170
- };
171
156
  stateChecker: string;
172
157
  };
173
158
  type Applications = Common & {
@@ -1 +1 @@
1
- {"version":3,"file":"KcContext.js","sourceRoot":"","sources":["../../src/account/kcContext/KcContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAsQtC;IAOI,MAAM,EAA4B,CAAC;IACnC,MAAM,EAAiC,CAAC;CAC3C;AAED,MAAM,EAA2D,CAAC"}
1
+ {"version":3,"file":"KcContext.js","sourceRoot":"","sources":["../../src/account/kcContext/KcContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAuPtC;IAOI,MAAM,EAA4B,CAAC;IACnC,MAAM,EAAiC,CAAC;CAC3C;AAED,MAAM,EAA2D,CAAC"}
@@ -1,280 +1,189 @@
1
1
  <script>const _=
2
- <#assign pageId="PAGE_ID_xIgLsPgGId9D8e">
3
2
  (()=>{
4
-
5
- const out = ${ftl_object_to_js_code_declaring_an_object(.data_model, [])?no_esc};
6
-
7
- out["msg"]= function(){ throw new Error("use import { useKcMessage } from 'keycloakify'"); };
8
- out["advancedMsg"]= function(){ throw new Error("use import { useKcMessage } from 'keycloakify'"); };
9
-
10
- out["messagesPerField"]= {
11
- <#assign fieldNames = [ FIELD_NAMES_eKsIY4ZsZ4xeM ]>
12
-
13
- <#attempt>
14
- <#if profile?? && profile.attributes?? && profile.attributes?is_enumerable>
15
- <#list profile.attributes as attribute>
16
- <#if fieldNames?seq_contains(attribute.name)>
17
- <#continue>
18
- </#if>
19
- <#assign fieldNames += [attribute.name]>
20
- </#list>
21
- </#if>
22
- <#recover>
23
- </#attempt>
24
-
25
- "printIfExists": function (fieldName, text) {
26
-
27
- <#if !messagesPerField?? || !(messagesPerField?is_hash)>
28
- throw new Error("You're not supposed to use messagesPerField.printIfExists in this page");
29
- <#else>
30
- <#list fieldNames as fieldName>
31
- if(fieldName === "${fieldName}" ){
32
-
33
- <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
34
- <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
35
-
36
- <#assign doExistErrorOnUsernameOrPassword = "">
37
-
38
- <#attempt>
39
- <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
40
- <#recover>
41
- <#assign doExistErrorOnUsernameOrPassword = true>
42
- </#attempt>
43
-
44
- <#if doExistErrorOnUsernameOrPassword>
45
- return text;
46
- <#else>
47
-
48
- <#assign doExistMessageForField = "">
49
-
50
- <#attempt>
51
- <#assign doExistMessageForField = messagesPerField.exists('${fieldName}')>
52
- <#recover>
53
- <#assign doExistMessageForField = true>
54
- </#attempt>
55
-
56
- return <#if doExistMessageForField>text<#else>undefined</#if>;
57
-
58
- </#if>
59
-
3
+ <#assign pageId="PAGE_ID_xIgLsPgGId9D8e">
4
+ const out = ${ftl_object_to_js_code_declaring_an_object(.data_model, [])?no_esc};
5
+ out["msg"]= function(){ throw new Error("use import { useKcMessage } from 'keycloakify'"); };
6
+ out["advancedMsg"]= function(){ throw new Error("use import { useKcMessage } from 'keycloakify'"); };
7
+ out["messagesPerField"]= {
8
+ <#assign fieldNames = [ FIELD_NAMES_eKsIY4ZsZ4xeM ]>
9
+ <#attempt>
10
+ <#if profile?? && profile.attributes?? && profile.attributes?is_enumerable>
11
+ <#list profile.attributes as attribute>
12
+ <#if fieldNames?seq_contains(attribute.name)>
13
+ <#continue>
14
+ </#if>
15
+ <#assign fieldNames += [attribute.name]>
16
+ </#list>
17
+ </#if>
18
+ <#recover>
19
+ </#attempt>
20
+ "printIfExists": function (fieldName, text) {
21
+ <#if !messagesPerField?? || !(messagesPerField?is_hash)>
22
+ throw new Error("You're not supposed to use messagesPerField.printIfExists in this page");
23
+ <#else>
24
+ <#list fieldNames as fieldName>
25
+ if(fieldName === "${fieldName}" ){
26
+ <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
27
+ <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
28
+ <#assign doExistErrorOnUsernameOrPassword = "">
29
+ <#attempt>
30
+ <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
31
+ <#recover>
32
+ <#assign doExistErrorOnUsernameOrPassword = true>
33
+ </#attempt>
34
+ <#if doExistErrorOnUsernameOrPassword>
35
+ return text;
60
36
  <#else>
61
-
62
37
  <#assign doExistMessageForField = "">
63
-
64
38
  <#attempt>
65
39
  <#assign doExistMessageForField = messagesPerField.exists('${fieldName}')>
66
40
  <#recover>
67
41
  <#assign doExistMessageForField = true>
68
42
  </#attempt>
69
-
70
43
  return <#if doExistMessageForField>text<#else>undefined</#if>;
71
-
72
44
  </#if>
73
-
74
-
75
- }
76
- </#list>
77
-
78
- throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
79
- </#if>
80
-
81
- },
82
- "existsError": function (){
83
-
84
- function existsError_singleFieldName(fieldName) {
85
-
86
- <#if !messagesPerField?? || !(messagesPerField?is_hash)>
87
- throw new Error("You're not supposed to use messagesPerField.printIfExists in this page");
88
- <#else>
89
- <#list fieldNames as fieldName>
90
- if(fieldName === "${fieldName}" ){
91
-
92
- <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
93
- <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
94
-
95
- <#assign doExistErrorOnUsernameOrPassword = "">
96
-
97
- <#attempt>
98
- <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
99
- <#recover>
100
- <#assign doExistErrorOnUsernameOrPassword = true>
101
- </#attempt>
102
-
103
- return <#if doExistErrorOnUsernameOrPassword>true<#else>false</#if>;
104
-
105
- <#else>
106
-
107
- <#assign doExistErrorMessageForField = "">
108
-
109
- <#attempt>
110
- <#assign doExistErrorMessageForField = messagesPerField.existsError('${fieldName}')>
111
- <#recover>
112
- <#assign doExistErrorMessageForField = true>
113
- </#attempt>
114
-
115
- return <#if doExistErrorMessageForField>true<#else>false</#if>;
116
-
117
- </#if>
118
-
119
- }
120
- </#list>
121
-
122
- throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
123
-
124
- </#if>
125
-
126
- }
127
-
128
- for( let i = 0; i < arguments.length; i++ ){
129
-
130
- if( existsError_singleFieldName(arguments[i]) ){
131
- return true;
45
+ <#else>
46
+ <#assign doExistMessageForField = "">
47
+ <#attempt>
48
+ <#assign doExistMessageForField = messagesPerField.exists('${fieldName}')>
49
+ <#recover>
50
+ <#assign doExistMessageForField = true>
51
+ </#attempt>
52
+ return <#if doExistMessageForField>text<#else>undefined</#if>;
53
+ </#if>
132
54
  }
133
-
134
- }
135
-
136
- return false;
137
-
138
- },
139
- "get": function (fieldName) {
140
-
141
-
55
+ </#list>
56
+ throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
57
+ </#if>
58
+ },
59
+ "existsError": function (){
60
+ function existsError_singleFieldName(fieldName) {
142
61
  <#if !messagesPerField?? || !(messagesPerField?is_hash)>
143
- throw new Error("You're not supposed to use messagesPerField.get in this page");
62
+ throw new Error("You're not supposed to use messagesPerField.printIfExists in this page");
144
63
  <#else>
145
64
  <#list fieldNames as fieldName>
146
65
  if(fieldName === "${fieldName}" ){
147
-
148
66
  <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
149
67
  <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
150
-
151
68
  <#assign doExistErrorOnUsernameOrPassword = "">
152
-
153
69
  <#attempt>
154
70
  <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
155
71
  <#recover>
156
72
  <#assign doExistErrorOnUsernameOrPassword = true>
157
73
  </#attempt>
158
-
159
- <#if doExistErrorOnUsernameOrPassword>
160
-
161
- <#attempt>
162
- return "${kcSanitize(msg('invalidUserMessage'))?no_esc}";
163
- <#recover>
164
- return "Invalid username or password.";
165
- </#attempt>
166
-
167
- <#else>
168
-
169
- <#attempt>
170
- return "${messagesPerField.get('${fieldName}')?no_esc}";
171
- <#recover>
172
- return "";
173
- </#attempt>
174
-
175
- </#if>
176
-
74
+ return <#if doExistErrorOnUsernameOrPassword>true<#else>false</#if>;
177
75
  <#else>
178
-
76
+ <#assign doExistErrorMessageForField = "">
179
77
  <#attempt>
180
- return "${messagesPerField.get('${fieldName}')?no_esc}";
78
+ <#assign doExistErrorMessageForField = messagesPerField.existsError('${fieldName}')>
181
79
  <#recover>
182
- return "invalid field";
80
+ <#assign doExistErrorMessageForField = true>
183
81
  </#attempt>
184
-
82
+ return <#if doExistErrorMessageForField>true<#else>false</#if>;
185
83
  </#if>
186
-
187
84
  }
188
85
  </#list>
189
-
190
86
  throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
191
-
192
87
  </#if>
193
-
194
- },
195
- "exists": function (fieldName) {
196
-
197
- <#if !messagesPerField?? || !(messagesPerField?is_hash)>
198
- throw new Error("You're not supposed to use messagesPerField.exists in this page");
199
- <#else>
200
- <#list fieldNames as fieldName>
201
- if(fieldName === "${fieldName}" ){
202
-
203
- <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
204
- <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
205
-
206
- <#assign doExistErrorOnUsernameOrPassword = "">
207
-
88
+ }
89
+ for( let i = 0; i < arguments.length; i++ ){
90
+ if( existsError_singleFieldName(arguments[i]) ){
91
+ return true;
92
+ }
93
+ }
94
+ return false;
95
+ },
96
+ "get": function (fieldName) {
97
+ <#if !messagesPerField?? || !(messagesPerField?is_hash)>
98
+ throw new Error("You're not supposed to use messagesPerField.get in this page");
99
+ <#else>
100
+ <#list fieldNames as fieldName>
101
+ if(fieldName === "${fieldName}" ){
102
+ <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
103
+ <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
104
+ <#assign doExistErrorOnUsernameOrPassword = "">
105
+ <#attempt>
106
+ <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
107
+ <#recover>
108
+ <#assign doExistErrorOnUsernameOrPassword = true>
109
+ </#attempt>
110
+ <#if doExistErrorOnUsernameOrPassword>
208
111
  <#attempt>
209
- <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
112
+ return "${kcSanitize(msg('invalidUserMessage'))?no_esc}";
210
113
  <#recover>
211
- <#assign doExistErrorOnUsernameOrPassword = true>
114
+ return "Invalid username or password.";
212
115
  </#attempt>
213
-
214
- return <#if doExistErrorOnUsernameOrPassword>true<#else>false</#if>;
215
-
216
116
  <#else>
217
-
218
- <#assign doExistErrorMessageForField = "">
219
-
220
117
  <#attempt>
221
- <#assign doExistErrorMessageForField = messagesPerField.exists('${fieldName}')>
118
+ return "${messagesPerField.get('${fieldName}')?no_esc}";
222
119
  <#recover>
223
- <#assign doExistErrorMessageForField = true>
120
+ return "";
224
121
  </#attempt>
225
-
226
- return <#if doExistErrorMessageForField>true<#else>false</#if>;
227
-
228
122
  </#if>
229
-
230
- }
231
- </#list>
232
-
233
- throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
234
- </#if>
235
-
236
- },
237
- "getFirstError": function () {
238
-
239
- for( let i = 0; i < arguments.length; i++ ){
240
-
241
- const fieldName = arguments[i];
242
-
243
- if( out.messagesPerField.existsError(fieldName) ){
244
- return out.messagesPerField.get(fieldName);
123
+ <#else>
124
+ <#attempt>
125
+ return "${messagesPerField.get('${fieldName}')?no_esc}";
126
+ <#recover>
127
+ return "invalid field";
128
+ </#attempt>
129
+ </#if>
245
130
  }
246
-
131
+ </#list>
132
+ throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
133
+ </#if>
134
+ },
135
+ "exists": function (fieldName) {
136
+ <#if !messagesPerField?? || !(messagesPerField?is_hash)>
137
+ throw new Error("You're not supposed to use messagesPerField.exists in this page");
138
+ <#else>
139
+ <#list fieldNames as fieldName>
140
+ if(fieldName === "${fieldName}" ){
141
+ <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
142
+ <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
143
+ <#assign doExistErrorOnUsernameOrPassword = "">
144
+ <#attempt>
145
+ <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
146
+ <#recover>
147
+ <#assign doExistErrorOnUsernameOrPassword = true>
148
+ </#attempt>
149
+ return <#if doExistErrorOnUsernameOrPassword>true<#else>false</#if>;
150
+ <#else>
151
+ <#assign doExistErrorMessageForField = "">
152
+ <#attempt>
153
+ <#assign doExistErrorMessageForField = messagesPerField.exists('${fieldName}')>
154
+ <#recover>
155
+ <#assign doExistErrorMessageForField = true>
156
+ </#attempt>
157
+ return <#if doExistErrorMessageForField>true<#else>false</#if>;
158
+ </#if>
159
+ }
160
+ </#list>
161
+ throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
162
+ </#if>
163
+ },
164
+ "getFirstError": function () {
165
+ for( let i = 0; i < arguments.length; i++ ){
166
+ const fieldName = arguments[i];
167
+ if( out.messagesPerField.existsError(fieldName) ){
168
+ return out.messagesPerField.get(fieldName);
247
169
  }
248
-
249
170
  }
250
- };
251
-
252
- <#if account??>
253
- out["url"]["getLogoutUrl"] = function () {
254
- <#attempt>
255
- return "${url.getLogoutUrl()}";
256
- <#recover>
257
- </#attempt>
258
- };
259
- </#if>
260
-
261
- out["keycloakifyVersion"] = "KEYCLOAKIFY_VERSION_xEdKd3xEdr";
262
- out["themeVersion"] = "KEYCLOAKIFY_THEME_VERSION_sIgKd3xEdr3dx";
263
- out["themeType"] = "KEYCLOAKIFY_THEME_TYPE_dExKd3xEdr";
264
- out["themeName"] = "KEYCLOAKIFY_THEME_NAME_cXxKd3xEer";
265
- out["pageId"] = "${pageId}";
266
-
267
- try {
171
+ }
172
+ };
268
173
 
269
- out["url"]["resourcesCommonPath"] = out["url"]["resourcesPath"] + "/" + "RESOURCES_COMMON_cLsLsMrtDkpVv";
174
+ out["keycloakifyVersion"] = "KEYCLOAKIFY_VERSION_xEdKd3xEdr";
175
+ out["themeVersion"] = "KEYCLOAKIFY_THEME_VERSION_sIgKd3xEdr3dx";
176
+ out["themeType"] = "KEYCLOAKIFY_THEME_TYPE_dExKd3xEdr";
177
+ out["themeName"] = "KEYCLOAKIFY_THEME_NAME_cXxKd3xEer";
178
+ out["pageId"] = "${pageId}";
270
179
 
271
- } catch(error) {
180
+ try {
181
+ out["url"]["resourcesCommonPath"] = out["url"]["resourcesPath"] + "/" + "RESOURCES_COMMON_cLsLsMrtDkpVv";
182
+ } catch(error) { }
272
183
 
273
- }
184
+ return out;
274
185
 
275
- return out;
276
-
277
- })()
186
+ })();
278
187
  <#function ftl_object_to_js_code_declaring_an_object object path>
279
188
 
280
189
  <#local isHash = "">
@@ -298,7 +207,6 @@
298
207
  <#return "ABORT: We can't list keys on this object">
299
208
  </#attempt>
300
209
 
301
-
302
210
  <#local out_seq = []>
303
211
 
304
212
  <#list keys as key>
@@ -367,7 +275,7 @@
367
275
  key == "realmAttributes"
368
276
  )
369
277
  >
370
- <#local out_seq += ["/*If you need '" + path?join(".") + "." + key + "' on " + pageId + ", please submit an issue to the Keycloakify repo*/"]>
278
+ <#local out_seq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
371
279
  <#continue>
372
280
  </#if>
373
281
 
@@ -379,7 +287,7 @@
379
287
  <#attempt>
380
288
  <#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
381
289
  <#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
382
- <#local out_seq += ["/*If you need '" + key + "' on " + pageId + ", please submit an issue to the Keycloakify repo*/"]>
290
+ <#local out_seq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
383
291
  <#continue>
384
292
  </#if>
385
293
  <#recover>
@@ -459,6 +367,26 @@
459
367
  </#attempt>
460
368
  </#if>
461
369
 
370
+ <#if are_same_path(path, ["url", "getLogoutUrl"])>
371
+ <#local returnValue = "">
372
+ <#attempt>
373
+ <#local returnValue = url.getLogoutUrl()>
374
+ <#recover>
375
+ <#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
376
+ </#attempt>
377
+ <#return 'function(){ return "' + returnValue + '"; }'>
378
+ </#if>
379
+
380
+ <#if are_same_path(path, ["totp", "policy", "getAlgorithmKey"])>
381
+ <#local returnValue = "">
382
+ <#attempt>
383
+ <#local returnValue = totp.policy.getAlgorithmKey()>
384
+ <#recover>
385
+ <#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
386
+ </#attempt>
387
+ <#return 'function(){ return "' + returnValue + '"; }'>
388
+ </#if>
389
+
462
390
  <#return "ABORT: It's a method">
463
391
  </#if>
464
392
 
@@ -125,7 +125,7 @@ function generateFtlFilesCodeFactory(params) {
125
125
  .replace("KEYCLOAKIFY_THEME_NAME_cXxKd3xEer", themeName)
126
126
  .replace("RESOURCES_COMMON_cLsLsMrtDkpVv", constants_1.resources_common);
127
127
  var ftlObjectToJsCodeDeclaringAnObjectPlaceholder = '{ "x": "vIdLqMeOed9sdLdIdOxdK0d" }';
128
- $("head").prepend(["<script>", " window.".concat(constants_1.nameOfTheGlobal, "= ").concat(ftlObjectToJsCodeDeclaringAnObjectPlaceholder, ";"), "</script>"].join("\n"));
128
+ $("head").prepend("<script>\nwindow.".concat(constants_1.nameOfTheGlobal, "=").concat(ftlObjectToJsCodeDeclaringAnObjectPlaceholder, "</script>"));
129
129
  // Remove part of the document marked as ignored.
130
130
  {
131
131
  var startTags = $('meta[name="keycloakify-ignore-start"]');