keycloakify 9.6.7 → 10.0.0-rc.1

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 (417) hide show
  1. package/account/Template.js +34 -14
  2. package/account/Template.js.map +1 -1
  3. package/account/i18n/baseMessages/de.d.ts +1 -1
  4. package/account/i18n/baseMessages/de.js +1 -1
  5. package/account/i18n/baseMessages/de.js.map +1 -1
  6. package/account/i18n/baseMessages/en.d.ts +2 -0
  7. package/account/i18n/baseMessages/en.js +2 -0
  8. package/account/i18n/baseMessages/en.js.map +1 -1
  9. package/account/i18n/baseMessages/es.d.ts +230 -0
  10. package/account/i18n/baseMessages/es.js +231 -1
  11. package/account/i18n/baseMessages/es.js.map +1 -1
  12. package/account/i18n/baseMessages/index.d.ts +353 -407
  13. package/account/i18n/baseMessages/index.js +1 -0
  14. package/account/i18n/baseMessages/index.js.map +1 -1
  15. package/account/i18n/baseMessages/pl.d.ts +115 -1
  16. package/account/i18n/baseMessages/pl.js +115 -1
  17. package/account/i18n/baseMessages/pl.js.map +1 -1
  18. package/account/i18n/baseMessages/tr.d.ts +1 -1
  19. package/account/i18n/baseMessages/tr.js +1 -1
  20. package/account/i18n/baseMessages/tr.js.map +1 -1
  21. package/account/i18n/baseMessages/uk.d.ts +337 -0
  22. package/account/i18n/baseMessages/uk.js +342 -0
  23. package/account/i18n/baseMessages/uk.js.map +1 -0
  24. package/account/i18n/baseMessages/zh-CN.d.ts +10 -0
  25. package/account/i18n/baseMessages/zh-CN.js +10 -0
  26. package/account/i18n/baseMessages/zh-CN.js.map +1 -1
  27. package/bin/constants.d.ts +0 -1
  28. package/bin/constants.js +1 -2
  29. package/bin/constants.js.map +1 -1
  30. package/bin/keycloakify/buildJars/buildJar.d.ts +14 -0
  31. package/bin/keycloakify/buildJars/buildJar.js +224 -0
  32. package/bin/keycloakify/buildJars/buildJar.js.map +1 -0
  33. package/bin/keycloakify/buildJars/buildJars.d.ts +10 -0
  34. package/bin/keycloakify/buildJars/buildJars.js +95 -0
  35. package/bin/keycloakify/buildJars/buildJars.js.map +1 -0
  36. package/bin/keycloakify/buildJars/extensionVersions.d.ts +12 -0
  37. package/bin/keycloakify/buildJars/extensionVersions.js +7 -0
  38. package/bin/keycloakify/buildJars/extensionVersions.js.map +1 -0
  39. package/bin/keycloakify/buildJars/generatePom.d.ts +13 -0
  40. package/bin/keycloakify/buildJars/generatePom.js +95 -0
  41. package/bin/keycloakify/buildJars/generatePom.js.map +1 -0
  42. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.d.ts +6 -0
  43. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.js +35 -0
  44. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.js.map +1 -0
  45. package/bin/keycloakify/buildJars/index.d.ts +1 -0
  46. package/bin/keycloakify/buildJars/index.js +18 -0
  47. package/bin/keycloakify/buildJars/index.js.map +1 -0
  48. package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.d.ts +0 -8
  49. package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.js +1 -3
  50. package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.js.map +1 -1
  51. package/bin/keycloakify/buildOptions/buildOptions.d.ts +0 -2
  52. package/bin/keycloakify/buildOptions/buildOptions.js +3 -5
  53. package/bin/keycloakify/buildOptions/buildOptions.js.map +1 -1
  54. package/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +105 -234
  55. package/bin/keycloakify/generateFtl/generateFtl.js +17 -39
  56. package/bin/keycloakify/generateFtl/generateFtl.js.map +1 -1
  57. package/bin/keycloakify/generateFtl/pageId.d.ts +1 -1
  58. package/bin/keycloakify/generateFtl/pageId.js +11 -3
  59. package/bin/keycloakify/generateFtl/pageId.js.map +1 -1
  60. package/bin/keycloakify/generateStartKeycloakTestingContainer.d.ts +0 -1
  61. package/bin/keycloakify/generateStartKeycloakTestingContainer.js +3 -6
  62. package/bin/keycloakify/generateStartKeycloakTestingContainer.js.map +1 -1
  63. package/bin/keycloakify/generateTheme/bringInAccountV1.d.ts +1 -1
  64. package/bin/keycloakify/generateTheme/bringInAccountV1.js +5 -9
  65. package/bin/keycloakify/generateTheme/bringInAccountV1.js.map +1 -1
  66. package/bin/keycloakify/generateTheme/generateSrcMainResources.d.ts +21 -0
  67. package/bin/keycloakify/generateTheme/generateSrcMainResources.js +340 -0
  68. package/bin/keycloakify/generateTheme/generateSrcMainResources.js.map +1 -0
  69. package/bin/keycloakify/generateTheme/generateTheme.d.ts +5 -13
  70. package/bin/keycloakify/generateTheme/generateTheme.js +30 -293
  71. package/bin/keycloakify/generateTheme/generateTheme.js.map +1 -1
  72. package/bin/keycloakify/generateTheme/generateThemeVariants.d.ts +5 -0
  73. package/bin/keycloakify/generateTheme/generateThemeVariants.js +67 -0
  74. package/bin/keycloakify/generateTheme/generateThemeVariants.js.map +1 -0
  75. package/bin/keycloakify/generateTheme/readFieldNameUsage.js +53 -18
  76. package/bin/keycloakify/generateTheme/readFieldNameUsage.js.map +1 -1
  77. package/bin/keycloakify/keycloakify.js +28 -104
  78. package/bin/keycloakify/keycloakify.js.map +1 -1
  79. package/lib/useGetClassName.js +2 -2
  80. package/lib/useGetClassName.js.map +1 -1
  81. package/login/Fallback.d.ts +7 -1
  82. package/login/Fallback.js +32 -8
  83. package/login/Fallback.js.map +1 -1
  84. package/login/Template.js +76 -20
  85. package/login/Template.js.map +1 -1
  86. package/login/TemplateProps.d.ts +4 -2
  87. package/login/UserProfileFormFields.d.ts +22 -0
  88. package/login/UserProfileFormFields.js +327 -0
  89. package/login/UserProfileFormFields.js.map +1 -0
  90. package/login/i18n/baseMessages/ar.d.ts +3 -0
  91. package/login/i18n/baseMessages/ar.js +3 -0
  92. package/login/i18n/baseMessages/ar.js.map +1 -1
  93. package/login/i18n/baseMessages/ca.d.ts +1 -0
  94. package/login/i18n/baseMessages/ca.js +1 -0
  95. package/login/i18n/baseMessages/ca.js.map +1 -1
  96. package/login/i18n/baseMessages/cs.d.ts +3 -0
  97. package/login/i18n/baseMessages/cs.js +3 -0
  98. package/login/i18n/baseMessages/cs.js.map +1 -1
  99. package/login/i18n/baseMessages/da.d.ts +1 -0
  100. package/login/i18n/baseMessages/da.js +1 -0
  101. package/login/i18n/baseMessages/da.js.map +1 -1
  102. package/login/i18n/baseMessages/de.d.ts +1 -0
  103. package/login/i18n/baseMessages/de.js +1 -0
  104. package/login/i18n/baseMessages/de.js.map +1 -1
  105. package/login/i18n/baseMessages/el.d.ts +1 -0
  106. package/login/i18n/baseMessages/el.js +1 -0
  107. package/login/i18n/baseMessages/el.js.map +1 -1
  108. package/login/i18n/baseMessages/en.d.ts +7 -0
  109. package/login/i18n/baseMessages/en.js +23 -16
  110. package/login/i18n/baseMessages/en.js.map +1 -1
  111. package/login/i18n/baseMessages/es.d.ts +239 -0
  112. package/login/i18n/baseMessages/es.js +240 -1
  113. package/login/i18n/baseMessages/es.js.map +1 -1
  114. package/login/i18n/baseMessages/fa.d.ts +1 -0
  115. package/login/i18n/baseMessages/fa.js +1 -0
  116. package/login/i18n/baseMessages/fa.js.map +1 -1
  117. package/login/i18n/baseMessages/fi.d.ts +1 -0
  118. package/login/i18n/baseMessages/fi.js +1 -0
  119. package/login/i18n/baseMessages/fi.js.map +1 -1
  120. package/login/i18n/baseMessages/fr.d.ts +1 -0
  121. package/login/i18n/baseMessages/fr.js +2 -1
  122. package/login/i18n/baseMessages/fr.js.map +1 -1
  123. package/login/i18n/baseMessages/hu.d.ts +1 -0
  124. package/login/i18n/baseMessages/hu.js +1 -0
  125. package/login/i18n/baseMessages/hu.js.map +1 -1
  126. package/login/i18n/baseMessages/index.d.ts +211 -416
  127. package/login/i18n/baseMessages/index.js +1 -0
  128. package/login/i18n/baseMessages/index.js.map +1 -1
  129. package/login/i18n/baseMessages/it.d.ts +1 -0
  130. package/login/i18n/baseMessages/it.js +1 -0
  131. package/login/i18n/baseMessages/it.js.map +1 -1
  132. package/login/i18n/baseMessages/ja.d.ts +1 -0
  133. package/login/i18n/baseMessages/ja.js +1 -0
  134. package/login/i18n/baseMessages/ja.js.map +1 -1
  135. package/login/i18n/baseMessages/lt.d.ts +1 -0
  136. package/login/i18n/baseMessages/lt.js +1 -0
  137. package/login/i18n/baseMessages/lt.js.map +1 -1
  138. package/login/i18n/baseMessages/lv.d.ts +1 -0
  139. package/login/i18n/baseMessages/lv.js +1 -0
  140. package/login/i18n/baseMessages/lv.js.map +1 -1
  141. package/login/i18n/baseMessages/nl.d.ts +1 -0
  142. package/login/i18n/baseMessages/nl.js +1 -0
  143. package/login/i18n/baseMessages/nl.js.map +1 -1
  144. package/login/i18n/baseMessages/no.d.ts +1 -0
  145. package/login/i18n/baseMessages/no.js +1 -0
  146. package/login/i18n/baseMessages/no.js.map +1 -1
  147. package/login/i18n/baseMessages/pl.d.ts +1 -0
  148. package/login/i18n/baseMessages/pl.js +1 -0
  149. package/login/i18n/baseMessages/pl.js.map +1 -1
  150. package/login/i18n/baseMessages/pt-BR.d.ts +1 -0
  151. package/login/i18n/baseMessages/pt-BR.js +1 -0
  152. package/login/i18n/baseMessages/pt-BR.js.map +1 -1
  153. package/login/i18n/baseMessages/ru.d.ts +1 -0
  154. package/login/i18n/baseMessages/ru.js +1 -0
  155. package/login/i18n/baseMessages/ru.js.map +1 -1
  156. package/login/i18n/baseMessages/sk.d.ts +2 -0
  157. package/login/i18n/baseMessages/sk.js +3 -1
  158. package/login/i18n/baseMessages/sk.js.map +1 -1
  159. package/login/i18n/baseMessages/sv.d.ts +1 -0
  160. package/login/i18n/baseMessages/sv.js +1 -0
  161. package/login/i18n/baseMessages/sv.js.map +1 -1
  162. package/login/i18n/baseMessages/th.d.ts +1 -0
  163. package/login/i18n/baseMessages/th.js +1 -0
  164. package/login/i18n/baseMessages/th.js.map +1 -1
  165. package/login/i18n/baseMessages/tr.d.ts +1 -0
  166. package/login/i18n/baseMessages/tr.js +1 -0
  167. package/login/i18n/baseMessages/tr.js.map +1 -1
  168. package/login/i18n/baseMessages/uk.d.ts +433 -0
  169. package/login/i18n/baseMessages/uk.js +438 -0
  170. package/login/i18n/baseMessages/uk.js.map +1 -0
  171. package/login/i18n/baseMessages/zh-CN.d.ts +273 -3
  172. package/login/i18n/baseMessages/zh-CN.js +325 -55
  173. package/login/i18n/baseMessages/zh-CN.js.map +1 -1
  174. package/login/i18n/i18n.d.ts +4 -0
  175. package/login/i18n/i18n.js +6 -2
  176. package/login/i18n/i18n.js.map +1 -1
  177. package/login/kcContext/KcContext.d.ts +181 -105
  178. package/login/kcContext/KcContext.js +1 -1
  179. package/login/kcContext/KcContext.js.map +1 -1
  180. package/login/kcContext/createGetKcContext.js +3 -9
  181. package/login/kcContext/createGetKcContext.js.map +1 -1
  182. package/login/kcContext/kcContextMocks.d.ts +1 -1
  183. package/login/kcContext/kcContextMocks.js +92 -198
  184. package/login/kcContext/kcContextMocks.js.map +1 -1
  185. package/login/lib/useDownloadTerms.d.ts +4 -1
  186. package/login/lib/useDownloadTerms.js +9 -4
  187. package/login/lib/useDownloadTerms.js.map +1 -1
  188. package/login/lib/useGetClassName.js +112 -73
  189. package/login/lib/useGetClassName.js.map +1 -1
  190. package/login/lib/useUserProfileForm.d.ts +74 -0
  191. package/login/lib/useUserProfileForm.js +868 -0
  192. package/login/lib/useUserProfileForm.js.map +1 -0
  193. package/login/pages/{UpdateUserProfile.d.ts → Code.d.ts} +2 -2
  194. package/login/pages/Code.js +13 -0
  195. package/login/pages/Code.js.map +1 -0
  196. package/login/pages/DeleteAccountConfirm.d.ts +7 -0
  197. package/login/pages/DeleteAccountConfirm.js +14 -0
  198. package/login/pages/DeleteAccountConfirm.js.map +1 -0
  199. package/login/pages/{RegisterUserProfile.d.ts → DeleteCredential.d.ts} +2 -2
  200. package/login/pages/DeleteCredential.js +14 -0
  201. package/login/pages/DeleteCredential.js.map +1 -0
  202. package/login/pages/Error.js +2 -2
  203. package/login/pages/Error.js.map +1 -1
  204. package/login/pages/FrontchannelLogout.d.ts +7 -0
  205. package/login/pages/FrontchannelLogout.js +14 -0
  206. package/login/pages/FrontchannelLogout.js.map +1 -0
  207. package/login/pages/IdpReviewUserProfile.d.ts +8 -2
  208. package/login/pages/IdpReviewUserProfile.js +3 -4
  209. package/login/pages/IdpReviewUserProfile.js.map +1 -1
  210. package/login/pages/Info.js +14 -1
  211. package/login/pages/Info.js.map +1 -1
  212. package/login/pages/Login.js +24 -38
  213. package/login/pages/Login.js.map +1 -1
  214. package/login/pages/LoginConfigTotp.js +8 -1
  215. package/login/pages/LoginConfigTotp.js.map +1 -1
  216. package/login/pages/{LoginDeviceVerifyUserCode.d.ts → LoginOauth2DeviceVerifyUserCode.d.ts} +1 -1
  217. package/login/pages/{LoginDeviceVerifyUserCode.js → LoginOauth2DeviceVerifyUserCode.js} +2 -2
  218. package/login/pages/LoginOauth2DeviceVerifyUserCode.js.map +1 -0
  219. package/login/pages/LoginOauthGrant.js +3 -2
  220. package/login/pages/LoginOauthGrant.js.map +1 -1
  221. package/login/pages/LoginOtp.js +4 -6
  222. package/login/pages/LoginOtp.js.map +1 -1
  223. package/login/pages/LoginPageExpired.js +1 -1
  224. package/login/pages/LoginPageExpired.js.map +1 -1
  225. package/login/pages/LoginPassword.d.ts +1 -1
  226. package/login/pages/LoginPassword.js +18 -11
  227. package/login/pages/LoginPassword.js.map +1 -1
  228. package/login/pages/LoginRecoveryAuthnCodeConfig.d.ts +7 -0
  229. package/login/pages/LoginRecoveryAuthnCodeConfig.js +147 -0
  230. package/login/pages/LoginRecoveryAuthnCodeConfig.js.map +1 -0
  231. package/login/pages/LoginRecoveryAuthnCodeInput.d.ts +7 -0
  232. package/login/pages/LoginRecoveryAuthnCodeInput.js +14 -0
  233. package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -0
  234. package/login/pages/LoginResetOtp.d.ts +7 -0
  235. package/login/pages/LoginResetOtp.js +15 -0
  236. package/login/pages/LoginResetOtp.js.map +1 -0
  237. package/login/pages/LoginResetPassword.js +4 -3
  238. package/login/pages/LoginResetPassword.js.map +1 -1
  239. package/login/pages/LoginUpdatePassword.js +21 -3
  240. package/login/pages/LoginUpdatePassword.js.map +1 -1
  241. package/login/pages/LoginUpdateProfile.d.ts +8 -2
  242. package/login/pages/LoginUpdateProfile.js +11 -5
  243. package/login/pages/LoginUpdateProfile.js.map +1 -1
  244. package/login/pages/LoginUsername.js +11 -35
  245. package/login/pages/LoginUsername.js.map +1 -1
  246. package/login/pages/LoginVerifyEmail.js +1 -1
  247. package/login/pages/LoginVerifyEmail.js.map +1 -1
  248. package/login/pages/LoginX509Info.d.ts +7 -0
  249. package/login/pages/LoginX509Info.js +14 -0
  250. package/login/pages/LoginX509Info.js.map +1 -0
  251. package/login/pages/LogoutConfirm.js +1 -1
  252. package/login/pages/LogoutConfirm.js.map +1 -1
  253. package/login/pages/Register.d.ts +8 -2
  254. package/login/pages/Register.js +26 -4
  255. package/login/pages/Register.js.map +1 -1
  256. package/login/pages/SamlPostForm.js +1 -1
  257. package/login/pages/SamlPostForm.js.map +1 -1
  258. package/login/pages/SelectAuthenticator.js +5 -21
  259. package/login/pages/SelectAuthenticator.js.map +1 -1
  260. package/login/pages/Terms.js +4 -6
  261. package/login/pages/Terms.js.map +1 -1
  262. package/login/pages/UpdateEmail.d.ts +8 -2
  263. package/login/pages/UpdateEmail.js +16 -5
  264. package/login/pages/UpdateEmail.js.map +1 -1
  265. package/login/pages/WebauthnAuthenticate.js +121 -83
  266. package/login/pages/WebauthnAuthenticate.js.map +1 -1
  267. package/login/pages/WebauthnError.d.ts +7 -0
  268. package/login/pages/WebauthnError.js +21 -0
  269. package/login/pages/WebauthnError.js.map +1 -0
  270. package/login/pages/WebauthnRegister.d.ts +7 -0
  271. package/login/pages/WebauthnRegister.js +193 -0
  272. package/login/pages/WebauthnRegister.js.map +1 -0
  273. package/package.json +138 -43
  274. package/src/account/Template.tsx +41 -14
  275. package/src/account/i18n/baseMessages/de.ts +1 -1
  276. package/src/account/i18n/baseMessages/en.ts +2 -0
  277. package/src/account/i18n/baseMessages/es.ts +231 -1
  278. package/src/account/i18n/baseMessages/index.ts +1 -0
  279. package/src/account/i18n/baseMessages/pl.ts +115 -1
  280. package/src/account/i18n/baseMessages/tr.ts +1 -1
  281. package/src/account/i18n/baseMessages/uk.ts +343 -0
  282. package/src/account/i18n/baseMessages/zh-CN.ts +10 -0
  283. package/src/bin/constants.ts +0 -1
  284. package/src/bin/keycloakify/buildJars/buildJar.ts +174 -0
  285. package/src/bin/keycloakify/buildJars/buildJars.ts +62 -0
  286. package/src/bin/keycloakify/buildJars/extensionVersions.ts +16 -0
  287. package/src/bin/keycloakify/buildJars/generatePom.ts +86 -0
  288. package/src/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.ts +37 -0
  289. package/src/bin/keycloakify/buildJars/index.ts +1 -0
  290. package/src/bin/keycloakify/buildOptions/UserProvidedBuildOptions.ts +1 -5
  291. package/src/bin/keycloakify/buildOptions/buildOptions.ts +1 -5
  292. package/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +105 -234
  293. package/src/bin/keycloakify/generateFtl/generateFtl.ts +15 -31
  294. package/src/bin/keycloakify/generateFtl/pageId.ts +11 -3
  295. package/src/bin/keycloakify/generateStartKeycloakTestingContainer.ts +4 -8
  296. package/src/bin/keycloakify/generateTheme/bringInAccountV1.ts +5 -11
  297. package/src/bin/keycloakify/generateTheme/generateSrcMainResources.ts +267 -0
  298. package/src/bin/keycloakify/generateTheme/generateTheme.ts +22 -309
  299. package/src/bin/keycloakify/generateTheme/generateThemeVariants.ts +50 -0
  300. package/src/bin/keycloakify/generateTheme/readFieldNameUsage.ts +31 -8
  301. package/src/bin/keycloakify/keycloakify.ts +23 -56
  302. package/src/lib/useGetClassName.ts +2 -2
  303. package/src/login/Fallback.tsx +39 -9
  304. package/src/login/Template.tsx +160 -61
  305. package/src/login/TemplateProps.ts +113 -63
  306. package/src/login/UserProfileFormFields.tsx +750 -0
  307. package/src/login/i18n/baseMessages/ar.ts +3 -0
  308. package/src/login/i18n/baseMessages/ca.ts +1 -0
  309. package/src/login/i18n/baseMessages/cs.ts +3 -0
  310. package/src/login/i18n/baseMessages/da.ts +1 -0
  311. package/src/login/i18n/baseMessages/de.ts +1 -0
  312. package/src/login/i18n/baseMessages/el.ts +1 -0
  313. package/src/login/i18n/baseMessages/en.ts +23 -16
  314. package/src/login/i18n/baseMessages/es.ts +240 -1
  315. package/src/login/i18n/baseMessages/fa.ts +1 -0
  316. package/src/login/i18n/baseMessages/fi.ts +1 -0
  317. package/src/login/i18n/baseMessages/fr.ts +2 -1
  318. package/src/login/i18n/baseMessages/hu.ts +1 -0
  319. package/src/login/i18n/baseMessages/index.ts +1 -0
  320. package/src/login/i18n/baseMessages/it.ts +1 -0
  321. package/src/login/i18n/baseMessages/ja.ts +1 -0
  322. package/src/login/i18n/baseMessages/lt.ts +1 -0
  323. package/src/login/i18n/baseMessages/lv.ts +1 -0
  324. package/src/login/i18n/baseMessages/nl.ts +1 -0
  325. package/src/login/i18n/baseMessages/no.ts +1 -0
  326. package/src/login/i18n/baseMessages/pl.ts +1 -0
  327. package/src/login/i18n/baseMessages/pt-BR.ts +1 -0
  328. package/src/login/i18n/baseMessages/ru.ts +1 -0
  329. package/src/login/i18n/baseMessages/sk.ts +3 -1
  330. package/src/login/i18n/baseMessages/sv.ts +1 -0
  331. package/src/login/i18n/baseMessages/th.ts +1 -0
  332. package/src/login/i18n/baseMessages/tr.ts +1 -0
  333. package/src/login/i18n/baseMessages/uk.ts +439 -0
  334. package/src/login/i18n/baseMessages/zh-CN.ts +325 -55
  335. package/src/login/i18n/i18n.tsx +6 -2
  336. package/src/login/kcContext/KcContext.ts +216 -103
  337. package/src/login/kcContext/createGetKcContext.ts +11 -19
  338. package/src/login/kcContext/kcContextMocks.ts +165 -226
  339. package/src/login/lib/useDownloadTerms.ts +15 -7
  340. package/src/login/lib/useGetClassName.ts +112 -83
  341. package/src/login/lib/useUserProfileForm.tsx +1227 -0
  342. package/src/login/pages/Code.tsx +35 -0
  343. package/src/login/pages/DeleteAccountConfirm.tsx +53 -0
  344. package/src/login/pages/DeleteCredential.tsx +45 -0
  345. package/src/login/pages/Error.tsx +2 -2
  346. package/src/login/pages/FrontchannelLogout.tsx +41 -0
  347. package/src/login/pages/IdpReviewUserProfile.tsx +15 -5
  348. package/src/login/pages/Info.tsx +29 -19
  349. package/src/login/pages/Login.tsx +156 -117
  350. package/src/login/pages/LoginConfigTotp.tsx +26 -1
  351. package/src/login/pages/{LoginDeviceVerifyUserCode.tsx → LoginOauth2DeviceVerifyUserCode.tsx} +3 -1
  352. package/src/login/pages/LoginOauthGrant.tsx +38 -2
  353. package/src/login/pages/LoginOtp.tsx +73 -65
  354. package/src/login/pages/LoginPageExpired.tsx +1 -1
  355. package/src/login/pages/LoginPassword.tsx +77 -28
  356. package/src/login/pages/LoginRecoveryAuthnCodeConfig.tsx +260 -0
  357. package/src/login/pages/LoginRecoveryAuthnCodeInput.tsx +73 -0
  358. package/src/login/pages/LoginResetOtp.tsx +70 -0
  359. package/src/login/pages/LoginResetPassword.tsx +11 -4
  360. package/src/login/pages/LoginUpdatePassword.tsx +120 -81
  361. package/src/login/pages/LoginUpdateProfile.tsx +41 -115
  362. package/src/login/pages/LoginUsername.tsx +93 -101
  363. package/src/login/pages/LoginVerifyEmail.tsx +14 -8
  364. package/src/login/pages/LoginX509Info.tsx +94 -0
  365. package/src/login/pages/LogoutConfirm.tsx +2 -2
  366. package/src/login/pages/Register.tsx +83 -131
  367. package/src/login/pages/SamlPostForm.tsx +1 -1
  368. package/src/login/pages/SelectAuthenticator.tsx +29 -52
  369. package/src/login/pages/Terms.tsx +4 -7
  370. package/src/login/pages/UpdateEmail.tsx +69 -54
  371. package/src/login/pages/WebauthnAuthenticate.tsx +205 -165
  372. package/src/login/pages/WebauthnError.tsx +66 -0
  373. package/src/login/pages/WebauthnRegister.tsx +285 -0
  374. package/src/tools/formatNumber.ts +48 -0
  375. package/src/tools/useInsertLinkTags.ts +82 -0
  376. package/src/tools/useInsertScriptTags.ts +106 -0
  377. package/src/tools/useSetClassName.ts +21 -0
  378. package/tools/formatNumber.d.ts +1 -0
  379. package/tools/formatNumber.js +37 -0
  380. package/tools/formatNumber.js.map +1 -0
  381. package/tools/useInsertLinkTags.d.ts +7 -0
  382. package/tools/useInsertLinkTags.js +57 -0
  383. package/tools/useInsertLinkTags.js.map +1 -0
  384. package/tools/useInsertScriptTags.d.ts +20 -0
  385. package/tools/useInsertScriptTags.js +75 -0
  386. package/tools/useInsertScriptTags.js.map +1 -0
  387. package/tools/useSetClassName.d.ts +4 -0
  388. package/tools/useSetClassName.js +16 -0
  389. package/tools/useSetClassName.js.map +1 -0
  390. package/vite-plugin/tsconfig.tsbuildinfo +1 -1
  391. package/bin/keycloakify/generatePom.d.ts +0 -12
  392. package/bin/keycloakify/generatePom.js +0 -59
  393. package/bin/keycloakify/generatePom.js.map +0 -1
  394. package/lib/usePrepareTemplate.d.ts +0 -11
  395. package/lib/usePrepareTemplate.js +0 -80
  396. package/lib/usePrepareTemplate.js.map +0 -1
  397. package/login/lib/useFormValidation.d.ts +0 -47
  398. package/login/lib/useFormValidation.js +0 -316
  399. package/login/lib/useFormValidation.js.map +0 -1
  400. package/login/pages/LoginDeviceVerifyUserCode.js.map +0 -1
  401. package/login/pages/RegisterUserProfile.js +0 -18
  402. package/login/pages/RegisterUserProfile.js.map +0 -1
  403. package/login/pages/UpdateUserProfile.js +0 -17
  404. package/login/pages/UpdateUserProfile.js.map +0 -1
  405. package/login/pages/shared/UserProfileFormFields.d.ts +0 -18
  406. package/login/pages/shared/UserProfileFormFields.js +0 -58
  407. package/login/pages/shared/UserProfileFormFields.js.map +0 -1
  408. package/src/bin/keycloakify/generatePom.ts +0 -70
  409. package/src/lib/usePrepareTemplate.ts +0 -113
  410. package/src/login/lib/useFormValidation.tsx +0 -474
  411. package/src/login/pages/RegisterUserProfile.tsx +0 -72
  412. package/src/login/pages/UpdateUserProfile.tsx +0 -82
  413. package/src/login/pages/shared/UserProfileFormFields.tsx +0 -177
  414. package/src/tools/headInsert.ts +0 -73
  415. package/tools/headInsert.d.ts +0 -12
  416. package/tools/headInsert.js +0 -50
  417. package/tools/headInsert.js.map +0 -1
@@ -7,7 +7,6 @@ export type BuildOptions = {
7
7
  extraThemeProperties: string[] | undefined;
8
8
  groupId: string;
9
9
  artifactId: string;
10
- doCreateJar: boolean;
11
10
  loginThemeResourcesFromKeycloakVersion: string;
12
11
  reactAppRootDirPath: string;
13
12
  reactAppBuildDirPath: string;
@@ -19,7 +18,6 @@ export type BuildOptions = {
19
18
  * In this case the urlPathname will be "/my-app/" */
20
19
  urlPathname: string | undefined;
21
20
  assetsDirPath: string;
22
- doBuildRetrocompatAccountTheme: boolean;
23
21
  npmWorkspaceRootDirPath: string;
24
22
  };
25
23
  export declare function readBuildOptions(params: {
@@ -60,7 +60,7 @@ var getCacheDirPath_1 = require("./getCacheDirPath");
60
60
  var getReactAppRootDirPath_1 = require("./getReactAppRootDirPath");
61
61
  var getNpmWorkspaceRootDirPath_1 = require("./getNpmWorkspaceRootDirPath");
62
62
  function readBuildOptions(params) {
63
- var _a, _b, _c, _d, _e, _f, _g;
63
+ var _a, _b, _c, _d, _e;
64
64
  var processArgv = params.processArgv;
65
65
  var reactAppRootDirPath = (0, getReactAppRootDirPath_1.getReactAppRootDirPath)({ processArgv: processArgv }).reactAppRootDirPath;
66
66
  var cacheDirPath = (0, getCacheDirPath_1.getCacheDirPath)({ reactAppRootDirPath: reactAppRootDirPath }).cacheDirPath;
@@ -68,7 +68,7 @@ function readBuildOptions(params) {
68
68
  if (resolvedViteConfig === undefined && fs.existsSync((0, path_1.join)(reactAppRootDirPath, "vite.config.ts"))) {
69
69
  throw new Error("Keycloakify's Vite plugin output not found");
70
70
  }
71
- var _h = (0, parsedPackageJson_1.readParsedPackageJson)({ reactAppRootDirPath: reactAppRootDirPath }), userProvidedBuildOptionsFromPackageJson = _h.keycloakify, parsedPackageJson = __rest(_h, ["keycloakify"]);
71
+ var _f = (0, parsedPackageJson_1.readParsedPackageJson)({ reactAppRootDirPath: reactAppRootDirPath }), userProvidedBuildOptionsFromPackageJson = _f.keycloakify, parsedPackageJson = __rest(_f, ["keycloakify"]);
72
72
  var userProvidedBuildOptions = __assign(__assign({}, userProvidedBuildOptionsFromPackageJson), resolvedViteConfig === null || resolvedViteConfig === void 0 ? void 0 : resolvedViteConfig.userProvidedBuildOptions);
73
73
  var themeNames = (function () {
74
74
  if (userProvidedBuildOptions.themeName === undefined) {
@@ -116,8 +116,7 @@ function readBuildOptions(params) {
116
116
  .host) === null || _c === void 0 ? void 0 : _c.replace(/:[0-9]+$/, "")) === null || _d === void 0 ? void 0 : _d.split(".").reverse().join(".")) !== null && _e !== void 0 ? _e : fallbackGroupId) + ".keycloak");
117
117
  })(),
118
118
  "artifactId": (_d = (_c = process.env.KEYCLOAKIFY_ARTIFACT_ID) !== null && _c !== void 0 ? _c : userProvidedBuildOptions.artifactId) !== null && _d !== void 0 ? _d : "".concat(themeNames[0], "-keycloak-theme"),
119
- "doCreateJar": (_e = userProvidedBuildOptions.doCreateJar) !== null && _e !== void 0 ? _e : true,
120
- "loginThemeResourcesFromKeycloakVersion": (_f = userProvidedBuildOptions.loginThemeResourcesFromKeycloakVersion) !== null && _f !== void 0 ? _f : "11.0.3",
119
+ "loginThemeResourcesFromKeycloakVersion": (_e = userProvidedBuildOptions.loginThemeResourcesFromKeycloakVersion) !== null && _e !== void 0 ? _e : "24.0.4",
121
120
  reactAppRootDirPath: reactAppRootDirPath,
122
121
  reactAppBuildDirPath: reactAppBuildDirPath,
123
122
  "keycloakifyBuildDirPath": (function () {
@@ -172,7 +171,6 @@ function readBuildOptions(params) {
172
171
  }
173
172
  return (0, path_1.join)(reactAppBuildDirPath, resolvedViteConfig.assetsDir);
174
173
  })(),
175
- "doBuildRetrocompatAccountTheme": (_g = userProvidedBuildOptions.doBuildRetrocompatAccountTheme) !== null && _g !== void 0 ? _g : true,
176
174
  npmWorkspaceRootDirPath: npmWorkspaceRootDirPath
177
175
  };
178
176
  }
@@ -1 +1 @@
1
- {"version":3,"file":"buildOptions.js","sourceRoot":"","sources":["../../../src/bin/keycloakify/buildOptions/buildOptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildOptions.js","sourceRoot":"","sources":["../../../src/bin/keycloakify/buildOptions/buildOptions.ts"],"names":[],"mappings":"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"}
@@ -30,30 +30,19 @@
30
30
  <#list fieldNames as fieldName>
31
31
  if(fieldName === "${fieldName}" ){
32
32
 
33
- <#-- https://github.com/keycloakify/keycloakify/pull/359 Compat with Keycloak prior v12 -->
34
- <#if !messagesPerField.existsError??>
33
+ <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
34
+ <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
35
35
 
36
- <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
37
- <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
38
-
39
- <#assign doExistMessageForUsernameOrPassword = "">
36
+ <#assign doExistErrorOnUsernameOrPassword = "">
40
37
 
41
- <#attempt>
42
- <#assign doExistMessageForUsernameOrPassword = messagesPerField.exists('username')>
43
- <#recover>
44
- <#assign doExistMessageForUsernameOrPassword = true>
45
- </#attempt>
46
-
47
- <#if !doExistMessageForUsernameOrPassword>
48
- <#attempt>
49
- <#assign doExistMessageForUsernameOrPassword = messagesPerField.exists('password')>
50
- <#recover>
51
- <#assign doExistMessageForUsernameOrPassword = true>
52
- </#attempt>
53
- </#if>
54
-
55
- return <#if doExistMessageForUsernameOrPassword>text<#else>undefined</#if>;
38
+ <#attempt>
39
+ <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
40
+ <#recover>
41
+ <#assign doExistErrorOnUsernameOrPassword = true>
42
+ </#attempt>
56
43
 
44
+ <#if doExistErrorOnUsernameOrPassword>
45
+ return text;
57
46
  <#else>
58
47
 
59
48
  <#assign doExistMessageForField = "">
@@ -70,49 +59,19 @@
70
59
 
71
60
  <#else>
72
61
 
73
- <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
74
- <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
75
-
76
- <#assign doExistErrorOnUsernameOrPassword = "">
77
-
78
- <#attempt>
79
- <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
80
- <#recover>
81
- <#assign doExistErrorOnUsernameOrPassword = true>
82
- </#attempt>
83
-
84
- <#if doExistErrorOnUsernameOrPassword>
85
- return text;
86
- <#else>
87
-
88
- <#assign doExistMessageForField = "">
89
-
90
- <#attempt>
91
- <#assign doExistMessageForField = messagesPerField.exists('${fieldName}')>
92
- <#recover>
93
- <#assign doExistMessageForField = true>
94
- </#attempt>
62
+ <#assign doExistMessageForField = "">
95
63
 
96
- return <#if doExistMessageForField>text<#else>undefined</#if>;
64
+ <#attempt>
65
+ <#assign doExistMessageForField = messagesPerField.exists('${fieldName}')>
66
+ <#recover>
67
+ <#assign doExistMessageForField = true>
68
+ </#attempt>
97
69
 
98
- </#if>
99
-
100
- <#else>
101
-
102
- <#assign doExistMessageForField = "">
103
-
104
- <#attempt>
105
- <#assign doExistMessageForField = messagesPerField.exists('${fieldName}')>
106
- <#recover>
107
- <#assign doExistMessageForField = true>
108
- </#attempt>
109
-
110
- return <#if doExistMessageForField>text<#else>undefined</#if>;
111
-
112
- </#if>
70
+ return <#if doExistMessageForField>text<#else>undefined</#if>;
113
71
 
114
72
  </#if>
115
73
 
74
+
116
75
  }
117
76
  </#list>
118
77
 
@@ -120,53 +79,15 @@
120
79
  </#if>
121
80
 
122
81
  },
123
- "existsError": function (fieldName) {
82
+ "existsError": function (){
124
83
 
125
- <#if !messagesPerField?? || !(messagesPerField?is_hash)>
126
- throw new Error("You're not supposed to use messagesPerField.printIfExists in this page");
127
- <#else>
128
- <#list fieldNames as fieldName>
129
- if(fieldName === "${fieldName}" ){
84
+ function existsError_singleFieldName(fieldName) {
130
85
 
131
- <#-- https://github.com/keycloakify/keycloakify/pull/359 Compat with Keycloak prior v12 -->
132
- <#if !messagesPerField.existsError??>
133
-
134
- <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
135
- <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
136
-
137
- <#assign doExistMessageForUsernameOrPassword = "">
138
-
139
- <#attempt>
140
- <#assign doExistMessageForUsernameOrPassword = messagesPerField.exists('username')>
141
- <#recover>
142
- <#assign doExistMessageForUsernameOrPassword = true>
143
- </#attempt>
144
-
145
- <#if !doExistMessageForUsernameOrPassword>
146
- <#attempt>
147
- <#assign doExistMessageForUsernameOrPassword = messagesPerField.exists('password')>
148
- <#recover>
149
- <#assign doExistMessageForUsernameOrPassword = true>
150
- </#attempt>
151
- </#if>
152
-
153
- return <#if doExistMessageForUsernameOrPassword>true<#else>false</#if>;
154
-
155
- <#else>
156
-
157
- <#assign doExistMessageForField = "">
158
-
159
- <#attempt>
160
- <#assign doExistMessageForField = messagesPerField.exists('${fieldName}')>
161
- <#recover>
162
- <#assign doExistMessageForField = true>
163
- </#attempt>
164
-
165
- return <#if doExistMessageForField>true<#else>false</#if>;
166
-
167
- </#if>
168
-
169
- <#else>
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}" ){
170
91
 
171
92
  <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
172
93
  <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
@@ -195,14 +116,24 @@
195
116
 
196
117
  </#if>
197
118
 
198
- </#if>
119
+ }
120
+ </#list>
199
121
 
200
- }
201
- </#list>
122
+ throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
202
123
 
203
- throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
124
+ </#if>
204
125
 
205
- </#if>
126
+ }
127
+
128
+ for( let i = 0; i < arguments.length; i++ ){
129
+
130
+ if( existsError_singleFieldName(arguments[i]) ){
131
+ return true;
132
+ }
133
+
134
+ }
135
+
136
+ return false;
206
137
 
207
138
  },
208
139
  "get": function (fieldName) {
@@ -214,88 +145,42 @@
214
145
  <#list fieldNames as fieldName>
215
146
  if(fieldName === "${fieldName}" ){
216
147
 
217
- <#-- https://github.com/keycloakify/keycloakify/pull/359 Compat with Keycloak prior v12 -->
218
- <#if !messagesPerField.existsError??>
148
+ <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
149
+ <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
219
150
 
220
- <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
221
- <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
151
+ <#assign doExistErrorOnUsernameOrPassword = "">
222
152
 
223
- <#assign doExistMessageForUsernameOrPassword = "">
153
+ <#attempt>
154
+ <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
155
+ <#recover>
156
+ <#assign doExistErrorOnUsernameOrPassword = true>
157
+ </#attempt>
158
+
159
+ <#if doExistErrorOnUsernameOrPassword>
224
160
 
225
161
  <#attempt>
226
- <#assign doExistMessageForUsernameOrPassword = messagesPerField.exists('username')>
162
+ return "${kcSanitize(msg('invalidUserMessage'))?no_esc}";
227
163
  <#recover>
228
- <#assign doExistMessageForUsernameOrPassword = true>
164
+ return "Invalid username or password.";
229
165
  </#attempt>
230
166
 
231
- <#if !doExistMessageForUsernameOrPassword>
232
- <#attempt>
233
- <#assign doExistMessageForUsernameOrPassword = messagesPerField.exists('password')>
234
- <#recover>
235
- <#assign doExistMessageForUsernameOrPassword = true>
236
- </#attempt>
237
- </#if>
238
-
239
- <#if !doExistMessageForUsernameOrPassword>
240
- return "";
241
- <#else>
242
- <#attempt>
243
- return "${kcSanitize(msg('invalidUserMessage'))?no_esc}";
244
- <#recover>
245
- return "Invalid username or password.";
246
- </#attempt>
247
- </#if>
248
-
249
167
  <#else>
250
168
 
251
169
  <#attempt>
252
170
  return "${messagesPerField.get('${fieldName}')?no_esc}";
253
171
  <#recover>
254
- return "invalid field";
172
+ return "";
255
173
  </#attempt>
256
174
 
257
175
  </#if>
258
176
 
259
177
  <#else>
260
178
 
261
- <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
262
- <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
263
-
264
- <#assign doExistErrorOnUsernameOrPassword = "">
265
-
266
- <#attempt>
267
- <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
268
- <#recover>
269
- <#assign doExistErrorOnUsernameOrPassword = true>
270
- </#attempt>
271
-
272
- <#if doExistErrorOnUsernameOrPassword>
273
-
274
- <#attempt>
275
- return "${kcSanitize(msg('invalidUserMessage'))?no_esc}";
276
- <#recover>
277
- return "Invalid username or password.";
278
- </#attempt>
279
-
280
- <#else>
281
-
282
- <#attempt>
283
- return "${messagesPerField.get('${fieldName}')?no_esc}";
284
- <#recover>
285
- return "";
286
- </#attempt>
287
-
288
- </#if>
289
-
290
- <#else>
291
-
292
- <#attempt>
293
- return "${messagesPerField.get('${fieldName}')?no_esc}";
294
- <#recover>
295
- return "invalid field";
296
- </#attempt>
297
-
298
- </#if>
179
+ <#attempt>
180
+ return "${messagesPerField.get('${fieldName}')?no_esc}";
181
+ <#recover>
182
+ return "invalid field";
183
+ </#attempt>
299
184
 
300
185
  </#if>
301
186
 
@@ -315,72 +200,30 @@
315
200
  <#list fieldNames as fieldName>
316
201
  if(fieldName === "${fieldName}" ){
317
202
 
318
- <#-- https://github.com/keycloakify/keycloakify/pull/359 Compat with Keycloak prior v12 -->
319
- <#if !messagesPerField.existsError??>
320
-
321
- <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
322
- <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
323
-
324
- <#assign doExistMessageForUsernameOrPassword = "">
325
-
326
- <#attempt>
327
- <#assign doExistMessageForUsernameOrPassword = messagesPerField.exists('username')>
328
- <#recover>
329
- <#assign doExistMessageForUsernameOrPassword = true>
330
- </#attempt>
331
-
332
- <#if !doExistMessageForUsernameOrPassword>
333
- <#attempt>
334
- <#assign doExistMessageForUsernameOrPassword = messagesPerField.exists('password')>
335
- <#recover>
336
- <#assign doExistMessageForUsernameOrPassword = true>
337
- </#attempt>
338
- </#if>
339
-
340
- return <#if doExistMessageForUsernameOrPassword>true<#else>false</#if>;
341
-
342
- <#else>
343
-
344
- <#assign doExistMessageForField = "">
203
+ <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
204
+ <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
345
205
 
346
- <#attempt>
347
- <#assign doExistMessageForField = messagesPerField.exists('${fieldName}')>
348
- <#recover>
349
- <#assign doExistMessageForField = true>
350
- </#attempt>
206
+ <#assign doExistErrorOnUsernameOrPassword = "">
351
207
 
352
- return <#if doExistMessageForField>true<#else>false</#if>;
208
+ <#attempt>
209
+ <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
210
+ <#recover>
211
+ <#assign doExistErrorOnUsernameOrPassword = true>
212
+ </#attempt>
353
213
 
354
- </#if>
214
+ return <#if doExistErrorOnUsernameOrPassword>true<#else>false</#if>;
355
215
 
356
216
  <#else>
357
217
 
358
- <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
359
- <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
218
+ <#assign doExistErrorMessageForField = "">
360
219
 
361
- <#assign doExistErrorOnUsernameOrPassword = "">
220
+ <#attempt>
221
+ <#assign doExistErrorMessageForField = messagesPerField.exists('${fieldName}')>
222
+ <#recover>
223
+ <#assign doExistErrorMessageForField = true>
224
+ </#attempt>
362
225
 
363
- <#attempt>
364
- <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
365
- <#recover>
366
- <#assign doExistErrorOnUsernameOrPassword = true>
367
- </#attempt>
368
-
369
- return <#if doExistErrorOnUsernameOrPassword>true<#else>false</#if>;
370
-
371
- <#else>
372
-
373
- <#assign doExistErrorMessageForField = "">
374
-
375
- <#attempt>
376
- <#assign doExistErrorMessageForField = messagesPerField.exists('${fieldName}')>
377
- <#recover>
378
- <#assign doExistErrorMessageForField = true>
379
- </#attempt>
380
-
381
- return <#if doExistErrorMessageForField>true<#else>false</#if>;
382
-
383
- </#if>
226
+ return <#if doExistErrorMessageForField>true<#else>false</#if>;
384
227
 
385
228
  </#if>
386
229
 
@@ -390,6 +233,19 @@
390
233
  throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
391
234
  </#if>
392
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);
245
+ }
246
+
247
+ }
248
+
393
249
  }
394
250
  };
395
251
 
@@ -505,6 +361,10 @@
505
361
  <#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
506
362
  are_same_path(path, ["login"]) &&
507
363
  key == "password"
364
+ ) || (
365
+ <#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
366
+ are_same_path(path, []) &&
367
+ key == "realmAttributes"
508
368
  )
509
369
  >
510
370
  <#local out_seq += ["/*If you need '" + path?join(".") + "." + key + "' on " + pageId + ", please submit an issue to the Keycloakify repo*/"]>
@@ -513,7 +373,7 @@
513
373
 
514
374
  <#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
515
375
  <#if (
516
- ["register.ftl", "info.ftl", "login.ftl", "login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(pageId) &&
376
+ ["register.ftl", "register-user-profile.ftl", "info.ftl", "login.ftl", "login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(pageId) &&
517
377
  key == "attemptedUsername" && are_same_path(path, ["auth"])
518
378
  )>
519
379
  <#attempt>
@@ -523,7 +383,7 @@
523
383
  <#continue>
524
384
  </#if>
525
385
  <#recover>
526
- <#local out_seq += ["/*Testing if attemptedUsername should be skipped throwed an exception */"]>
386
+ <#local out_seq += ["/*Accessing attemptedUsername throwed an exception */"]>
527
387
  </#attempt>
528
388
  </#if>
529
389
 
@@ -668,12 +528,23 @@
668
528
  <#return '"' + object?datetime?iso_utc + '"'>
669
529
  </#if>
670
530
 
531
+ <#local isNumber = "">
532
+ <#attempt>
533
+ <#local isNumber = object?is_number>
534
+ <#recover>
535
+ <#return "ABORT: Can't test if it's a number">
536
+ </#attempt>
537
+
538
+ <#if isNumber>
539
+ <#return object?c>
540
+ </#if>
541
+
671
542
  <#attempt>
672
543
  <#return '"' + object?js_string + '"'>;
673
544
  <#recover>
674
545
  </#attempt>
675
546
 
676
- <#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non enumerable object">
547
+ <#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
677
548
 
678
549
  </#function>
679
550
  <#function is_subpath path searchedPath>
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
3
  if (k2 === undefined) k2 = k;
15
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -60,7 +49,6 @@ var replaceImportsInCssCode_1 = require("../replacers/replaceImportsInCssCode");
60
49
  var replaceImportsInInlineCssCode_1 = require("../replacers/replaceImportsInInlineCssCode");
61
50
  var fs = __importStar(require("fs"));
62
51
  var path_1 = require("path");
63
- var objectKeys_1 = require("tsafe/objectKeys");
64
52
  var assert_1 = require("tsafe/assert");
65
53
  var constants_1 = require("../../constants");
66
54
  (0, assert_1.assert)();
@@ -126,32 +114,18 @@ function generateFtlFilesCodeFactory(params) {
126
114
  }
127
115
  }
128
116
  //FTL is no valid html, we can't insert with cheerio, we put placeholder for injecting later.
129
- var replaceValueBySearchValue = {
130
- '{ "x": "vIdLqMeOed9sdLdIdOxdK0d" }': fs
131
- .readFileSync((0, path_1.join)(__dirname, "ftl_object_to_js_code_declaring_an_object.ftl"))
132
- .toString("utf8")
133
- .match(/^<script>const _=((?:.|\n)+)<\/script>[\n]?$/)[1]
134
- .replace("FIELD_NAMES_eKsIY4ZsZ4xeM", fieldNames.map(function (name) { return "\"".concat(name, "\""); }).join(", "))
135
- .replace("KEYCLOAKIFY_VERSION_xEdKd3xEdr", keycloakifyVersion)
136
- .replace("KEYCLOAKIFY_THEME_VERSION_sIgKd3xEdr3dx", buildOptions.themeVersion)
137
- .replace("KEYCLOAKIFY_THEME_TYPE_dExKd3xEdr", themeType)
138
- .replace("KEYCLOAKIFY_THEME_NAME_cXxKd3xEer", themeName)
139
- .replace("RESOURCES_COMMON_cLsLsMrtDkpVv", constants_1.resources_common),
140
- "<!-- xIdLqMeOedErIdLsPdNdI9dSlxI -->": [
141
- "<#if scripts??>",
142
- " <#list scripts as script>",
143
- ' <script src="${script}" type="text/javascript"></script>',
144
- " </#list>",
145
- "</#if>"
146
- ].join("\n")
147
- };
148
- $("head").prepend([
149
- "<script>",
150
- " window.".concat(constants_1.nameOfTheGlobal, "= ").concat((0, objectKeys_1.objectKeys)(replaceValueBySearchValue)[0], ";"),
151
- "</script>",
152
- "",
153
- (0, objectKeys_1.objectKeys)(replaceValueBySearchValue)[1]
154
- ].join("\n"));
117
+ var ftlObjectToJsCodeDeclaringAnObject = fs
118
+ .readFileSync((0, path_1.join)(__dirname, "ftl_object_to_js_code_declaring_an_object.ftl"))
119
+ .toString("utf8")
120
+ .match(/^<script>const _=((?:.|\n)+)<\/script>[\n]?$/)[1]
121
+ .replace("FIELD_NAMES_eKsIY4ZsZ4xeM", fieldNames.map(function (name) { return "\"".concat(name, "\""); }).join(", "))
122
+ .replace("KEYCLOAKIFY_VERSION_xEdKd3xEdr", keycloakifyVersion)
123
+ .replace("KEYCLOAKIFY_THEME_VERSION_sIgKd3xEdr3dx", buildOptions.themeVersion)
124
+ .replace("KEYCLOAKIFY_THEME_TYPE_dExKd3xEdr", themeType)
125
+ .replace("KEYCLOAKIFY_THEME_NAME_cXxKd3xEer", themeName)
126
+ .replace("RESOURCES_COMMON_cLsLsMrtDkpVv", constants_1.resources_common);
127
+ var ftlObjectToJsCodeDeclaringAnObjectPlaceholder = '{ "x": "vIdLqMeOed9sdLdIdOxdK0d" }';
128
+ $("head").prepend(["<script>", " window.".concat(constants_1.nameOfTheGlobal, "= ").concat(ftlObjectToJsCodeDeclaringAnObjectPlaceholder, ";"), "</script>"].join("\n"));
155
129
  // Remove part of the document marked as ignored.
156
130
  {
157
131
  var startTags = $('meta[name="keycloakify-ignore-start"]');
@@ -176,10 +150,14 @@ function generateFtlFilesCodeFactory(params) {
176
150
  }
177
151
  var partiallyFixedIndexHtmlCode = $.html();
178
152
  function generateFtlFilesCode(params) {
153
+ var _a;
179
154
  var pageId = params.pageId;
180
155
  var $ = cheerio_1.default.load(partiallyFixedIndexHtmlCode);
181
156
  var ftlCode = $.html();
182
- Object.entries(__assign(__assign({}, replaceValueBySearchValue), { "PAGE_ID_xIgLsPgGId9D8e": pageId })).map(function (_a) {
157
+ Object.entries((_a = {},
158
+ _a[ftlObjectToJsCodeDeclaringAnObjectPlaceholder] = ftlObjectToJsCodeDeclaringAnObject,
159
+ _a["PAGE_ID_xIgLsPgGId9D8e"] = pageId,
160
+ _a)).map(function (_a) {
183
161
  var _b = __read(_a, 2), searchValue = _b[0], replaceValue = _b[1];
184
162
  return (ftlCode = ftlCode.replace(searchValue, replaceValue));
185
163
  });