keycloakify 10.0.0-rc.14 → 10.0.0-rc.140

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
@@ -1,26 +1,24 @@
1
- import "minimal-polyfills/Object.fromEntries";
2
- //NOTE for later: https://github.com/remarkjs/react-markdown/blob/236182ecf30bd89c1e5a7652acaf8d0bf81e6170/src/renderers.js#L7-L35
3
- import { useEffect, useState, useRef } from "react";
4
- import fallbackMessages from "./baseMessages/en";
5
- import { getMessages } from "./baseMessages";
1
+ import "keycloakify/tools/Object.fromEntries";
6
2
  import { assert } from "tsafe/assert";
7
- import type { KcContext } from "../kcContext/KcContext";
8
- import { Markdown } from "keycloakify/tools/Markdown";
9
-
10
- export const fallbackLanguageTag = "en";
3
+ import messages_defaultSet_fallbackLanguage from "./messages_defaultSet/en";
4
+ import { fetchMessages_defaultSet } from "./messages_defaultSet";
5
+ import type { KcContext } from "../KcContext";
6
+ import { FALLBACK_LANGUAGE_TAG } from "keycloakify/bin/shared/constants";
7
+ import { id } from "tsafe/id";
11
8
 
12
9
  export type KcContextLike = {
13
10
  locale?: {
14
11
  currentLanguageTag: string;
15
12
  supported: { languageTag: string; url: string; label: string }[];
16
13
  };
14
+ "x-keycloakify": {
15
+ messages: Record<string, string>;
16
+ };
17
17
  };
18
18
 
19
19
  assert<KcContext extends KcContextLike ? true : false>();
20
20
 
21
- export type MessageKey = keyof typeof fallbackMessages | keyof (typeof keycloakifyExtraMessages)[typeof fallbackLanguageTag];
22
-
23
- export type GenericI18n<MessageKey extends string> = {
21
+ export type GenericI18n_noJsx<MessageKey extends string> = {
24
22
  /**
25
23
  * e.g: "en", "fr", "zh-CN"
26
24
  *
@@ -31,7 +29,7 @@ export type GenericI18n<MessageKey extends string> = {
31
29
  * Redirect to this url to change the language.
32
30
  * After reload currentLanguageTag === newLanguageTag
33
31
  */
34
- getChangeLocalUrl: (newLanguageTag: string) => string;
32
+ getChangeLocaleUrl: (newLanguageTag: string) => string;
35
33
  /**
36
34
  * e.g. "en" => "English", "fr" => "Français", ...
37
35
  *
@@ -40,111 +38,165 @@ export type GenericI18n<MessageKey extends string> = {
40
38
  * */
41
39
  labelBySupportedLanguageTag: Record<string, string>;
42
40
  /**
41
+ *
43
42
  * Examples assuming currentLanguageTag === "en"
43
+ * {
44
+ * en: {
45
+ * "access-denied": "Access denied",
46
+ * "impersonateTitleHtml": "<strong>{0}</strong> Impersonate User",
47
+ * "bar": "Bar {0}"
48
+ * }
49
+ * }
44
50
  *
45
- * msg("access-denied") === <span>Access denied</span>
46
- * msg("impersonateTitleHtml", "Foo") === <span><strong>Foo</strong> Impersonate User</span>
47
- */
48
- msg: (key: MessageKey, ...args: (string | undefined)[]) => JSX.Element;
49
- /**
50
- * It's the same thing as msg() but instead of returning a JSX.Element it returns a string.
51
- * It can be more convenient to manipulate strings but if there are HTML tags it wont render.
51
+ * msgStr("access-denied") === "Access denied"
52
+ * msgStr("not-a-message-key") Throws an error
52
53
  * msgStr("impersonateTitleHtml", "Foo") === "<strong>Foo</strong> Impersonate User"
54
+ * msgStr("${bar}", "<strong>c</strong>") === "Bar &lt;strong&gt;XXX&lt;/strong&gt;"
55
+ * The html in the arg is partially escaped for security reasons, it might come from an untrusted source, it's not safe to render it as html.
53
56
  */
54
57
  msgStr: (key: MessageKey, ...args: (string | undefined)[]) => string;
55
58
  /**
59
+ * This is meant to be used when the key argument is variable, something that might have been configured by the user
60
+ * in the Keycloak admin for example.
61
+ *
56
62
  * Examples assuming currentLanguageTag === "en"
57
- * advancedMsg("${access-denied} foo bar") === <span>${msgStr("access-denied")} foo bar<span> === <span>Access denied foo bar</span>
58
- * advancedMsg("${access-denied}") === advancedMsg("access-denied") === msg("access-denied") === <span>Access denied</span>
59
- * advancedMsg("${not-a-message-key}") === advancedMsg(not-a-message-key") === <span>not-a-message-key</span>
63
+ * {
64
+ * en: {
65
+ * "access-denied": "Access denied",
66
+ * }
67
+ * }
68
+ *
69
+ * advancedMsgStr("${access-denied}") === advancedMsgStr("access-denied") === msgStr("access-denied") === "Access denied"
70
+ * advancedMsgStr("${not-a-message-key}") === advancedMsgStr("not-a-message-key") === "not-a-message-key"
60
71
  */
61
- advancedMsg: (key: string, ...args: (string | undefined)[]) => JSX.Element;
72
+ advancedMsgStr: (key: string, ...args: (string | undefined)[]) => string;
73
+
62
74
  /**
63
- * Examples assuming currentLanguageTag === "en"
64
- * advancedMsg("${access-denied} foo bar") === msg("access-denied") + " foo bar" === "Access denied foo bar"
65
- * advancedMsg("${not-a-message-key}") === advancedMsg(not-a-message-key") === "not-a-message-key"
75
+ * Initially the messages are in english (fallback language).
76
+ * The translations in the current language are being fetched dynamically.
77
+ * This property is true while the translations are being fetched.
66
78
  */
67
- advancedMsgStr: (key: string, ...args: (string | undefined)[]) => string;
79
+ isFetchingTranslations: boolean;
68
80
  };
69
81
 
70
- export type I18n = GenericI18n<MessageKey>;
82
+ export type MessageKey_defaultSet = keyof typeof messages_defaultSet_fallbackLanguage;
71
83
 
72
- export function createUseI18n<ExtraMessageKey extends string = never>(extraMessages: {
73
- [languageTag: string]: { [key in ExtraMessageKey]: string };
84
+ export function createGetI18n<MessageKey_themeDefined extends string = never>(messagesByLanguageTag_themeDefined: {
85
+ [languageTag: string]: { [key in MessageKey_themeDefined]: string };
74
86
  }) {
75
- function useI18n(params: { kcContext: KcContextLike }): GenericI18n<MessageKey | ExtraMessageKey> | null {
76
- const { kcContext } = params;
87
+ type I18n = GenericI18n_noJsx<MessageKey_defaultSet | MessageKey_themeDefined>;
88
+
89
+ type Result = { i18n: I18n; prI18n_currentLanguage: Promise<I18n> | undefined };
77
90
 
78
- const [i18n, setI18n] = useState<GenericI18n<ExtraMessageKey | MessageKey> | undefined>(undefined);
91
+ const cachedResultByKcContext = new WeakMap<KcContextLike, Result>();
92
+
93
+ function getI18n(params: { kcContext: KcContextLike }): Result {
94
+ const { kcContext } = params;
79
95
 
80
- const refHasStartedFetching = useRef(false);
96
+ use_cache: {
97
+ const cachedResult = cachedResultByKcContext.get(kcContext);
81
98
 
82
- useEffect(() => {
83
- if (refHasStartedFetching.current) {
84
- return;
99
+ if (cachedResult === undefined) {
100
+ break use_cache;
85
101
  }
86
102
 
87
- refHasStartedFetching.current = true;
88
-
89
- (async () => {
90
- const { currentLanguageTag = fallbackLanguageTag } = kcContext.locale ?? {};
91
-
92
- setI18n({
93
- ...createI18nTranslationFunctions({
94
- "fallbackMessages": {
95
- ...fallbackMessages,
96
- ...(keycloakifyExtraMessages[fallbackLanguageTag] ?? {}),
97
- ...(extraMessages[fallbackLanguageTag] ?? {})
98
- } as any,
99
- "messages": {
100
- ...(await getMessages(currentLanguageTag)),
101
- ...((keycloakifyExtraMessages as any)[currentLanguageTag] ?? {}),
102
- ...(extraMessages[currentLanguageTag] ?? {})
103
- } as any
104
- }),
105
- currentLanguageTag,
106
- "getChangeLocalUrl": newLanguageTag => {
107
- const { locale } = kcContext;
108
-
109
- assert(locale !== undefined, "Internationalization not enabled");
110
-
111
- const targetSupportedLocale = locale.supported.find(({ languageTag }) => languageTag === newLanguageTag);
112
-
113
- assert(targetSupportedLocale !== undefined, `${newLanguageTag} need to be enabled in Keycloak admin`);
114
-
115
- return targetSupportedLocale.url;
116
- },
117
- "labelBySupportedLanguageTag": Object.fromEntries(
118
- (kcContext.locale?.supported ?? []).map(({ languageTag, label }) => [languageTag, label])
119
- )
120
- });
121
- })();
122
- }, []);
123
-
124
- return i18n ?? null;
103
+ return cachedResult;
104
+ }
105
+
106
+ const partialI18n: Pick<I18n, "currentLanguageTag" | "getChangeLocaleUrl" | "labelBySupportedLanguageTag"> = {
107
+ currentLanguageTag: kcContext.locale?.currentLanguageTag ?? FALLBACK_LANGUAGE_TAG,
108
+ getChangeLocaleUrl: newLanguageTag => {
109
+ const { locale } = kcContext;
110
+
111
+ assert(locale !== undefined, "Internationalization not enabled");
112
+
113
+ const targetSupportedLocale = locale.supported.find(({ languageTag }) => languageTag === newLanguageTag);
114
+
115
+ assert(targetSupportedLocale !== undefined, `${newLanguageTag} need to be enabled in Keycloak admin`);
116
+
117
+ return targetSupportedLocale.url;
118
+ },
119
+ labelBySupportedLanguageTag: Object.fromEntries((kcContext.locale?.supported ?? []).map(({ languageTag, label }) => [languageTag, label]))
120
+ };
121
+
122
+ const { createI18nTranslationFunctions } = createI18nTranslationFunctionsFactory<MessageKey_themeDefined>({
123
+ messages_themeDefined:
124
+ messagesByLanguageTag_themeDefined[partialI18n.currentLanguageTag] ??
125
+ messagesByLanguageTag_themeDefined[FALLBACK_LANGUAGE_TAG] ??
126
+ (() => {
127
+ const firstLanguageTag = Object.keys(messagesByLanguageTag_themeDefined)[0];
128
+ if (firstLanguageTag === undefined) {
129
+ return undefined;
130
+ }
131
+ return messagesByLanguageTag_themeDefined[firstLanguageTag];
132
+ })(),
133
+ messages_fromKcServer: kcContext["x-keycloakify"].messages
134
+ });
135
+
136
+ const isCurrentLanguageFallbackLanguage = partialI18n.currentLanguageTag === FALLBACK_LANGUAGE_TAG;
137
+
138
+ const result: Result = {
139
+ i18n: {
140
+ ...partialI18n,
141
+ ...createI18nTranslationFunctions({
142
+ messages_defaultSet_currentLanguage: isCurrentLanguageFallbackLanguage ? messages_defaultSet_fallbackLanguage : undefined
143
+ }),
144
+ isFetchingTranslations: !isCurrentLanguageFallbackLanguage
145
+ },
146
+ prI18n_currentLanguage: isCurrentLanguageFallbackLanguage
147
+ ? undefined
148
+ : (async () => {
149
+ const messages_defaultSet_currentLanguage = await fetchMessages_defaultSet(partialI18n.currentLanguageTag);
150
+
151
+ const i18n_currentLanguage: I18n = {
152
+ ...partialI18n,
153
+ ...createI18nTranslationFunctions({ messages_defaultSet_currentLanguage }),
154
+ isFetchingTranslations: false
155
+ };
156
+
157
+ // NOTE: This promise.resolve is just because without it we TypeScript
158
+ // gives a Variable 'result' is used before being assigned. error
159
+ await Promise.resolve().then(() => {
160
+ result.i18n = i18n_currentLanguage;
161
+ result.prI18n_currentLanguage = undefined;
162
+ });
163
+
164
+ return i18n_currentLanguage;
165
+ })()
166
+ };
167
+
168
+ cachedResultByKcContext.set(kcContext, result);
169
+
170
+ return result;
125
171
  }
126
172
 
127
- return { useI18n };
173
+ return { getI18n };
128
174
  }
129
175
 
130
- function createI18nTranslationFunctions<MessageKey extends string>(params: {
131
- fallbackMessages: Record<MessageKey, string>;
132
- messages: Record<MessageKey, string>;
133
- }): Pick<GenericI18n<MessageKey>, "msg" | "msgStr" | "advancedMsg" | "advancedMsgStr"> {
134
- const { fallbackMessages, messages } = params;
176
+ function createI18nTranslationFunctionsFactory<MessageKey_themeDefined extends string>(params: {
177
+ messages_themeDefined: Record<MessageKey_themeDefined, string> | undefined;
178
+ messages_fromKcServer: Record<string, string>;
179
+ }) {
180
+ const { messages_themeDefined, messages_fromKcServer } = params;
135
181
 
136
- function resolveMsg(props: { key: string; args: (string | undefined)[]; doRenderMarkdown: boolean }): string | JSX.Element | undefined {
137
- const { key, args, doRenderMarkdown } = props;
182
+ function createI18nTranslationFunctions(params: {
183
+ messages_defaultSet_currentLanguage: Partial<Record<MessageKey_defaultSet, string>> | undefined;
184
+ }): Pick<GenericI18n_noJsx<MessageKey_defaultSet | MessageKey_themeDefined>, "msgStr" | "advancedMsgStr"> {
185
+ const { messages_defaultSet_currentLanguage } = params;
138
186
 
139
- const messageOrUndefined: string | undefined = (messages as any)[key] ?? (fallbackMessages as any)[key];
187
+ function resolveMsg(props: { key: string; args: (string | undefined)[] }): string | undefined {
188
+ const { key, args } = props;
140
189
 
141
- if (messageOrUndefined === undefined) {
142
- return undefined;
143
- }
190
+ const message =
191
+ id<Record<string, string | undefined>>(messages_fromKcServer)[key] ??
192
+ id<Record<string, string | undefined> | undefined>(messages_themeDefined)?.[key] ??
193
+ id<Record<string, string | undefined> | undefined>(messages_defaultSet_currentLanguage)?.[key] ??
194
+ id<Record<string, string | undefined>>(messages_defaultSet_fallbackLanguage)[key];
144
195
 
145
- const message = messageOrUndefined;
196
+ if (message === undefined) {
197
+ return undefined;
198
+ }
146
199
 
147
- const messageWithArgsInjectedIfAny = (() => {
148
200
  const startIndex = message
149
201
  .match(/{[0-9]+}/g)
150
202
  ?.map(g => g.match(/{([0-9]+)}/)![1])
@@ -163,68 +215,36 @@ function createI18nTranslationFunctions<MessageKey extends string>(params: {
163
215
  return;
164
216
  }
165
217
 
166
- messageWithArgsInjected = messageWithArgsInjected.replace(new RegExp(`\\{${i + startIndex}\\}`, "g"), arg);
218
+ messageWithArgsInjected = messageWithArgsInjected.replace(
219
+ new RegExp(`\\{${i + startIndex}\\}`, "g"),
220
+ arg.replace(/</g, "&lt;").replace(/>/g, "&gt;")
221
+ );
167
222
  });
168
223
 
169
224
  return messageWithArgsInjected;
170
- })();
171
-
172
- return doRenderMarkdown ? (
173
- <Markdown allowDangerousHtml renderers={{ "paragraph": "span" }}>
174
- {messageWithArgsInjectedIfAny}
175
- </Markdown>
176
- ) : (
177
- messageWithArgsInjectedIfAny
178
- );
179
- }
225
+ }
180
226
 
181
- function resolveMsgAdvanced(props: { key: string; args: (string | undefined)[]; doRenderMarkdown: boolean }): JSX.Element | string {
182
- const { key, args, doRenderMarkdown } = props;
227
+ function resolveMsgAdvanced(props: { key: string; args: (string | undefined)[] }): string {
228
+ const { key, args } = props;
183
229
 
184
- const match = key.match(/^\$\{([^{]+)\}$/);
230
+ const match = key.match(/^\$\{(.+)\}$/);
185
231
 
186
- const keyUnwrappedFromCurlyBraces = match === null ? key : match[1];
232
+ if (match === null) {
233
+ return key;
234
+ }
187
235
 
188
- const out = resolveMsg({
189
- "key": keyUnwrappedFromCurlyBraces,
190
- args,
191
- doRenderMarkdown
192
- });
236
+ return resolveMsg({ key: match[1], args }) ?? key;
237
+ }
193
238
 
194
- return (out !== undefined ? out : doRenderMarkdown ? <span>{keyUnwrappedFromCurlyBraces}</span> : keyUnwrappedFromCurlyBraces) as any;
239
+ return {
240
+ msgStr: (key, ...args) => {
241
+ const resolvedMessage = resolveMsg({ key, args });
242
+ assert(resolvedMessage !== undefined, `Message with key "${key}" not found`);
243
+ return resolvedMessage;
244
+ },
245
+ advancedMsgStr: (key, ...args) => resolveMsgAdvanced({ key, args })
246
+ };
195
247
  }
196
248
 
197
- return {
198
- "msgStr": (key, ...args) => resolveMsg({ key, args, "doRenderMarkdown": false }) as string,
199
- "msg": (key, ...args) => resolveMsg({ key, args, "doRenderMarkdown": true }) as JSX.Element,
200
- "advancedMsg": (key, ...args) => resolveMsgAdvanced({ key, args, "doRenderMarkdown": true }) as JSX.Element,
201
- "advancedMsgStr": (key, ...args) => resolveMsgAdvanced({ key, args, "doRenderMarkdown": false }) as string
202
- };
249
+ return { createI18nTranslationFunctions };
203
250
  }
204
-
205
- const keycloakifyExtraMessages = {
206
- "en": {
207
- "shouldBeEqual": "{0} should be equal to {1}",
208
- "shouldBeDifferent": "{0} should be different to {1}",
209
- "shouldMatchPattern": "Pattern should match: `/{0}/`",
210
- "mustBeAnInteger": "Must be an integer",
211
- "notAValidOption": "Not a valid option",
212
- "newPasswordSameAsOld": "New password must be different from the old one",
213
- "passwordConfirmNotMatch": "Password confirmation does not match"
214
- },
215
- "fr": {
216
- /* spell-checker: disable */
217
- "shouldBeEqual": "{0} doit être égal à {1}",
218
- "shouldBeDifferent": "{0} doit être différent de {1}",
219
- "shouldMatchPattern": "Dois respecter le schéma: `/{0}/`",
220
- "mustBeAnInteger": "Doit être un nombre entier",
221
- "notAValidOption": "N'est pas une option valide",
222
-
223
- "logoutConfirmTitle": "Déconnexion",
224
- "logoutConfirmHeader": "Êtes-vous sûr(e) de vouloir vous déconnecter ?",
225
- "doLogout": "Se déconnecter",
226
- "newPasswordSameAsOld": "Le nouveau mot de passe doit être différent de l'ancien",
227
- "passwordConfirmNotMatch": "La confirmation du mot de passe ne correspond pas"
228
- /* spell-checker: enable */
229
- }
230
- };
@@ -1 +1,5 @@
1
- export type { I18n } from "./i18n";
1
+ import type { GenericI18n } from "./GenericI18n";
2
+ import type { MessageKey_defaultSet, KcContextLike } from "./i18n";
3
+ export type { MessageKey_defaultSet, KcContextLike };
4
+ export type I18n = GenericI18n<MessageKey_defaultSet>;
5
+ export { createUseI18n } from "./useI18n";
@@ -358,7 +358,9 @@ const messages= {
358
358
  "error-invalid-date": "تاريخ غير صالح.",
359
359
  "error-user-attribute-read-only": "الحقل {0} للقراءة فقط.",
360
360
  "error-username-invalid-character": "اسم المستخدم يحتوي على حرف غير صالح.",
361
- "error-person-name-invalid-character": "الاسم يحتوي على حرف غير صالح."
361
+ "error-person-name-invalid-character": "الاسم يحتوي على حرف غير صالح.",
362
+ "newPasswordSameAsOld": "يجب أن تكون كلمة المرور الجديدة مختلفة عن القديمة",
363
+ "passwordConfirmNotMatch": "تأكيد كلمة المرور لا يتطابق"
362
364
  };
363
365
 
364
366
  export default messages;
@@ -358,7 +358,9 @@ const messages= {
358
358
  "error-invalid-date": "La data no és vàlida.",
359
359
  "error-user-attribute-read-only": "El camp {0} és només de lectura.",
360
360
  "error-username-invalid-character": "El nom d'usuari conté un caràcter no vàlid.",
361
- "error-person-name-invalid-character": "El nom conté un caràcter no vàlid."
361
+ "error-person-name-invalid-character": "El nom conté un caràcter no vàlid.",
362
+ "newPasswordSameAsOld": "La nova contrasenya ha de ser diferent de l'anterior",
363
+ "passwordConfirmNotMatch": "La confirmació de la contrasenya no coincideix"
362
364
  };
363
365
 
364
366
  export default messages;
@@ -150,7 +150,9 @@ const messages= {
150
150
  "invalidPasswordHistoryMessage": "Neplatné heslo: Nesmí se opakovat žádné z posledních {0} hesel.",
151
151
  "invalidPasswordBlacklistedMessage": "Neplatné heslo: heslo je na černé listině.",
152
152
  "invalidPasswordGenericMessage": "Neplatné heslo: nové heslo neodpovídá pravidlům hesla.",
153
- "locale_fa": "فارسی"
153
+ "locale_fa": "فارسی",
154
+ "newPasswordSameAsOld": "Nové heslo musí být odlišné od starého",
155
+ "passwordConfirmNotMatch": "Potvrzení hesla se neshoduje"
154
156
  };
155
157
 
156
158
  export default messages;
@@ -287,7 +287,9 @@ const messages= {
287
287
  "addPeople": "Tilføj folk at dele ressourcen med",
288
288
  "addTeam": "Tilføj hold at dele ressourcen med",
289
289
  "myPermissions": "Mine Tilladelser",
290
- "waitingforApproval": "Afventer godkendelse"
290
+ "waitingforApproval": "Afventer godkendelse",
291
+ "newPasswordSameAsOld": "Det nye kodeord skal være forskelligt fra det gamle",
292
+ "passwordConfirmNotMatch": "Adgangskodebekræftelse matcher ikke"
291
293
  };
292
294
 
293
295
  export default messages;
@@ -310,7 +310,9 @@ const messages= {
310
310
  "openshift.scope.user_check-access": "Benutzerzugriffsinformationen",
311
311
  "openshift.scope.user_full": "Voller Zugriff",
312
312
  "openshift.scope.list-projects": "Projekte auflisten",
313
- "locale_fa": "فارسی"
313
+ "locale_fa": "فارسی",
314
+ "newPasswordSameAsOld": "Das neue Passwort muss sich vom alten unterscheiden",
315
+ "passwordConfirmNotMatch": "Passwortbestätigung stimmt nicht überein"
314
316
  };
315
317
 
316
318
  export default messages;
@@ -357,7 +357,9 @@ const messages= {
357
357
  "allApps": "Όλες οι εφαρμογές",
358
358
  "authorizedProviderMessage": "Πιστοποιημένοι Πάροχοι που είναι συνδεδεμένοι με το λογαριασμό σας",
359
359
  "removeAccessMessage": "Πρέπει να χορηγήσετε ξανά πρόσβαση, αν θέλετε να χρησιμοποιήσετε αυτό το λογαριασμό εφαρμογής.",
360
- "error-invalid-length-too-long": "Το χαρακτηριστικό {0} πρέπει να έχει μέγιστο μήκος {2}."
360
+ "error-invalid-length-too-long": "Το χαρακτηριστικό {0} πρέπει να έχει μέγιστο μήκος {2}.",
361
+ "newPasswordSameAsOld": "Ο νέος κωδικός πρόσβασης πρέπει να διαφέρει από τον παλιό",
362
+ "passwordConfirmNotMatch": "Η επιβεβαίωση του κωδικού πρόσβασης δεν ταιριάζει"
361
363
  };
362
364
 
363
365
  export default messages;
@@ -361,7 +361,9 @@ const messages= {
361
361
  "error-invalid-date": "Invalid date.",
362
362
  "error-user-attribute-read-only": "The field {0} is read only.",
363
363
  "error-username-invalid-character": "Username contains invalid character.",
364
- "error-person-name-invalid-character": "Name contains invalid character."
364
+ "error-person-name-invalid-character": "Name contains invalid character.",
365
+ "newPasswordSameAsOld": "New password must be different from the old one",
366
+ "passwordConfirmNotMatch": "Password confirmation does not match"
365
367
  };
366
368
 
367
369
  export default messages;
@@ -360,7 +360,9 @@ const messages= {
360
360
  "error-invalid-date": "Fecha inválida.",
361
361
  "error-user-attribute-read-only": "El campo {0} es de solo lectura.",
362
362
  "error-username-invalid-character": "El nombre de usuario contiene algún carácter inválido.",
363
- "error-person-name-invalid-character": "El nombre contiene algún carácter inválido."
363
+ "error-person-name-invalid-character": "El nombre contiene algún carácter inválido.",
364
+ "newPasswordSameAsOld": "La nueva contraseña debe ser diferente de la anterior",
365
+ "passwordConfirmNotMatch": "La confirmación de la contraseña no coincide"
364
366
  };
365
367
 
366
368
  export default messages;
@@ -358,7 +358,9 @@ const messages= {
358
358
  "error-invalid-date": "تاریخ نامعتبر است.",
359
359
  "error-user-attribute-read-only": "فیلد {0} فقط قابل رویت است.",
360
360
  "error-username-invalid-character": "نام کاربری حاوی نویسه نامعتبر است.",
361
- "error-person-name-invalid-character": "نام حاوی نویسه نامعتبر است."
361
+ "error-person-name-invalid-character": "نام حاوی نویسه نامعتبر است.",
362
+ "newPasswordSameAsOld": "رمز عبور جدید باید با رمز عبور قبلی متفاوت باشد",
363
+ "passwordConfirmNotMatch": "تأیید رمز عبور مطابقت ندارد"
362
364
  };
363
365
 
364
366
  export default messages;
@@ -354,7 +354,9 @@ const messages= {
354
354
  "error-invalid-date": "Väärä päivämäärä.",
355
355
  "error-user-attribute-read-only": "Kenttä {0} on \"vain luku\"-tilassa.",
356
356
  "error-username-invalid-character": "Käyttäjänimi sisältää vääriä merkkejä.",
357
- "error-person-name-invalid-character": "Nimi sisältää vääriä merkkejä."
357
+ "error-person-name-invalid-character": "Nimi sisältää vääriä merkkejä.",
358
+ "newPasswordSameAsOld": "Uusi salasana on oltava erilainen kuin vanha",
359
+ "passwordConfirmNotMatch": "Salasanan vahvistus ei täsmää"
358
360
  };
359
361
 
360
362
  export default messages;
@@ -161,7 +161,9 @@ const messages= {
161
161
  "accountSecurityIntroMessage": "Gérez votre mot de passe et l'accès à votre compte",
162
162
  "applicationsIntroMessage": "Auditez et gérez les permissions d'accès des applications aux données de votre compte",
163
163
  "applicationType": "Type d'application",
164
- "locale_fa": "فارسی"
164
+ "locale_fa": "فارسی",
165
+ "newPasswordSameAsOld": "Le nouveau mot de passe doit être différent de l'ancien",
166
+ "passwordConfirmNotMatch": "La confirmation du mot de passe ne correspond pas"
165
167
  };
166
168
 
167
169
  export default messages;
@@ -358,7 +358,9 @@ const messages= {
358
358
  "error-invalid-date": "Érvénytelen dátum.",
359
359
  "error-user-attribute-read-only": "A(z) {0} mező csak olvasható.",
360
360
  "error-username-invalid-character": "A felhasználónév érvénytelen karaktert tartalmaz.",
361
- "error-person-name-invalid-character": "A név érvénytelen karaktert tartalmaz."
361
+ "error-person-name-invalid-character": "A név érvénytelen karaktert tartalmaz.",
362
+ "newPasswordSameAsOld": "Az új jelszónak különböznie kell az előzőtől",
363
+ "passwordConfirmNotMatch": "A jelszó megerősítése nem egyezik"
362
364
  };
363
365
 
364
366
  export default messages;
@@ -2,8 +2,8 @@
2
2
  //PLEASE DO NOT EDIT MANUALLY
3
3
  import * as en from "./en";
4
4
 
5
- export async function getMessages(currentLanguageTag: string) {
6
- const { default: messages } = await (() => {
5
+ export async function fetchMessages_defaultSet(currentLanguageTag: string) {
6
+ const { default: messages_defaultSet } = await (() => {
7
7
  switch (currentLanguageTag) {
8
8
  case "en": return en;
9
9
  case "ar": return import("./ar");
@@ -35,5 +35,5 @@ export async function getMessages(currentLanguageTag: string) {
35
35
  default: return { "default": {} };
36
36
  }
37
37
  })();
38
- return messages;
38
+ return messages_defaultSet;
39
39
  }
@@ -298,7 +298,9 @@ const messages= {
298
298
  "openshift.scope.user_info": "Informazioni utente",
299
299
  "openshift.scope.user_check-access": "Informazioni per l'accesso dell'utente",
300
300
  "openshift.scope.user_full": "Accesso completo",
301
- "openshift.scope.list-projects": "Elenca progetti"
301
+ "openshift.scope.list-projects": "Elenca progetti",
302
+ "newPasswordSameAsOld": "La nuova password deve essere diversa da quella precedente",
303
+ "passwordConfirmNotMatch": "La conferma della password non corrisponde"
302
304
  };
303
305
 
304
306
  export default messages;
@@ -292,7 +292,9 @@ const messages= {
292
292
  "openshift.scope.user_check-access": "ユーザーアクセス情報",
293
293
  "openshift.scope.user_full": "フルアクセス",
294
294
  "openshift.scope.list-projects": "プロジェクトの一覧表示",
295
- "locale_fa": "فارسی"
295
+ "locale_fa": "فارسی",
296
+ "newPasswordSameAsOld": "新しいパスワードは古いパスワードと異なる必要があります",
297
+ "passwordConfirmNotMatch": "パスワード確認が一致しません"
296
298
  };
297
299
 
298
300
  export default messages;
@@ -135,7 +135,9 @@ const messages= {
135
135
  "invalidPasswordNotUsernameMessage": "Neteisingas slaptažodis: slaptažodis negali sutapti su naudotojo vardu.",
136
136
  "invalidPasswordRegexPatternMessage": "Neteisingas slaptažodis: slaptažodis netenkina regex taisyklės(ių).",
137
137
  "invalidPasswordHistoryMessage": "Neteisingas slaptažodis: slaptažodis negali sutapti su prieš tai buvusiais {0} slaptažodžiais.",
138
- "locale_fa": "فارسی"
138
+ "locale_fa": "فارسی",
139
+ "newPasswordSameAsOld": "Naujas slaptažodis turi skirtis nuo seno",
140
+ "passwordConfirmNotMatch": "Slaptažodžio patvirtinimas neatitinka"
139
141
  };
140
142
 
141
143
  export default messages;
@@ -179,7 +179,9 @@ const messages= {
179
179
  "allApps": "Visas lietojumprogrammas",
180
180
  "internalApps": "Iekšējās lietojumprogrammas",
181
181
  "thirdpartyApps": "Trešās puses lietojumprogrammas",
182
- "appResults": "Rezultāti"
182
+ "appResults": "Rezultāti",
183
+ "newPasswordSameAsOld": "Jaunajam parolam jābūt atšķirīgam no vecā",
184
+ "passwordConfirmNotMatch": "Paroles apstiprināšana neatbilst"
183
185
  };
184
186
 
185
187
  export default messages;
@@ -327,7 +327,9 @@ const messages= {
327
327
  "error-user-attribute-read-only": "Het veld {0} staat op alleen-lezen.",
328
328
  "error-username-invalid-character": "Gebruikersnaam bevat een ongeldig karakter.",
329
329
  "error-person-name-invalid-character": "Naam bevat een ongeldig karakter.",
330
- "locale_fa": "فارسی"
330
+ "locale_fa": "فارسی",
331
+ "newPasswordSameAsOld": "Het nieuwe wachtwoord moet verschillend zijn van het oude",
332
+ "passwordConfirmNotMatch": "Wachtwoordbevestiging komt niet overeen"
331
333
  };
332
334
 
333
335
  export default messages;
@@ -135,7 +135,9 @@ const messages= {
135
135
  "invalidPasswordNotUsernameMessage": "Ugyldig passord: kan ikke være likt brukernavn.",
136
136
  "invalidPasswordRegexPatternMessage": "Ugyldig passord: tilfredsstiller ikke kravene for passord-mønster.",
137
137
  "invalidPasswordHistoryMessage": "Ugyldig passord: kan ikke være likt noen av de {0} foregående passordene.",
138
- "locale_fa": "فارسی"
138
+ "locale_fa": "فارسی",
139
+ "newPasswordSameAsOld": "Det nye passordet må være forskjellig fra det gamle",
140
+ "passwordConfirmNotMatch": "Passordbekreftelsen stemmer ikke"
139
141
  };
140
142
 
141
143
  export default messages;