keycloakify 10.0.0-rc.14 → 10.0.0-rc.141

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 (908) hide show
  1. package/PUBLIC_URL.d.ts +1 -1
  2. package/PUBLIC_URL.js +4 -4
  3. package/PUBLIC_URL.js.map +1 -1
  4. package/README.md +37 -247
  5. package/account/DefaultPage.d.ts +5 -0
  6. package/account/{Fallback.js → DefaultPage.js} +3 -3
  7. package/account/DefaultPage.js.map +1 -0
  8. package/account/{kcContext → KcContext}/KcContext.d.ts +17 -1
  9. package/account/KcContext/KcContext.js.map +1 -0
  10. package/account/KcContext/getKcContextMock.d.ts +24 -0
  11. package/account/KcContext/getKcContextMock.js +28 -0
  12. package/account/KcContext/getKcContextMock.js.map +1 -0
  13. package/account/KcContext/index.d.ts +2 -0
  14. package/account/KcContext/index.js +2 -0
  15. package/account/KcContext/index.js.map +1 -0
  16. package/account/{kcContext → KcContext}/kcContextMocks.d.ts +1 -1
  17. package/account/KcContext/kcContextMocks.js +146 -0
  18. package/account/KcContext/kcContextMocks.js.map +1 -0
  19. package/account/Template.d.ts +2 -2
  20. package/account/Template.js +14 -12
  21. package/account/Template.js.map +1 -1
  22. package/account/TemplateProps.d.ts +3 -5
  23. package/account/i18n/GenericI18n.d.ts +6 -0
  24. package/account/i18n/GenericI18n.js +2 -0
  25. package/account/i18n/GenericI18n.js.map +1 -0
  26. package/account/i18n/i18n.d.ts +42 -50
  27. package/account/i18n/i18n.js +91 -92
  28. package/account/i18n/i18n.js.map +1 -1
  29. package/account/i18n/index.d.ts +5 -1
  30. package/account/i18n/index.js +1 -1
  31. package/account/i18n/index.js.map +1 -1
  32. package/account/i18n/{baseMessages → messages_defaultSet}/ar.d.ts +2 -0
  33. package/account/i18n/{baseMessages → messages_defaultSet}/ar.js +3 -1
  34. package/account/i18n/messages_defaultSet/ar.js.map +1 -0
  35. package/account/i18n/{baseMessages → messages_defaultSet}/ca.d.ts +2 -0
  36. package/account/i18n/{baseMessages → messages_defaultSet}/ca.js +3 -1
  37. package/account/i18n/messages_defaultSet/ca.js.map +1 -0
  38. package/account/i18n/{baseMessages → messages_defaultSet}/cs.d.ts +2 -0
  39. package/account/i18n/{baseMessages → messages_defaultSet}/cs.js +3 -1
  40. package/account/i18n/messages_defaultSet/cs.js.map +1 -0
  41. package/account/i18n/{baseMessages → messages_defaultSet}/da.d.ts +2 -0
  42. package/account/i18n/{baseMessages → messages_defaultSet}/da.js +3 -1
  43. package/account/i18n/messages_defaultSet/da.js.map +1 -0
  44. package/account/i18n/{baseMessages → messages_defaultSet}/de.d.ts +2 -0
  45. package/account/i18n/{baseMessages → messages_defaultSet}/de.js +3 -1
  46. package/account/i18n/messages_defaultSet/de.js.map +1 -0
  47. package/account/i18n/{baseMessages → messages_defaultSet}/el.d.ts +2 -0
  48. package/account/i18n/{baseMessages → messages_defaultSet}/el.js +3 -1
  49. package/account/i18n/messages_defaultSet/el.js.map +1 -0
  50. package/account/i18n/{baseMessages → messages_defaultSet}/en.d.ts +2 -0
  51. package/account/i18n/{baseMessages → messages_defaultSet}/en.js +3 -1
  52. package/account/i18n/messages_defaultSet/en.js.map +1 -0
  53. package/account/i18n/{baseMessages → messages_defaultSet}/es.d.ts +2 -0
  54. package/account/i18n/{baseMessages → messages_defaultSet}/es.js +3 -1
  55. package/account/i18n/messages_defaultSet/es.js.map +1 -0
  56. package/account/i18n/{baseMessages → messages_defaultSet}/fa.d.ts +2 -0
  57. package/account/i18n/{baseMessages → messages_defaultSet}/fa.js +3 -1
  58. package/account/i18n/messages_defaultSet/fa.js.map +1 -0
  59. package/account/i18n/{baseMessages → messages_defaultSet}/fi.d.ts +2 -0
  60. package/account/i18n/{baseMessages → messages_defaultSet}/fi.js +3 -1
  61. package/account/i18n/messages_defaultSet/fi.js.map +1 -0
  62. package/account/i18n/{baseMessages → messages_defaultSet}/fr.d.ts +2 -0
  63. package/account/i18n/{baseMessages → messages_defaultSet}/fr.js +3 -1
  64. package/account/i18n/messages_defaultSet/fr.js.map +1 -0
  65. package/account/i18n/{baseMessages → messages_defaultSet}/hu.d.ts +2 -0
  66. package/account/i18n/{baseMessages → messages_defaultSet}/hu.js +3 -1
  67. package/account/i18n/messages_defaultSet/hu.js.map +1 -0
  68. package/account/i18n/{baseMessages → messages_defaultSet}/index.d.ts +19 -1
  69. package/account/i18n/{baseMessages → messages_defaultSet}/index.js +3 -3
  70. package/{login/i18n/baseMessages → account/i18n/messages_defaultSet}/index.js.map +1 -1
  71. package/account/i18n/{baseMessages → messages_defaultSet}/it.d.ts +2 -0
  72. package/account/i18n/{baseMessages → messages_defaultSet}/it.js +3 -1
  73. package/account/i18n/messages_defaultSet/it.js.map +1 -0
  74. package/account/i18n/{baseMessages → messages_defaultSet}/ja.d.ts +2 -0
  75. package/account/i18n/{baseMessages → messages_defaultSet}/ja.js +3 -1
  76. package/account/i18n/messages_defaultSet/ja.js.map +1 -0
  77. package/account/i18n/{baseMessages → messages_defaultSet}/lt.d.ts +2 -0
  78. package/account/i18n/{baseMessages → messages_defaultSet}/lt.js +3 -1
  79. package/account/i18n/messages_defaultSet/lt.js.map +1 -0
  80. package/account/i18n/{baseMessages → messages_defaultSet}/lv.d.ts +2 -0
  81. package/account/i18n/{baseMessages → messages_defaultSet}/lv.js +3 -1
  82. package/account/i18n/messages_defaultSet/lv.js.map +1 -0
  83. package/account/i18n/{baseMessages → messages_defaultSet}/nl.d.ts +2 -0
  84. package/account/i18n/{baseMessages → messages_defaultSet}/nl.js +3 -1
  85. package/account/i18n/messages_defaultSet/nl.js.map +1 -0
  86. package/account/i18n/{baseMessages → messages_defaultSet}/no.d.ts +2 -0
  87. package/account/i18n/{baseMessages → messages_defaultSet}/no.js +3 -1
  88. package/account/i18n/messages_defaultSet/no.js.map +1 -0
  89. package/account/i18n/{baseMessages → messages_defaultSet}/pl.d.ts +2 -0
  90. package/account/i18n/{baseMessages → messages_defaultSet}/pl.js +3 -1
  91. package/account/i18n/messages_defaultSet/pl.js.map +1 -0
  92. package/account/i18n/{baseMessages → messages_defaultSet}/pt-BR.d.ts +2 -0
  93. package/account/i18n/{baseMessages → messages_defaultSet}/pt-BR.js +3 -1
  94. package/account/i18n/messages_defaultSet/pt-BR.js.map +1 -0
  95. package/account/i18n/{baseMessages → messages_defaultSet}/ru.d.ts +2 -0
  96. package/account/i18n/{baseMessages → messages_defaultSet}/ru.js +3 -1
  97. package/account/i18n/messages_defaultSet/ru.js.map +1 -0
  98. package/account/i18n/{baseMessages → messages_defaultSet}/sk.d.ts +2 -0
  99. package/account/i18n/{baseMessages → messages_defaultSet}/sk.js +3 -1
  100. package/account/i18n/messages_defaultSet/sk.js.map +1 -0
  101. package/account/i18n/{baseMessages → messages_defaultSet}/sv.d.ts +2 -0
  102. package/account/i18n/{baseMessages → messages_defaultSet}/sv.js +3 -1
  103. package/account/i18n/messages_defaultSet/sv.js.map +1 -0
  104. package/account/i18n/{baseMessages → messages_defaultSet}/th.d.ts +2 -0
  105. package/account/i18n/{baseMessages → messages_defaultSet}/th.js +3 -1
  106. package/account/i18n/messages_defaultSet/th.js.map +1 -0
  107. package/account/i18n/{baseMessages → messages_defaultSet}/tr.d.ts +2 -0
  108. package/account/i18n/{baseMessages → messages_defaultSet}/tr.js +3 -1
  109. package/account/i18n/messages_defaultSet/tr.js.map +1 -0
  110. package/account/i18n/{baseMessages → messages_defaultSet}/uk.d.ts +2 -0
  111. package/account/i18n/{baseMessages → messages_defaultSet}/uk.js +3 -1
  112. package/account/i18n/messages_defaultSet/uk.js.map +1 -0
  113. package/account/i18n/{baseMessages → messages_defaultSet}/zh-CN.d.ts +2 -0
  114. package/account/i18n/{baseMessages → messages_defaultSet}/zh-CN.js +3 -1
  115. package/account/i18n/messages_defaultSet/zh-CN.js.map +1 -0
  116. package/account/i18n/useI18n.d.ts +14 -0
  117. package/account/i18n/useI18n.js +59 -0
  118. package/account/i18n/useI18n.js.map +1 -0
  119. package/account/index.d.ts +3 -7
  120. package/account/index.js +1 -5
  121. package/account/index.js.map +1 -1
  122. package/account/lib/kcClsx.d.ts +9 -0
  123. package/account/lib/kcClsx.js +19 -0
  124. package/account/lib/kcClsx.js.map +1 -0
  125. package/account/pages/Account.d.ts +1 -1
  126. package/account/pages/Account.js +7 -6
  127. package/account/pages/Account.js.map +1 -1
  128. package/account/pages/Applications.d.ts +1 -1
  129. package/account/pages/Applications.js +8 -9
  130. package/account/pages/Applications.js.map +1 -1
  131. package/account/pages/FederatedIdentity.d.ts +3 -3
  132. package/account/pages/FederatedIdentity.js +1 -1
  133. package/account/pages/FederatedIdentity.js.map +1 -1
  134. package/account/pages/Log.d.ts +1 -1
  135. package/account/pages/Log.js +3 -3
  136. package/account/pages/Log.js.map +1 -1
  137. package/account/pages/PageProps.d.ts +4 -6
  138. package/account/pages/Password.d.ts +1 -1
  139. package/account/pages/Password.js +16 -13
  140. package/account/pages/Password.js.map +1 -1
  141. package/account/pages/Sessions.d.ts +1 -1
  142. package/account/pages/Sessions.js +3 -4
  143. package/account/pages/Sessions.js.map +1 -1
  144. package/account/pages/Totp.d.ts +1 -1
  145. package/account/pages/Totp.js +9 -10
  146. package/account/pages/Totp.js.map +1 -1
  147. package/bin/193.index.js +160 -0
  148. package/bin/246.index.js +75118 -371
  149. package/bin/266.index.js +806 -0
  150. package/bin/{772.index.js → 304.index.js} +262 -678
  151. package/bin/31.index.js +865 -0
  152. package/bin/430.index.js +1349 -0
  153. package/bin/440.index.js +1538 -0
  154. package/bin/453.index.js +821 -0
  155. package/bin/525.index.js +41826 -0
  156. package/bin/526.index.js +1345 -0
  157. package/bin/599.index.js +567 -0
  158. package/bin/622.index.js +729 -0
  159. package/bin/678.index.js +10486 -0
  160. package/bin/697.index.js +4749 -0
  161. package/bin/720.index.js +243 -0
  162. package/bin/743.index.js +70 -0
  163. package/bin/780.index.js +895 -0
  164. package/bin/786.index.js +185 -0
  165. package/bin/877.index.js +275 -0
  166. package/bin/932.index.js +957 -0
  167. package/bin/941.index.js +4215 -0
  168. package/bin/97.index.js +699 -0
  169. package/bin/main.js +7685 -141696
  170. package/bin/shared/KeycloakVersionRange.d.ts +5 -0
  171. package/bin/shared/KeycloakVersionRange.js.map +1 -0
  172. package/bin/shared/buildContext.d.ts +110 -0
  173. package/bin/shared/buildContext.js.map +1 -0
  174. package/bin/shared/constants.d.ts +18 -15
  175. package/bin/shared/constants.js +15 -15
  176. package/bin/shared/constants.js.map +1 -1
  177. package/bin/shared/copyKeycloakResourcesToPublic.d.ts +8 -0
  178. package/bin/shared/copyKeycloakResourcesToPublic.js.map +1 -0
  179. package/bin/shared/downloadKeycloakDefaultTheme.d.ts +11 -0
  180. package/bin/shared/downloadKeycloakDefaultTheme.js.map +1 -0
  181. package/bin/shared/downloadKeycloakStaticResources.d.ts +9 -0
  182. package/bin/shared/downloadKeycloakStaticResources.js.map +1 -0
  183. package/bin/shared/generateKcGenTs.d.ts +15 -0
  184. package/bin/shared/generateKcGenTs.js.map +1 -0
  185. package/bin/shared/getLatestsSemVersionedTag.d.ts +15 -0
  186. package/bin/shared/getLatestsSemVersionedTag.js.map +1 -0
  187. package/bin/shared/metaInfKeycloakThemes.d.ts +13 -0
  188. package/bin/shared/metaInfKeycloakThemes.js.map +1 -0
  189. package/bin/shared/promptKeycloakVersion.d.ts +9 -0
  190. package/bin/shared/promptKeycloakVersion.js.map +1 -0
  191. package/lib/BASE_URL.js.map +1 -1
  192. package/lib/getKcClsx.d.ts +11 -0
  193. package/lib/getKcClsx.js +56 -0
  194. package/lib/getKcClsx.js.map +1 -0
  195. package/login/{Fallback.d.ts → DefaultPage.d.ts} +7 -6
  196. package/login/{Fallback.js → DefaultPage.js} +2 -2
  197. package/login/DefaultPage.js.map +1 -0
  198. package/login/{kcContext → KcContext}/KcContext.d.ts +43 -25
  199. package/login/KcContext/KcContext.js.map +1 -0
  200. package/login/KcContext/getKcContextMock.d.ts +24 -0
  201. package/login/KcContext/getKcContextMock.js +28 -0
  202. package/login/KcContext/getKcContextMock.js.map +1 -0
  203. package/login/KcContext/index.d.ts +2 -0
  204. package/login/KcContext/index.js +2 -0
  205. package/login/KcContext/index.js.map +1 -0
  206. package/login/{kcContext → KcContext}/kcContextMocks.d.ts +1 -1
  207. package/login/KcContext/kcContextMocks.js +333 -0
  208. package/login/KcContext/kcContextMocks.js.map +1 -0
  209. package/login/Template.d.ts +2 -2
  210. package/login/Template.js +33 -27
  211. package/login/Template.js.map +1 -1
  212. package/login/TemplateProps.d.ts +3 -6
  213. package/login/UserProfileFormFields.d.ts +3 -20
  214. package/login/UserProfileFormFields.js +81 -124
  215. package/login/UserProfileFormFields.js.map +1 -1
  216. package/login/UserProfileFormFieldsProps.d.ts +24 -0
  217. package/login/UserProfileFormFieldsProps.js +2 -0
  218. package/login/UserProfileFormFieldsProps.js.map +1 -0
  219. package/login/i18n/GenericI18n.d.ts +6 -0
  220. package/login/i18n/GenericI18n.js +2 -0
  221. package/login/i18n/GenericI18n.js.map +1 -0
  222. package/login/i18n/i18n.d.ts +42 -52
  223. package/login/i18n/i18n.js +93 -94
  224. package/login/i18n/i18n.js.map +1 -1
  225. package/login/i18n/index.d.ts +5 -1
  226. package/login/i18n/index.js +1 -1
  227. package/login/i18n/index.js.map +1 -1
  228. package/login/i18n/{baseMessages → messages_defaultSet}/ar.d.ts +9 -0
  229. package/login/i18n/{baseMessages → messages_defaultSet}/ar.js +11 -2
  230. package/login/i18n/messages_defaultSet/ar.js.map +1 -0
  231. package/login/i18n/{baseMessages → messages_defaultSet}/ca.d.ts +10 -1
  232. package/login/i18n/{baseMessages → messages_defaultSet}/ca.js +12 -3
  233. package/login/i18n/messages_defaultSet/ca.js.map +1 -0
  234. package/login/i18n/{baseMessages → messages_defaultSet}/cs.d.ts +9 -0
  235. package/login/i18n/{baseMessages → messages_defaultSet}/cs.js +11 -2
  236. package/login/i18n/messages_defaultSet/cs.js.map +1 -0
  237. package/login/i18n/{baseMessages → messages_defaultSet}/da.d.ts +9 -0
  238. package/login/i18n/{baseMessages → messages_defaultSet}/da.js +11 -2
  239. package/login/i18n/messages_defaultSet/da.js.map +1 -0
  240. package/login/i18n/{baseMessages → messages_defaultSet}/de.d.ts +9 -0
  241. package/login/i18n/{baseMessages → messages_defaultSet}/de.js +11 -2
  242. package/login/i18n/messages_defaultSet/de.js.map +1 -0
  243. package/login/i18n/{baseMessages → messages_defaultSet}/el.d.ts +9 -1
  244. package/login/i18n/{baseMessages → messages_defaultSet}/el.js +11 -3
  245. package/login/i18n/messages_defaultSet/el.js.map +1 -0
  246. package/login/i18n/{baseMessages → messages_defaultSet}/en.d.ts +10 -1
  247. package/login/i18n/{baseMessages → messages_defaultSet}/en.js +12 -3
  248. package/login/i18n/messages_defaultSet/en.js.map +1 -0
  249. package/login/i18n/{baseMessages → messages_defaultSet}/es.d.ts +10 -1
  250. package/login/i18n/{baseMessages → messages_defaultSet}/es.js +12 -3
  251. package/login/i18n/messages_defaultSet/es.js.map +1 -0
  252. package/login/i18n/{baseMessages → messages_defaultSet}/fa.d.ts +9 -1
  253. package/login/i18n/{baseMessages → messages_defaultSet}/fa.js +11 -3
  254. package/login/i18n/messages_defaultSet/fa.js.map +1 -0
  255. package/login/i18n/{baseMessages → messages_defaultSet}/fi.d.ts +9 -0
  256. package/login/i18n/{baseMessages → messages_defaultSet}/fi.js +11 -2
  257. package/login/i18n/messages_defaultSet/fi.js.map +1 -0
  258. package/login/i18n/{baseMessages → messages_defaultSet}/fr.d.ts +9 -0
  259. package/login/i18n/{baseMessages → messages_defaultSet}/fr.js +11 -2
  260. package/login/i18n/messages_defaultSet/fr.js.map +1 -0
  261. package/login/i18n/{baseMessages → messages_defaultSet}/hu.d.ts +10 -1
  262. package/login/i18n/{baseMessages → messages_defaultSet}/hu.js +12 -3
  263. package/login/i18n/messages_defaultSet/hu.js.map +1 -0
  264. package/login/i18n/{baseMessages → messages_defaultSet}/index.d.ts +110 -3
  265. package/login/i18n/{baseMessages → messages_defaultSet}/index.js +3 -3
  266. package/login/i18n/messages_defaultSet/index.js.map +1 -0
  267. package/login/i18n/{baseMessages → messages_defaultSet}/it.d.ts +9 -0
  268. package/login/i18n/{baseMessages → messages_defaultSet}/it.js +11 -2
  269. package/login/i18n/messages_defaultSet/it.js.map +1 -0
  270. package/login/i18n/{baseMessages → messages_defaultSet}/ja.d.ts +9 -0
  271. package/login/i18n/{baseMessages → messages_defaultSet}/ja.js +11 -2
  272. package/login/i18n/messages_defaultSet/ja.js.map +1 -0
  273. package/login/i18n/{baseMessages → messages_defaultSet}/lt.d.ts +9 -0
  274. package/login/i18n/{baseMessages → messages_defaultSet}/lt.js +11 -2
  275. package/login/i18n/messages_defaultSet/lt.js.map +1 -0
  276. package/login/i18n/{baseMessages → messages_defaultSet}/lv.d.ts +9 -0
  277. package/login/i18n/{baseMessages → messages_defaultSet}/lv.js +11 -2
  278. package/login/i18n/messages_defaultSet/lv.js.map +1 -0
  279. package/login/i18n/{baseMessages → messages_defaultSet}/nl.d.ts +9 -0
  280. package/login/i18n/{baseMessages → messages_defaultSet}/nl.js +11 -2
  281. package/login/i18n/messages_defaultSet/nl.js.map +1 -0
  282. package/login/i18n/{baseMessages → messages_defaultSet}/no.d.ts +9 -0
  283. package/login/i18n/{baseMessages → messages_defaultSet}/no.js +11 -2
  284. package/login/i18n/messages_defaultSet/no.js.map +1 -0
  285. package/login/i18n/{baseMessages → messages_defaultSet}/pl.d.ts +9 -0
  286. package/login/i18n/{baseMessages → messages_defaultSet}/pl.js +11 -2
  287. package/login/i18n/messages_defaultSet/pl.js.map +1 -0
  288. package/login/i18n/{baseMessages → messages_defaultSet}/pt-BR.d.ts +9 -0
  289. package/login/i18n/{baseMessages → messages_defaultSet}/pt-BR.js +11 -2
  290. package/login/i18n/messages_defaultSet/pt-BR.js.map +1 -0
  291. package/login/i18n/{baseMessages → messages_defaultSet}/ru.d.ts +9 -0
  292. package/login/i18n/{baseMessages → messages_defaultSet}/ru.js +11 -2
  293. package/login/i18n/messages_defaultSet/ru.js.map +1 -0
  294. package/login/i18n/{baseMessages → messages_defaultSet}/sk.d.ts +9 -0
  295. package/login/i18n/{baseMessages → messages_defaultSet}/sk.js +11 -2
  296. package/login/i18n/messages_defaultSet/sk.js.map +1 -0
  297. package/login/i18n/{baseMessages → messages_defaultSet}/sv.d.ts +9 -0
  298. package/login/i18n/{baseMessages → messages_defaultSet}/sv.js +11 -2
  299. package/login/i18n/messages_defaultSet/sv.js.map +1 -0
  300. package/login/i18n/{baseMessages → messages_defaultSet}/th.d.ts +9 -0
  301. package/login/i18n/{baseMessages → messages_defaultSet}/th.js +11 -2
  302. package/login/i18n/messages_defaultSet/th.js.map +1 -0
  303. package/login/i18n/{baseMessages → messages_defaultSet}/tr.d.ts +9 -0
  304. package/login/i18n/{baseMessages → messages_defaultSet}/tr.js +11 -2
  305. package/login/i18n/messages_defaultSet/tr.js.map +1 -0
  306. package/login/i18n/{baseMessages → messages_defaultSet}/uk.d.ts +9 -0
  307. package/login/i18n/{baseMessages → messages_defaultSet}/uk.js +11 -2
  308. package/login/i18n/messages_defaultSet/uk.js.map +1 -0
  309. package/login/i18n/{baseMessages → messages_defaultSet}/zh-CN.d.ts +10 -1
  310. package/login/i18n/{baseMessages → messages_defaultSet}/zh-CN.js +12 -3
  311. package/login/i18n/messages_defaultSet/zh-CN.js.map +1 -0
  312. package/login/i18n/useI18n.d.ts +14 -0
  313. package/login/i18n/useI18n.js +59 -0
  314. package/login/i18n/useI18n.js.map +1 -0
  315. package/login/index.d.ts +3 -8
  316. package/login/index.js +1 -6
  317. package/login/index.js.map +1 -1
  318. package/login/lib/kcClsx.d.ts +9 -0
  319. package/login/lib/kcClsx.js +130 -0
  320. package/login/lib/kcClsx.js.map +1 -0
  321. package/login/lib/useUserProfileForm.d.ts +22 -8
  322. package/login/lib/useUserProfileForm.js +439 -295
  323. package/login/lib/useUserProfileForm.js.map +1 -1
  324. package/login/pages/Code.d.ts +1 -1
  325. package/login/pages/Code.js +3 -3
  326. package/login/pages/Code.js.map +1 -1
  327. package/login/pages/DeleteAccountConfirm.d.ts +1 -1
  328. package/login/pages/DeleteAccountConfirm.js +7 -4
  329. package/login/pages/DeleteAccountConfirm.js.map +1 -1
  330. package/login/pages/DeleteCredential.d.ts +1 -1
  331. package/login/pages/DeleteCredential.js +3 -4
  332. package/login/pages/DeleteCredential.js.map +1 -1
  333. package/login/pages/Error.d.ts +1 -1
  334. package/login/pages/Error.js +1 -1
  335. package/login/pages/Error.js.map +1 -1
  336. package/login/pages/FrontchannelLogout.d.ts +1 -1
  337. package/login/pages/FrontchannelLogout.js +1 -1
  338. package/login/pages/FrontchannelLogout.js.map +1 -1
  339. package/login/pages/IdpReviewUserProfile.d.ts +4 -3
  340. package/login/pages/IdpReviewUserProfile.js +4 -5
  341. package/login/pages/IdpReviewUserProfile.js.map +1 -1
  342. package/login/pages/Info.d.ts +1 -1
  343. package/login/pages/Info.js +19 -9
  344. package/login/pages/Info.js.map +1 -1
  345. package/login/pages/Login.d.ts +1 -1
  346. package/login/pages/Login.js +12 -8
  347. package/login/pages/Login.js.map +1 -1
  348. package/login/pages/LoginConfigTotp.d.ts +1 -1
  349. package/login/pages/LoginConfigTotp.js +10 -7
  350. package/login/pages/LoginConfigTotp.js.map +1 -1
  351. package/login/pages/LoginIdpLinkConfirm.d.ts +1 -1
  352. package/login/pages/LoginIdpLinkConfirm.js +3 -4
  353. package/login/pages/LoginIdpLinkConfirm.js.map +1 -1
  354. package/login/pages/LoginIdpLinkEmail.d.ts +2 -2
  355. package/login/pages/LoginIdpLinkEmail.js +1 -1
  356. package/login/pages/LoginIdpLinkEmail.js.map +1 -1
  357. package/login/pages/LoginOauth2DeviceVerifyUserCode.d.ts +3 -3
  358. package/login/pages/LoginOauth2DeviceVerifyUserCode.js +3 -4
  359. package/login/pages/LoginOauth2DeviceVerifyUserCode.js.map +1 -1
  360. package/login/pages/LoginOauthGrant.d.ts +3 -3
  361. package/login/pages/LoginOauthGrant.js +4 -5
  362. package/login/pages/LoginOauthGrant.js.map +1 -1
  363. package/login/pages/LoginOtp.d.ts +1 -1
  364. package/login/pages/LoginOtp.js +5 -4
  365. package/login/pages/LoginOtp.js.map +1 -1
  366. package/login/pages/LoginPageExpired.d.ts +1 -1
  367. package/login/pages/LoginPageExpired.js +1 -1
  368. package/login/pages/LoginPageExpired.js.map +1 -1
  369. package/login/pages/LoginPassword.d.ts +1 -1
  370. package/login/pages/LoginPassword.js +9 -7
  371. package/login/pages/LoginPassword.js.map +1 -1
  372. package/login/pages/LoginRecoveryAuthnCodeConfig.d.ts +1 -1
  373. package/login/pages/LoginRecoveryAuthnCodeConfig.js +16 -16
  374. package/login/pages/LoginRecoveryAuthnCodeConfig.js.map +1 -1
  375. package/login/pages/LoginRecoveryAuthnCodeInput.d.ts +1 -1
  376. package/login/pages/LoginRecoveryAuthnCodeInput.js +5 -4
  377. package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -1
  378. package/login/pages/LoginResetOtp.d.ts +1 -1
  379. package/login/pages/LoginResetOtp.js +3 -4
  380. package/login/pages/LoginResetOtp.js.map +1 -1
  381. package/login/pages/LoginResetPassword.d.ts +1 -1
  382. package/login/pages/LoginResetPassword.js +6 -5
  383. package/login/pages/LoginResetPassword.js.map +1 -1
  384. package/login/pages/LoginUpdatePassword.d.ts +1 -1
  385. package/login/pages/LoginUpdatePassword.js +12 -9
  386. package/login/pages/LoginUpdatePassword.js.map +1 -1
  387. package/login/pages/LoginUpdateProfile.d.ts +4 -3
  388. package/login/pages/LoginUpdateProfile.js +5 -9
  389. package/login/pages/LoginUpdateProfile.js.map +1 -1
  390. package/login/pages/LoginUsername.d.ts +1 -1
  391. package/login/pages/LoginUsername.js +5 -5
  392. package/login/pages/LoginUsername.js.map +1 -1
  393. package/login/pages/LoginVerifyEmail.d.ts +1 -1
  394. package/login/pages/LoginVerifyEmail.js +1 -1
  395. package/login/pages/LoginVerifyEmail.js.map +1 -1
  396. package/login/pages/LoginX509Info.d.ts +1 -1
  397. package/login/pages/LoginX509Info.js +3 -4
  398. package/login/pages/LoginX509Info.js.map +1 -1
  399. package/login/pages/LogoutConfirm.d.ts +1 -1
  400. package/login/pages/LogoutConfirm.js +3 -4
  401. package/login/pages/LogoutConfirm.js.map +1 -1
  402. package/login/pages/PageProps.d.ts +3 -5
  403. package/login/pages/Register.d.ts +4 -3
  404. package/login/pages/Register.js +9 -19
  405. package/login/pages/Register.js.map +1 -1
  406. package/login/pages/SamlPostForm.d.ts +1 -1
  407. package/login/pages/SamlPostForm.js +2 -2
  408. package/login/pages/SamlPostForm.js.map +1 -1
  409. package/login/pages/SelectAuthenticator.d.ts +2 -2
  410. package/login/pages/SelectAuthenticator.js +4 -8
  411. package/login/pages/SelectAuthenticator.js.map +1 -1
  412. package/login/pages/Terms.d.ts +2 -2
  413. package/login/pages/Terms.js +3 -10
  414. package/login/pages/Terms.js.map +1 -1
  415. package/login/pages/UpdateEmail.d.ts +3 -2
  416. package/login/pages/UpdateEmail.js +6 -10
  417. package/login/pages/UpdateEmail.js.map +1 -1
  418. package/login/pages/WebauthnAuthenticate.d.ts +1 -1
  419. package/login/pages/WebauthnAuthenticate.js +25 -22
  420. package/login/pages/WebauthnAuthenticate.js.map +1 -1
  421. package/login/pages/WebauthnError.d.ts +1 -1
  422. package/login/pages/WebauthnError.js +4 -5
  423. package/login/pages/WebauthnError.js.map +1 -1
  424. package/login/pages/WebauthnRegister.d.ts +1 -1
  425. package/login/pages/WebauthnRegister.js +16 -17
  426. package/login/pages/WebauthnRegister.js.map +1 -1
  427. package/package.json +824 -710
  428. package/src/PUBLIC_URL.ts +4 -4
  429. package/src/account/{Fallback.tsx → DefaultPage.tsx} +5 -5
  430. package/src/account/{kcContext → KcContext}/KcContext.ts +28 -3
  431. package/src/account/KcContext/getKcContextMock.ts +69 -0
  432. package/src/account/KcContext/index.ts +2 -0
  433. package/src/account/KcContext/kcContextMocks.ts +193 -0
  434. package/src/account/Template.tsx +20 -17
  435. package/src/account/TemplateProps.ts +4 -5
  436. package/src/account/i18n/GenericI18n.tsx +6 -0
  437. package/src/account/i18n/i18n.tsx +164 -144
  438. package/src/account/i18n/index.ts +5 -1
  439. package/src/account/i18n/{baseMessages → messages_defaultSet}/ar.ts +3 -1
  440. package/src/account/i18n/{baseMessages → messages_defaultSet}/ca.ts +3 -1
  441. package/src/account/i18n/{baseMessages → messages_defaultSet}/cs.ts +3 -1
  442. package/src/account/i18n/{baseMessages → messages_defaultSet}/da.ts +3 -1
  443. package/src/account/i18n/{baseMessages → messages_defaultSet}/de.ts +3 -1
  444. package/src/account/i18n/{baseMessages → messages_defaultSet}/el.ts +3 -1
  445. package/src/account/i18n/{baseMessages → messages_defaultSet}/en.ts +3 -1
  446. package/src/account/i18n/{baseMessages → messages_defaultSet}/es.ts +3 -1
  447. package/src/account/i18n/{baseMessages → messages_defaultSet}/fa.ts +3 -1
  448. package/src/account/i18n/{baseMessages → messages_defaultSet}/fi.ts +3 -1
  449. package/src/account/i18n/{baseMessages → messages_defaultSet}/fr.ts +3 -1
  450. package/src/account/i18n/{baseMessages → messages_defaultSet}/hu.ts +3 -1
  451. package/src/account/i18n/{baseMessages → messages_defaultSet}/index.ts +3 -3
  452. package/src/account/i18n/{baseMessages → messages_defaultSet}/it.ts +3 -1
  453. package/src/account/i18n/{baseMessages → messages_defaultSet}/ja.ts +3 -1
  454. package/src/account/i18n/{baseMessages → messages_defaultSet}/lt.ts +3 -1
  455. package/src/account/i18n/{baseMessages → messages_defaultSet}/lv.ts +3 -1
  456. package/src/account/i18n/{baseMessages → messages_defaultSet}/nl.ts +3 -1
  457. package/src/account/i18n/{baseMessages → messages_defaultSet}/no.ts +3 -1
  458. package/src/account/i18n/{baseMessages → messages_defaultSet}/pl.ts +3 -1
  459. package/src/account/i18n/{baseMessages → messages_defaultSet}/pt-BR.ts +3 -1
  460. package/src/account/i18n/{baseMessages → messages_defaultSet}/ru.ts +3 -1
  461. package/src/account/i18n/{baseMessages → messages_defaultSet}/sk.ts +3 -1
  462. package/src/account/i18n/{baseMessages → messages_defaultSet}/sv.ts +3 -1
  463. package/src/account/i18n/{baseMessages → messages_defaultSet}/th.ts +3 -1
  464. package/src/account/i18n/{baseMessages → messages_defaultSet}/tr.ts +3 -1
  465. package/src/account/i18n/{baseMessages → messages_defaultSet}/uk.ts +3 -1
  466. package/src/account/i18n/{baseMessages → messages_defaultSet}/zh-CN.ts +3 -1
  467. package/src/account/i18n/useI18n.tsx +95 -0
  468. package/src/account/index.ts +3 -10
  469. package/src/account/lib/kcClsx.ts +25 -0
  470. package/src/account/pages/Account.tsx +12 -18
  471. package/src/account/pages/Applications.tsx +8 -10
  472. package/src/account/pages/FederatedIdentity.tsx +4 -4
  473. package/src/account/pages/Log.tsx +5 -5
  474. package/src/account/pages/PageProps.ts +4 -6
  475. package/src/account/pages/Password.tsx +17 -19
  476. package/src/account/pages/Sessions.tsx +5 -6
  477. package/src/account/pages/Totp.tsx +32 -42
  478. package/src/bin/add-story.ts +137 -0
  479. package/src/bin/copy-keycloak-resources-to-public.ts +3 -6
  480. package/src/bin/eject-page.ts +364 -0
  481. package/src/bin/initialize-account-theme/copyBoilerplate.ts +32 -0
  482. package/src/bin/initialize-account-theme/index.ts +1 -0
  483. package/src/bin/initialize-account-theme/initialize-account-theme.ts +112 -0
  484. package/src/bin/initialize-account-theme/initializeAccountTheme_multiPage.ts +21 -0
  485. package/src/bin/initialize-account-theme/initializeAccountTheme_singlePage.ts +152 -0
  486. package/src/bin/initialize-account-theme/src/multi-page/KcContext.ts +12 -0
  487. package/src/bin/initialize-account-theme/src/multi-page/KcPage.tsx +25 -0
  488. package/src/bin/initialize-account-theme/src/multi-page/KcPageStory.tsx +38 -0
  489. package/src/bin/initialize-account-theme/src/multi-page/i18n.ts +5 -0
  490. package/src/bin/initialize-account-theme/src/single-page/KcContext.ts +7 -0
  491. package/src/bin/initialize-account-theme/src/single-page/KcPage.tsx +11 -0
  492. package/src/bin/initialize-account-theme/updateAccountThemeImplementationInConfig.ts +92 -0
  493. package/src/bin/initialize-email-theme.ts +30 -26
  494. package/src/bin/keycloakify/buildJars/buildJar.ts +155 -80
  495. package/src/bin/keycloakify/buildJars/buildJars.ts +39 -32
  496. package/src/bin/keycloakify/buildJars/extensionVersions.ts +3 -2
  497. package/src/bin/keycloakify/buildJars/generatePom.ts +19 -11
  498. package/src/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.ts +44 -12
  499. package/src/bin/keycloakify/generateFtl/generateFtl.ts +79 -53
  500. package/src/bin/keycloakify/generateFtl/kcContextDeclarationTemplate.ftl +667 -0
  501. package/src/bin/keycloakify/generateResources/bringInAccountV1.ts +89 -0
  502. package/src/bin/keycloakify/generateResources/generateMessageProperties.ts +192 -0
  503. package/src/bin/keycloakify/generateResources/generateResources.ts +42 -0
  504. package/src/bin/keycloakify/generateResources/generateResourcesForMainTheme.ts +366 -0
  505. package/src/bin/keycloakify/generateResources/generateResourcesForThemeVariant.ts +70 -0
  506. package/src/bin/keycloakify/generateResources/index.ts +1 -0
  507. package/src/bin/keycloakify/{generateSrcMainResources → generateResources}/readExtraPageNames.ts +20 -9
  508. package/src/bin/keycloakify/generateResources/readFieldNameUsage.ts +91 -0
  509. package/src/bin/keycloakify/keycloakify.ts +53 -17
  510. package/src/bin/keycloakify/replacers/replaceImportsInCssCode.ts +52 -42
  511. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.ts +14 -11
  512. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/vite.ts +34 -19
  513. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.ts +53 -18
  514. package/src/bin/main.ts +113 -44
  515. package/src/bin/shared/KeycloakVersionRange.ts +5 -3
  516. package/src/bin/shared/buildContext.ts +977 -0
  517. package/src/bin/shared/constants.ts +23 -15
  518. package/src/bin/shared/copyKeycloakResourcesToPublic.ts +34 -23
  519. package/src/bin/shared/downloadKeycloakDefaultTheme.ts +297 -0
  520. package/src/bin/shared/downloadKeycloakStaticResources.ts +31 -27
  521. package/src/bin/shared/generateKcGenTs.ts +175 -0
  522. package/src/bin/shared/getLatestsSemVersionedTag.ts +201 -0
  523. package/src/bin/shared/metaInfKeycloakThemes.ts +25 -19
  524. package/src/bin/shared/promptKeycloakVersion.ts +39 -75
  525. package/src/bin/start-keycloak/appBuild.ts +184 -0
  526. package/src/bin/start-keycloak/index.ts +1 -0
  527. package/src/bin/start-keycloak/keycloakifyBuild.ts +43 -0
  528. package/src/bin/start-keycloak/myrealm-realm-18.json +2155 -0
  529. package/src/bin/start-keycloak/myrealm-realm-19.json +2186 -0
  530. package/src/bin/start-keycloak/myrealm-realm-20.json +2197 -0
  531. package/src/bin/start-keycloak/myrealm-realm-21.json +2201 -0
  532. package/src/bin/start-keycloak/myrealm-realm-23.json +2155 -0
  533. package/src/bin/start-keycloak/myrealm-realm-24.json +2318 -0
  534. package/src/bin/start-keycloak/myrealm-realm-25.json +2400 -0
  535. package/src/bin/start-keycloak/start-keycloak.ts +523 -0
  536. package/src/bin/tools/SemVer.ts +32 -13
  537. package/src/bin/tools/String.prototype.replaceAll.ts +9 -2
  538. package/src/bin/tools/assertNoPnpmDlx.ts +17 -0
  539. package/src/bin/tools/crawl.ts +4 -1
  540. package/src/bin/tools/crc32.ts +42 -24
  541. package/src/bin/tools/downloadAndExtractArchive.ts +273 -0
  542. package/src/bin/tools/escapeStringForPropertiesFile.ts +64 -0
  543. package/src/bin/tools/extractArchive.ts +140 -0
  544. package/src/bin/tools/fetchProxyOptions.ts +100 -56
  545. package/src/bin/tools/getAbsoluteAndInOsFormatPath.ts +10 -2
  546. package/src/bin/tools/npmInstall.ts +63 -0
  547. package/src/bin/tools/octokit-addons/getLatestsSemVersionedTag.ts +11 -4
  548. package/src/bin/tools/octokit-addons/listTags.ts +15 -4
  549. package/src/bin/tools/partitionPromiseSettledResults.ts +12 -3
  550. package/src/bin/tools/readThisNpmPackageVersion.ts +5 -1
  551. package/src/bin/tools/transformCodebase.ts +29 -10
  552. package/src/bin/tools/trimIndent.ts +4 -1
  553. package/src/bin/tsconfig.json +7 -4
  554. package/src/bin/update-kc-gen.ts +13 -0
  555. package/src/lib/getKcClsx.ts +89 -0
  556. package/src/login/{Fallback.tsx → DefaultPage.tsx} +7 -6
  557. package/src/login/{kcContext → KcContext}/KcContext.ts +66 -56
  558. package/src/login/KcContext/getKcContextMock.ts +69 -0
  559. package/src/login/KcContext/index.ts +8 -0
  560. package/src/login/KcContext/kcContextMocks.ts +582 -0
  561. package/src/login/Template.tsx +79 -104
  562. package/src/login/TemplateProps.ts +3 -7
  563. package/src/login/UserProfileFormFields.tsx +139 -220
  564. package/src/login/UserProfileFormFieldsProps.tsx +22 -0
  565. package/src/login/i18n/GenericI18n.tsx +6 -0
  566. package/src/login/i18n/i18n.tsx +167 -147
  567. package/src/login/i18n/index.ts +5 -1
  568. package/src/login/i18n/{baseMessages → messages_defaultSet}/ar.ts +11 -2
  569. package/src/login/i18n/{baseMessages → messages_defaultSet}/ca.ts +12 -3
  570. package/src/login/i18n/{baseMessages → messages_defaultSet}/cs.ts +11 -2
  571. package/src/login/i18n/{baseMessages → messages_defaultSet}/da.ts +11 -2
  572. package/src/login/i18n/{baseMessages → messages_defaultSet}/de.ts +11 -2
  573. package/src/login/i18n/{baseMessages → messages_defaultSet}/el.ts +11 -3
  574. package/src/login/i18n/{baseMessages → messages_defaultSet}/en.ts +12 -3
  575. package/src/login/i18n/{baseMessages → messages_defaultSet}/es.ts +12 -3
  576. package/src/login/i18n/{baseMessages → messages_defaultSet}/fa.ts +11 -3
  577. package/src/login/i18n/{baseMessages → messages_defaultSet}/fi.ts +11 -2
  578. package/src/login/i18n/{baseMessages → messages_defaultSet}/fr.ts +11 -2
  579. package/src/login/i18n/{baseMessages → messages_defaultSet}/hu.ts +12 -3
  580. package/src/login/i18n/{baseMessages → messages_defaultSet}/index.ts +3 -3
  581. package/src/login/i18n/{baseMessages → messages_defaultSet}/it.ts +11 -2
  582. package/src/login/i18n/{baseMessages → messages_defaultSet}/ja.ts +11 -2
  583. package/src/login/i18n/{baseMessages → messages_defaultSet}/lt.ts +11 -2
  584. package/src/login/i18n/{baseMessages → messages_defaultSet}/lv.ts +11 -2
  585. package/src/login/i18n/{baseMessages → messages_defaultSet}/nl.ts +11 -2
  586. package/src/login/i18n/{baseMessages → messages_defaultSet}/no.ts +11 -2
  587. package/src/login/i18n/{baseMessages → messages_defaultSet}/pl.ts +11 -2
  588. package/src/login/i18n/{baseMessages → messages_defaultSet}/pt-BR.ts +11 -2
  589. package/src/login/i18n/{baseMessages → messages_defaultSet}/ru.ts +11 -2
  590. package/src/login/i18n/{baseMessages → messages_defaultSet}/sk.ts +11 -2
  591. package/src/login/i18n/{baseMessages → messages_defaultSet}/sv.ts +11 -2
  592. package/src/login/i18n/{baseMessages → messages_defaultSet}/th.ts +11 -2
  593. package/src/login/i18n/{baseMessages → messages_defaultSet}/tr.ts +11 -2
  594. package/src/login/i18n/{baseMessages → messages_defaultSet}/uk.ts +11 -2
  595. package/src/login/i18n/{baseMessages → messages_defaultSet}/zh-CN.ts +12 -3
  596. package/src/login/i18n/useI18n.tsx +95 -0
  597. package/src/login/index.ts +3 -11
  598. package/src/login/lib/kcClsx.ts +143 -0
  599. package/src/login/lib/useUserProfileForm.tsx +535 -354
  600. package/src/login/pages/Code.tsx +8 -5
  601. package/src/login/pages/DeleteAccountConfirm.tsx +15 -10
  602. package/src/login/pages/DeleteCredential.tsx +9 -7
  603. package/src/login/pages/Error.tsx +10 -3
  604. package/src/login/pages/FrontchannelLogout.tsx +6 -3
  605. package/src/login/pages/IdpReviewUserProfile.tsx +20 -21
  606. package/src/login/pages/Info.tsx +31 -14
  607. package/src/login/pages/Login.tsx +51 -59
  608. package/src/login/pages/LoginConfigTotp.tsx +49 -43
  609. package/src/login/pages/LoginIdpLinkConfirm.tsx +7 -18
  610. package/src/login/pages/LoginIdpLinkEmail.tsx +9 -3
  611. package/src/login/pages/LoginOauth2DeviceVerifyUserCode.tsx +24 -23
  612. package/src/login/pages/LoginOauthGrant.tsx +14 -20
  613. package/src/login/pages/LoginOtp.tsx +34 -32
  614. package/src/login/pages/LoginPageExpired.tsx +2 -2
  615. package/src/login/pages/LoginPassword.tsx +29 -34
  616. package/src/login/pages/LoginRecoveryAuthnCodeConfig.tsx +34 -34
  617. package/src/login/pages/LoginRecoveryAuthnCodeInput.tsx +26 -24
  618. package/src/login/pages/LoginResetOtp.tsx +19 -22
  619. package/src/login/pages/LoginResetPassword.tsx +28 -26
  620. package/src/login/pages/LoginUpdatePassword.tsx +82 -84
  621. package/src/login/pages/LoginUpdateProfile.tsx +32 -30
  622. package/src/login/pages/LoginUsername.tsx +23 -34
  623. package/src/login/pages/LoginVerifyEmail.tsx +5 -2
  624. package/src/login/pages/LoginX509Info.tsx +24 -33
  625. package/src/login/pages/LogoutConfirm.tsx +8 -14
  626. package/src/login/pages/PageProps.ts +3 -5
  627. package/src/login/pages/Register.tsx +54 -54
  628. package/src/login/pages/SamlPostForm.tsx +3 -3
  629. package/src/login/pages/SelectAuthenticator.tsx +24 -25
  630. package/src/login/pages/Terms.tsx +14 -24
  631. package/src/login/pages/UpdateEmail.tsx +30 -33
  632. package/src/login/pages/WebauthnAuthenticate.tsx +43 -47
  633. package/src/login/pages/WebauthnError.tsx +15 -19
  634. package/src/login/pages/WebauthnRegister.tsx +28 -37
  635. package/src/tools/Array.prototype.every.ts +4 -1
  636. package/src/tools/LazyOrNot.ts +3 -1
  637. package/src/tools/Object.fromEntries.ts +23 -0
  638. package/src/tools/StatefulObservable/README.md +16 -0
  639. package/src/tools/StatefulObservable/StatefulObservable.ts +58 -0
  640. package/src/tools/StatefulObservable/hooks/index.ts +2 -0
  641. package/src/tools/StatefulObservable/hooks/useObservable.ts +25 -0
  642. package/src/tools/StatefulObservable/hooks/useRerenderOnChange.ts +19 -0
  643. package/src/tools/StatefulObservable/index.ts +2 -0
  644. package/src/tools/ValueOf.ts +2 -0
  645. package/src/tools/clsx.ts +6 -42
  646. package/src/tools/clsx_withTransform.ts +55 -0
  647. package/src/tools/deepAssign.ts +57 -19
  648. package/src/tools/formatNumber.ts +7 -3
  649. package/src/tools/structuredCloneButFunctions.ts +24 -0
  650. package/src/tools/useConstCallback.ts +3 -1
  651. package/src/tools/useInsertLinkTags.ts +75 -63
  652. package/src/tools/useInsertScriptTags.ts +76 -72
  653. package/src/tools/useOnFirstMount.ts +18 -0
  654. package/src/tools/useSetClassName.ts +4 -1
  655. package/src/vite-plugin/vite-plugin.ts +78 -40
  656. package/stories/account/pages/Account.stories.tsx +18 -0
  657. package/stories/account/pages/Applications.stories.tsx +80 -0
  658. package/stories/account/pages/FederatedIdentity.stories.tsx +38 -0
  659. package/stories/account/pages/Log.stories.tsx +357 -0
  660. package/stories/account/pages/Password.stories.tsx +28 -0
  661. package/stories/account/pages/Sessions.stories.tsx +59 -0
  662. package/stories/account/pages/Totp.stories.tsx +182 -0
  663. package/stories/account-spa/index.stories.tsx +94 -0
  664. package/stories/intro/intro.stories.tsx +90 -0
  665. package/stories/login/pages/Code.stories.tsx +18 -0
  666. package/stories/login/pages/DeleteAccountConfirm.stories.tsx +18 -0
  667. package/stories/login/pages/DeleteCredential.stories.tsx +18 -0
  668. package/stories/login/pages/Error.stories.tsx +28 -0
  669. package/stories/login/pages/FrontchannelLogout.stories.tsx +18 -0
  670. package/stories/login/pages/IdpReviewUserProfile.stories.tsx +18 -0
  671. package/stories/login/pages/Info.stories.tsx +57 -0
  672. package/stories/login/pages/Login.stories.tsx +233 -0
  673. package/stories/login/pages/LoginConfigTotp.stories.tsx +43 -0
  674. package/stories/login/pages/LoginDeviceVerifyUserCode.stories.tsx +18 -0
  675. package/stories/login/pages/LoginIdpLinkConfirm.stories.tsx +18 -0
  676. package/stories/login/pages/LoginIdpLinkEmail.stories.tsx +18 -0
  677. package/stories/login/pages/LoginOauth2DeviceVerifyUserCode.stories.tsx +18 -0
  678. package/stories/login/pages/LoginOauthGrant.stories.tsx +18 -0
  679. package/stories/login/pages/LoginOtp.stories.tsx +18 -0
  680. package/stories/login/pages/LoginPageExpired.stories.tsx +18 -0
  681. package/stories/login/pages/LoginPassword.stories.tsx +18 -0
  682. package/stories/login/pages/LoginRecoveryAuthnCodeConfig.stories.tsx +18 -0
  683. package/stories/login/pages/LoginRecoveryAuthnCodeInput.stories.tsx +18 -0
  684. package/stories/login/pages/LoginResetOtp.stories.tsx +18 -0
  685. package/stories/login/pages/LoginResetPassword.stories.tsx +31 -0
  686. package/stories/login/pages/LoginUpdatePassword.stories.tsx +18 -0
  687. package/stories/login/pages/LoginUpdateProfile.stories.tsx +18 -0
  688. package/stories/login/pages/LoginUsername.stories.tsx +31 -0
  689. package/stories/login/pages/LoginVerifyEmail.stories.tsx +30 -0
  690. package/stories/login/pages/LoginX509Info.stories.tsx +18 -0
  691. package/stories/login/pages/LogoutConfirm.stories.tsx +18 -0
  692. package/stories/login/pages/Register.stories.tsx +187 -0
  693. package/stories/login/pages/SamlPostForm.stories.tsx +18 -0
  694. package/stories/login/pages/SelectAuthenticator.stories.tsx +84 -0
  695. package/stories/login/pages/Terms.stories.tsx +47 -0
  696. package/stories/login/pages/UpdateEmail.stories.tsx +18 -0
  697. package/stories/login/pages/WebauthnAuthenticate.stories.tsx +18 -0
  698. package/stories/login/pages/WebauthnError.stories.tsx +18 -0
  699. package/stories/login/pages/WebauthnRegister.stories.tsx +18 -0
  700. package/tools/Array.prototype.every.js +2 -1
  701. package/tools/Array.prototype.every.js.map +1 -1
  702. package/tools/HTMLElement.prototype.prepend.js.map +1 -1
  703. package/tools/Object.fromEntries.d.ts +1 -0
  704. package/tools/Object.fromEntries.js +17 -0
  705. package/tools/Object.fromEntries.js.map +1 -0
  706. package/tools/StatefulObservable/StatefulObservable.d.ts +8 -0
  707. package/tools/StatefulObservable/StatefulObservable.js +36 -0
  708. package/tools/StatefulObservable/StatefulObservable.js.map +1 -0
  709. package/tools/StatefulObservable/hooks/index.d.ts +2 -0
  710. package/tools/StatefulObservable/hooks/index.js +3 -0
  711. package/tools/StatefulObservable/hooks/index.js.map +1 -0
  712. package/tools/StatefulObservable/hooks/useObservable.d.ts +8 -0
  713. package/tools/StatefulObservable/hooks/useObservable.js +17 -0
  714. package/tools/StatefulObservable/hooks/useObservable.js.map +1 -0
  715. package/tools/StatefulObservable/hooks/useRerenderOnChange.d.ts +5 -0
  716. package/tools/StatefulObservable/hooks/useRerenderOnChange.js +14 -0
  717. package/tools/StatefulObservable/hooks/useRerenderOnChange.js.map +1 -0
  718. package/tools/StatefulObservable/index.d.ts +2 -0
  719. package/tools/StatefulObservable/index.js +3 -0
  720. package/tools/StatefulObservable/index.js.map +1 -0
  721. package/tools/ValueOf.d.ts +2 -0
  722. package/tools/ValueOf.js +2 -0
  723. package/tools/ValueOf.js.map +1 -0
  724. package/tools/clsx.d.ts +3 -2
  725. package/tools/clsx.js +5 -41
  726. package/tools/clsx.js.map +1 -1
  727. package/tools/clsx_withTransform.d.ts +5 -0
  728. package/tools/clsx_withTransform.js +43 -0
  729. package/tools/clsx_withTransform.js.map +1 -0
  730. package/tools/deepAssign.d.ts +1 -0
  731. package/tools/deepAssign.js +41 -16
  732. package/tools/deepAssign.js.map +1 -1
  733. package/tools/formatNumber.js +2 -1
  734. package/tools/formatNumber.js.map +1 -1
  735. package/tools/structuredCloneButFunctions.d.ts +7 -0
  736. package/tools/structuredCloneButFunctions.js +19 -0
  737. package/tools/structuredCloneButFunctions.js.map +1 -0
  738. package/tools/useConstCallback.js.map +1 -1
  739. package/tools/useInsertLinkTags.d.ts +11 -6
  740. package/tools/useInsertLinkTags.js +59 -52
  741. package/tools/useInsertLinkTags.js.map +1 -1
  742. package/tools/useInsertScriptTags.d.ts +15 -6
  743. package/tools/useInsertScriptTags.js +62 -61
  744. package/tools/useInsertScriptTags.js.map +1 -1
  745. package/tools/useOnFirstMount.d.ts +2 -0
  746. package/tools/useOnFirstMount.js +15 -0
  747. package/tools/useOnFirstMount.js.map +1 -0
  748. package/tools/useSetClassName.js.map +1 -1
  749. package/vite-plugin/index.js +53519 -0
  750. package/vite-plugin/vite-plugin.d.ts +7 -0
  751. package/account/Fallback.d.ts +0 -5
  752. package/account/Fallback.js.map +0 -1
  753. package/account/i18n/baseMessages/ar.js.map +0 -1
  754. package/account/i18n/baseMessages/ca.js.map +0 -1
  755. package/account/i18n/baseMessages/cs.js.map +0 -1
  756. package/account/i18n/baseMessages/da.js.map +0 -1
  757. package/account/i18n/baseMessages/de.js.map +0 -1
  758. package/account/i18n/baseMessages/el.js.map +0 -1
  759. package/account/i18n/baseMessages/en.js.map +0 -1
  760. package/account/i18n/baseMessages/es.js.map +0 -1
  761. package/account/i18n/baseMessages/fa.js.map +0 -1
  762. package/account/i18n/baseMessages/fi.js.map +0 -1
  763. package/account/i18n/baseMessages/fr.js.map +0 -1
  764. package/account/i18n/baseMessages/hu.js.map +0 -1
  765. package/account/i18n/baseMessages/index.js.map +0 -1
  766. package/account/i18n/baseMessages/it.js.map +0 -1
  767. package/account/i18n/baseMessages/ja.js.map +0 -1
  768. package/account/i18n/baseMessages/lt.js.map +0 -1
  769. package/account/i18n/baseMessages/lv.js.map +0 -1
  770. package/account/i18n/baseMessages/nl.js.map +0 -1
  771. package/account/i18n/baseMessages/no.js.map +0 -1
  772. package/account/i18n/baseMessages/pl.js.map +0 -1
  773. package/account/i18n/baseMessages/pt-BR.js.map +0 -1
  774. package/account/i18n/baseMessages/ru.js.map +0 -1
  775. package/account/i18n/baseMessages/sk.js.map +0 -1
  776. package/account/i18n/baseMessages/sv.js.map +0 -1
  777. package/account/i18n/baseMessages/th.js.map +0 -1
  778. package/account/i18n/baseMessages/tr.js.map +0 -1
  779. package/account/i18n/baseMessages/uk.js.map +0 -1
  780. package/account/i18n/baseMessages/zh-CN.js.map +0 -1
  781. package/account/kcContext/KcContext.js.map +0 -1
  782. package/account/kcContext/createGetKcContext.d.ts +0 -19
  783. package/account/kcContext/createGetKcContext.js +0 -73
  784. package/account/kcContext/createGetKcContext.js.map +0 -1
  785. package/account/kcContext/getKcContext.d.ts +0 -13
  786. package/account/kcContext/getKcContext.js +0 -13
  787. package/account/kcContext/getKcContext.js.map +0 -1
  788. package/account/kcContext/getKcContextFromWindow.d.ts +0 -8
  789. package/account/kcContext/getKcContextFromWindow.js +0 -5
  790. package/account/kcContext/getKcContextFromWindow.js.map +0 -1
  791. package/account/kcContext/index.d.ts +0 -1
  792. package/account/kcContext/index.js +0 -2
  793. package/account/kcContext/index.js.map +0 -1
  794. package/account/kcContext/kcContextMocks.js +0 -215
  795. package/account/kcContext/kcContextMocks.js.map +0 -1
  796. package/account/lib/useGetClassName.d.ts +0 -7
  797. package/account/lib/useGetClassName.js +0 -19
  798. package/account/lib/useGetClassName.js.map +0 -1
  799. package/bin/420.index.js +0 -508
  800. package/bin/509.index.js +0 -438
  801. package/lib/isStorybook.d.ts +0 -1
  802. package/lib/isStorybook.js +0 -2
  803. package/lib/isStorybook.js.map +0 -1
  804. package/lib/useGetClassName.d.ts +0 -10
  805. package/lib/useGetClassName.js +0 -14
  806. package/lib/useGetClassName.js.map +0 -1
  807. package/login/Fallback.js.map +0 -1
  808. package/login/i18n/baseMessages/ar.js.map +0 -1
  809. package/login/i18n/baseMessages/ca.js.map +0 -1
  810. package/login/i18n/baseMessages/cs.js.map +0 -1
  811. package/login/i18n/baseMessages/da.js.map +0 -1
  812. package/login/i18n/baseMessages/de.js.map +0 -1
  813. package/login/i18n/baseMessages/el.js.map +0 -1
  814. package/login/i18n/baseMessages/en.js.map +0 -1
  815. package/login/i18n/baseMessages/es.js.map +0 -1
  816. package/login/i18n/baseMessages/fa.js.map +0 -1
  817. package/login/i18n/baseMessages/fi.js.map +0 -1
  818. package/login/i18n/baseMessages/fr.js.map +0 -1
  819. package/login/i18n/baseMessages/hu.js.map +0 -1
  820. package/login/i18n/baseMessages/it.js.map +0 -1
  821. package/login/i18n/baseMessages/ja.js.map +0 -1
  822. package/login/i18n/baseMessages/lt.js.map +0 -1
  823. package/login/i18n/baseMessages/lv.js.map +0 -1
  824. package/login/i18n/baseMessages/nl.js.map +0 -1
  825. package/login/i18n/baseMessages/no.js.map +0 -1
  826. package/login/i18n/baseMessages/pl.js.map +0 -1
  827. package/login/i18n/baseMessages/pt-BR.js.map +0 -1
  828. package/login/i18n/baseMessages/ru.js.map +0 -1
  829. package/login/i18n/baseMessages/sk.js.map +0 -1
  830. package/login/i18n/baseMessages/sv.js.map +0 -1
  831. package/login/i18n/baseMessages/th.js.map +0 -1
  832. package/login/i18n/baseMessages/tr.js.map +0 -1
  833. package/login/i18n/baseMessages/uk.js.map +0 -1
  834. package/login/i18n/baseMessages/zh-CN.js.map +0 -1
  835. package/login/kcContext/KcContext.js.map +0 -1
  836. package/login/kcContext/createGetKcContext.d.ts +0 -19
  837. package/login/kcContext/createGetKcContext.js +0 -109
  838. package/login/kcContext/createGetKcContext.js.map +0 -1
  839. package/login/kcContext/getKcContext.d.ts +0 -13
  840. package/login/kcContext/getKcContext.js +0 -13
  841. package/login/kcContext/getKcContext.js.map +0 -1
  842. package/login/kcContext/getKcContextFromWindow.d.ts +0 -8
  843. package/login/kcContext/getKcContextFromWindow.js +0 -5
  844. package/login/kcContext/getKcContextFromWindow.js.map +0 -1
  845. package/login/kcContext/index.d.ts +0 -1
  846. package/login/kcContext/index.js +0 -2
  847. package/login/kcContext/index.js.map +0 -1
  848. package/login/kcContext/kcContextMocks.js +0 -390
  849. package/login/kcContext/kcContextMocks.js.map +0 -1
  850. package/login/lib/useDownloadTerms.d.ts +0 -17
  851. package/login/lib/useDownloadTerms.js +0 -32
  852. package/login/lib/useDownloadTerms.js.map +0 -1
  853. package/login/lib/useGetClassName.d.ts +0 -7
  854. package/login/lib/useGetClassName.js +0 -130
  855. package/login/lib/useGetClassName.js.map +0 -1
  856. package/src/account/kcContext/createGetKcContext.ts +0 -108
  857. package/src/account/kcContext/getKcContext.ts +0 -21
  858. package/src/account/kcContext/getKcContextFromWindow.ts +0 -11
  859. package/src/account/kcContext/index.ts +0 -1
  860. package/src/account/kcContext/kcContextMocks.ts +0 -260
  861. package/src/account/lib/useGetClassName.ts +0 -20
  862. package/src/bin/download-builtin-keycloak-theme.ts +0 -30
  863. package/src/bin/eject-keycloak-page.ts +0 -126
  864. package/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +0 -521
  865. package/src/bin/keycloakify/generateSrcMainResources/bringInAccountV1.ts +0 -79
  866. package/src/bin/keycloakify/generateSrcMainResources/generateMessageProperties.ts +0 -179
  867. package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResources.ts +0 -32
  868. package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForMainTheme.ts +0 -261
  869. package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForThemeVariant.ts +0 -56
  870. package/src/bin/keycloakify/generateSrcMainResources/index.ts +0 -1
  871. package/src/bin/keycloakify/generateSrcMainResources/readFieldNameUsage.ts +0 -56
  872. package/src/bin/keycloakify/generateStartKeycloakTestingContainer.ts +0 -60
  873. package/src/bin/keycloakify/replacers/replaceImportsInInlineCssCode.ts +0 -24
  874. package/src/bin/shared/buildOptions.ts +0 -277
  875. package/src/bin/shared/downloadAndUnzip.ts +0 -203
  876. package/src/bin/shared/downloadBuiltinKeycloakTheme.ts +0 -264
  877. package/src/bin/shared/getJarFileBasename.ts +0 -9
  878. package/src/bin/shared/getThemeSrcDirPath.ts +0 -47
  879. package/src/bin/start-keycloak.ts +0 -236
  880. package/src/bin/tools/getNpmWorkspaceRootDirPath.ts +0 -27
  881. package/src/bin/tools/unzip.ts +0 -141
  882. package/src/lib/isStorybook.ts +0 -1
  883. package/src/lib/useGetClassName.ts +0 -18
  884. package/src/login/kcContext/createGetKcContext.ts +0 -159
  885. package/src/login/kcContext/getKcContext.ts +0 -21
  886. package/src/login/kcContext/getKcContextFromWindow.ts +0 -11
  887. package/src/login/kcContext/index.ts +0 -1
  888. package/src/login/kcContext/kcContextMocks.ts +0 -630
  889. package/src/login/lib/useDownloadTerms.ts +0 -57
  890. package/src/login/lib/useGetClassName.ts +0 -132
  891. package/src/tools/AndByDiscriminatingKey.ts +0 -25
  892. package/src/tools/Markdown.ts +0 -3
  893. package/src/tools/deepClone.ts +0 -17
  894. package/src/tools/memoize.ts +0 -55
  895. package/tools/AndByDiscriminatingKey.d.ts +0 -5
  896. package/tools/AndByDiscriminatingKey.js +0 -2
  897. package/tools/AndByDiscriminatingKey.js.map +0 -1
  898. package/tools/Markdown.d.ts +0 -2
  899. package/tools/Markdown.js +0 -3
  900. package/tools/Markdown.js.map +0 -1
  901. package/tools/deepClone.d.ts +0 -2
  902. package/tools/deepClone.js +0 -14
  903. package/tools/deepClone.js.map +0 -1
  904. package/tools/memoize.d.ts +0 -7
  905. package/tools/memoize.js +0 -38
  906. package/tools/memoize.js.map +0 -1
  907. /package/account/{kcContext → KcContext}/KcContext.js +0 -0
  908. /package/login/{kcContext → KcContext}/KcContext.js +0 -0
@@ -12,22 +12,24 @@ var __rest = (this && this.__rest) || function (s, e) {
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
13
  import "../../tools/Array.prototype.every";
14
14
  import { useMemo, useReducer, useEffect, Fragment } from "react";
15
+ import { assert } from "tsafe/assert";
15
16
  import { id } from "tsafe/id";
17
+ import { structuredCloneButFunctions } from "../../tools/structuredCloneButFunctions";
16
18
  import { useConstCallback } from "../../tools/useConstCallback";
17
19
  import { emailRegexp } from "../../tools/emailRegExp";
18
- import { assert } from "tsafe/assert";
19
20
  import { formatNumber } from "../../tools/formatNumber";
20
- import { createUseInsertScriptTags } from "../../tools/useInsertScriptTags";
21
- const { useInsertScriptTags } = createUseInsertScriptTags();
21
+ import { useInsertScriptTags } from "../../tools/useInsertScriptTags";
22
+ assert();
22
23
  export function useUserProfileForm(params) {
23
24
  var _a, _b;
24
25
  const { kcContext, i18n, doMakeUserConfirmPassword } = params;
25
26
  const { insertScriptTags } = useInsertScriptTags({
26
- "scriptTags": Object.keys((_b = (_a = kcContext.profile) === null || _a === void 0 ? void 0 : _a.html5DataAnnotations) !== null && _b !== void 0 ? _b : {})
27
+ componentOrHookName: "useUserProfileForm",
28
+ scriptTags: Object.keys((_b = (_a = kcContext.profile) === null || _a === void 0 ? void 0 : _a.html5DataAnnotations) !== null && _b !== void 0 ? _b : {})
27
29
  .filter(key => key !== "kcMultivalued" && key !== "kcNumberFormat") // NOTE: Keycloakify handles it.
28
30
  .map(key => ({
29
- "type": "module",
30
- "src": `${kcContext.url.resourcesPath}/js/${key}.js`
31
+ type: "module",
32
+ src: `${kcContext.url.resourcesPath}/js/${key}.js`
31
33
  }))
32
34
  });
33
35
  useEffect(() => {
@@ -38,170 +40,214 @@ export function useUserProfileForm(params) {
38
40
  i18n
39
41
  });
40
42
  const initialState = useMemo(() => {
43
+ var _a, _b;
41
44
  // NOTE: We don't use te kcContext.profile.attributes directly because
42
45
  // they don't includes the password and password confirm fields and we want to add them.
43
- // Also, we want to polyfill the attributes for older Keycloak version before User Profile was introduced.
44
- // Finally we want to patch the changes made by Keycloak on the attributes format so we have an homogeneous
45
- // attributes format to work with.
46
- const syntheticAttributes = (() => {
47
- const syntheticAttributes = [];
48
- const attributes = (() => {
49
- var _a;
50
- retrocompat_patch: {
51
- if ("profile" in kcContext && "attributes" in kcContext.profile && kcContext.profile.attributes.length !== 0) {
52
- break retrocompat_patch;
53
- }
54
- if ("register" in kcContext && kcContext.register instanceof Object && "formData" in kcContext.register) {
55
- //NOTE: Handle legacy register.ftl page
56
- return ["firstName", "lastName", "email", "username"]
57
- .filter(name => (name !== "username" ? true : !kcContext.realm.registrationEmailAsUsername))
58
- .map(name => {
59
- var _a;
60
- return id({
61
- "name": name,
62
- "displayName": id(`\${${name}}`),
63
- "required": true,
64
- "value": (_a = kcContext.register.formData[name]) !== null && _a !== void 0 ? _a : "",
65
- "html5DataAnnotations": {},
66
- "readOnly": false,
67
- "validators": {},
68
- "annotations": {},
69
- "autocomplete": (() => {
70
- switch (name) {
71
- case "email":
72
- return "email";
73
- case "username":
74
- return "username";
75
- default:
76
- return undefined;
77
- }
78
- })()
79
- });
46
+ // We also want to apply some retro-compatibility and consistency patches.
47
+ const attributes = (() => {
48
+ var _a;
49
+ mock_user_profile_attributes_for_older_keycloak_versions: {
50
+ if ("profile" in kcContext &&
51
+ "attributesByName" in kcContext.profile &&
52
+ Object.keys(kcContext.profile.attributesByName).length !== 0) {
53
+ break mock_user_profile_attributes_for_older_keycloak_versions;
54
+ }
55
+ if ("register" in kcContext && kcContext.register instanceof Object && "formData" in kcContext.register) {
56
+ //NOTE: Handle legacy register.ftl page
57
+ return ["firstName", "lastName", "email", "username"]
58
+ .filter(name => (name !== "username" ? true : !kcContext.realm.registrationEmailAsUsername))
59
+ .map(name => {
60
+ var _a;
61
+ return id({
62
+ name: name,
63
+ displayName: id(`\${${name}}`),
64
+ required: true,
65
+ value: (_a = kcContext.register.formData[name]) !== null && _a !== void 0 ? _a : "",
66
+ html5DataAnnotations: {},
67
+ readOnly: false,
68
+ validators: {},
69
+ annotations: {},
70
+ autocomplete: (() => {
71
+ switch (name) {
72
+ case "email":
73
+ return "email";
74
+ case "username":
75
+ return "username";
76
+ default:
77
+ return undefined;
78
+ }
79
+ })()
80
80
  });
81
- }
82
- if ("user" in kcContext && kcContext.user instanceof Object) {
83
- //NOTE: Handle legacy login-update-profile.ftl
84
- return ["username", "email", "firstName", "lastName"]
85
- .filter(name => (name !== "username" ? true : kcContext.user.editUsernameAllowed))
86
- .map(name => {
87
- var _a;
88
- return id({
89
- "name": name,
90
- "displayName": id(`\${${name}}`),
91
- "required": true,
92
- "value": (_a = kcContext.user[name]) !== null && _a !== void 0 ? _a : "",
93
- "html5DataAnnotations": {},
94
- "readOnly": false,
95
- "validators": {},
96
- "annotations": {},
97
- "autocomplete": (() => {
98
- switch (name) {
99
- case "email":
100
- return "email";
101
- case "username":
102
- return "username";
103
- default:
104
- return undefined;
105
- }
106
- })()
107
- });
81
+ });
82
+ }
83
+ if ("user" in kcContext && kcContext.user instanceof Object) {
84
+ //NOTE: Handle legacy login-update-profile.ftl
85
+ return ["username", "email", "firstName", "lastName"]
86
+ .filter(name => (name !== "username" ? true : kcContext.user.editUsernameAllowed))
87
+ .map(name => {
88
+ var _a;
89
+ return id({
90
+ name: name,
91
+ displayName: id(`\${${name}}`),
92
+ required: true,
93
+ value: (_a = kcContext.user[name]) !== null && _a !== void 0 ? _a : "",
94
+ html5DataAnnotations: {},
95
+ readOnly: false,
96
+ validators: {},
97
+ annotations: {},
98
+ autocomplete: (() => {
99
+ switch (name) {
100
+ case "email":
101
+ return "email";
102
+ case "username":
103
+ return "username";
104
+ default:
105
+ return undefined;
106
+ }
107
+ })()
108
108
  });
109
- }
110
- if ("email" in kcContext && kcContext.email instanceof Object) {
111
- //NOTE: Handle legacy update-email.ftl
112
- return [
113
- id({
114
- "name": "email",
115
- "displayName": id(`\${email}`),
116
- "required": true,
117
- "value": (_a = kcContext.email.value) !== null && _a !== void 0 ? _a : "",
118
- "html5DataAnnotations": {},
119
- "readOnly": false,
120
- "validators": {},
121
- "annotations": {},
122
- "autocomplete": "email"
123
- })
124
- ];
125
- }
126
- assert(false, "Unable to mock user profile from the current kcContext");
127
- }
128
- return kcContext.profile.attributes.map(attribute_pre_group_patch => {
129
- if (typeof attribute_pre_group_patch.group === "string" && attribute_pre_group_patch.group !== "") {
130
- const _a = attribute_pre_group_patch, { group, groupDisplayHeader, groupDisplayDescription, groupAnnotations } = _a, rest = __rest(_a, ["group", "groupDisplayHeader", "groupDisplayDescription", "groupAnnotations"]);
131
- return id(Object.assign(Object.assign({}, rest), { "group": {
132
- "name": group,
133
- "displayHeader": groupDisplayHeader,
134
- "displayDescription": groupDisplayDescription,
135
- "html5DataAnnotations": {}
136
- } }));
137
- }
138
- return attribute_pre_group_patch;
139
- });
140
- })();
141
- for (const attribute of attributes) {
142
- syntheticAttributes.push(attribute);
143
- add_password_and_password_confirm: {
144
- if (!kcContext.passwordRequired) {
145
- break add_password_and_password_confirm;
146
- }
147
- if (attribute.name !== (kcContext.realm.registrationEmailAsUsername ? "email" : "username")) {
148
- // NOTE: We want to add password and password-confirm after the field that identifies the user.
149
- // It's either email or username.
150
- break add_password_and_password_confirm;
151
- }
152
- syntheticAttributes.push(Object.assign({ "name": "password", "displayName": id("${password}"), "required": true, "readOnly": false, "validators": {}, "annotations": {}, "autocomplete": "new-password", "html5DataAnnotations": {} }, { "groupAnnotations": {} }), Object.assign({ "name": "password-confirm", "displayName": id("${passwordConfirm}"), "required": true, "readOnly": false, "validators": {}, "annotations": {}, "html5DataAnnotations": {}, "autocomplete": "new-password" }, { "groupAnnotations": {} }));
109
+ });
153
110
  }
154
- }
155
- return syntheticAttributes;
111
+ if ("email" in kcContext && kcContext.email instanceof Object) {
112
+ //NOTE: Handle legacy update-email.ftl
113
+ return [
114
+ id({
115
+ name: "email",
116
+ displayName: id(`\${email}`),
117
+ required: true,
118
+ value: (_a = kcContext.email.value) !== null && _a !== void 0 ? _a : "",
119
+ html5DataAnnotations: {},
120
+ readOnly: false,
121
+ validators: {},
122
+ annotations: {},
123
+ autocomplete: "email"
124
+ })
125
+ ];
126
+ }
127
+ assert(false, "Unable to mock user profile from the current kcContext");
128
+ }
129
+ return Object.values(kcContext.profile.attributesByName).map(structuredCloneButFunctions);
156
130
  })();
157
- const initialFormFieldState = (() => {
131
+ // Retro-compatibility and consistency patches
132
+ attributes.forEach(attribute => {
158
133
  var _a, _b, _c;
159
- const out = [];
160
- for (const attribute of syntheticAttributes) {
161
- handle_multi_valued_attribute: {
162
- if (!attribute.multivalued) {
163
- break handle_multi_valued_attribute;
134
+ patch_legacy_group: {
135
+ if (typeof attribute.group !== "string") {
136
+ break patch_legacy_group;
137
+ }
138
+ const { group, groupDisplayHeader, groupDisplayDescription, groupAnnotations } = attribute;
139
+ delete attribute.group;
140
+ // @ts-expect-error
141
+ delete attribute.groupDisplayHeader;
142
+ // @ts-expect-error
143
+ delete attribute.groupDisplayDescription;
144
+ // @ts-expect-error
145
+ delete attribute.groupAnnotations;
146
+ if (group === "") {
147
+ break patch_legacy_group;
148
+ }
149
+ attribute.group = {
150
+ name: group,
151
+ displayHeader: groupDisplayHeader,
152
+ displayDescription: groupDisplayDescription,
153
+ annotations: groupAnnotations,
154
+ html5DataAnnotations: {}
155
+ };
156
+ }
157
+ // Attributes with options rendered by default as select inputs
158
+ if (attribute.validators.options !== undefined && attribute.annotations.inputType === undefined) {
159
+ attribute.annotations.inputType = "select";
160
+ }
161
+ // Consistency patch on values/value property
162
+ {
163
+ if (getIsMultivaluedSingleField({ attribute })) {
164
+ attribute.multivalued = true;
165
+ }
166
+ if (attribute.multivalued) {
167
+ (_a = attribute.values) !== null && _a !== void 0 ? _a : (attribute.values = attribute.value !== undefined ? [attribute.value] : []);
168
+ delete attribute.value;
169
+ }
170
+ else {
171
+ (_b = attribute.value) !== null && _b !== void 0 ? _b : (attribute.value = (_c = attribute.values) === null || _c === void 0 ? void 0 : _c[0]);
172
+ delete attribute.values;
173
+ }
174
+ }
175
+ });
176
+ add_password_and_password_confirm: {
177
+ if (!kcContext.passwordRequired) {
178
+ break add_password_and_password_confirm;
179
+ }
180
+ attributes.forEach((attribute, i) => {
181
+ if (attribute.name !== (kcContext.realm.registrationEmailAsUsername ? "email" : "username")) {
182
+ // NOTE: We want to add password and password-confirm after the field that identifies the user.
183
+ // It's either email or username.
184
+ return;
185
+ }
186
+ attributes.splice(i + 1, 0, {
187
+ name: "password",
188
+ displayName: id("${password}"),
189
+ required: true,
190
+ readOnly: false,
191
+ validators: {},
192
+ annotations: {},
193
+ autocomplete: "new-password",
194
+ html5DataAnnotations: {}
195
+ }, {
196
+ name: "password-confirm",
197
+ displayName: id("${passwordConfirm}"),
198
+ required: true,
199
+ readOnly: false,
200
+ validators: {},
201
+ annotations: {},
202
+ html5DataAnnotations: {},
203
+ autocomplete: "new-password"
204
+ });
205
+ });
206
+ }
207
+ const initialFormFieldState = [];
208
+ for (const attribute of attributes) {
209
+ handle_multi_valued_attribute: {
210
+ if (!attribute.multivalued) {
211
+ break handle_multi_valued_attribute;
212
+ }
213
+ const values = ((_a = attribute.values) === null || _a === void 0 ? void 0 : _a.length) ? attribute.values : [""];
214
+ apply_validator_min_range: {
215
+ if (getIsMultivaluedSingleField({ attribute })) {
216
+ break apply_validator_min_range;
164
217
  }
165
- const values = (_a = attribute.values) !== null && _a !== void 0 ? _a : [""];
166
- apply_validator_min_range: {
167
- if ((_b = attribute.annotations.inputType) === null || _b === void 0 ? void 0 : _b.startsWith("multiselect")) {
168
- break apply_validator_min_range;
169
- }
170
- const validator = attribute.validators.multivalued;
171
- if (validator === undefined) {
172
- break apply_validator_min_range;
173
- }
174
- const { min: minStr } = validator;
175
- if (minStr === undefined) {
176
- break apply_validator_min_range;
177
- }
178
- const min = parseInt(`${minStr}`);
179
- for (let index = values.length; index < min; index++) {
180
- values.push("");
181
- }
218
+ const validator = attribute.validators.multivalued;
219
+ if (validator === undefined) {
220
+ break apply_validator_min_range;
221
+ }
222
+ const { min: minStr } = validator;
223
+ if (!minStr) {
224
+ break apply_validator_min_range;
225
+ }
226
+ const min = parseInt(`${minStr}`);
227
+ for (let index = values.length; index < min; index++) {
228
+ values.push("");
182
229
  }
183
- out.push({
184
- attribute,
185
- "valueOrValues": values
186
- });
187
- continue;
188
230
  }
189
- out.push({
231
+ initialFormFieldState.push({
190
232
  attribute,
191
- "valueOrValues": (_c = attribute.value) !== null && _c !== void 0 ? _c : ""
233
+ valueOrValues: values
192
234
  });
235
+ continue;
193
236
  }
194
- return out;
195
- })();
237
+ initialFormFieldState.push({
238
+ attribute,
239
+ valueOrValues: (_b = attribute.value) !== null && _b !== void 0 ? _b : ""
240
+ });
241
+ }
196
242
  const initialState = {
197
- "formFieldStates": initialFormFieldState.map(({ attribute, valueOrValues }) => ({
243
+ formFieldStates: initialFormFieldState.map(({ attribute, valueOrValues }) => ({
198
244
  attribute,
199
- "errors": getErrors({
200
- "attributeName": attribute.name,
201
- "formFieldStates": initialFormFieldState
245
+ errors: getErrors({
246
+ attributeName: attribute.name,
247
+ formFieldStates: initialFormFieldState
202
248
  }),
203
- "hasLostFocusAtLeastOnce": valueOrValues instanceof Array ? valueOrValues.map(() => false) : false,
204
- "valueOrValues": valueOrValues
249
+ hasLostFocusAtLeastOnce: valueOrValues instanceof Array && !getIsMultivaluedSingleField({ attribute }) ? valueOrValues.map(() => false) : false,
250
+ valueOrValues: valueOrValues
205
251
  }))
206
252
  };
207
253
  return initialState;
@@ -217,7 +263,7 @@ export function useUserProfileForm(params) {
217
263
  apply_formatters: {
218
264
  const { attribute } = formFieldState;
219
265
  const { kcNumberFormat } = (_a = attribute.html5DataAnnotations) !== null && _a !== void 0 ? _a : {};
220
- if (kcNumberFormat === undefined) {
266
+ if (!kcNumberFormat) {
221
267
  break apply_formatters;
222
268
  }
223
269
  if (formFieldState.valueOrValues instanceof Array) {
@@ -228,9 +274,24 @@ export function useUserProfileForm(params) {
228
274
  }
229
275
  }
230
276
  formFieldState.errors = getErrors({
231
- "attributeName": formAction.name,
232
- "formFieldStates": state.formFieldStates
277
+ attributeName: formAction.name,
278
+ formFieldStates: state.formFieldStates
233
279
  });
280
+ simulate_focus_lost: {
281
+ const { displayErrorsImmediately = false } = formAction;
282
+ if (!displayErrorsImmediately) {
283
+ break simulate_focus_lost;
284
+ }
285
+ for (const fieldIndex of formAction.valueOrValues instanceof Array
286
+ ? formAction.valueOrValues.map((...[, index]) => index)
287
+ : [undefined]) {
288
+ state = reducer(state, {
289
+ action: "focus lost",
290
+ name: formAction.name,
291
+ fieldIndex
292
+ });
293
+ }
294
+ }
234
295
  update_password_confirm: {
235
296
  if (doMakeUserConfirmPassword) {
236
297
  break update_password_confirm;
@@ -239,9 +300,28 @@ export function useUserProfileForm(params) {
239
300
  break update_password_confirm;
240
301
  }
241
302
  state = reducer(state, {
242
- "action": "update",
243
- "name": "password-confirm",
244
- "valueOrValues": formAction.valueOrValues
303
+ action: "update",
304
+ name: "password-confirm",
305
+ valueOrValues: formAction.valueOrValues,
306
+ displayErrorsImmediately: formAction.displayErrorsImmediately
307
+ });
308
+ }
309
+ trigger_password_confirm_validation_on_password_change: {
310
+ if (!doMakeUserConfirmPassword) {
311
+ break trigger_password_confirm_validation_on_password_change;
312
+ }
313
+ if (formAction.name !== "password") {
314
+ break trigger_password_confirm_validation_on_password_change;
315
+ }
316
+ state = reducer(state, {
317
+ action: "update",
318
+ name: "password-confirm",
319
+ valueOrValues: (() => {
320
+ const formFieldState = state.formFieldStates.find(({ attribute }) => attribute.name === "password-confirm");
321
+ assert(formFieldState !== undefined);
322
+ return formFieldState.valueOrValues;
323
+ })(),
324
+ displayErrorsImmediately: formAction.displayErrorsImmediately
245
325
  });
246
326
  }
247
327
  return;
@@ -260,9 +340,9 @@ export function useUserProfileForm(params) {
260
340
  return Object.assign({}, state);
261
341
  }, initialState);
262
342
  const formState = useMemo(() => ({
263
- "formFieldStates": state.formFieldStates.map((_a) => {
343
+ formFieldStates: state.formFieldStates.map((_a) => {
264
344
  var { errors, hasLostFocusAtLeastOnce: hasLostFocusAtLeastOnceOrArr, attribute } = _a, valueOrValuesWrap = __rest(_a, ["errors", "hasLostFocusAtLeastOnce", "attribute"]);
265
- return (Object.assign({ "displayableErrors": errors.filter(error => {
345
+ return (Object.assign({ displayableErrors: errors.filter(error => {
266
346
  const hasLostFocusAtLeastOnce = typeof hasLostFocusAtLeastOnceOrArr === "boolean"
267
347
  ? hasLostFocusAtLeastOnceOrArr
268
348
  : error.fieldIndex !== undefined
@@ -316,19 +396,20 @@ export function useUserProfileForm(params) {
316
396
  }
317
397
  }), attribute }, valueOrValuesWrap));
318
398
  }),
319
- "isFormSubmittable": state.formFieldStates.every(({ errors }) => errors.length === 0)
399
+ isFormSubmittable: state.formFieldStates.every(({ errors }) => errors.length === 0)
320
400
  }), [state]);
321
401
  return {
322
402
  formState,
323
403
  dispatchFormAction
324
404
  };
325
405
  }
406
+ assert();
326
407
  function useGetErrors(params) {
327
408
  const { kcContext, i18n } = params;
328
409
  const { messagesPerField, passwordPolicies } = kcContext;
329
410
  const { msg, msgStr, advancedMsg, advancedMsgStr } = i18n;
330
411
  const getErrors = useConstCallback((params) => {
331
- var _a, _b, _c, _d;
412
+ var _a, _b;
332
413
  const { attributeName, formFieldStates } = params;
333
414
  const formFieldState = formFieldStates.find(({ attribute }) => attribute.name === attributeName);
334
415
  assert(formFieldState !== undefined);
@@ -338,7 +419,7 @@ function useGetErrors(params) {
338
419
  let { valueOrValues } = formFieldState;
339
420
  unFormat_number: {
340
421
  const { kcNumberUnFormat } = (_a = attribute.html5DataAnnotations) !== null && _a !== void 0 ? _a : {};
341
- if (kcNumberUnFormat === undefined) {
422
+ if (!kcNumberUnFormat) {
342
423
  break unFormat_number;
343
424
  }
344
425
  if (valueOrValues instanceof Array) {
@@ -353,7 +434,7 @@ function useGetErrors(params) {
353
434
  assert(attribute !== undefined);
354
435
  server_side_error: {
355
436
  if (attribute.multivalued) {
356
- const defaultValues = (_a = attribute.values) !== null && _a !== void 0 ? _a : [""];
437
+ const defaultValues = ((_a = attribute.values) === null || _a === void 0 ? void 0 : _a.length) ? attribute.values : [""];
357
438
  assert(valueOrValues instanceof Array);
358
439
  const values = valueOrValues;
359
440
  if (JSON.stringify(defaultValues) !== JSON.stringify(values.slice(0, defaultValues.length))) {
@@ -372,7 +453,7 @@ function useGetErrors(params) {
372
453
  try {
373
454
  doesErrorExist = messagesPerField.existsError(attributeName);
374
455
  }
375
- catch (_e) {
456
+ catch (_c) {
376
457
  break server_side_error;
377
458
  }
378
459
  if (!doesErrorExist) {
@@ -382,10 +463,12 @@ function useGetErrors(params) {
382
463
  return [
383
464
  {
384
465
  errorMessageStr,
385
- "errorMessage": _jsx("span", { children: errorMessageStr }, 0),
386
- "fieldIndex": undefined,
387
- "source": {
388
- "type": "server"
466
+ errorMessage: (_jsx("span", { dangerouslySetInnerHTML: {
467
+ __html: errorMessageStr
468
+ } }, 0)),
469
+ fieldIndex: undefined,
470
+ source: {
471
+ type: "server"
389
472
  }
390
473
  }
391
474
  ];
@@ -394,7 +477,7 @@ function useGetErrors(params) {
394
477
  if (!attribute.multivalued) {
395
478
  break handle_multi_valued_multi_fields;
396
479
  }
397
- if ((_c = attribute.annotations.inputType) === null || _c === void 0 ? void 0 : _c.startsWith("multiselect")) {
480
+ if (getIsMultivaluedSingleField({ attribute })) {
398
481
  break handle_multi_valued_multi_fields;
399
482
  }
400
483
  assert(valueOrValues instanceof Array);
@@ -403,12 +486,12 @@ function useGetErrors(params) {
403
486
  .map((...[, index]) => {
404
487
  const specificValueErrors = getErrors({
405
488
  attributeName,
406
- "formFieldStates": formFieldStates.map(formFieldState => {
489
+ formFieldStates: formFieldStates.map(formFieldState => {
407
490
  if (formFieldState.attribute.name === attributeName) {
408
491
  assert(formFieldState.valueOrValues instanceof Array);
409
492
  return {
410
- "attribute": Object.assign(Object.assign({}, attribute), { "annotations": Object.assign(Object.assign({}, attribute.annotations), { "inputType": undefined }), "multivalued": false }),
411
- "valueOrValues": formFieldState.valueOrValues[index]
493
+ attribute: Object.assign(Object.assign({}, attribute), { annotations: Object.assign(Object.assign({}, attribute.annotations), { inputType: undefined }), multivalued: false }),
494
+ valueOrValues: formFieldState.valueOrValues[index]
412
495
  };
413
496
  }
414
497
  return formFieldState;
@@ -421,7 +504,7 @@ function useGetErrors(params) {
421
504
  }
422
505
  return true;
423
506
  })
424
- .map((error) => (Object.assign(Object.assign({}, error), { "fieldIndex": index })));
507
+ .map((error) => (Object.assign(Object.assign({}, error), { fieldIndex: index })));
425
508
  })
426
509
  .reduce((acc, errors) => [...acc, ...errors], []);
427
510
  required_field: {
@@ -433,12 +516,12 @@ function useGetErrors(params) {
433
516
  }
434
517
  const msgArgs = ["error-user-attribute-required"];
435
518
  errors.push({
436
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
437
- "errorMessageStr": msgStr(...msgArgs),
438
- "fieldIndex": undefined,
439
- "source": {
440
- "type": "other",
441
- "rule": "requiredField"
519
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
520
+ errorMessageStr: msgStr(...msgArgs),
521
+ fieldIndex: undefined,
522
+ source: {
523
+ type: "other",
524
+ rule: "requiredField"
442
525
  }
443
526
  });
444
527
  }
@@ -448,7 +531,7 @@ function useGetErrors(params) {
448
531
  if (!attribute.multivalued) {
449
532
  break handle_multi_valued_single_field;
450
533
  }
451
- if (!((_d = attribute.annotations.inputType) === null || _d === void 0 ? void 0 : _d.startsWith("multiselect"))) {
534
+ if (!getIsMultivaluedSingleField({ attribute })) {
452
535
  break handle_multi_valued_single_field;
453
536
  }
454
537
  const validatorName = "multivalued";
@@ -457,10 +540,10 @@ function useGetErrors(params) {
457
540
  return [];
458
541
  }
459
542
  const { min: minStr } = validator;
460
- const min = minStr !== undefined ? parseInt(`${minStr}`) : attribute.required ? 1 : 0;
543
+ const min = minStr ? parseInt(`${minStr}`) : attribute.required ? 1 : 0;
461
544
  assert(!isNaN(min));
462
545
  const { max: maxStr } = validator;
463
- const max = maxStr === undefined ? Infinity : parseInt(`${maxStr}`);
546
+ const max = !maxStr ? Infinity : parseInt(`${maxStr}`);
464
547
  assert(!isNaN(max));
465
548
  assert(valueOrValues instanceof Array);
466
549
  const values = valueOrValues;
@@ -470,12 +553,12 @@ function useGetErrors(params) {
470
553
  const msgArgs = ["error-invalid-multivalued-size", `${min}`, `${max}`];
471
554
  return [
472
555
  {
473
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, 0),
474
- "errorMessageStr": msgStr(...msgArgs),
475
- "fieldIndex": undefined,
476
- "source": {
477
- "type": "validator",
478
- "name": validatorName
556
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, 0),
557
+ errorMessageStr: msgStr(...msgArgs),
558
+ fieldIndex: undefined,
559
+ source: {
560
+ type: "validator",
561
+ name: validatorName
479
562
  }
480
563
  }
481
564
  ];
@@ -493,7 +576,7 @@ function useGetErrors(params) {
493
576
  check_password_policy_x: {
494
577
  const policyName = "length";
495
578
  const policy = passwordPolicies[policyName];
496
- if (policy === undefined) {
579
+ if (!policy) {
497
580
  break check_password_policy_x;
498
581
  }
499
582
  const minLength = policy;
@@ -502,19 +585,19 @@ function useGetErrors(params) {
502
585
  }
503
586
  const msgArgs = ["invalidPasswordMinLengthMessage", `${minLength}`];
504
587
  errors.push({
505
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
506
- "errorMessageStr": msgStr(...msgArgs),
507
- "fieldIndex": undefined,
508
- "source": {
509
- "type": "passwordPolicy",
510
- "name": policyName
588
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
589
+ errorMessageStr: msgStr(...msgArgs),
590
+ fieldIndex: undefined,
591
+ source: {
592
+ type: "passwordPolicy",
593
+ name: policyName
511
594
  }
512
595
  });
513
596
  }
514
597
  check_password_policy_x: {
515
598
  const policyName = "digits";
516
599
  const policy = passwordPolicies[policyName];
517
- if (policy === undefined) {
600
+ if (!policy) {
518
601
  break check_password_policy_x;
519
602
  }
520
603
  const minNumberOfDigits = policy;
@@ -523,19 +606,19 @@ function useGetErrors(params) {
523
606
  }
524
607
  const msgArgs = ["invalidPasswordMinDigitsMessage", `${minNumberOfDigits}`];
525
608
  errors.push({
526
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
527
- "errorMessageStr": msgStr(...msgArgs),
528
- "fieldIndex": undefined,
529
- "source": {
530
- "type": "passwordPolicy",
531
- "name": policyName
609
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
610
+ errorMessageStr: msgStr(...msgArgs),
611
+ fieldIndex: undefined,
612
+ source: {
613
+ type: "passwordPolicy",
614
+ name: policyName
532
615
  }
533
616
  });
534
617
  }
535
618
  check_password_policy_x: {
536
619
  const policyName = "lowerCase";
537
620
  const policy = passwordPolicies[policyName];
538
- if (policy === undefined) {
621
+ if (!policy) {
539
622
  break check_password_policy_x;
540
623
  }
541
624
  const minNumberOfLowerCaseChar = policy;
@@ -544,19 +627,19 @@ function useGetErrors(params) {
544
627
  }
545
628
  const msgArgs = ["invalidPasswordMinLowerCaseCharsMessage", `${minNumberOfLowerCaseChar}`];
546
629
  errors.push({
547
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
548
- "errorMessageStr": msgStr(...msgArgs),
549
- "fieldIndex": undefined,
550
- "source": {
551
- "type": "passwordPolicy",
552
- "name": policyName
630
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
631
+ errorMessageStr: msgStr(...msgArgs),
632
+ fieldIndex: undefined,
633
+ source: {
634
+ type: "passwordPolicy",
635
+ name: policyName
553
636
  }
554
637
  });
555
638
  }
556
639
  check_password_policy_x: {
557
640
  const policyName = "upperCase";
558
641
  const policy = passwordPolicies[policyName];
559
- if (policy === undefined) {
642
+ if (!policy) {
560
643
  break check_password_policy_x;
561
644
  }
562
645
  const minNumberOfUpperCaseChar = policy;
@@ -565,19 +648,19 @@ function useGetErrors(params) {
565
648
  }
566
649
  const msgArgs = ["invalidPasswordMinUpperCaseCharsMessage", `${minNumberOfUpperCaseChar}`];
567
650
  errors.push({
568
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
569
- "errorMessageStr": msgStr(...msgArgs),
570
- "fieldIndex": undefined,
571
- "source": {
572
- "type": "passwordPolicy",
573
- "name": policyName
651
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
652
+ errorMessageStr: msgStr(...msgArgs),
653
+ fieldIndex: undefined,
654
+ source: {
655
+ type: "passwordPolicy",
656
+ name: policyName
574
657
  }
575
658
  });
576
659
  }
577
660
  check_password_policy_x: {
578
661
  const policyName = "specialChars";
579
662
  const policy = passwordPolicies[policyName];
580
- if (policy === undefined) {
663
+ if (!policy) {
581
664
  break check_password_policy_x;
582
665
  }
583
666
  const minNumberOfSpecialChar = policy;
@@ -586,12 +669,12 @@ function useGetErrors(params) {
586
669
  }
587
670
  const msgArgs = ["invalidPasswordMinSpecialCharsMessage", `${minNumberOfSpecialChar}`];
588
671
  errors.push({
589
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
590
- "errorMessageStr": msgStr(...msgArgs),
591
- "fieldIndex": undefined,
592
- "source": {
593
- "type": "passwordPolicy",
594
- "name": policyName
672
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
673
+ errorMessageStr: msgStr(...msgArgs),
674
+ fieldIndex: undefined,
675
+ source: {
676
+ type: "passwordPolicy",
677
+ name: policyName
595
678
  }
596
679
  });
597
680
  }
@@ -602,7 +685,7 @@ function useGetErrors(params) {
602
685
  break check_password_policy_x;
603
686
  }
604
687
  const usernameFormFieldState = formFieldStates.find(formFieldState => formFieldState.attribute.name === "username");
605
- if (usernameFormFieldState === undefined) {
688
+ if (!usernameFormFieldState) {
606
689
  break check_password_policy_x;
607
690
  }
608
691
  const usernameValue = (() => {
@@ -611,24 +694,27 @@ function useGetErrors(params) {
611
694
  assert(typeof valueOrValues === "string");
612
695
  unFormat_number: {
613
696
  const { kcNumberUnFormat } = (_a = attribute.html5DataAnnotations) !== null && _a !== void 0 ? _a : {};
614
- if (kcNumberUnFormat === undefined) {
697
+ if (!kcNumberUnFormat) {
615
698
  break unFormat_number;
616
699
  }
617
700
  valueOrValues = formatNumber(valueOrValues, kcNumberUnFormat);
618
701
  }
619
702
  return valueOrValues;
620
703
  })();
704
+ if (usernameValue === "") {
705
+ break check_password_policy_x;
706
+ }
621
707
  if (value !== usernameValue) {
622
708
  break check_password_policy_x;
623
709
  }
624
710
  const msgArgs = ["invalidPasswordNotUsernameMessage"];
625
711
  errors.push({
626
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
627
- "errorMessageStr": msgStr(...msgArgs),
628
- "fieldIndex": undefined,
629
- "source": {
630
- "type": "passwordPolicy",
631
- "name": policyName
712
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
713
+ errorMessageStr: msgStr(...msgArgs),
714
+ fieldIndex: undefined,
715
+ source: {
716
+ type: "passwordPolicy",
717
+ name: policyName
632
718
  }
633
719
  });
634
720
  }
@@ -639,24 +725,27 @@ function useGetErrors(params) {
639
725
  break check_password_policy_x;
640
726
  }
641
727
  const emailFormFieldState = formFieldStates.find(formFieldState => formFieldState.attribute.name === "email");
642
- if (emailFormFieldState === undefined) {
728
+ if (!emailFormFieldState) {
643
729
  break check_password_policy_x;
644
730
  }
645
731
  assert(typeof emailFormFieldState.valueOrValues === "string");
646
732
  {
647
733
  const emailValue = emailFormFieldState.valueOrValues;
734
+ if (emailValue === "") {
735
+ break check_password_policy_x;
736
+ }
648
737
  if (value !== emailValue) {
649
738
  break check_password_policy_x;
650
739
  }
651
740
  }
652
741
  const msgArgs = ["invalidPasswordNotEmailMessage"];
653
742
  errors.push({
654
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
655
- "errorMessageStr": msgStr(...msgArgs),
656
- "fieldIndex": undefined,
657
- "source": {
658
- "type": "passwordPolicy",
659
- "name": policyName
743
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
744
+ errorMessageStr: msgStr(...msgArgs),
745
+ fieldIndex: undefined,
746
+ source: {
747
+ type: "passwordPolicy",
748
+ name: policyName
660
749
  }
661
750
  });
662
751
  }
@@ -676,12 +765,12 @@ function useGetErrors(params) {
676
765
  }
677
766
  const msgArgs = ["invalidPasswordConfirmMessage"];
678
767
  errors.push({
679
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
680
- "errorMessageStr": msgStr(...msgArgs),
681
- "fieldIndex": undefined,
682
- "source": {
683
- "type": "other",
684
- "rule": "passwordConfirmMatchesPassword"
768
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
769
+ errorMessageStr: msgStr(...msgArgs),
770
+ fieldIndex: undefined,
771
+ source: {
772
+ type: "other",
773
+ rule: "passwordConfirmMatchesPassword"
685
774
  }
686
775
  });
687
776
  }
@@ -695,19 +784,19 @@ function useGetErrors(params) {
695
784
  }
696
785
  const msgArgs = ["error-user-attribute-required"];
697
786
  errors.push({
698
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
699
- "errorMessageStr": msgStr(...msgArgs),
700
- "fieldIndex": undefined,
701
- "source": {
702
- "type": "other",
703
- "rule": "requiredField"
787
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
788
+ errorMessageStr: msgStr(...msgArgs),
789
+ fieldIndex: undefined,
790
+ source: {
791
+ type: "other",
792
+ rule: "requiredField"
704
793
  }
705
794
  });
706
795
  }
707
796
  validator_x: {
708
797
  const validatorName = "length";
709
798
  const validator = validators[validatorName];
710
- if (validator === undefined) {
799
+ if (!validator) {
711
800
  break validator_x;
712
801
  }
713
802
  const { "ignore.empty.value": ignoreEmptyValue = false, max, min } = validator;
@@ -715,24 +804,24 @@ function useGetErrors(params) {
715
804
  break validator_x;
716
805
  }
717
806
  const source = {
718
- "type": "validator",
719
- "name": validatorName
807
+ type: "validator",
808
+ name: validatorName
720
809
  };
721
- if (max !== undefined && value.length > parseInt(`${max}`)) {
810
+ if (max && value.length > parseInt(`${max}`)) {
722
811
  const msgArgs = ["error-invalid-length-too-long", `${max}`];
723
812
  errors.push({
724
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
725
- "errorMessageStr": msgStr(...msgArgs),
726
- "fieldIndex": undefined,
813
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
814
+ errorMessageStr: msgStr(...msgArgs),
815
+ fieldIndex: undefined,
727
816
  source
728
817
  });
729
818
  }
730
- if (min !== undefined && value.length < parseInt(`${min}`)) {
819
+ if (min && value.length < parseInt(`${min}`)) {
731
820
  const msgArgs = ["error-invalid-length-too-short", `${min}`];
732
821
  errors.push({
733
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
734
- "errorMessageStr": msgStr(...msgArgs),
735
- "fieldIndex": undefined,
822
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
823
+ errorMessageStr: msgStr(...msgArgs),
824
+ fieldIndex: undefined,
736
825
  source
737
826
  });
738
827
  }
@@ -752,12 +841,12 @@ function useGetErrors(params) {
752
841
  }
753
842
  const msgArgs = [errorMessageKey !== null && errorMessageKey !== void 0 ? errorMessageKey : id("shouldMatchPattern"), pattern];
754
843
  errors.push({
755
- "errorMessage": _jsx(Fragment, { children: advancedMsg(...msgArgs) }, `${attributeName}-${errors.length}`),
756
- "errorMessageStr": advancedMsgStr(...msgArgs),
757
- "fieldIndex": undefined,
758
- "source": {
759
- "type": "validator",
760
- "name": validatorName
844
+ errorMessage: _jsx(Fragment, { children: advancedMsg(...msgArgs) }, `${attributeName}-${errors.length}`),
845
+ errorMessageStr: advancedMsgStr(...msgArgs),
846
+ fieldIndex: undefined,
847
+ source: {
848
+ type: "validator",
849
+ name: validatorName
761
850
  }
762
851
  });
763
852
  }
@@ -782,12 +871,12 @@ function useGetErrors(params) {
782
871
  }
783
872
  const msgArgs = [id("invalidEmailMessage")];
784
873
  errors.push({
785
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
786
- "errorMessageStr": msgStr(...msgArgs),
787
- "fieldIndex": undefined,
788
- "source": {
789
- "type": "validator",
790
- "name": validatorName
874
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
875
+ errorMessageStr: msgStr(...msgArgs),
876
+ fieldIndex: undefined,
877
+ source: {
878
+ type: "validator",
879
+ name: validatorName
791
880
  }
792
881
  });
793
882
  }
@@ -803,35 +892,35 @@ function useGetErrors(params) {
803
892
  }
804
893
  const intValue = parseInt(value);
805
894
  const source = {
806
- "type": "validator",
807
- "name": validatorName
895
+ type: "validator",
896
+ name: validatorName
808
897
  };
809
898
  if (isNaN(intValue)) {
810
899
  const msgArgs = ["mustBeAnInteger"];
811
900
  errors.push({
812
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
813
- "errorMessageStr": msgStr(...msgArgs),
814
- "fieldIndex": undefined,
901
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
902
+ errorMessageStr: msgStr(...msgArgs),
903
+ fieldIndex: undefined,
815
904
  source
816
905
  });
817
906
  break validator_x;
818
907
  }
819
- if (max !== undefined && intValue > parseInt(`${max}`)) {
908
+ if (max && intValue > parseInt(`${max}`)) {
820
909
  const msgArgs = ["error-number-out-of-range-too-big", `${max}`];
821
910
  errors.push({
822
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
823
- "errorMessageStr": msgStr(...msgArgs),
824
- "fieldIndex": undefined,
911
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
912
+ errorMessageStr: msgStr(...msgArgs),
913
+ fieldIndex: undefined,
825
914
  source
826
915
  });
827
916
  break validator_x;
828
917
  }
829
- if (min !== undefined && intValue < parseInt(`${min}`)) {
918
+ if (min && intValue < parseInt(`${min}`)) {
830
919
  const msgArgs = ["error-number-out-of-range-too-small", `${min}`];
831
920
  errors.push({
832
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
833
- "errorMessageStr": msgStr(...msgArgs),
834
- "fieldIndex": undefined,
921
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
922
+ errorMessageStr: msgStr(...msgArgs),
923
+ fieldIndex: undefined,
835
924
  source
836
925
  });
837
926
  break validator_x;
@@ -851,12 +940,12 @@ function useGetErrors(params) {
851
940
  }
852
941
  const msgArgs = [id("notAValidOption")];
853
942
  errors.push({
854
- "errorMessage": _jsx(Fragment, { children: advancedMsg(...msgArgs) }, `${attributeName}-${errors.length}`),
855
- "errorMessageStr": advancedMsgStr(...msgArgs),
856
- "fieldIndex": undefined,
857
- "source": {
858
- "type": "validator",
859
- "name": validatorName
943
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
944
+ errorMessageStr: msgStr(...msgArgs),
945
+ fieldIndex: undefined,
946
+ source: {
947
+ type: "validator",
948
+ name: validatorName
860
949
  }
861
950
  });
862
951
  }
@@ -865,4 +954,59 @@ function useGetErrors(params) {
865
954
  });
866
955
  return { getErrors };
867
956
  }
957
+ function getIsMultivaluedSingleField(params) {
958
+ var _a, _b;
959
+ const { attribute } = params;
960
+ return (_b = (_a = attribute.annotations.inputType) === null || _a === void 0 ? void 0 : _a.startsWith("multiselect")) !== null && _b !== void 0 ? _b : false;
961
+ }
962
+ export function getButtonToDisplayForMultivaluedAttributeField(params) {
963
+ const { attribute, values, fieldIndex } = params;
964
+ const hasRemove = (() => {
965
+ if (values.length === 1) {
966
+ return false;
967
+ }
968
+ const minCount = (() => {
969
+ const { multivalued } = attribute.validators;
970
+ if (multivalued === undefined) {
971
+ return undefined;
972
+ }
973
+ const minStr = multivalued.min;
974
+ if (minStr === undefined) {
975
+ return undefined;
976
+ }
977
+ return parseInt(`${minStr}`);
978
+ })();
979
+ if (minCount === undefined) {
980
+ return true;
981
+ }
982
+ if (values.length === minCount) {
983
+ return false;
984
+ }
985
+ return true;
986
+ })();
987
+ const hasAdd = (() => {
988
+ if (fieldIndex + 1 !== values.length) {
989
+ return false;
990
+ }
991
+ const maxCount = (() => {
992
+ const { multivalued } = attribute.validators;
993
+ if (multivalued === undefined) {
994
+ return undefined;
995
+ }
996
+ const maxStr = multivalued.max;
997
+ if (maxStr === undefined) {
998
+ return undefined;
999
+ }
1000
+ return parseInt(`${maxStr}`);
1001
+ })();
1002
+ if (maxCount === undefined) {
1003
+ return false;
1004
+ }
1005
+ if (values.length === maxCount) {
1006
+ return false;
1007
+ }
1008
+ return true;
1009
+ })();
1010
+ return { hasRemove, hasAdd };
1011
+ }
868
1012
  //# sourceMappingURL=useUserProfileForm.js.map