keycloakify 9.6.6 → 10.0.0-rc.0

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 (424) hide show
  1. package/README.md +1 -1
  2. package/account/Template.js +34 -14
  3. package/account/Template.js.map +1 -1
  4. package/account/i18n/baseMessages/de.d.ts +1 -1
  5. package/account/i18n/baseMessages/de.js +1 -1
  6. package/account/i18n/baseMessages/de.js.map +1 -1
  7. package/account/i18n/baseMessages/en.d.ts +2 -0
  8. package/account/i18n/baseMessages/en.js +2 -0
  9. package/account/i18n/baseMessages/en.js.map +1 -1
  10. package/account/i18n/baseMessages/es.d.ts +230 -0
  11. package/account/i18n/baseMessages/es.js +231 -1
  12. package/account/i18n/baseMessages/es.js.map +1 -1
  13. package/account/i18n/baseMessages/index.d.ts +353 -407
  14. package/account/i18n/baseMessages/index.js +1 -0
  15. package/account/i18n/baseMessages/index.js.map +1 -1
  16. package/account/i18n/baseMessages/pl.d.ts +115 -1
  17. package/account/i18n/baseMessages/pl.js +115 -1
  18. package/account/i18n/baseMessages/pl.js.map +1 -1
  19. package/account/i18n/baseMessages/tr.d.ts +1 -1
  20. package/account/i18n/baseMessages/tr.js +1 -1
  21. package/account/i18n/baseMessages/tr.js.map +1 -1
  22. package/account/i18n/baseMessages/uk.d.ts +337 -0
  23. package/account/i18n/baseMessages/uk.js +342 -0
  24. package/account/i18n/baseMessages/uk.js.map +1 -0
  25. package/account/i18n/baseMessages/zh-CN.d.ts +10 -0
  26. package/account/i18n/baseMessages/zh-CN.js +10 -0
  27. package/account/i18n/baseMessages/zh-CN.js.map +1 -1
  28. package/bin/constants.d.ts +0 -1
  29. package/bin/constants.js +1 -2
  30. package/bin/constants.js.map +1 -1
  31. package/bin/download-builtin-keycloak-theme.js +12 -2
  32. package/bin/download-builtin-keycloak-theme.js.map +1 -1
  33. package/bin/keycloakify/buildJars/buildJar.d.ts +14 -0
  34. package/bin/keycloakify/buildJars/buildJar.js +216 -0
  35. package/bin/keycloakify/buildJars/buildJar.js.map +1 -0
  36. package/bin/keycloakify/buildJars/buildJars.d.ts +10 -0
  37. package/bin/keycloakify/buildJars/buildJars.js +95 -0
  38. package/bin/keycloakify/buildJars/buildJars.js.map +1 -0
  39. package/bin/keycloakify/buildJars/extensionVersions.d.ts +12 -0
  40. package/bin/keycloakify/buildJars/extensionVersions.js +7 -0
  41. package/bin/keycloakify/buildJars/extensionVersions.js.map +1 -0
  42. package/bin/keycloakify/buildJars/generatePom.d.ts +13 -0
  43. package/bin/keycloakify/buildJars/generatePom.js +94 -0
  44. package/bin/keycloakify/buildJars/generatePom.js.map +1 -0
  45. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.d.ts +6 -0
  46. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.js +35 -0
  47. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.js.map +1 -0
  48. package/bin/keycloakify/buildJars/index.d.ts +1 -0
  49. package/bin/keycloakify/buildJars/index.js +18 -0
  50. package/bin/keycloakify/buildJars/index.js.map +1 -0
  51. package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.d.ts +0 -8
  52. package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.js +1 -3
  53. package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.js.map +1 -1
  54. package/bin/keycloakify/buildOptions/buildOptions.d.ts +0 -2
  55. package/bin/keycloakify/buildOptions/buildOptions.js +3 -5
  56. package/bin/keycloakify/buildOptions/buildOptions.js.map +1 -1
  57. package/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.js +1 -1
  58. package/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.js.map +1 -1
  59. package/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +103 -232
  60. package/bin/keycloakify/generateFtl/generateFtl.js +17 -39
  61. package/bin/keycloakify/generateFtl/generateFtl.js.map +1 -1
  62. package/bin/keycloakify/generateFtl/pageId.d.ts +1 -1
  63. package/bin/keycloakify/generateFtl/pageId.js +11 -3
  64. package/bin/keycloakify/generateFtl/pageId.js.map +1 -1
  65. package/bin/keycloakify/generateStartKeycloakTestingContainer.d.ts +0 -1
  66. package/bin/keycloakify/generateStartKeycloakTestingContainer.js +3 -6
  67. package/bin/keycloakify/generateStartKeycloakTestingContainer.js.map +1 -1
  68. package/bin/keycloakify/generateTheme/bringInAccountV1.d.ts +1 -1
  69. package/bin/keycloakify/generateTheme/bringInAccountV1.js +5 -9
  70. package/bin/keycloakify/generateTheme/bringInAccountV1.js.map +1 -1
  71. package/bin/keycloakify/generateTheme/generateSrcMainResources.d.ts +21 -0
  72. package/bin/keycloakify/generateTheme/generateSrcMainResources.js +340 -0
  73. package/bin/keycloakify/generateTheme/generateSrcMainResources.js.map +1 -0
  74. package/bin/keycloakify/generateTheme/generateTheme.d.ts +5 -13
  75. package/bin/keycloakify/generateTheme/generateTheme.js +30 -293
  76. package/bin/keycloakify/generateTheme/generateTheme.js.map +1 -1
  77. package/bin/keycloakify/generateTheme/generateThemeVariants.d.ts +5 -0
  78. package/bin/keycloakify/generateTheme/generateThemeVariants.js +67 -0
  79. package/bin/keycloakify/generateTheme/generateThemeVariants.js.map +1 -0
  80. package/bin/keycloakify/generateTheme/readFieldNameUsage.js +54 -18
  81. package/bin/keycloakify/generateTheme/readFieldNameUsage.js.map +1 -1
  82. package/bin/keycloakify/keycloakify.js +28 -104
  83. package/bin/keycloakify/keycloakify.js.map +1 -1
  84. package/lib/useGetClassName.js +2 -2
  85. package/lib/useGetClassName.js.map +1 -1
  86. package/login/Fallback.d.ts +7 -1
  87. package/login/Fallback.js +32 -8
  88. package/login/Fallback.js.map +1 -1
  89. package/login/Template.js +76 -20
  90. package/login/Template.js.map +1 -1
  91. package/login/TemplateProps.d.ts +4 -2
  92. package/login/UserProfileFormFields.d.ts +22 -0
  93. package/login/UserProfileFormFields.js +327 -0
  94. package/login/UserProfileFormFields.js.map +1 -0
  95. package/login/i18n/baseMessages/ar.d.ts +3 -0
  96. package/login/i18n/baseMessages/ar.js +3 -0
  97. package/login/i18n/baseMessages/ar.js.map +1 -1
  98. package/login/i18n/baseMessages/ca.d.ts +1 -0
  99. package/login/i18n/baseMessages/ca.js +1 -0
  100. package/login/i18n/baseMessages/ca.js.map +1 -1
  101. package/login/i18n/baseMessages/cs.d.ts +3 -0
  102. package/login/i18n/baseMessages/cs.js +3 -0
  103. package/login/i18n/baseMessages/cs.js.map +1 -1
  104. package/login/i18n/baseMessages/da.d.ts +1 -0
  105. package/login/i18n/baseMessages/da.js +1 -0
  106. package/login/i18n/baseMessages/da.js.map +1 -1
  107. package/login/i18n/baseMessages/de.d.ts +1 -0
  108. package/login/i18n/baseMessages/de.js +1 -0
  109. package/login/i18n/baseMessages/de.js.map +1 -1
  110. package/login/i18n/baseMessages/el.d.ts +1 -0
  111. package/login/i18n/baseMessages/el.js +1 -0
  112. package/login/i18n/baseMessages/el.js.map +1 -1
  113. package/login/i18n/baseMessages/en.d.ts +7 -0
  114. package/login/i18n/baseMessages/en.js +23 -16
  115. package/login/i18n/baseMessages/en.js.map +1 -1
  116. package/login/i18n/baseMessages/es.d.ts +239 -0
  117. package/login/i18n/baseMessages/es.js +240 -1
  118. package/login/i18n/baseMessages/es.js.map +1 -1
  119. package/login/i18n/baseMessages/fa.d.ts +1 -0
  120. package/login/i18n/baseMessages/fa.js +1 -0
  121. package/login/i18n/baseMessages/fa.js.map +1 -1
  122. package/login/i18n/baseMessages/fi.d.ts +1 -0
  123. package/login/i18n/baseMessages/fi.js +1 -0
  124. package/login/i18n/baseMessages/fi.js.map +1 -1
  125. package/login/i18n/baseMessages/fr.d.ts +1 -0
  126. package/login/i18n/baseMessages/fr.js +2 -1
  127. package/login/i18n/baseMessages/fr.js.map +1 -1
  128. package/login/i18n/baseMessages/hu.d.ts +1 -0
  129. package/login/i18n/baseMessages/hu.js +1 -0
  130. package/login/i18n/baseMessages/hu.js.map +1 -1
  131. package/login/i18n/baseMessages/index.d.ts +211 -416
  132. package/login/i18n/baseMessages/index.js +1 -0
  133. package/login/i18n/baseMessages/index.js.map +1 -1
  134. package/login/i18n/baseMessages/it.d.ts +1 -0
  135. package/login/i18n/baseMessages/it.js +1 -0
  136. package/login/i18n/baseMessages/it.js.map +1 -1
  137. package/login/i18n/baseMessages/ja.d.ts +1 -0
  138. package/login/i18n/baseMessages/ja.js +1 -0
  139. package/login/i18n/baseMessages/ja.js.map +1 -1
  140. package/login/i18n/baseMessages/lt.d.ts +1 -0
  141. package/login/i18n/baseMessages/lt.js +1 -0
  142. package/login/i18n/baseMessages/lt.js.map +1 -1
  143. package/login/i18n/baseMessages/lv.d.ts +1 -0
  144. package/login/i18n/baseMessages/lv.js +1 -0
  145. package/login/i18n/baseMessages/lv.js.map +1 -1
  146. package/login/i18n/baseMessages/nl.d.ts +1 -0
  147. package/login/i18n/baseMessages/nl.js +1 -0
  148. package/login/i18n/baseMessages/nl.js.map +1 -1
  149. package/login/i18n/baseMessages/no.d.ts +1 -0
  150. package/login/i18n/baseMessages/no.js +1 -0
  151. package/login/i18n/baseMessages/no.js.map +1 -1
  152. package/login/i18n/baseMessages/pl.d.ts +1 -0
  153. package/login/i18n/baseMessages/pl.js +1 -0
  154. package/login/i18n/baseMessages/pl.js.map +1 -1
  155. package/login/i18n/baseMessages/pt-BR.d.ts +1 -0
  156. package/login/i18n/baseMessages/pt-BR.js +1 -0
  157. package/login/i18n/baseMessages/pt-BR.js.map +1 -1
  158. package/login/i18n/baseMessages/ru.d.ts +1 -0
  159. package/login/i18n/baseMessages/ru.js +1 -0
  160. package/login/i18n/baseMessages/ru.js.map +1 -1
  161. package/login/i18n/baseMessages/sk.d.ts +2 -0
  162. package/login/i18n/baseMessages/sk.js +3 -1
  163. package/login/i18n/baseMessages/sk.js.map +1 -1
  164. package/login/i18n/baseMessages/sv.d.ts +1 -0
  165. package/login/i18n/baseMessages/sv.js +1 -0
  166. package/login/i18n/baseMessages/sv.js.map +1 -1
  167. package/login/i18n/baseMessages/th.d.ts +1 -0
  168. package/login/i18n/baseMessages/th.js +1 -0
  169. package/login/i18n/baseMessages/th.js.map +1 -1
  170. package/login/i18n/baseMessages/tr.d.ts +1 -0
  171. package/login/i18n/baseMessages/tr.js +1 -0
  172. package/login/i18n/baseMessages/tr.js.map +1 -1
  173. package/login/i18n/baseMessages/uk.d.ts +433 -0
  174. package/login/i18n/baseMessages/uk.js +438 -0
  175. package/login/i18n/baseMessages/uk.js.map +1 -0
  176. package/login/i18n/baseMessages/zh-CN.d.ts +273 -3
  177. package/login/i18n/baseMessages/zh-CN.js +325 -55
  178. package/login/i18n/baseMessages/zh-CN.js.map +1 -1
  179. package/login/i18n/i18n.d.ts +4 -0
  180. package/login/i18n/i18n.js +6 -2
  181. package/login/i18n/i18n.js.map +1 -1
  182. package/login/kcContext/KcContext.d.ts +181 -105
  183. package/login/kcContext/KcContext.js +1 -1
  184. package/login/kcContext/KcContext.js.map +1 -1
  185. package/login/kcContext/createGetKcContext.js +3 -9
  186. package/login/kcContext/createGetKcContext.js.map +1 -1
  187. package/login/kcContext/kcContextMocks.d.ts +1 -1
  188. package/login/kcContext/kcContextMocks.js +92 -198
  189. package/login/kcContext/kcContextMocks.js.map +1 -1
  190. package/login/lib/useDownloadTerms.d.ts +4 -1
  191. package/login/lib/useDownloadTerms.js +9 -4
  192. package/login/lib/useDownloadTerms.js.map +1 -1
  193. package/login/lib/useGetClassName.js +112 -73
  194. package/login/lib/useGetClassName.js.map +1 -1
  195. package/login/lib/useUserProfileForm.d.ts +74 -0
  196. package/login/lib/useUserProfileForm.js +868 -0
  197. package/login/lib/useUserProfileForm.js.map +1 -0
  198. package/login/pages/{UpdateUserProfile.d.ts → Code.d.ts} +2 -2
  199. package/login/pages/Code.js +13 -0
  200. package/login/pages/Code.js.map +1 -0
  201. package/login/pages/DeleteAccountConfirm.d.ts +7 -0
  202. package/login/pages/DeleteAccountConfirm.js +14 -0
  203. package/login/pages/DeleteAccountConfirm.js.map +1 -0
  204. package/login/pages/{RegisterUserProfile.d.ts → DeleteCredential.d.ts} +2 -2
  205. package/login/pages/DeleteCredential.js +14 -0
  206. package/login/pages/DeleteCredential.js.map +1 -0
  207. package/login/pages/Error.js +2 -2
  208. package/login/pages/Error.js.map +1 -1
  209. package/login/pages/FrontchannelLogout.d.ts +7 -0
  210. package/login/pages/FrontchannelLogout.js +14 -0
  211. package/login/pages/FrontchannelLogout.js.map +1 -0
  212. package/login/pages/IdpReviewUserProfile.d.ts +8 -2
  213. package/login/pages/IdpReviewUserProfile.js +3 -4
  214. package/login/pages/IdpReviewUserProfile.js.map +1 -1
  215. package/login/pages/Info.js +14 -1
  216. package/login/pages/Info.js.map +1 -1
  217. package/login/pages/Login.js +24 -38
  218. package/login/pages/Login.js.map +1 -1
  219. package/login/pages/LoginConfigTotp.js +8 -1
  220. package/login/pages/LoginConfigTotp.js.map +1 -1
  221. package/login/pages/{LoginDeviceVerifyUserCode.d.ts → LoginOauth2DeviceVerifyUserCode.d.ts} +1 -1
  222. package/login/pages/{LoginDeviceVerifyUserCode.js → LoginOauth2DeviceVerifyUserCode.js} +2 -2
  223. package/login/pages/LoginOauth2DeviceVerifyUserCode.js.map +1 -0
  224. package/login/pages/LoginOauthGrant.js +3 -2
  225. package/login/pages/LoginOauthGrant.js.map +1 -1
  226. package/login/pages/LoginOtp.js +4 -6
  227. package/login/pages/LoginOtp.js.map +1 -1
  228. package/login/pages/LoginPageExpired.js +1 -1
  229. package/login/pages/LoginPageExpired.js.map +1 -1
  230. package/login/pages/LoginPassword.d.ts +1 -1
  231. package/login/pages/LoginPassword.js +18 -11
  232. package/login/pages/LoginPassword.js.map +1 -1
  233. package/login/pages/LoginRecoveryAuthnCodeConfig.d.ts +7 -0
  234. package/login/pages/LoginRecoveryAuthnCodeConfig.js +147 -0
  235. package/login/pages/LoginRecoveryAuthnCodeConfig.js.map +1 -0
  236. package/login/pages/LoginRecoveryAuthnCodeInput.d.ts +7 -0
  237. package/login/pages/LoginRecoveryAuthnCodeInput.js +14 -0
  238. package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -0
  239. package/login/pages/LoginResetOtp.d.ts +7 -0
  240. package/login/pages/LoginResetOtp.js +15 -0
  241. package/login/pages/LoginResetOtp.js.map +1 -0
  242. package/login/pages/LoginResetPassword.js +4 -3
  243. package/login/pages/LoginResetPassword.js.map +1 -1
  244. package/login/pages/LoginUpdatePassword.js +21 -3
  245. package/login/pages/LoginUpdatePassword.js.map +1 -1
  246. package/login/pages/LoginUpdateProfile.d.ts +8 -2
  247. package/login/pages/LoginUpdateProfile.js +11 -5
  248. package/login/pages/LoginUpdateProfile.js.map +1 -1
  249. package/login/pages/LoginUsername.js +11 -35
  250. package/login/pages/LoginUsername.js.map +1 -1
  251. package/login/pages/LoginVerifyEmail.js +1 -1
  252. package/login/pages/LoginVerifyEmail.js.map +1 -1
  253. package/login/pages/LoginX509Info.d.ts +7 -0
  254. package/login/pages/LoginX509Info.js +14 -0
  255. package/login/pages/LoginX509Info.js.map +1 -0
  256. package/login/pages/LogoutConfirm.js +1 -1
  257. package/login/pages/LogoutConfirm.js.map +1 -1
  258. package/login/pages/Register.d.ts +8 -2
  259. package/login/pages/Register.js +26 -4
  260. package/login/pages/Register.js.map +1 -1
  261. package/login/pages/SamlPostForm.js +1 -1
  262. package/login/pages/SamlPostForm.js.map +1 -1
  263. package/login/pages/SelectAuthenticator.js +5 -21
  264. package/login/pages/SelectAuthenticator.js.map +1 -1
  265. package/login/pages/Terms.js +4 -6
  266. package/login/pages/Terms.js.map +1 -1
  267. package/login/pages/UpdateEmail.d.ts +8 -2
  268. package/login/pages/UpdateEmail.js +16 -5
  269. package/login/pages/UpdateEmail.js.map +1 -1
  270. package/login/pages/WebauthnAuthenticate.js +121 -83
  271. package/login/pages/WebauthnAuthenticate.js.map +1 -1
  272. package/login/pages/WebauthnError.d.ts +7 -0
  273. package/login/pages/WebauthnError.js +21 -0
  274. package/login/pages/WebauthnError.js.map +1 -0
  275. package/login/pages/WebauthnRegister.d.ts +7 -0
  276. package/login/pages/WebauthnRegister.js +193 -0
  277. package/login/pages/WebauthnRegister.js.map +1 -0
  278. package/package.json +138 -43
  279. package/src/account/Template.tsx +41 -14
  280. package/src/account/i18n/baseMessages/de.ts +1 -1
  281. package/src/account/i18n/baseMessages/en.ts +2 -0
  282. package/src/account/i18n/baseMessages/es.ts +231 -1
  283. package/src/account/i18n/baseMessages/index.ts +1 -0
  284. package/src/account/i18n/baseMessages/pl.ts +115 -1
  285. package/src/account/i18n/baseMessages/tr.ts +1 -1
  286. package/src/account/i18n/baseMessages/uk.ts +343 -0
  287. package/src/account/i18n/baseMessages/zh-CN.ts +10 -0
  288. package/src/bin/constants.ts +0 -1
  289. package/src/bin/download-builtin-keycloak-theme.ts +14 -1
  290. package/src/bin/keycloakify/buildJars/buildJar.ts +163 -0
  291. package/src/bin/keycloakify/buildJars/buildJars.ts +62 -0
  292. package/src/bin/keycloakify/buildJars/extensionVersions.ts +16 -0
  293. package/src/bin/keycloakify/buildJars/generatePom.ts +86 -0
  294. package/src/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.ts +37 -0
  295. package/src/bin/keycloakify/buildJars/index.ts +1 -0
  296. package/src/bin/keycloakify/buildOptions/UserProvidedBuildOptions.ts +1 -5
  297. package/src/bin/keycloakify/buildOptions/buildOptions.ts +1 -5
  298. package/src/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.ts +1 -1
  299. package/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +103 -232
  300. package/src/bin/keycloakify/generateFtl/generateFtl.ts +15 -31
  301. package/src/bin/keycloakify/generateFtl/pageId.ts +11 -3
  302. package/src/bin/keycloakify/generateStartKeycloakTestingContainer.ts +4 -8
  303. package/src/bin/keycloakify/generateTheme/bringInAccountV1.ts +5 -11
  304. package/src/bin/keycloakify/generateTheme/generateSrcMainResources.ts +267 -0
  305. package/src/bin/keycloakify/generateTheme/generateTheme.ts +22 -309
  306. package/src/bin/keycloakify/generateTheme/generateThemeVariants.ts +50 -0
  307. package/src/bin/keycloakify/generateTheme/readFieldNameUsage.ts +33 -8
  308. package/src/bin/keycloakify/keycloakify.ts +23 -56
  309. package/src/lib/useGetClassName.ts +2 -2
  310. package/src/login/Fallback.tsx +39 -9
  311. package/src/login/Template.tsx +160 -61
  312. package/src/login/TemplateProps.ts +113 -63
  313. package/src/login/UserProfileFormFields.tsx +750 -0
  314. package/src/login/i18n/baseMessages/ar.ts +3 -0
  315. package/src/login/i18n/baseMessages/ca.ts +1 -0
  316. package/src/login/i18n/baseMessages/cs.ts +3 -0
  317. package/src/login/i18n/baseMessages/da.ts +1 -0
  318. package/src/login/i18n/baseMessages/de.ts +1 -0
  319. package/src/login/i18n/baseMessages/el.ts +1 -0
  320. package/src/login/i18n/baseMessages/en.ts +23 -16
  321. package/src/login/i18n/baseMessages/es.ts +240 -1
  322. package/src/login/i18n/baseMessages/fa.ts +1 -0
  323. package/src/login/i18n/baseMessages/fi.ts +1 -0
  324. package/src/login/i18n/baseMessages/fr.ts +2 -1
  325. package/src/login/i18n/baseMessages/hu.ts +1 -0
  326. package/src/login/i18n/baseMessages/index.ts +1 -0
  327. package/src/login/i18n/baseMessages/it.ts +1 -0
  328. package/src/login/i18n/baseMessages/ja.ts +1 -0
  329. package/src/login/i18n/baseMessages/lt.ts +1 -0
  330. package/src/login/i18n/baseMessages/lv.ts +1 -0
  331. package/src/login/i18n/baseMessages/nl.ts +1 -0
  332. package/src/login/i18n/baseMessages/no.ts +1 -0
  333. package/src/login/i18n/baseMessages/pl.ts +1 -0
  334. package/src/login/i18n/baseMessages/pt-BR.ts +1 -0
  335. package/src/login/i18n/baseMessages/ru.ts +1 -0
  336. package/src/login/i18n/baseMessages/sk.ts +3 -1
  337. package/src/login/i18n/baseMessages/sv.ts +1 -0
  338. package/src/login/i18n/baseMessages/th.ts +1 -0
  339. package/src/login/i18n/baseMessages/tr.ts +1 -0
  340. package/src/login/i18n/baseMessages/uk.ts +439 -0
  341. package/src/login/i18n/baseMessages/zh-CN.ts +325 -55
  342. package/src/login/i18n/i18n.tsx +6 -2
  343. package/src/login/kcContext/KcContext.ts +216 -103
  344. package/src/login/kcContext/createGetKcContext.ts +11 -19
  345. package/src/login/kcContext/kcContextMocks.ts +165 -226
  346. package/src/login/lib/useDownloadTerms.ts +15 -7
  347. package/src/login/lib/useGetClassName.ts +112 -83
  348. package/src/login/lib/useUserProfileForm.tsx +1227 -0
  349. package/src/login/pages/Code.tsx +35 -0
  350. package/src/login/pages/DeleteAccountConfirm.tsx +53 -0
  351. package/src/login/pages/DeleteCredential.tsx +45 -0
  352. package/src/login/pages/Error.tsx +2 -2
  353. package/src/login/pages/FrontchannelLogout.tsx +41 -0
  354. package/src/login/pages/IdpReviewUserProfile.tsx +15 -5
  355. package/src/login/pages/Info.tsx +29 -19
  356. package/src/login/pages/Login.tsx +156 -117
  357. package/src/login/pages/LoginConfigTotp.tsx +26 -1
  358. package/src/login/pages/{LoginDeviceVerifyUserCode.tsx → LoginOauth2DeviceVerifyUserCode.tsx} +3 -1
  359. package/src/login/pages/LoginOauthGrant.tsx +38 -2
  360. package/src/login/pages/LoginOtp.tsx +73 -65
  361. package/src/login/pages/LoginPageExpired.tsx +1 -1
  362. package/src/login/pages/LoginPassword.tsx +77 -28
  363. package/src/login/pages/LoginRecoveryAuthnCodeConfig.tsx +260 -0
  364. package/src/login/pages/LoginRecoveryAuthnCodeInput.tsx +73 -0
  365. package/src/login/pages/LoginResetOtp.tsx +70 -0
  366. package/src/login/pages/LoginResetPassword.tsx +11 -4
  367. package/src/login/pages/LoginUpdatePassword.tsx +120 -81
  368. package/src/login/pages/LoginUpdateProfile.tsx +41 -115
  369. package/src/login/pages/LoginUsername.tsx +93 -101
  370. package/src/login/pages/LoginVerifyEmail.tsx +14 -8
  371. package/src/login/pages/LoginX509Info.tsx +94 -0
  372. package/src/login/pages/LogoutConfirm.tsx +2 -2
  373. package/src/login/pages/Register.tsx +83 -131
  374. package/src/login/pages/SamlPostForm.tsx +1 -1
  375. package/src/login/pages/SelectAuthenticator.tsx +29 -52
  376. package/src/login/pages/Terms.tsx +4 -7
  377. package/src/login/pages/UpdateEmail.tsx +69 -54
  378. package/src/login/pages/WebauthnAuthenticate.tsx +205 -165
  379. package/src/login/pages/WebauthnError.tsx +66 -0
  380. package/src/login/pages/WebauthnRegister.tsx +285 -0
  381. package/src/tools/formatNumber.ts +48 -0
  382. package/src/tools/useInsertLinkTags.ts +82 -0
  383. package/src/tools/useInsertScriptTags.ts +106 -0
  384. package/src/tools/useSetClassName.ts +21 -0
  385. package/tools/formatNumber.d.ts +1 -0
  386. package/tools/formatNumber.js +37 -0
  387. package/tools/formatNumber.js.map +1 -0
  388. package/tools/useInsertLinkTags.d.ts +7 -0
  389. package/tools/useInsertLinkTags.js +57 -0
  390. package/tools/useInsertLinkTags.js.map +1 -0
  391. package/tools/useInsertScriptTags.d.ts +20 -0
  392. package/tools/useInsertScriptTags.js +75 -0
  393. package/tools/useInsertScriptTags.js.map +1 -0
  394. package/tools/useSetClassName.d.ts +4 -0
  395. package/tools/useSetClassName.js +16 -0
  396. package/tools/useSetClassName.js.map +1 -0
  397. package/vite-plugin/tsconfig.tsbuildinfo +1 -1
  398. package/bin/keycloakify/generatePom.d.ts +0 -12
  399. package/bin/keycloakify/generatePom.js +0 -59
  400. package/bin/keycloakify/generatePom.js.map +0 -1
  401. package/lib/usePrepareTemplate.d.ts +0 -11
  402. package/lib/usePrepareTemplate.js +0 -80
  403. package/lib/usePrepareTemplate.js.map +0 -1
  404. package/login/lib/useFormValidation.d.ts +0 -47
  405. package/login/lib/useFormValidation.js +0 -316
  406. package/login/lib/useFormValidation.js.map +0 -1
  407. package/login/pages/LoginDeviceVerifyUserCode.js.map +0 -1
  408. package/login/pages/RegisterUserProfile.js +0 -18
  409. package/login/pages/RegisterUserProfile.js.map +0 -1
  410. package/login/pages/UpdateUserProfile.js +0 -17
  411. package/login/pages/UpdateUserProfile.js.map +0 -1
  412. package/login/pages/shared/UserProfileFormFields.d.ts +0 -18
  413. package/login/pages/shared/UserProfileFormFields.js +0 -58
  414. package/login/pages/shared/UserProfileFormFields.js.map +0 -1
  415. package/src/bin/keycloakify/generatePom.ts +0 -70
  416. package/src/lib/usePrepareTemplate.ts +0 -113
  417. package/src/login/lib/useFormValidation.tsx +0 -474
  418. package/src/login/pages/RegisterUserProfile.tsx +0 -72
  419. package/src/login/pages/UpdateUserProfile.tsx +0 -82
  420. package/src/login/pages/shared/UserProfileFormFields.tsx +0 -177
  421. package/src/tools/headInsert.ts +0 -73
  422. package/tools/headInsert.d.ts +0 -12
  423. package/tools/headInsert.js +0 -50
  424. package/tools/headInsert.js.map +0 -1
@@ -13,7 +13,6 @@ type ExtractAfterStartingWith<Prefix extends string, StrEnum> = StrEnum extends
13
13
  export type KcContext =
14
14
  | KcContext.Login
15
15
  | KcContext.Register
16
- | KcContext.RegisterUserProfile
17
16
  | KcContext.Info
18
17
  | KcContext.Error
19
18
  | KcContext.LoginResetPassword
@@ -24,6 +23,7 @@ export type KcContext =
24
23
  | KcContext.LoginOtp
25
24
  | KcContext.LoginUsername
26
25
  | KcContext.WebauthnAuthenticate
26
+ | KcContext.WebauthnRegister
27
27
  | KcContext.LoginPassword
28
28
  | KcContext.LoginUpdatePassword
29
29
  | KcContext.LoginUpdateProfile
@@ -32,11 +32,21 @@ export type KcContext =
32
32
  | KcContext.LoginPageExpired
33
33
  | KcContext.LoginConfigTotp
34
34
  | KcContext.LogoutConfirm
35
- | KcContext.UpdateUserProfile
36
35
  | KcContext.IdpReviewUserProfile
37
36
  | KcContext.UpdateEmail
38
37
  | KcContext.SelectAuthenticator
39
- | KcContext.SamlPostForm;
38
+ | KcContext.SamlPostForm
39
+ | KcContext.DeleteCredential
40
+ | KcContext.Code
41
+ | KcContext.DeleteAccountConfirm
42
+ | KcContext.FrontchannelLogout
43
+ | KcContext.LoginRecoveryAuthnCodeConfig
44
+ | KcContext.LoginRecoveryAuthnCodeInput
45
+ | KcContext.LoginResetOtp
46
+ | KcContext.LoginX509Info
47
+ | KcContext.WebauthnError;
48
+
49
+ assert<KcContext["themeType"] extends ThemeType ? true : false>();
40
50
 
41
51
  export declare namespace KcContext {
42
52
  export type Common = {
@@ -50,6 +60,7 @@ export declare namespace KcContext {
50
60
  resourcesCommonPath: string;
51
61
  loginRestartFlowUrl: string;
52
62
  loginUrl: string;
63
+ ssoLoginInOtherTabsUrl: string;
53
64
  };
54
65
  realm: {
55
66
  name: string;
@@ -100,7 +111,7 @@ export declare namespace KcContext {
100
111
  * @param fields
101
112
  * @return boolean
102
113
  */
103
- existsError: (fieldName: string) => boolean;
114
+ existsError: (fieldName: string, ...otherFiledNames: string[]) => boolean;
104
115
  /**
105
116
  * Get message for given field.
106
117
  *
@@ -115,8 +126,15 @@ export declare namespace KcContext {
115
126
  * @return boolean
116
127
  */
117
128
  exists: (fieldName: string) => boolean;
129
+
130
+ getFirstError: (...fieldNames: string[]) => string;
118
131
  };
119
132
  properties: Record<string, string | undefined>;
133
+ authenticationSession?: {
134
+ authSessionId: string;
135
+ tabId: string;
136
+ ssoLoginInOtherTabsUrl: string;
137
+ };
120
138
  };
121
139
 
122
140
  export type SamlPostForm = Common & {
@@ -148,7 +166,7 @@ export declare namespace KcContext {
148
166
  registrationDisabled: boolean;
149
167
  login: {
150
168
  username?: string;
151
- rememberMe?: string;
169
+ rememberMe?: string; // "on" | undefined
152
170
  password?: string;
153
171
  };
154
172
  usernameHidden?: boolean;
@@ -159,52 +177,28 @@ export declare namespace KcContext {
159
177
  alias: string;
160
178
  providerId: string;
161
179
  displayName: string;
180
+ iconClasses?: string;
162
181
  }[];
163
182
  };
164
183
  };
165
184
 
166
- export type Register = RegisterUserProfile.CommonWithLegacy & {
185
+ export type Register = Common & {
167
186
  pageId: "register.ftl";
168
- register: {
169
- formData: {
170
- firstName?: string;
171
- displayName?: string;
172
- lastName?: string;
173
- email?: string;
174
- username?: string;
175
- };
176
- };
177
- };
178
-
179
- export type RegisterUserProfile = RegisterUserProfile.CommonWithLegacy & {
180
- pageId: "register-user-profile.ftl";
181
- profile: {
182
- context: "REGISTRATION_PROFILE";
183
- attributes: Attribute[];
184
- attributesByName: Record<string, Attribute>;
187
+ profile: UserProfile;
188
+ url: {
189
+ registrationAction: string;
185
190
  };
191
+ passwordRequired: boolean;
192
+ recaptchaRequired: boolean;
193
+ recaptchaSiteKey?: string;
194
+ /**
195
+ * Theses values are added by: https://github.com/jcputney/keycloak-theme-additional-info-extension
196
+ * A Keycloak Java extension used as dependency in Keycloakify.
197
+ */
198
+ passwordPolicies?: PasswordPolicies;
199
+ termsAcceptanceRequired?: boolean;
186
200
  };
187
201
 
188
- export namespace RegisterUserProfile {
189
- export type CommonWithLegacy = Common & {
190
- url: {
191
- registrationAction: string;
192
- };
193
- passwordRequired: boolean;
194
- recaptchaRequired: boolean;
195
- recaptchaSiteKey?: string;
196
- social: {
197
- displayInfo: boolean;
198
- providers?: {
199
- loginUrl: string;
200
- alias: string;
201
- providerId: string;
202
- displayName: string;
203
- }[];
204
- };
205
- };
206
- }
207
-
208
202
  export type Info = Common & {
209
203
  pageId: "info.ftl";
210
204
  messageHeader?: string;
@@ -223,16 +217,21 @@ export declare namespace KcContext {
223
217
  baseUrl?: string;
224
218
  };
225
219
  message: NonNullable<Common["message"]>;
220
+ skipLink?: boolean;
226
221
  };
227
222
 
228
223
  export type LoginResetPassword = Common & {
229
224
  pageId: "login-reset-password.ftl";
230
225
  realm: {
231
226
  loginWithEmailAllowed: boolean;
227
+ duplicateEmailsAllowed: boolean;
232
228
  };
233
229
  url: {
234
230
  loginResetCredentialsUrl: string;
235
231
  };
232
+ auth: {
233
+ attemptedUsername?: string;
234
+ };
236
235
  };
237
236
 
238
237
  export type LoginVerifyEmail = Common & {
@@ -272,6 +271,7 @@ export declare namespace KcContext {
272
271
  client: string;
273
272
  clientScopesRequested: {
274
273
  consentScreenText: string;
274
+ dynamicScopeParameter?: string;
275
275
  }[];
276
276
  };
277
277
  url: {
@@ -282,7 +282,11 @@ export declare namespace KcContext {
282
282
  export type LoginOtp = Common & {
283
283
  pageId: "login-otp.ftl";
284
284
  otpLogin: {
285
- userOtpCredentials: { id: string; userLabel: string }[];
285
+ userOtpCredentials: {
286
+ id: string;
287
+ userLabel: string;
288
+ }[];
289
+ selectedCredentialId?: string;
286
290
  };
287
291
  };
288
292
 
@@ -305,15 +309,7 @@ export declare namespace KcContext {
305
309
  rememberMe?: string;
306
310
  };
307
311
  usernameHidden?: boolean;
308
- social: {
309
- displayInfo: boolean;
310
- providers?: {
311
- loginUrl: string;
312
- alias: string;
313
- providerId: string;
314
- displayName: string;
315
- }[];
316
- };
312
+ social: Login["social"];
317
313
  };
318
314
 
319
315
  export type LoginPassword = Common & {
@@ -334,9 +330,6 @@ export declare namespace KcContext {
334
330
  social: {
335
331
  displayInfo: boolean;
336
332
  };
337
- login: {
338
- password?: string;
339
- };
340
333
  };
341
334
 
342
335
  export type WebauthnAuthenticate = Common & {
@@ -355,6 +348,14 @@ export declare namespace KcContext {
355
348
  displayInfo: boolean;
356
349
  };
357
350
  login: {};
351
+ realm: {
352
+ password: boolean;
353
+ registrationAllowed: boolean;
354
+ };
355
+ registrationDisabled?: boolean;
356
+ url: {
357
+ registrationUrl?: string;
358
+ };
358
359
  };
359
360
 
360
361
  export namespace WebauthnAuthenticate {
@@ -362,27 +363,33 @@ export declare namespace KcContext {
362
363
  credentialId: string;
363
364
  transports: {
364
365
  iconClass: string;
365
- displayNameProperties: MessageKey[];
366
+ displayNameProperties?: MessageKey[];
366
367
  };
367
368
  label: string;
368
369
  createdAt: string;
369
370
  };
370
371
  }
371
372
 
372
- export type LoginUpdatePassword = Common & {
373
- pageId: "login-update-password.ftl";
373
+ export type WebauthnRegister = Common & {
374
+ pageId: "webauthn-register.ftl";
375
+ challenge: string;
376
+ userid: string;
374
377
  username: string;
378
+ signatureAlgorithms: string[];
379
+ rpEntityName: string;
380
+ rpId: string;
381
+ attestationConveyancePreference: string;
382
+ authenticatorAttachment: string;
383
+ requireResidentKey: string;
384
+ userVerificationRequirement: string;
385
+ createTimeout: number;
386
+ excludeCredentialIds: string;
387
+ isSetRetry?: boolean;
388
+ isAppInitiatedAction?: boolean;
375
389
  };
376
390
 
377
- export type LoginUpdateProfile = Common & {
378
- pageId: "login-update-profile.ftl";
379
- user: {
380
- editUsernameAllowed: boolean;
381
- username?: string;
382
- email?: string;
383
- firstName?: string;
384
- lastName?: string;
385
- };
391
+ export type LoginUpdatePassword = Common & {
392
+ pageId: "login-update-password.ftl";
386
393
  };
387
394
 
388
395
  export type LoginIdpLinkConfirm = Common & {
@@ -444,28 +451,19 @@ export declare namespace KcContext {
444
451
  };
445
452
  };
446
453
 
447
- export type UpdateUserProfile = Common & {
448
- pageId: "update-user-profile.ftl";
449
- profile: {
450
- attributes: Attribute[];
451
- attributesByName: Record<string, Attribute>;
452
- };
454
+ export type LoginUpdateProfile = Common & {
455
+ pageId: "login-update-profile.ftl";
456
+ profile: UserProfile;
453
457
  };
454
458
 
455
459
  export type IdpReviewUserProfile = Common & {
456
460
  pageId: "idp-review-user-profile.ftl";
457
- profile: {
458
- context: "IDP_REVIEW";
459
- attributes: Attribute[];
460
- attributesByName: Record<string, Attribute>;
461
- };
461
+ profile: UserProfile;
462
462
  };
463
463
 
464
464
  export type UpdateEmail = Common & {
465
465
  pageId: "update-email.ftl";
466
- email: {
467
- value?: string;
468
- };
466
+ profile: UserProfile;
469
467
  };
470
468
 
471
469
  export type SelectAuthenticator = Common & {
@@ -500,20 +498,124 @@ export declare namespace KcContext {
500
498
  | "kcAuthenticatorWebAuthnPasswordlessClass";
501
499
  };
502
500
  }
501
+
502
+ export type DeleteCredential = Common & {
503
+ pageId: "delete-credential.ftl";
504
+ credentialLabel: string;
505
+ };
506
+
507
+ export type Code = Common & {
508
+ pageId: "code.ftl";
509
+ code: {
510
+ success: boolean;
511
+ code?: string;
512
+ error?: string;
513
+ };
514
+ };
515
+
516
+ export type DeleteAccountConfirm = Common & {
517
+ pageId: "delete-account-confirm.ftl";
518
+ triggered_from_aia: boolean;
519
+ };
520
+
521
+ export type FrontchannelLogout = Common & {
522
+ pageId: "frontchannel-logout.ftl";
523
+ logout: {
524
+ clients: {
525
+ name: string;
526
+ frontChannelLogoutUrl: string;
527
+ }[];
528
+ logoutRedirectUri?: string;
529
+ };
530
+ };
531
+
532
+ export type LoginRecoveryAuthnCodeConfig = Common & {
533
+ pageId: "login-recovery-authn-code-config.ftl";
534
+ recoveryAuthnCodesConfigBean: {
535
+ generatedRecoveryAuthnCodesList: string[];
536
+ generatedRecoveryAuthnCodesAsString: string;
537
+ generatedAt: number;
538
+ };
539
+ };
540
+
541
+ export type LoginRecoveryAuthnCodeInput = Common & {
542
+ pageId: "login-recovery-authn-code-input.ftl";
543
+ recoveryAuthnCodesInputBean: {
544
+ codeNumber: number;
545
+ };
546
+ };
547
+
548
+ export type LoginResetOtp = Common & {
549
+ pageId: "login-reset-otp.ftl";
550
+ configuredOtpCredentials: {
551
+ userOtpCredentials: {
552
+ id: string;
553
+ userLabel: string;
554
+ }[];
555
+ selectedCredentialId: string;
556
+ };
557
+ };
558
+
559
+ export type LoginX509Info = Common & {
560
+ pageId: "login-x509-info.ftl";
561
+ x509: {
562
+ formData: {
563
+ subjectDN?: string;
564
+ isUserEnabled?: boolean;
565
+ username?: string;
566
+ };
567
+ };
568
+ };
569
+
570
+ export type WebauthnError = Common & {
571
+ pageId: "webauthn-error.ftl";
572
+ isAppInitiatedAction?: boolean;
573
+ };
503
574
  }
504
575
 
576
+ export type UserProfile = {
577
+ attributes: Attribute[];
578
+ attributesByName: Record<string, Attribute>;
579
+ html5DataAnnotations?: Record<string, string>;
580
+ };
581
+
505
582
  export type Attribute = {
506
583
  name: string;
507
584
  displayName?: string;
508
585
  required: boolean;
509
586
  value?: string;
510
- group?: string;
511
- groupDisplayHeader?: string;
512
- groupDisplayDescription?: string;
587
+ values?: string[];
588
+ group?: {
589
+ html5DataAnnotations: Record<string, string>;
590
+ displayHeader?: string;
591
+ name: string;
592
+ displayDescription?: string;
593
+ };
594
+ html5DataAnnotations?: {
595
+ kcNumberFormat?: string;
596
+ kcNumberUnFormat?: string;
597
+ };
513
598
  readOnly: boolean;
514
599
  validators: Validators;
515
- annotations: Record<string, string>;
516
- groupAnnotations: Record<string, string>;
600
+ annotations: {
601
+ inputType?: string;
602
+ inputTypeSize?: `${number}` | number;
603
+ inputOptionsFromValidation?: string;
604
+ inputOptionLabels?: Record<string, string | undefined>;
605
+ inputOptionLabelsI18nPrefix?: string;
606
+ inputTypeCols?: `${number}` | number;
607
+ inputTypeRows?: `${number}` | number;
608
+ inputTypeMaxlength?: `${number}` | number;
609
+ inputHelperTextBefore?: string;
610
+ inputHelperTextAfter?: string;
611
+ inputTypePlaceholder?: string;
612
+ inputTypePattern?: string;
613
+ inputTypeMinlength?: `${number}` | number;
614
+ inputTypeMax?: string;
615
+ inputTypeMin?: string;
616
+ inputTypeStep?: string;
617
+ };
618
+ multivalued?: boolean;
517
619
  autocomplete?:
518
620
  | "on"
519
621
  | "off"
@@ -573,31 +675,28 @@ export type Attribute = {
573
675
 
574
676
  export type Validators = Partial<{
575
677
  length: Validators.DoIgnoreEmpty & Validators.Range;
576
- double: Validators.DoIgnoreEmpty & Validators.Range;
577
678
  integer: Validators.DoIgnoreEmpty & Validators.Range;
578
679
  email: Validators.DoIgnoreEmpty;
680
+ pattern: Validators.DoIgnoreEmpty & Validators.ErrorMessage & { pattern: string };
681
+ options: Validators.Options;
682
+ multivalued: Validators.DoIgnoreEmpty & Validators.Range;
683
+ // NOTE: Following are the validators for which we don't implement client side validation yet
684
+ // or for which the validation can't be performed on the client side.
685
+ /*
686
+ double: Validators.DoIgnoreEmpty & Validators.Range;
579
687
  "up-immutable-attribute": {};
580
688
  "up-attribute-required-by-metadata-value": {};
581
689
  "up-username-has-value": {};
582
690
  "up-duplicate-username": {};
583
691
  "up-username-mutation": {};
584
692
  "up-email-exists-as-username": {};
585
- "up-blank-attribute-value": Validators.ErrorMessage & {
586
- "fail-on-null": boolean;
587
- };
693
+ "up-blank-attribute-value": Validators.ErrorMessage & { "fail-on-null": boolean; };
588
694
  "up-duplicate-email": {};
589
695
  "local-date": Validators.DoIgnoreEmpty;
590
- pattern: Validators.DoIgnoreEmpty & Validators.ErrorMessage & { pattern: string };
591
696
  "person-name-prohibited-characters": Validators.DoIgnoreEmpty & Validators.ErrorMessage;
592
697
  uri: Validators.DoIgnoreEmpty;
593
698
  "username-prohibited-characters": Validators.DoIgnoreEmpty & Validators.ErrorMessage;
594
- /** Made up validator that only exists in Keycloakify */
595
- _compareToOther: Validators.DoIgnoreEmpty &
596
- Validators.ErrorMessage & {
597
- name: string;
598
- shouldBe: "equal" | "different";
599
- };
600
- options: Validators.Options;
699
+ */
601
700
  }>;
602
701
 
603
702
  export declare namespace Validators {
@@ -610,9 +709,8 @@ export declare namespace Validators {
610
709
  };
611
710
 
612
711
  export type Range = {
613
- /** "0", "1", "2"... yeah I know, don't tell me */
614
- min?: `${number}`;
615
- max?: `${number}`;
712
+ min?: `${number}` | number;
713
+ max?: `${number}` | number;
616
714
  };
617
715
  export type Options = {
618
716
  options: string[];
@@ -630,4 +728,19 @@ export declare namespace Validators {
630
728
  assert<Equals<OnlyInExpected, never>>();
631
729
  }
632
730
 
633
- assert<KcContext["themeType"] extends ThemeType ? true : false>();
731
+ export type PasswordPolicies = {
732
+ /** The minimum length of the password */
733
+ length?: number;
734
+ /** The minimum number of digits required in the password */
735
+ digits?: number;
736
+ /** The minimum number of lowercase characters required in the password */
737
+ lowerCase?: number;
738
+ /** The minimum number of uppercase characters required in the password */
739
+ upperCase?: number;
740
+ /** The minimum number of special characters required in the password */
741
+ specialChars?: number;
742
+ /** Whether the password can be the username */
743
+ notUsername?: boolean;
744
+ /** Whether the password can be the email address */
745
+ notEmail?: boolean;
746
+ };
@@ -86,25 +86,17 @@ export function createGetKcContext<KcContextExtension extends { pageId: string }
86
86
  "source": partialKcContextCustomMock
87
87
  });
88
88
 
89
- if (
90
- partialKcContextCustomMock.pageId === "register-user-profile.ftl" ||
91
- partialKcContextCustomMock.pageId === "update-user-profile.ftl" ||
92
- partialKcContextCustomMock.pageId === "idp-review-user-profile.ftl"
93
- ) {
94
- assert(
95
- kcContextDefaultMock?.pageId === "register-user-profile.ftl" ||
96
- kcContextDefaultMock?.pageId === "update-user-profile.ftl" ||
97
- kcContextDefaultMock?.pageId === "idp-review-user-profile.ftl"
98
- );
89
+ if ("profile" in partialKcContextCustomMock) {
90
+ assert(kcContextDefaultMock !== undefined && "profile" in kcContextDefaultMock);
99
91
 
100
92
  const { attributes } = kcContextDefaultMock.profile;
101
93
 
102
- id<KcContext.RegisterUserProfile>(kcContext).profile.attributes = [];
103
- id<KcContext.RegisterUserProfile>(kcContext).profile.attributesByName = {};
94
+ id<KcContext.Register>(kcContext).profile.attributes = [];
95
+ id<KcContext.Register>(kcContext).profile.attributesByName = {};
104
96
 
105
- const partialAttributes = [
106
- ...((partialKcContextCustomMock as DeepPartial<KcContext.RegisterUserProfile>).profile?.attributes ?? [])
107
- ].filter(exclude(undefined));
97
+ const partialAttributes = [...((partialKcContextCustomMock as DeepPartial<KcContext.Register>).profile?.attributes ?? [])].filter(
98
+ exclude(undefined)
99
+ );
108
100
 
109
101
  attributes.forEach(attribute => {
110
102
  const partialAttribute = partialAttributes.find(({ name }) => name === attribute.name);
@@ -125,8 +117,8 @@ export function createGetKcContext<KcContextExtension extends { pageId: string }
125
117
  });
126
118
  }
127
119
 
128
- id<KcContext.RegisterUserProfile>(kcContext).profile.attributes.push(augmentedAttribute);
129
- id<KcContext.RegisterUserProfile>(kcContext).profile.attributesByName[augmentedAttribute.name] = augmentedAttribute;
120
+ id<KcContext.Register>(kcContext).profile.attributes.push(augmentedAttribute);
121
+ id<KcContext.Register>(kcContext).profile.attributesByName[augmentedAttribute.name] = augmentedAttribute;
130
122
  });
131
123
 
132
124
  partialAttributes
@@ -136,8 +128,8 @@ export function createGetKcContext<KcContextExtension extends { pageId: string }
136
128
 
137
129
  assert(name !== undefined, "If you define a mock attribute it must have at least a name");
138
130
 
139
- id<KcContext.RegisterUserProfile>(kcContext).profile.attributes.push(partialAttribute as any);
140
- id<KcContext.RegisterUserProfile>(kcContext).profile.attributesByName[name] = partialAttribute as any;
131
+ id<KcContext.Register>(kcContext).profile.attributes.push(partialAttribute as any);
132
+ id<KcContext.Register>(kcContext).profile.attributesByName[name] = partialAttribute as any;
141
133
  });
142
134
  }
143
135
  }