keycloakify 10.0.0-rc.1 → 10.0.0-rc.100

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 (1040) hide show
  1. package/PUBLIC_URL.d.ts +1 -1
  2. package/PUBLIC_URL.js +3 -3
  3. package/PUBLIC_URL.js.map +1 -1
  4. package/README.md +8 -6
  5. package/account/DefaultPage.d.ts +5 -0
  6. package/account/{Fallback.js → DefaultPage.js} +5 -2
  7. package/account/DefaultPage.js.map +1 -0
  8. package/account/{kcContext → KcContext}/KcContext.d.ts +75 -59
  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 +143 -0
  18. package/account/KcContext/kcContextMocks.js.map +1 -0
  19. package/account/Template.d.ts +2 -2
  20. package/account/Template.js +12 -12
  21. package/account/Template.js.map +1 -1
  22. package/account/TemplateProps.d.ts +3 -5
  23. package/account/i18n/baseMessages/ar.d.ts +2 -0
  24. package/account/i18n/baseMessages/ar.js +3 -1
  25. package/account/i18n/baseMessages/ar.js.map +1 -1
  26. package/account/i18n/baseMessages/ca.d.ts +2 -0
  27. package/account/i18n/baseMessages/ca.js +3 -1
  28. package/account/i18n/baseMessages/ca.js.map +1 -1
  29. package/account/i18n/baseMessages/cs.d.ts +2 -0
  30. package/account/i18n/baseMessages/cs.js +3 -1
  31. package/account/i18n/baseMessages/cs.js.map +1 -1
  32. package/account/i18n/baseMessages/da.d.ts +2 -0
  33. package/account/i18n/baseMessages/da.js +3 -1
  34. package/account/i18n/baseMessages/da.js.map +1 -1
  35. package/account/i18n/baseMessages/de.d.ts +2 -0
  36. package/account/i18n/baseMessages/de.js +3 -1
  37. package/account/i18n/baseMessages/de.js.map +1 -1
  38. package/account/i18n/baseMessages/el.d.ts +2 -0
  39. package/account/i18n/baseMessages/el.js +3 -1
  40. package/account/i18n/baseMessages/el.js.map +1 -1
  41. package/account/i18n/baseMessages/en.d.ts +2 -0
  42. package/account/i18n/baseMessages/en.js +3 -1
  43. package/account/i18n/baseMessages/en.js.map +1 -1
  44. package/account/i18n/baseMessages/es.d.ts +2 -0
  45. package/account/i18n/baseMessages/es.js +3 -1
  46. package/account/i18n/baseMessages/es.js.map +1 -1
  47. package/account/i18n/baseMessages/fa.d.ts +2 -0
  48. package/account/i18n/baseMessages/fa.js +3 -1
  49. package/account/i18n/baseMessages/fa.js.map +1 -1
  50. package/account/i18n/baseMessages/fi.d.ts +2 -0
  51. package/account/i18n/baseMessages/fi.js +3 -1
  52. package/account/i18n/baseMessages/fi.js.map +1 -1
  53. package/account/i18n/baseMessages/fr.d.ts +2 -0
  54. package/account/i18n/baseMessages/fr.js +3 -1
  55. package/account/i18n/baseMessages/fr.js.map +1 -1
  56. package/account/i18n/baseMessages/hu.d.ts +2 -0
  57. package/account/i18n/baseMessages/hu.js +3 -1
  58. package/account/i18n/baseMessages/hu.js.map +1 -1
  59. package/account/i18n/baseMessages/index.d.ts +18 -0
  60. package/account/i18n/baseMessages/it.d.ts +2 -0
  61. package/account/i18n/baseMessages/it.js +3 -1
  62. package/account/i18n/baseMessages/it.js.map +1 -1
  63. package/account/i18n/baseMessages/ja.d.ts +2 -0
  64. package/account/i18n/baseMessages/ja.js +3 -1
  65. package/account/i18n/baseMessages/ja.js.map +1 -1
  66. package/account/i18n/baseMessages/lt.d.ts +2 -0
  67. package/account/i18n/baseMessages/lt.js +3 -1
  68. package/account/i18n/baseMessages/lt.js.map +1 -1
  69. package/account/i18n/baseMessages/lv.d.ts +2 -0
  70. package/account/i18n/baseMessages/lv.js +3 -1
  71. package/account/i18n/baseMessages/lv.js.map +1 -1
  72. package/account/i18n/baseMessages/nl.d.ts +2 -0
  73. package/account/i18n/baseMessages/nl.js +3 -1
  74. package/account/i18n/baseMessages/nl.js.map +1 -1
  75. package/account/i18n/baseMessages/no.d.ts +2 -0
  76. package/account/i18n/baseMessages/no.js +3 -1
  77. package/account/i18n/baseMessages/no.js.map +1 -1
  78. package/account/i18n/baseMessages/pl.d.ts +2 -0
  79. package/account/i18n/baseMessages/pl.js +3 -1
  80. package/account/i18n/baseMessages/pl.js.map +1 -1
  81. package/account/i18n/baseMessages/pt-BR.d.ts +2 -0
  82. package/account/i18n/baseMessages/pt-BR.js +3 -1
  83. package/account/i18n/baseMessages/pt-BR.js.map +1 -1
  84. package/account/i18n/baseMessages/ru.d.ts +2 -0
  85. package/account/i18n/baseMessages/ru.js +3 -1
  86. package/account/i18n/baseMessages/ru.js.map +1 -1
  87. package/account/i18n/baseMessages/sk.d.ts +2 -0
  88. package/account/i18n/baseMessages/sk.js +3 -1
  89. package/account/i18n/baseMessages/sk.js.map +1 -1
  90. package/account/i18n/baseMessages/sv.d.ts +2 -0
  91. package/account/i18n/baseMessages/sv.js +3 -1
  92. package/account/i18n/baseMessages/sv.js.map +1 -1
  93. package/account/i18n/baseMessages/th.d.ts +2 -0
  94. package/account/i18n/baseMessages/th.js +3 -1
  95. package/account/i18n/baseMessages/th.js.map +1 -1
  96. package/account/i18n/baseMessages/tr.d.ts +2 -0
  97. package/account/i18n/baseMessages/tr.js +3 -1
  98. package/account/i18n/baseMessages/tr.js.map +1 -1
  99. package/account/i18n/baseMessages/uk.d.ts +2 -0
  100. package/account/i18n/baseMessages/uk.js +3 -1
  101. package/account/i18n/baseMessages/uk.js.map +1 -1
  102. package/account/i18n/baseMessages/zh-CN.d.ts +2 -0
  103. package/account/i18n/baseMessages/zh-CN.js +3 -1
  104. package/account/i18n/baseMessages/zh-CN.js.map +1 -1
  105. package/account/i18n/i18n.d.ts +36 -39
  106. package/account/i18n/i18n.js +117 -99
  107. package/account/i18n/i18n.js.map +1 -1
  108. package/account/i18n/index.d.ts +4 -1
  109. package/account/i18n/index.js +1 -1
  110. package/account/i18n/index.js.map +1 -1
  111. package/account/i18n/useI18n.d.ts +13 -0
  112. package/account/i18n/useI18n.js +26 -0
  113. package/account/i18n/useI18n.js.map +1 -0
  114. package/account/index.d.ts +3 -7
  115. package/account/index.js +1 -5
  116. package/account/index.js.map +1 -1
  117. package/account/lib/kcClsx.d.ts +9 -0
  118. package/account/lib/kcClsx.js +19 -0
  119. package/account/lib/kcClsx.js.map +1 -0
  120. package/account/pages/Account.d.ts +1 -1
  121. package/account/pages/Account.js +7 -6
  122. package/account/pages/Account.js.map +1 -1
  123. package/account/pages/Applications.d.ts +1 -1
  124. package/account/pages/Applications.js +7 -8
  125. package/account/pages/Applications.js.map +1 -1
  126. package/account/pages/FederatedIdentity.d.ts +7 -0
  127. package/account/pages/FederatedIdentity.js +8 -0
  128. package/account/pages/FederatedIdentity.js.map +1 -0
  129. package/account/pages/Log.d.ts +1 -1
  130. package/account/pages/Log.js +3 -3
  131. package/account/pages/Log.js.map +1 -1
  132. package/account/pages/PageProps.d.ts +4 -6
  133. package/account/pages/Password.d.ts +1 -1
  134. package/account/pages/Password.js +13 -12
  135. package/account/pages/Password.js.map +1 -1
  136. package/account/pages/Sessions.d.ts +1 -1
  137. package/account/pages/Sessions.js +3 -8
  138. package/account/pages/Sessions.js.map +1 -1
  139. package/account/pages/Totp.d.ts +1 -1
  140. package/account/pages/Totp.js +4 -9
  141. package/account/pages/Totp.js.map +1 -1
  142. package/bin/180.index.js +4664 -0
  143. package/bin/193.index.js +160 -0
  144. package/bin/266.index.js +806 -0
  145. package/bin/304.index.js +1108 -0
  146. package/bin/31.index.js +804 -0
  147. package/bin/36.index.js +9980 -0
  148. package/bin/430.index.js +1349 -0
  149. package/bin/440.index.js +1466 -0
  150. package/bin/453.index.js +769 -0
  151. package/bin/490.index.js +75195 -0
  152. package/bin/525.index.js +41826 -0
  153. package/bin/526.index.js +996 -0
  154. package/bin/538.index.js +108 -0
  155. package/bin/720.index.js +243 -0
  156. package/bin/877.index.js +275 -0
  157. package/bin/893.index.js +712 -0
  158. package/bin/932.index.js +269 -0
  159. package/bin/966.index.js +4232 -0
  160. package/bin/97.index.js +677 -0
  161. package/bin/main.js +11443 -0
  162. package/bin/shared/KeycloakVersionRange.d.ts +5 -0
  163. package/bin/shared/KeycloakVersionRange.js.map +1 -0
  164. package/bin/shared/buildContext.d.ts +74 -0
  165. package/bin/shared/buildContext.js.map +1 -0
  166. package/bin/{keycloakify/generateFtl/pageId.d.ts → shared/constants.d.ts} +15 -1
  167. package/bin/{keycloakify/generateFtl/pageId.js → shared/constants.js} +24 -6
  168. package/bin/shared/constants.js.map +1 -0
  169. package/bin/shared/copyKeycloakResourcesToPublic.d.ts +8 -0
  170. package/bin/shared/copyKeycloakResourcesToPublic.js.map +1 -0
  171. package/bin/shared/downloadKeycloakDefaultTheme.d.ts +11 -0
  172. package/bin/shared/downloadKeycloakDefaultTheme.js.map +1 -0
  173. package/bin/shared/downloadKeycloakStaticResources.d.ts +9 -0
  174. package/bin/shared/downloadKeycloakStaticResources.js.map +1 -0
  175. package/bin/shared/generateKcGenTs.d.ts +12 -0
  176. package/bin/shared/generateKcGenTs.js.map +1 -0
  177. package/bin/shared/metaInfKeycloakThemes.d.ts +13 -0
  178. package/bin/shared/metaInfKeycloakThemes.js.map +1 -0
  179. package/bin/shared/promptKeycloakVersion.d.ts +7 -0
  180. package/bin/shared/promptKeycloakVersion.js.map +1 -0
  181. package/lib/getKcClsx.d.ts +11 -0
  182. package/lib/getKcClsx.js +55 -0
  183. package/lib/getKcClsx.js.map +1 -0
  184. package/login/{Fallback.d.ts → DefaultPage.d.ts} +7 -6
  185. package/login/{Fallback.js → DefaultPage.js} +2 -2
  186. package/login/DefaultPage.js.map +1 -0
  187. package/login/{kcContext → KcContext}/KcContext.d.ts +37 -17
  188. package/login/KcContext/KcContext.js.map +1 -0
  189. package/login/KcContext/getKcContextMock.d.ts +24 -0
  190. package/login/KcContext/getKcContextMock.js +28 -0
  191. package/login/KcContext/getKcContextMock.js.map +1 -0
  192. package/login/KcContext/index.d.ts +2 -0
  193. package/login/KcContext/index.js +2 -0
  194. package/login/KcContext/index.js.map +1 -0
  195. package/login/{kcContext → KcContext}/kcContextMocks.d.ts +1 -1
  196. package/login/KcContext/kcContextMocks.js +334 -0
  197. package/login/KcContext/kcContextMocks.js.map +1 -0
  198. package/login/Template.d.ts +2 -2
  199. package/login/Template.js +23 -23
  200. package/login/Template.js.map +1 -1
  201. package/login/TemplateProps.d.ts +3 -5
  202. package/login/UserProfileFormFields.d.ts +3 -20
  203. package/login/UserProfileFormFields.js +73 -119
  204. package/login/UserProfileFormFields.js.map +1 -1
  205. package/login/UserProfileFormFieldsProps.d.ts +24 -0
  206. package/login/UserProfileFormFieldsProps.js +2 -0
  207. package/login/UserProfileFormFieldsProps.js.map +1 -0
  208. package/login/i18n/baseMessages/ar.d.ts +9 -0
  209. package/login/i18n/baseMessages/ar.js +11 -2
  210. package/login/i18n/baseMessages/ar.js.map +1 -1
  211. package/login/i18n/baseMessages/ca.d.ts +10 -1
  212. package/login/i18n/baseMessages/ca.js +12 -3
  213. package/login/i18n/baseMessages/ca.js.map +1 -1
  214. package/login/i18n/baseMessages/cs.d.ts +9 -0
  215. package/login/i18n/baseMessages/cs.js +11 -2
  216. package/login/i18n/baseMessages/cs.js.map +1 -1
  217. package/login/i18n/baseMessages/da.d.ts +9 -0
  218. package/login/i18n/baseMessages/da.js +11 -2
  219. package/login/i18n/baseMessages/da.js.map +1 -1
  220. package/login/i18n/baseMessages/de.d.ts +9 -0
  221. package/login/i18n/baseMessages/de.js +11 -2
  222. package/login/i18n/baseMessages/de.js.map +1 -1
  223. package/login/i18n/baseMessages/el.d.ts +9 -1
  224. package/login/i18n/baseMessages/el.js +11 -3
  225. package/login/i18n/baseMessages/el.js.map +1 -1
  226. package/login/i18n/baseMessages/en.d.ts +10 -1
  227. package/login/i18n/baseMessages/en.js +12 -3
  228. package/login/i18n/baseMessages/en.js.map +1 -1
  229. package/login/i18n/baseMessages/es.d.ts +10 -1
  230. package/login/i18n/baseMessages/es.js +12 -3
  231. package/login/i18n/baseMessages/es.js.map +1 -1
  232. package/login/i18n/baseMessages/fa.d.ts +9 -1
  233. package/login/i18n/baseMessages/fa.js +11 -3
  234. package/login/i18n/baseMessages/fa.js.map +1 -1
  235. package/login/i18n/baseMessages/fi.d.ts +9 -0
  236. package/login/i18n/baseMessages/fi.js +11 -2
  237. package/login/i18n/baseMessages/fi.js.map +1 -1
  238. package/login/i18n/baseMessages/fr.d.ts +9 -0
  239. package/login/i18n/baseMessages/fr.js +11 -2
  240. package/login/i18n/baseMessages/fr.js.map +1 -1
  241. package/login/i18n/baseMessages/hu.d.ts +10 -1
  242. package/login/i18n/baseMessages/hu.js +12 -3
  243. package/login/i18n/baseMessages/hu.js.map +1 -1
  244. package/login/i18n/baseMessages/index.d.ts +109 -2
  245. package/login/i18n/baseMessages/it.d.ts +9 -0
  246. package/login/i18n/baseMessages/it.js +11 -2
  247. package/login/i18n/baseMessages/it.js.map +1 -1
  248. package/login/i18n/baseMessages/ja.d.ts +9 -0
  249. package/login/i18n/baseMessages/ja.js +11 -2
  250. package/login/i18n/baseMessages/ja.js.map +1 -1
  251. package/login/i18n/baseMessages/lt.d.ts +9 -0
  252. package/login/i18n/baseMessages/lt.js +11 -2
  253. package/login/i18n/baseMessages/lt.js.map +1 -1
  254. package/login/i18n/baseMessages/lv.d.ts +9 -0
  255. package/login/i18n/baseMessages/lv.js +11 -2
  256. package/login/i18n/baseMessages/lv.js.map +1 -1
  257. package/login/i18n/baseMessages/nl.d.ts +9 -0
  258. package/login/i18n/baseMessages/nl.js +11 -2
  259. package/login/i18n/baseMessages/nl.js.map +1 -1
  260. package/login/i18n/baseMessages/no.d.ts +9 -0
  261. package/login/i18n/baseMessages/no.js +11 -2
  262. package/login/i18n/baseMessages/no.js.map +1 -1
  263. package/login/i18n/baseMessages/pl.d.ts +9 -0
  264. package/login/i18n/baseMessages/pl.js +11 -2
  265. package/login/i18n/baseMessages/pl.js.map +1 -1
  266. package/login/i18n/baseMessages/pt-BR.d.ts +9 -0
  267. package/login/i18n/baseMessages/pt-BR.js +11 -2
  268. package/login/i18n/baseMessages/pt-BR.js.map +1 -1
  269. package/login/i18n/baseMessages/ru.d.ts +9 -0
  270. package/login/i18n/baseMessages/ru.js +11 -2
  271. package/login/i18n/baseMessages/ru.js.map +1 -1
  272. package/login/i18n/baseMessages/sk.d.ts +9 -0
  273. package/login/i18n/baseMessages/sk.js +11 -2
  274. package/login/i18n/baseMessages/sk.js.map +1 -1
  275. package/login/i18n/baseMessages/sv.d.ts +9 -0
  276. package/login/i18n/baseMessages/sv.js +11 -2
  277. package/login/i18n/baseMessages/sv.js.map +1 -1
  278. package/login/i18n/baseMessages/th.d.ts +9 -0
  279. package/login/i18n/baseMessages/th.js +11 -2
  280. package/login/i18n/baseMessages/th.js.map +1 -1
  281. package/login/i18n/baseMessages/tr.d.ts +9 -0
  282. package/login/i18n/baseMessages/tr.js +11 -2
  283. package/login/i18n/baseMessages/tr.js.map +1 -1
  284. package/login/i18n/baseMessages/uk.d.ts +9 -0
  285. package/login/i18n/baseMessages/uk.js +11 -2
  286. package/login/i18n/baseMessages/uk.js.map +1 -1
  287. package/login/i18n/baseMessages/zh-CN.d.ts +10 -1
  288. package/login/i18n/baseMessages/zh-CN.js +12 -3
  289. package/login/i18n/baseMessages/zh-CN.js.map +1 -1
  290. package/login/i18n/i18n.d.ts +40 -41
  291. package/login/i18n/i18n.js +139 -100
  292. package/login/i18n/i18n.js.map +1 -1
  293. package/login/i18n/index.d.ts +4 -1
  294. package/login/i18n/index.js +1 -1
  295. package/login/i18n/index.js.map +1 -1
  296. package/login/i18n/useI18n.d.ts +13 -0
  297. package/login/i18n/useI18n.js +26 -0
  298. package/login/i18n/useI18n.js.map +1 -0
  299. package/login/index.d.ts +3 -8
  300. package/login/index.js +1 -6
  301. package/login/index.js.map +1 -1
  302. package/login/lib/kcClsx.d.ts +9 -0
  303. package/login/lib/kcClsx.js +130 -0
  304. package/login/lib/kcClsx.js.map +1 -0
  305. package/login/lib/useUserProfileForm.d.ts +20 -8
  306. package/login/lib/useUserProfileForm.js +409 -302
  307. package/login/lib/useUserProfileForm.js.map +1 -1
  308. package/login/pages/Code.d.ts +1 -1
  309. package/login/pages/Code.js +3 -3
  310. package/login/pages/Code.js.map +1 -1
  311. package/login/pages/DeleteAccountConfirm.d.ts +1 -1
  312. package/login/pages/DeleteAccountConfirm.js +7 -4
  313. package/login/pages/DeleteAccountConfirm.js.map +1 -1
  314. package/login/pages/DeleteCredential.d.ts +1 -1
  315. package/login/pages/DeleteCredential.js +3 -4
  316. package/login/pages/DeleteCredential.js.map +1 -1
  317. package/login/pages/Error.d.ts +1 -1
  318. package/login/pages/Error.js +1 -1
  319. package/login/pages/Error.js.map +1 -1
  320. package/login/pages/FrontchannelLogout.d.ts +1 -1
  321. package/login/pages/FrontchannelLogout.js +1 -1
  322. package/login/pages/FrontchannelLogout.js.map +1 -1
  323. package/login/pages/IdpReviewUserProfile.d.ts +4 -3
  324. package/login/pages/IdpReviewUserProfile.js +4 -5
  325. package/login/pages/IdpReviewUserProfile.js.map +1 -1
  326. package/login/pages/Info.d.ts +1 -1
  327. package/login/pages/Info.js +1 -3
  328. package/login/pages/Info.js.map +1 -1
  329. package/login/pages/Login.d.ts +1 -1
  330. package/login/pages/Login.js +8 -8
  331. package/login/pages/Login.js.map +1 -1
  332. package/login/pages/LoginConfigTotp.d.ts +1 -1
  333. package/login/pages/LoginConfigTotp.js +6 -15
  334. package/login/pages/LoginConfigTotp.js.map +1 -1
  335. package/login/pages/LoginIdpLinkConfirm.d.ts +1 -1
  336. package/login/pages/LoginIdpLinkConfirm.js +3 -4
  337. package/login/pages/LoginIdpLinkConfirm.js.map +1 -1
  338. package/login/pages/LoginIdpLinkEmail.d.ts +2 -2
  339. package/login/pages/LoginIdpLinkEmail.js +1 -1
  340. package/login/pages/LoginIdpLinkEmail.js.map +1 -1
  341. package/login/pages/LoginOauth2DeviceVerifyUserCode.d.ts +3 -3
  342. package/login/pages/LoginOauth2DeviceVerifyUserCode.js +3 -4
  343. package/login/pages/LoginOauth2DeviceVerifyUserCode.js.map +1 -1
  344. package/login/pages/LoginOauthGrant.d.ts +3 -3
  345. package/login/pages/LoginOauthGrant.js +4 -5
  346. package/login/pages/LoginOauthGrant.js.map +1 -1
  347. package/login/pages/LoginOtp.d.ts +1 -1
  348. package/login/pages/LoginOtp.js +3 -4
  349. package/login/pages/LoginOtp.js.map +1 -1
  350. package/login/pages/LoginPageExpired.d.ts +1 -1
  351. package/login/pages/LoginPageExpired.js +1 -1
  352. package/login/pages/LoginPageExpired.js.map +1 -1
  353. package/login/pages/LoginPassword.d.ts +1 -1
  354. package/login/pages/LoginPassword.js +7 -7
  355. package/login/pages/LoginPassword.js.map +1 -1
  356. package/login/pages/LoginRecoveryAuthnCodeConfig.d.ts +1 -1
  357. package/login/pages/LoginRecoveryAuthnCodeConfig.js +16 -16
  358. package/login/pages/LoginRecoveryAuthnCodeConfig.js.map +1 -1
  359. package/login/pages/LoginRecoveryAuthnCodeInput.d.ts +1 -1
  360. package/login/pages/LoginRecoveryAuthnCodeInput.js +3 -4
  361. package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -1
  362. package/login/pages/LoginResetOtp.d.ts +1 -1
  363. package/login/pages/LoginResetOtp.js +3 -4
  364. package/login/pages/LoginResetOtp.js.map +1 -1
  365. package/login/pages/LoginResetPassword.d.ts +1 -1
  366. package/login/pages/LoginResetPassword.js +4 -5
  367. package/login/pages/LoginResetPassword.js.map +1 -1
  368. package/login/pages/LoginUpdatePassword.d.ts +1 -1
  369. package/login/pages/LoginUpdatePassword.js +8 -9
  370. package/login/pages/LoginUpdatePassword.js.map +1 -1
  371. package/login/pages/LoginUpdateProfile.d.ts +4 -3
  372. package/login/pages/LoginUpdateProfile.js +5 -11
  373. package/login/pages/LoginUpdateProfile.js.map +1 -1
  374. package/login/pages/LoginUsername.d.ts +1 -1
  375. package/login/pages/LoginUsername.js +5 -5
  376. package/login/pages/LoginUsername.js.map +1 -1
  377. package/login/pages/LoginVerifyEmail.d.ts +1 -1
  378. package/login/pages/LoginVerifyEmail.js +1 -1
  379. package/login/pages/LoginVerifyEmail.js.map +1 -1
  380. package/login/pages/LoginX509Info.d.ts +1 -1
  381. package/login/pages/LoginX509Info.js +3 -4
  382. package/login/pages/LoginX509Info.js.map +1 -1
  383. package/login/pages/LogoutConfirm.d.ts +1 -1
  384. package/login/pages/LogoutConfirm.js +3 -4
  385. package/login/pages/LogoutConfirm.js.map +1 -1
  386. package/login/pages/PageProps.d.ts +3 -5
  387. package/login/pages/Register.d.ts +4 -3
  388. package/login/pages/Register.js +7 -23
  389. package/login/pages/Register.js.map +1 -1
  390. package/login/pages/SamlPostForm.d.ts +1 -1
  391. package/login/pages/SamlPostForm.js +2 -2
  392. package/login/pages/SamlPostForm.js.map +1 -1
  393. package/login/pages/SelectAuthenticator.d.ts +2 -2
  394. package/login/pages/SelectAuthenticator.js +3 -7
  395. package/login/pages/SelectAuthenticator.js.map +1 -1
  396. package/login/pages/Terms.d.ts +2 -2
  397. package/login/pages/Terms.js +3 -10
  398. package/login/pages/Terms.js.map +1 -1
  399. package/login/pages/UpdateEmail.d.ts +3 -2
  400. package/login/pages/UpdateEmail.js +6 -12
  401. package/login/pages/UpdateEmail.js.map +1 -1
  402. package/login/pages/WebauthnAuthenticate.d.ts +1 -1
  403. package/login/pages/WebauthnAuthenticate.js +25 -22
  404. package/login/pages/WebauthnAuthenticate.js.map +1 -1
  405. package/login/pages/WebauthnError.d.ts +1 -1
  406. package/login/pages/WebauthnError.js +4 -5
  407. package/login/pages/WebauthnError.js.map +1 -1
  408. package/login/pages/WebauthnRegister.d.ts +1 -1
  409. package/login/pages/WebauthnRegister.js +16 -17
  410. package/login/pages/WebauthnRegister.js.map +1 -1
  411. package/package.json +266 -610
  412. package/src/PUBLIC_URL.ts +3 -3
  413. package/src/account/{Fallback.tsx → DefaultPage.tsx} +7 -4
  414. package/src/account/{kcContext → KcContext}/KcContext.ts +95 -63
  415. package/src/account/KcContext/getKcContextMock.ts +69 -0
  416. package/src/account/KcContext/index.ts +2 -0
  417. package/src/account/KcContext/kcContextMocks.ts +190 -0
  418. package/src/account/Template.tsx +14 -19
  419. package/src/account/TemplateProps.ts +4 -5
  420. package/src/account/i18n/baseMessages/ar.ts +3 -1
  421. package/src/account/i18n/baseMessages/ca.ts +3 -1
  422. package/src/account/i18n/baseMessages/cs.ts +3 -1
  423. package/src/account/i18n/baseMessages/da.ts +3 -1
  424. package/src/account/i18n/baseMessages/de.ts +3 -1
  425. package/src/account/i18n/baseMessages/el.ts +3 -1
  426. package/src/account/i18n/baseMessages/en.ts +3 -1
  427. package/src/account/i18n/baseMessages/es.ts +3 -1
  428. package/src/account/i18n/baseMessages/fa.ts +3 -1
  429. package/src/account/i18n/baseMessages/fi.ts +3 -1
  430. package/src/account/i18n/baseMessages/fr.ts +3 -1
  431. package/src/account/i18n/baseMessages/hu.ts +3 -1
  432. package/src/account/i18n/baseMessages/it.ts +3 -1
  433. package/src/account/i18n/baseMessages/ja.ts +3 -1
  434. package/src/account/i18n/baseMessages/lt.ts +3 -1
  435. package/src/account/i18n/baseMessages/lv.ts +3 -1
  436. package/src/account/i18n/baseMessages/nl.ts +3 -1
  437. package/src/account/i18n/baseMessages/no.ts +3 -1
  438. package/src/account/i18n/baseMessages/pl.ts +3 -1
  439. package/src/account/i18n/baseMessages/pt-BR.ts +3 -1
  440. package/src/account/i18n/baseMessages/ru.ts +3 -1
  441. package/src/account/i18n/baseMessages/sk.ts +3 -1
  442. package/src/account/i18n/baseMessages/sv.ts +3 -1
  443. package/src/account/i18n/baseMessages/th.ts +3 -1
  444. package/src/account/i18n/baseMessages/tr.ts +3 -1
  445. package/src/account/i18n/baseMessages/uk.ts +3 -1
  446. package/src/account/i18n/baseMessages/zh-CN.ts +3 -1
  447. package/src/account/i18n/i18n.tsx +204 -149
  448. package/src/account/i18n/index.ts +4 -1
  449. package/src/account/i18n/useI18n.ts +44 -0
  450. package/src/account/index.ts +3 -10
  451. package/src/account/lib/kcClsx.ts +25 -0
  452. package/src/account/pages/Account.tsx +12 -18
  453. package/src/account/pages/Applications.tsx +10 -12
  454. package/src/account/pages/FederatedIdentity.tsx +58 -0
  455. package/src/account/pages/Log.tsx +5 -5
  456. package/src/account/pages/PageProps.ts +4 -6
  457. package/src/account/pages/Password.tsx +17 -19
  458. package/src/account/pages/Sessions.tsx +5 -9
  459. package/src/account/pages/Totp.tsx +36 -57
  460. package/src/bin/add-story.ts +105 -0
  461. package/src/bin/copy-keycloak-resources-to-public.ts +7 -106
  462. package/src/bin/eject-page.ts +256 -0
  463. package/src/bin/initialize-email-theme.ts +39 -34
  464. package/src/bin/keycloakify/buildJars/buildJar.ts +142 -85
  465. package/src/bin/keycloakify/buildJars/buildJars.ts +33 -30
  466. package/src/bin/keycloakify/buildJars/extensionVersions.ts +3 -2
  467. package/src/bin/keycloakify/buildJars/generatePom.ts +19 -11
  468. package/src/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.ts +80 -21
  469. package/src/bin/keycloakify/generateFtl/generateFtl.ts +79 -50
  470. package/src/bin/keycloakify/generateFtl/index.ts +0 -1
  471. package/src/bin/keycloakify/generateFtl/{ftl_object_to_js_code_declaring_an_object.ftl → kcContextDeclarationTemplate.ftl} +252 -285
  472. package/src/bin/keycloakify/generateResources/bringInAccountV1.ts +89 -0
  473. package/src/bin/keycloakify/generateResources/generateMessageProperties.ts +192 -0
  474. package/src/bin/keycloakify/generateResources/generateResources.ts +42 -0
  475. package/src/bin/keycloakify/generateResources/generateResourcesForMainTheme.ts +300 -0
  476. package/src/bin/keycloakify/generateResources/generateResourcesForThemeVariant.ts +70 -0
  477. package/src/bin/keycloakify/generateResources/index.ts +1 -0
  478. package/src/bin/keycloakify/{generateTheme → generateResources}/readExtraPageNames.ts +21 -8
  479. package/src/bin/keycloakify/generateResources/readFieldNameUsage.ts +91 -0
  480. package/src/bin/keycloakify/index.ts +0 -7
  481. package/src/bin/keycloakify/keycloakify.ts +86 -69
  482. package/src/bin/keycloakify/replacers/replaceImportsInCssCode.ts +42 -46
  483. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.ts +15 -12
  484. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/vite.ts +31 -16
  485. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.ts +53 -18
  486. package/src/bin/main.ts +230 -0
  487. package/src/bin/shared/KeycloakVersionRange.ts +9 -0
  488. package/src/bin/shared/buildContext.ts +868 -0
  489. package/src/bin/{keycloakify/generateFtl/pageId.ts → shared/constants.ts} +31 -1
  490. package/src/bin/shared/copyKeycloakResourcesToPublic.ts +101 -0
  491. package/src/bin/shared/downloadKeycloakDefaultTheme.ts +276 -0
  492. package/src/bin/shared/downloadKeycloakStaticResources.ts +53 -0
  493. package/src/bin/shared/generateKcGenTs.ts +68 -0
  494. package/src/bin/shared/metaInfKeycloakThemes.ts +40 -0
  495. package/src/bin/shared/promptKeycloakVersion.ts +130 -0
  496. package/src/bin/start-keycloak/appBuild.ts +180 -0
  497. package/src/bin/start-keycloak/index.ts +1 -0
  498. package/src/bin/start-keycloak/keycloakifyBuild.ts +43 -0
  499. package/src/bin/start-keycloak/myrealm-realm-18.json +2155 -0
  500. package/src/bin/start-keycloak/myrealm-realm-19.json +2186 -0
  501. package/src/bin/start-keycloak/myrealm-realm-20.json +2197 -0
  502. package/src/bin/start-keycloak/myrealm-realm-21.json +2201 -0
  503. package/src/bin/start-keycloak/myrealm-realm-23.json +2155 -0
  504. package/src/bin/start-keycloak/myrealm-realm-24.json +2318 -0
  505. package/src/bin/start-keycloak/myrealm-realm-25.json +2400 -0
  506. package/src/bin/start-keycloak/start-keycloak.ts +451 -0
  507. package/src/bin/tools/SemVer.ts +32 -13
  508. package/src/bin/tools/String.prototype.replaceAll.ts +9 -2
  509. package/src/bin/tools/assertNoPnpmDlx.ts +15 -0
  510. package/src/bin/tools/crawl.ts +4 -1
  511. package/src/bin/tools/crc32.ts +42 -24
  512. package/src/bin/tools/downloadAndExtractArchive.ts +254 -0
  513. package/src/bin/tools/escapeStringForPropertiesFile.ts +64 -0
  514. package/src/bin/tools/extractArchive.ts +140 -0
  515. package/src/bin/tools/fetchProxyOptions.ts +76 -53
  516. package/src/bin/tools/fs.rmSync.ts +4 -4
  517. package/src/bin/tools/getAbsoluteAndInOsFormatPath.ts +17 -2
  518. package/src/bin/tools/octokit-addons/getLatestsSemVersionedTag.ts +8 -2
  519. package/src/bin/tools/octokit-addons/listTags.ts +15 -4
  520. package/src/bin/tools/partitionPromiseSettledResults.ts +12 -3
  521. package/src/bin/tools/{readThisNpmProjectVersion.ts → readThisNpmPackageVersion.ts} +6 -2
  522. package/src/bin/tools/transformCodebase.ts +29 -10
  523. package/src/bin/tools/trimIndent.ts +4 -1
  524. package/src/bin/tsconfig.json +4 -3
  525. package/src/bin/update-kc-gen.ts +13 -0
  526. package/src/lib/getKcClsx.ts +89 -0
  527. package/src/login/{Fallback.tsx → DefaultPage.tsx} +7 -6
  528. package/src/login/{kcContext → KcContext}/KcContext.ts +60 -32
  529. package/src/login/KcContext/getKcContextMock.ts +69 -0
  530. package/src/login/KcContext/index.ts +8 -0
  531. package/src/login/KcContext/kcContextMocks.ts +583 -0
  532. package/src/login/Template.tsx +58 -77
  533. package/src/login/TemplateProps.ts +3 -6
  534. package/src/login/UserProfileFormFields.tsx +127 -215
  535. package/src/login/UserProfileFormFieldsProps.tsx +22 -0
  536. package/src/login/i18n/baseMessages/ar.ts +11 -2
  537. package/src/login/i18n/baseMessages/ca.ts +12 -3
  538. package/src/login/i18n/baseMessages/cs.ts +11 -2
  539. package/src/login/i18n/baseMessages/da.ts +11 -2
  540. package/src/login/i18n/baseMessages/de.ts +11 -2
  541. package/src/login/i18n/baseMessages/el.ts +11 -3
  542. package/src/login/i18n/baseMessages/en.ts +12 -3
  543. package/src/login/i18n/baseMessages/es.ts +12 -3
  544. package/src/login/i18n/baseMessages/fa.ts +11 -3
  545. package/src/login/i18n/baseMessages/fi.ts +11 -2
  546. package/src/login/i18n/baseMessages/fr.ts +11 -2
  547. package/src/login/i18n/baseMessages/hu.ts +12 -3
  548. package/src/login/i18n/baseMessages/it.ts +11 -2
  549. package/src/login/i18n/baseMessages/ja.ts +11 -2
  550. package/src/login/i18n/baseMessages/lt.ts +11 -2
  551. package/src/login/i18n/baseMessages/lv.ts +11 -2
  552. package/src/login/i18n/baseMessages/nl.ts +11 -2
  553. package/src/login/i18n/baseMessages/no.ts +11 -2
  554. package/src/login/i18n/baseMessages/pl.ts +11 -2
  555. package/src/login/i18n/baseMessages/pt-BR.ts +11 -2
  556. package/src/login/i18n/baseMessages/ru.ts +11 -2
  557. package/src/login/i18n/baseMessages/sk.ts +11 -2
  558. package/src/login/i18n/baseMessages/sv.ts +11 -2
  559. package/src/login/i18n/baseMessages/th.ts +11 -2
  560. package/src/login/i18n/baseMessages/tr.ts +11 -2
  561. package/src/login/i18n/baseMessages/uk.ts +11 -2
  562. package/src/login/i18n/baseMessages/zh-CN.ts +12 -3
  563. package/src/login/i18n/i18n.tsx +242 -150
  564. package/src/login/i18n/index.ts +4 -1
  565. package/src/login/i18n/useI18n.ts +44 -0
  566. package/src/login/index.ts +3 -11
  567. package/src/login/lib/kcClsx.ts +143 -0
  568. package/src/login/lib/useUserProfileForm.tsx +488 -359
  569. package/src/login/pages/Code.tsx +8 -5
  570. package/src/login/pages/DeleteAccountConfirm.tsx +15 -10
  571. package/src/login/pages/DeleteCredential.tsx +9 -7
  572. package/src/login/pages/Error.tsx +9 -2
  573. package/src/login/pages/FrontchannelLogout.tsx +6 -3
  574. package/src/login/pages/IdpReviewUserProfile.tsx +21 -22
  575. package/src/login/pages/Info.tsx +5 -8
  576. package/src/login/pages/Login.tsx +36 -55
  577. package/src/login/pages/LoginConfigTotp.tsx +36 -48
  578. package/src/login/pages/LoginIdpLinkConfirm.tsx +7 -18
  579. package/src/login/pages/LoginIdpLinkEmail.tsx +9 -3
  580. package/src/login/pages/LoginOauth2DeviceVerifyUserCode.tsx +24 -23
  581. package/src/login/pages/LoginOauthGrant.tsx +14 -20
  582. package/src/login/pages/LoginOtp.tsx +27 -30
  583. package/src/login/pages/LoginPageExpired.tsx +2 -2
  584. package/src/login/pages/LoginPassword.tsx +22 -32
  585. package/src/login/pages/LoginRecoveryAuthnCodeConfig.tsx +34 -34
  586. package/src/login/pages/LoginRecoveryAuthnCodeInput.tsx +19 -22
  587. package/src/login/pages/LoginResetOtp.tsx +19 -22
  588. package/src/login/pages/LoginResetPassword.tsx +21 -24
  589. package/src/login/pages/LoginUpdatePassword.tsx +41 -51
  590. package/src/login/pages/LoginUpdateProfile.tsx +32 -30
  591. package/src/login/pages/LoginUsername.tsx +24 -35
  592. package/src/login/pages/LoginVerifyEmail.tsx +5 -2
  593. package/src/login/pages/LoginX509Info.tsx +24 -33
  594. package/src/login/pages/LogoutConfirm.tsx +8 -14
  595. package/src/login/pages/PageProps.ts +3 -5
  596. package/src/login/pages/Register.tsx +47 -52
  597. package/src/login/pages/SamlPostForm.tsx +3 -3
  598. package/src/login/pages/SelectAuthenticator.tsx +23 -24
  599. package/src/login/pages/Terms.tsx +14 -24
  600. package/src/login/pages/UpdateEmail.tsx +31 -34
  601. package/src/login/pages/WebauthnAuthenticate.tsx +40 -44
  602. package/src/login/pages/WebauthnError.tsx +15 -19
  603. package/src/login/pages/WebauthnRegister.tsx +29 -38
  604. package/src/tools/Array.prototype.every.ts +4 -1
  605. package/src/tools/ExtractAfterStartingWith.ts +4 -0
  606. package/src/tools/LazyOrNot.ts +3 -1
  607. package/src/tools/Object.fromEntries.ts +23 -0
  608. package/src/tools/StatefulObservable/README.md +16 -0
  609. package/src/tools/StatefulObservable/StatefulObservable.ts +58 -0
  610. package/src/tools/StatefulObservable/hooks/index.ts +2 -0
  611. package/src/tools/StatefulObservable/hooks/useObservable.ts +25 -0
  612. package/src/tools/StatefulObservable/hooks/useRerenderOnChange.ts +19 -0
  613. package/src/tools/StatefulObservable/index.ts +2 -0
  614. package/src/tools/ValueOf.ts +2 -0
  615. package/src/tools/clsx.ts +6 -42
  616. package/src/tools/clsx_withTransform.ts +55 -0
  617. package/src/tools/deepAssign.ts +57 -19
  618. package/src/tools/formatNumber.ts +7 -3
  619. package/src/tools/structuredCloneButFunctions.ts +24 -0
  620. package/src/tools/useConstCallback.ts +3 -1
  621. package/src/tools/useInsertLinkTags.ts +78 -74
  622. package/src/tools/useInsertScriptTags.ts +69 -73
  623. package/src/tools/useOnFirstMount.ts +18 -0
  624. package/src/tools/useSetClassName.ts +4 -1
  625. package/src/vite-plugin/tsconfig.json +2 -1
  626. package/src/vite-plugin/vite-plugin.ts +87 -63
  627. package/stories/account/pages/Account.stories.tsx +18 -0
  628. package/stories/account/pages/Applications.stories.tsx +80 -0
  629. package/stories/account/pages/FederatedIdentity.stories.tsx +38 -0
  630. package/stories/account/pages/Log.stories.tsx +356 -0
  631. package/stories/account/pages/Password.stories.tsx +28 -0
  632. package/stories/account/pages/Sessions.stories.tsx +59 -0
  633. package/stories/account/pages/Totp.stories.tsx +182 -0
  634. package/stories/login/pages/Code.stories.tsx +18 -0
  635. package/stories/login/pages/DeleteAccountConfirm.stories.tsx +18 -0
  636. package/stories/login/pages/DeleteCredential.stories.tsx +18 -0
  637. package/stories/login/pages/Error.stories.tsx +28 -0
  638. package/stories/login/pages/FrontchannelLogout.stories.tsx +18 -0
  639. package/stories/login/pages/IdpReviewUserProfile.stories.tsx +18 -0
  640. package/stories/login/pages/Info.stories.tsx +52 -0
  641. package/stories/login/pages/Login.stories.tsx +221 -0
  642. package/stories/login/pages/LoginConfigTotp.stories.tsx +43 -0
  643. package/stories/login/pages/LoginDeviceVerifyUserCode.stories.tsx +18 -0
  644. package/stories/login/pages/LoginIdpLinkConfirm.stories.tsx +18 -0
  645. package/stories/login/pages/LoginIdpLinkEmail.stories.tsx +18 -0
  646. package/stories/login/pages/LoginOauth2DeviceVerifyUserCode.stories.tsx +18 -0
  647. package/stories/login/pages/LoginOauthGrant.stories.tsx +18 -0
  648. package/stories/login/pages/LoginOtp.stories.tsx +18 -0
  649. package/stories/login/pages/LoginPageExpired.stories.tsx +18 -0
  650. package/stories/login/pages/LoginPassword.stories.tsx +18 -0
  651. package/stories/login/pages/LoginRecoveryAuthnCodeConfig.stories.tsx +18 -0
  652. package/stories/login/pages/LoginRecoveryAuthnCodeInput.stories.tsx +18 -0
  653. package/stories/login/pages/LoginResetOtp.stories.tsx +18 -0
  654. package/stories/login/pages/LoginResetPassword.stories.tsx +31 -0
  655. package/stories/login/pages/LoginUpdatePassword.stories.tsx +18 -0
  656. package/stories/login/pages/LoginUpdateProfile.stories.tsx +18 -0
  657. package/stories/login/pages/LoginUsername.stories.tsx +31 -0
  658. package/stories/login/pages/LoginVerifyEmail.stories.tsx +30 -0
  659. package/stories/login/pages/LoginX509Info.stories.tsx +18 -0
  660. package/stories/login/pages/LogoutConfirm.stories.tsx +18 -0
  661. package/stories/login/pages/Register.stories.tsx +185 -0
  662. package/stories/login/pages/SamlPostForm.stories.tsx +18 -0
  663. package/stories/login/pages/SelectAuthenticator.stories.tsx +43 -0
  664. package/stories/login/pages/Terms.stories.tsx +43 -0
  665. package/stories/login/pages/UpdateEmail.stories.tsx +18 -0
  666. package/stories/login/pages/WebauthnAuthenticate.stories.tsx +18 -0
  667. package/stories/login/pages/WebauthnError.stories.tsx +18 -0
  668. package/stories/login/pages/WebauthnRegister.stories.tsx +18 -0
  669. package/tools/Array.prototype.every.js +2 -1
  670. package/tools/Array.prototype.every.js.map +1 -1
  671. package/tools/ExtractAfterStartingWith.d.ts +1 -0
  672. package/tools/ExtractAfterStartingWith.js +2 -0
  673. package/tools/ExtractAfterStartingWith.js.map +1 -0
  674. package/tools/Object.fromEntries.js +17 -0
  675. package/tools/Object.fromEntries.js.map +1 -0
  676. package/tools/StatefulObservable/StatefulObservable.d.ts +8 -0
  677. package/tools/StatefulObservable/StatefulObservable.js +36 -0
  678. package/tools/StatefulObservable/StatefulObservable.js.map +1 -0
  679. package/tools/StatefulObservable/hooks/index.d.ts +2 -0
  680. package/tools/StatefulObservable/hooks/index.js +3 -0
  681. package/tools/StatefulObservable/hooks/index.js.map +1 -0
  682. package/tools/StatefulObservable/hooks/useObservable.d.ts +8 -0
  683. package/tools/StatefulObservable/hooks/useObservable.js +17 -0
  684. package/tools/StatefulObservable/hooks/useObservable.js.map +1 -0
  685. package/tools/StatefulObservable/hooks/useRerenderOnChange.d.ts +5 -0
  686. package/tools/StatefulObservable/hooks/useRerenderOnChange.js +14 -0
  687. package/tools/StatefulObservable/hooks/useRerenderOnChange.js.map +1 -0
  688. package/tools/StatefulObservable/index.d.ts +2 -0
  689. package/tools/StatefulObservable/index.js +3 -0
  690. package/tools/StatefulObservable/index.js.map +1 -0
  691. package/tools/ValueOf.d.ts +2 -0
  692. package/tools/ValueOf.js +2 -0
  693. package/tools/ValueOf.js.map +1 -0
  694. package/tools/clsx.d.ts +3 -2
  695. package/tools/clsx.js +5 -41
  696. package/tools/clsx.js.map +1 -1
  697. package/tools/clsx_withTransform.d.ts +5 -0
  698. package/tools/clsx_withTransform.js +43 -0
  699. package/tools/clsx_withTransform.js.map +1 -0
  700. package/tools/deepAssign.d.ts +1 -0
  701. package/tools/deepAssign.js +41 -16
  702. package/tools/deepAssign.js.map +1 -1
  703. package/tools/formatNumber.js +2 -1
  704. package/tools/formatNumber.js.map +1 -1
  705. package/tools/structuredCloneButFunctions.d.ts +7 -0
  706. package/tools/structuredCloneButFunctions.js +19 -0
  707. package/tools/structuredCloneButFunctions.js.map +1 -0
  708. package/tools/useConstCallback.js.map +1 -1
  709. package/tools/useInsertLinkTags.d.ts +11 -6
  710. package/tools/useInsertLinkTags.js +53 -52
  711. package/tools/useInsertLinkTags.js.map +1 -1
  712. package/tools/useInsertScriptTags.d.ts +15 -6
  713. package/tools/useInsertScriptTags.js +56 -61
  714. package/tools/useInsertScriptTags.js.map +1 -1
  715. package/tools/useOnFirstMount.d.ts +2 -0
  716. package/tools/useOnFirstMount.js +15 -0
  717. package/tools/useOnFirstMount.js.map +1 -0
  718. package/tools/useSetClassName.js.map +1 -1
  719. package/vite-plugin/index.js +53363 -5
  720. package/vite-plugin/vite-plugin.d.ts +3 -4
  721. package/account/Fallback.d.ts +0 -5
  722. package/account/Fallback.js.map +0 -1
  723. package/account/kcContext/KcContext.js.map +0 -1
  724. package/account/kcContext/createGetKcContext.d.ts +0 -19
  725. package/account/kcContext/createGetKcContext.js +0 -73
  726. package/account/kcContext/createGetKcContext.js.map +0 -1
  727. package/account/kcContext/getKcContext.d.ts +0 -13
  728. package/account/kcContext/getKcContext.js +0 -13
  729. package/account/kcContext/getKcContext.js.map +0 -1
  730. package/account/kcContext/getKcContextFromWindow.d.ts +0 -8
  731. package/account/kcContext/getKcContextFromWindow.js +0 -5
  732. package/account/kcContext/getKcContextFromWindow.js.map +0 -1
  733. package/account/kcContext/index.d.ts +0 -1
  734. package/account/kcContext/index.js +0 -2
  735. package/account/kcContext/index.js.map +0 -1
  736. package/account/kcContext/kcContextMocks.js +0 -207
  737. package/account/kcContext/kcContextMocks.js.map +0 -1
  738. package/account/lib/useGetClassName.d.ts +0 -7
  739. package/account/lib/useGetClassName.js +0 -19
  740. package/account/lib/useGetClassName.js.map +0 -1
  741. package/bin/constants.d.ts +0 -10
  742. package/bin/constants.js +0 -13
  743. package/bin/constants.js.map +0 -1
  744. package/bin/copy-keycloak-resources-to-public.d.ts +0 -14
  745. package/bin/copy-keycloak-resources-to-public.js +0 -216
  746. package/bin/copy-keycloak-resources-to-public.js.map +0 -1
  747. package/bin/download-builtin-keycloak-theme.d.ts +0 -10
  748. package/bin/download-builtin-keycloak-theme.js +0 -352
  749. package/bin/download-builtin-keycloak-theme.js.map +0 -1
  750. package/bin/downloadAndUnzip.d.ts +0 -16
  751. package/bin/downloadAndUnzip.js +0 -255
  752. package/bin/downloadAndUnzip.js.map +0 -1
  753. package/bin/eject-keycloak-page.d.ts +0 -2
  754. package/bin/eject-keycloak-page.js +0 -132
  755. package/bin/eject-keycloak-page.js.map +0 -1
  756. package/bin/getThemeSrcDirPath.d.ts +0 -6
  757. package/bin/getThemeSrcDirPath.js +0 -123
  758. package/bin/getThemeSrcDirPath.js.map +0 -1
  759. package/bin/initialize-email-theme.d.ts +0 -2
  760. package/bin/initialize-email-theme.js +0 -121
  761. package/bin/initialize-email-theme.js.map +0 -1
  762. package/bin/keycloakify/buildJars/buildJar.d.ts +0 -14
  763. package/bin/keycloakify/buildJars/buildJar.js +0 -224
  764. package/bin/keycloakify/buildJars/buildJar.js.map +0 -1
  765. package/bin/keycloakify/buildJars/buildJars.d.ts +0 -10
  766. package/bin/keycloakify/buildJars/buildJars.js +0 -95
  767. package/bin/keycloakify/buildJars/buildJars.js.map +0 -1
  768. package/bin/keycloakify/buildJars/extensionVersions.d.ts +0 -12
  769. package/bin/keycloakify/buildJars/extensionVersions.js +0 -7
  770. package/bin/keycloakify/buildJars/extensionVersions.js.map +0 -1
  771. package/bin/keycloakify/buildJars/generatePom.d.ts +0 -13
  772. package/bin/keycloakify/buildJars/generatePom.js +0 -95
  773. package/bin/keycloakify/buildJars/generatePom.js.map +0 -1
  774. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.d.ts +0 -6
  775. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.js +0 -35
  776. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.js.map +0 -1
  777. package/bin/keycloakify/buildJars/index.d.ts +0 -1
  778. package/bin/keycloakify/buildJars/index.js +0 -18
  779. package/bin/keycloakify/buildJars/index.js.map +0 -1
  780. package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.d.ts +0 -35
  781. package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.js +0 -14
  782. package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.js.map +0 -1
  783. package/bin/keycloakify/buildOptions/buildOptions.d.ts +0 -25
  784. package/bin/keycloakify/buildOptions/buildOptions.js +0 -178
  785. package/bin/keycloakify/buildOptions/buildOptions.js.map +0 -1
  786. package/bin/keycloakify/buildOptions/getCacheDirPath.d.ts +0 -5
  787. package/bin/keycloakify/buildOptions/getCacheDirPath.js +0 -22
  788. package/bin/keycloakify/buildOptions/getCacheDirPath.js.map +0 -1
  789. package/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.d.ts +0 -5
  790. package/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.js +0 -86
  791. package/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.js.map +0 -1
  792. package/bin/keycloakify/buildOptions/getReactAppRootDirPath.d.ts +0 -5
  793. package/bin/keycloakify/buildOptions/getReactAppRootDirPath.js +0 -26
  794. package/bin/keycloakify/buildOptions/getReactAppRootDirPath.js.map +0 -1
  795. package/bin/keycloakify/buildOptions/index.d.ts +0 -1
  796. package/bin/keycloakify/buildOptions/index.js +0 -18
  797. package/bin/keycloakify/buildOptions/index.js.map +0 -1
  798. package/bin/keycloakify/buildOptions/parsedPackageJson.d.ts +0 -10
  799. package/bin/keycloakify/buildOptions/parsedPackageJson.js +0 -49
  800. package/bin/keycloakify/buildOptions/parsedPackageJson.js.map +0 -1
  801. package/bin/keycloakify/buildOptions/resolvedViteConfig.d.ts +0 -13
  802. package/bin/keycloakify/buildOptions/resolvedViteConfig.js +0 -77
  803. package/bin/keycloakify/buildOptions/resolvedViteConfig.js.map +0 -1
  804. package/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +0 -593
  805. package/bin/keycloakify/generateFtl/generateFtl.d.ts +0 -23
  806. package/bin/keycloakify/generateFtl/generateFtl.js +0 -169
  807. package/bin/keycloakify/generateFtl/generateFtl.js.map +0 -1
  808. package/bin/keycloakify/generateFtl/index.d.ts +0 -2
  809. package/bin/keycloakify/generateFtl/index.js +0 -19
  810. package/bin/keycloakify/generateFtl/index.js.map +0 -1
  811. package/bin/keycloakify/generateFtl/pageId.js.map +0 -1
  812. package/bin/keycloakify/generateStartKeycloakTestingContainer.d.ts +0 -11
  813. package/bin/keycloakify/generateStartKeycloakTestingContainer.js +0 -89
  814. package/bin/keycloakify/generateStartKeycloakTestingContainer.js.map +0 -1
  815. package/bin/keycloakify/generateTheme/bringInAccountV1.d.ts +0 -9
  816. package/bin/keycloakify/generateTheme/bringInAccountV1.js +0 -153
  817. package/bin/keycloakify/generateTheme/bringInAccountV1.js.map +0 -1
  818. package/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.d.ts +0 -11
  819. package/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.js +0 -102
  820. package/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.js.map +0 -1
  821. package/bin/keycloakify/generateTheme/generateMessageProperties.d.ts +0 -8
  822. package/bin/keycloakify/generateTheme/generateMessageProperties.js +0 -271
  823. package/bin/keycloakify/generateTheme/generateMessageProperties.js.map +0 -1
  824. package/bin/keycloakify/generateTheme/generateSrcMainResources.d.ts +0 -21
  825. package/bin/keycloakify/generateTheme/generateSrcMainResources.js +0 -340
  826. package/bin/keycloakify/generateTheme/generateSrcMainResources.js.map +0 -1
  827. package/bin/keycloakify/generateTheme/generateTheme.d.ts +0 -13
  828. package/bin/keycloakify/generateTheme/generateTheme.js +0 -115
  829. package/bin/keycloakify/generateTheme/generateTheme.js.map +0 -1
  830. package/bin/keycloakify/generateTheme/generateThemeVariants.d.ts +0 -5
  831. package/bin/keycloakify/generateTheme/generateThemeVariants.js +0 -67
  832. package/bin/keycloakify/generateTheme/generateThemeVariants.js.map +0 -1
  833. package/bin/keycloakify/generateTheme/index.d.ts +0 -1
  834. package/bin/keycloakify/generateTheme/index.js +0 -18
  835. package/bin/keycloakify/generateTheme/index.js.map +0 -1
  836. package/bin/keycloakify/generateTheme/readExtraPageNames.d.ts +0 -5
  837. package/bin/keycloakify/generateTheme/readExtraPageNames.js +0 -105
  838. package/bin/keycloakify/generateTheme/readExtraPageNames.js.map +0 -1
  839. package/bin/keycloakify/generateTheme/readFieldNameUsage.d.ts +0 -7
  840. package/bin/keycloakify/generateTheme/readFieldNameUsage.js +0 -141
  841. package/bin/keycloakify/generateTheme/readFieldNameUsage.js.map +0 -1
  842. package/bin/keycloakify/index.d.ts +0 -2
  843. package/bin/keycloakify/index.js +0 -23
  844. package/bin/keycloakify/index.js.map +0 -1
  845. package/bin/keycloakify/keycloakify.d.ts +0 -1
  846. package/bin/keycloakify/keycloakify.js +0 -166
  847. package/bin/keycloakify/keycloakify.js.map +0 -1
  848. package/bin/keycloakify/replacers/replaceImportsInCssCode.d.ts +0 -15
  849. package/bin/keycloakify/replacers/replaceImportsInCssCode.js +0 -88
  850. package/bin/keycloakify/replacers/replaceImportsInCssCode.js.map +0 -1
  851. package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.d.ts +0 -9
  852. package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.js +0 -38
  853. package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.js.map +0 -1
  854. package/bin/keycloakify/replacers/replaceImportsInJsCode/index.d.ts +0 -1
  855. package/bin/keycloakify/replacers/replaceImportsInJsCode/index.js +0 -18
  856. package/bin/keycloakify/replacers/replaceImportsInJsCode/index.js.map +0 -1
  857. package/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.d.ts +0 -12
  858. package/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.js +0 -70
  859. package/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.js.map +0 -1
  860. package/bin/keycloakify/replacers/replaceImportsInJsCode/vite.d.ts +0 -13
  861. package/bin/keycloakify/replacers/replaceImportsInJsCode/vite.js +0 -95
  862. package/bin/keycloakify/replacers/replaceImportsInJsCode/vite.js.map +0 -1
  863. package/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.d.ts +0 -12
  864. package/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.js +0 -103
  865. package/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.js.map +0 -1
  866. package/bin/promptKeycloakVersion.d.ts +0 -3
  867. package/bin/promptKeycloakVersion.js +0 -121
  868. package/bin/promptKeycloakVersion.js.map +0 -1
  869. package/bin/tools/OptionalIfCanBeUndefined.d.ts +0 -14
  870. package/bin/tools/OptionalIfCanBeUndefined.js +0 -3
  871. package/bin/tools/OptionalIfCanBeUndefined.js.map +0 -1
  872. package/bin/tools/SemVer.d.ts +0 -26
  873. package/bin/tools/SemVer.js +0 -119
  874. package/bin/tools/SemVer.js.map +0 -1
  875. package/bin/tools/String.prototype.replaceAll.d.ts +0 -1
  876. package/bin/tools/String.prototype.replaceAll.js +0 -29
  877. package/bin/tools/String.prototype.replaceAll.js.map +0 -1
  878. package/bin/tools/crawl.d.ts +0 -5
  879. package/bin/tools/crawl.js +0 -74
  880. package/bin/tools/crawl.js.map +0 -1
  881. package/bin/tools/crc32.d.ts +0 -9
  882. package/bin/tools/crc32.js +0 -64
  883. package/bin/tools/crc32.js.map +0 -1
  884. package/bin/tools/deflate.d.ts +0 -24
  885. package/bin/tools/deflate.js +0 -155
  886. package/bin/tools/deflate.js.map +0 -1
  887. package/bin/tools/fetchProxyOptions.d.ts +0 -5
  888. package/bin/tools/fetchProxyOptions.js +0 -172
  889. package/bin/tools/fetchProxyOptions.js.map +0 -1
  890. package/bin/tools/fs.existsAsync.d.ts +0 -1
  891. package/bin/tools/fs.existsAsync.js +0 -86
  892. package/bin/tools/fs.existsAsync.js.map +0 -1
  893. package/bin/tools/fs.rm.d.ts +0 -8
  894. package/bin/tools/fs.rm.js +0 -151
  895. package/bin/tools/fs.rm.js.map +0 -1
  896. package/bin/tools/fs.rmSync.d.ts +0 -8
  897. package/bin/tools/fs.rmSync.js +0 -58
  898. package/bin/tools/fs.rmSync.js.map +0 -1
  899. package/bin/tools/getAbsoluteAndInOsFormatPath.d.ts +0 -4
  900. package/bin/tools/getAbsoluteAndInOsFormatPath.js +0 -16
  901. package/bin/tools/getAbsoluteAndInOsFormatPath.js.map +0 -1
  902. package/bin/tools/getThisCodebaseRootDirPath.d.ts +0 -1
  903. package/bin/tools/getThisCodebaseRootDirPath.js +0 -43
  904. package/bin/tools/getThisCodebaseRootDirPath.js.map +0 -1
  905. package/bin/tools/grant-exec-perms.js +0 -100
  906. package/bin/tools/grant-exec-perms.js.map +0 -1
  907. package/bin/tools/isInside.d.ts +0 -4
  908. package/bin/tools/isInside.js +0 -10
  909. package/bin/tools/isInside.js.map +0 -1
  910. package/bin/tools/kebabCaseToSnakeCase.d.ts +0 -1
  911. package/bin/tools/kebabCaseToSnakeCase.js +0 -35
  912. package/bin/tools/kebabCaseToSnakeCase.js.map +0 -1
  913. package/bin/tools/logger.d.ts +0 -12
  914. package/bin/tools/logger.js +0 -23
  915. package/bin/tools/logger.js.map +0 -1
  916. package/bin/tools/octokit-addons/getLatestsSemVersionedTag.d.ts +0 -14
  917. package/bin/tools/octokit-addons/getLatestsSemVersionedTag.js +0 -119
  918. package/bin/tools/octokit-addons/getLatestsSemVersionedTag.js.map +0 -1
  919. package/bin/tools/octokit-addons/listTags.d.ts +0 -13
  920. package/bin/tools/octokit-addons/listTags.js +0 -154
  921. package/bin/tools/octokit-addons/listTags.js.map +0 -1
  922. package/bin/tools/partitionPromiseSettledResults.d.ts +0 -2
  923. package/bin/tools/partitionPromiseSettledResults.js +0 -41
  924. package/bin/tools/partitionPromiseSettledResults.js.map +0 -1
  925. package/bin/tools/readThisNpmProjectVersion.d.ts +0 -1
  926. package/bin/tools/readThisNpmProjectVersion.js +0 -37
  927. package/bin/tools/readThisNpmProjectVersion.js.map +0 -1
  928. package/bin/tools/tee.d.ts +0 -3
  929. package/bin/tools/tee.js +0 -37
  930. package/bin/tools/tee.js.map +0 -1
  931. package/bin/tools/transformCodebase.d.ts +0 -20
  932. package/bin/tools/transformCodebase.js +0 -97
  933. package/bin/tools/transformCodebase.js.map +0 -1
  934. package/bin/tools/trimIndent.d.ts +0 -5
  935. package/bin/tools/trimIndent.js +0 -82
  936. package/bin/tools/trimIndent.js.map +0 -1
  937. package/bin/tools/unzip.d.ts +0 -2
  938. package/bin/tools/unzip.js +0 -274
  939. package/bin/tools/unzip.js.map +0 -1
  940. package/index.d.ts +0 -1
  941. package/index.js +0 -2
  942. package/index.js.map +0 -1
  943. package/lib/isStorybook.d.ts +0 -1
  944. package/lib/isStorybook.js +0 -2
  945. package/lib/isStorybook.js.map +0 -1
  946. package/lib/keycloakJsAdapter.d.ts +0 -51
  947. package/lib/keycloakJsAdapter.js +0 -74
  948. package/lib/keycloakJsAdapter.js.map +0 -1
  949. package/lib/useGetClassName.d.ts +0 -10
  950. package/lib/useGetClassName.js +0 -14
  951. package/lib/useGetClassName.js.map +0 -1
  952. package/login/Fallback.js.map +0 -1
  953. package/login/kcContext/KcContext.js.map +0 -1
  954. package/login/kcContext/createGetKcContext.d.ts +0 -19
  955. package/login/kcContext/createGetKcContext.js +0 -109
  956. package/login/kcContext/createGetKcContext.js.map +0 -1
  957. package/login/kcContext/getKcContext.d.ts +0 -13
  958. package/login/kcContext/getKcContext.js +0 -13
  959. package/login/kcContext/getKcContext.js.map +0 -1
  960. package/login/kcContext/getKcContextFromWindow.d.ts +0 -8
  961. package/login/kcContext/getKcContextFromWindow.js +0 -5
  962. package/login/kcContext/getKcContextFromWindow.js.map +0 -1
  963. package/login/kcContext/index.d.ts +0 -1
  964. package/login/kcContext/index.js +0 -2
  965. package/login/kcContext/index.js.map +0 -1
  966. package/login/kcContext/kcContextMocks.js +0 -389
  967. package/login/kcContext/kcContextMocks.js.map +0 -1
  968. package/login/lib/useDownloadTerms.d.ts +0 -17
  969. package/login/lib/useDownloadTerms.js +0 -32
  970. package/login/lib/useDownloadTerms.js.map +0 -1
  971. package/login/lib/useGetClassName.d.ts +0 -7
  972. package/login/lib/useGetClassName.js +0 -130
  973. package/login/lib/useGetClassName.js.map +0 -1
  974. package/src/account/kcContext/createGetKcContext.ts +0 -108
  975. package/src/account/kcContext/getKcContext.ts +0 -21
  976. package/src/account/kcContext/getKcContextFromWindow.ts +0 -11
  977. package/src/account/kcContext/index.ts +0 -1
  978. package/src/account/kcContext/kcContextMocks.ts +0 -254
  979. package/src/account/lib/useGetClassName.ts +0 -20
  980. package/src/bin/constants.ts +0 -13
  981. package/src/bin/download-builtin-keycloak-theme.ts +0 -290
  982. package/src/bin/downloadAndUnzip.ts +0 -203
  983. package/src/bin/eject-keycloak-page.ts +0 -64
  984. package/src/bin/getThemeSrcDirPath.ts +0 -47
  985. package/src/bin/keycloakify/buildOptions/UserProvidedBuildOptions.ts +0 -21
  986. package/src/bin/keycloakify/buildOptions/buildOptions.ts +0 -189
  987. package/src/bin/keycloakify/buildOptions/getCacheDirPath.ts +0 -25
  988. package/src/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.ts +0 -49
  989. package/src/bin/keycloakify/buildOptions/getReactAppRootDirPath.ts +0 -23
  990. package/src/bin/keycloakify/buildOptions/index.ts +0 -1
  991. package/src/bin/keycloakify/buildOptions/parsedPackageJson.ts +0 -32
  992. package/src/bin/keycloakify/buildOptions/resolvedViteConfig.ts +0 -74
  993. package/src/bin/keycloakify/generateStartKeycloakTestingContainer.ts +0 -61
  994. package/src/bin/keycloakify/generateTheme/bringInAccountV1.ts +0 -78
  995. package/src/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.ts +0 -49
  996. package/src/bin/keycloakify/generateTheme/generateMessageProperties.ts +0 -179
  997. package/src/bin/keycloakify/generateTheme/generateSrcMainResources.ts +0 -267
  998. package/src/bin/keycloakify/generateTheme/generateTheme.ts +0 -44
  999. package/src/bin/keycloakify/generateTheme/generateThemeVariants.ts +0 -50
  1000. package/src/bin/keycloakify/generateTheme/index.ts +0 -1
  1001. package/src/bin/keycloakify/generateTheme/readFieldNameUsage.ts +0 -55
  1002. package/src/bin/keycloakify/replacers/replaceImportsInInlineCssCode.ts +0 -24
  1003. package/src/bin/promptKeycloakVersion.ts +0 -49
  1004. package/src/bin/tools/grant-exec-perms.ts +0 -19
  1005. package/src/bin/tools/logger.ts +0 -27
  1006. package/src/bin/tools/unzip.ts +0 -141
  1007. package/src/index.ts +0 -1
  1008. package/src/lib/isStorybook.ts +0 -1
  1009. package/src/lib/keycloakJsAdapter.ts +0 -118
  1010. package/src/lib/useGetClassName.ts +0 -18
  1011. package/src/login/kcContext/createGetKcContext.ts +0 -159
  1012. package/src/login/kcContext/getKcContext.ts +0 -21
  1013. package/src/login/kcContext/getKcContextFromWindow.ts +0 -11
  1014. package/src/login/kcContext/index.ts +0 -1
  1015. package/src/login/kcContext/kcContextMocks.ts +0 -630
  1016. package/src/login/lib/useDownloadTerms.ts +0 -57
  1017. package/src/login/lib/useGetClassName.ts +0 -132
  1018. package/src/tools/AndByDiscriminatingKey.ts +0 -25
  1019. package/src/tools/Markdown.ts +0 -3
  1020. package/src/tools/deepClone.ts +0 -17
  1021. package/src/tools/memoize.ts +0 -55
  1022. package/tools/AndByDiscriminatingKey.d.ts +0 -5
  1023. package/tools/AndByDiscriminatingKey.js +0 -2
  1024. package/tools/AndByDiscriminatingKey.js.map +0 -1
  1025. package/tools/Markdown.d.ts +0 -2
  1026. package/tools/Markdown.js +0 -3
  1027. package/tools/Markdown.js.map +0 -1
  1028. package/tools/deepClone.d.ts +0 -2
  1029. package/tools/deepClone.js +0 -14
  1030. package/tools/deepClone.js.map +0 -1
  1031. package/tools/memoize.d.ts +0 -7
  1032. package/tools/memoize.js +0 -38
  1033. package/tools/memoize.js.map +0 -1
  1034. package/vite-plugin/index.js.map +0 -1
  1035. package/vite-plugin/tsconfig.tsbuildinfo +0 -1
  1036. package/vite-plugin/vite-plugin.js +0 -158
  1037. package/vite-plugin/vite-plugin.js.map +0 -1
  1038. /package/account/{kcContext → KcContext}/KcContext.js +0 -0
  1039. /package/login/{kcContext → KcContext}/KcContext.js +0 -0
  1040. /package/{bin/tools/grant-exec-perms.d.ts → tools/Object.fromEntries.d.ts} +0 -0
@@ -69,7 +69,7 @@ const messages= {
69
69
  "internal": "Interný ",
70
70
  "unknown": "Neznámy",
71
71
  "termsTitle": "Zmluvné podmienky",
72
- "termsText": "<p>Zmluvné podmienky, ktoré sa majú definovať</p>",
72
+ "termsText": "",
73
73
  "termsPlainText": "Podmienky, ktoré sa majú definovať. ",
74
74
  "termsAcceptanceRequired": "Musíte súhlasiť s našimi podmienkami.",
75
75
  "acceptTerms": "Súhlasím s podmienkami",
@@ -437,7 +437,16 @@ const messages= {
437
437
  "logoutConfirmTitle": "Odhlásenie",
438
438
  "logoutConfirmHeader": "Chcete sa odhlásiť?",
439
439
  "doLogout": "Odhlásiť",
440
- "readOnlyUsernameMessage": "Nemôžete aktualizovať svoje používateľské meno, pretože je iba na čítanie."
440
+ "readOnlyUsernameMessage": "Nemôžete aktualizovať svoje používateľské meno, pretože je iba na čítanie.",
441
+ "shouldBeEqual": "{0} by mal byť rovnaký ako {1}",
442
+ "shouldBeDifferent": "{0} by mal byť odlišný od {1}",
443
+ "shouldMatchPattern": "Vzor by mal zodpovedať: `/{0}/`",
444
+ "mustBeAnInteger": "Musí byť celé číslo",
445
+ "notAValidOption": "Nie je platná možnosť",
446
+ "selectAnOption": "Vyberte možnosť",
447
+ "remove": "Odstrániť",
448
+ "addValue": "Pridať hodnotu",
449
+ "languages": "Jazyky"
441
450
  };
442
451
 
443
452
  export default messages;
@@ -42,7 +42,7 @@ const messages= {
42
42
  "codeErrorTitle": "Felkod: {0}",
43
43
  "termsTitle": "Användarvillkor",
44
44
  "termsTitleHtml": "Användarvillkor",
45
- "termsText": "<p>Användarvillkoren har ännu inte definierats</p>",
45
+ "termsText": "",
46
46
  "recaptchaFailed": "Ogiltig Recaptcha",
47
47
  "recaptchaNotConfigured": "Recaptcha krävs, men är inte inställd",
48
48
  "consentDenied": "Samtycke förnekat.",
@@ -191,7 +191,16 @@ const messages= {
191
191
  "clientDisabledMessage": "Klienten är inaktiverad.",
192
192
  "invalidParameterMessage": "Ogiltig parameter: {0}",
193
193
  "alreadyLoggedIn": "Du är redan inloggad.",
194
- "loginAccountTitle": "Logga in till ditt konto"
194
+ "loginAccountTitle": "Logga in till ditt konto",
195
+ "shouldBeEqual": "{0} bör vara lika med {1}",
196
+ "shouldBeDifferent": "{0} bör vara annorlunda än {1}",
197
+ "shouldMatchPattern": "Mönstret bör matcha: `/{0}/`",
198
+ "mustBeAnInteger": "Måste vara ett heltal",
199
+ "notAValidOption": "Inte ett giltigt alternativ",
200
+ "selectAnOption": "Välj ett alternativ",
201
+ "remove": "Ta bort",
202
+ "addValue": "Lägg till värde",
203
+ "languages": "Språk"
195
204
  };
196
205
 
197
206
  export default messages;
@@ -69,7 +69,7 @@ const messages= {
69
69
  "internal": "ภายใน",
70
70
  "unknown": "ไม่ทราบ",
71
71
  "termsTitle": "ข้อกำหนดและเงื่อนไข",
72
- "termsText": "<p>ข้อกำหนดและเงื่อนไขที่จะกำหนด</p>",
72
+ "termsText": "",
73
73
  "termsPlainText": "ข้อกำหนดและเงื่อนไขที่จะกำหนด",
74
74
  "termsAcceptanceRequired": "คุณต้องยอมรับข้อกำหนดและเงื่อนไขของเรา",
75
75
  "acceptTerms": "ฉันยอมรับข้อกำหนดและเงื่อนไข",
@@ -433,7 +433,16 @@ const messages= {
433
433
  "logoutConfirmTitle": "กำลังออกจากระบบ",
434
434
  "logoutConfirmHeader": "คุณต้องการออกจากระบบหรือไม่?",
435
435
  "doLogout": "ออกจากระบบ",
436
- "readOnlyUsernameMessage": "คุณไม่สามารถปรับปรุงชื่อผู้ใช้งานของคุณเนื่องจากเป็นข้อมูลแบบอ่านอย่างเดียว"
436
+ "readOnlyUsernameMessage": "คุณไม่สามารถปรับปรุงชื่อผู้ใช้งานของคุณเนื่องจากเป็นข้อมูลแบบอ่านอย่างเดียว",
437
+ "shouldBeEqual": "{0} ควรเท่ากับ {1}",
438
+ "shouldBeDifferent": "{0} ควรแตกต่างจาก {1}",
439
+ "shouldMatchPattern": "รูปแบบควรตรงกับ: `/{0}/`",
440
+ "mustBeAnInteger": "ต้องเป็นจำนวนเต็ม",
441
+ "notAValidOption": "ไม่ใช่ตัวเลือกที่ถูกต้อง",
442
+ "selectAnOption": "เลือกตัวเลือก",
443
+ "remove": "ลบ",
444
+ "addValue": "เพิ่มค่า",
445
+ "languages": "ภาษา"
437
446
  };
438
447
 
439
448
  export default messages;
@@ -46,7 +46,7 @@ const messages= {
46
46
  "browserContinuePrompt": "Tarayıcı aç ve girişe devam et? [e/h]:",
47
47
  "browserContinueAnswer": "h",
48
48
  "termsTitle": "Şartlar ve koşullar",
49
- "termsText": "<p>Tanımlanacak şartlar ve koşullar</p>",
49
+ "termsText": "",
50
50
  "termsPlainText": "Tanımlanacak şartlar ve koşullar.",
51
51
  "recaptchaFailed": "Geçersiz Recaptcha",
52
52
  "recaptchaNotConfigured": "Recaptcha gerekli, ancak yapılandırılmamış",
@@ -260,7 +260,16 @@ const messages= {
260
260
  "console-email-code": "E-posta Kodu:",
261
261
  "console-accept-terms": "Şartları kabul et? [e/h]:",
262
262
  "console-accept": "e",
263
- "readOnlyUsernameMessage": "Yazma korumalı olduğundan kullanıcı adınızı değiştiremezsiniz."
263
+ "readOnlyUsernameMessage": "Yazma korumalı olduğundan kullanıcı adınızı değiştiremezsiniz.",
264
+ "shouldBeEqual": "{0} {1} eşit olmalıdır",
265
+ "shouldBeDifferent": "{0} {1} farklı olmalıdır",
266
+ "shouldMatchPattern": "Desen eşleşmelidir: `/{0}/`",
267
+ "mustBeAnInteger": "Tam sayı olmalıdır",
268
+ "notAValidOption": "Geçerli bir seçenek değil",
269
+ "selectAnOption": "Bir seçenek seçin",
270
+ "remove": "Kaldır",
271
+ "addValue": "Değer ekle",
272
+ "languages": "Diller"
264
273
  };
265
274
 
266
275
  export default messages;
@@ -64,7 +64,7 @@ const messages= {
64
64
  "browserContinuePrompt": "Відкрити браузер і продовжити вхід? [y/n]:",
65
65
  "browserContinueAnswer": "y",
66
66
  "termsTitle": "Умови",
67
- "termsText": "<p>Положення та умови повинні бути визначені</p>",
67
+ "termsText": "",
68
68
  "termsPlainText": "Положення та умови, які будуть визначені.",
69
69
  "termsAcceptanceRequired": "Ви повинні погодитися з умовами.",
70
70
  "acceptTerms": "Я погоджуюсь з умовами",
@@ -432,7 +432,16 @@ const messages= {
432
432
  "logoutConfirmTitle": "Вихід",
433
433
  "logoutConfirmHeader": "Ви бажаєте вийти?",
434
434
  "doLogout": "Вийти",
435
- "readOnlyUsernameMessage": "Ви не можете оновити своє ім'я користувача, оскільки воно доступне лише для читання."
435
+ "readOnlyUsernameMessage": "Ви не можете оновити своє ім'я користувача, оскільки воно доступне лише для читання.",
436
+ "shouldBeEqual": "{0} повинно бути рівним {1}",
437
+ "shouldBeDifferent": "{0} повинно відрізнятися від {1}",
438
+ "shouldMatchPattern": "Шаблон повинен відповідати: `/{0}/`",
439
+ "mustBeAnInteger": "Повинно бути цілим числом",
440
+ "notAValidOption": "Не є дійсною опцією",
441
+ "selectAnOption": "Виберіть опцію",
442
+ "remove": "Видалити",
443
+ "addValue": "Додати значення",
444
+ "languages": "Мови"
436
445
  };
437
446
 
438
447
  export default messages;
@@ -69,7 +69,7 @@ const messages= {
69
69
  "internal": "内部",
70
70
  "unknown": "未知",
71
71
  "termsTitle": "条款",
72
- "termsText": "<p>需要确定的条款</p>",
72
+ "termsText": "",
73
73
  "termsPlainText": "需要确定的条款。",
74
74
  "termsAcceptanceRequired": "您必须同意我们的的服务条款。",
75
75
  "acceptTerms": "我同意服务条款",
@@ -346,7 +346,7 @@ const messages= {
346
346
  "locale_nl": "Nederlands",
347
347
  "locale_no": "Norsk",
348
348
  "locale_pl": "Polski",
349
- "locale_pt_BR": "Português (Brasil)",
349
+ "locale_pt-BR": "Português (Brasil)",
350
350
  "locale_ru": "Русский",
351
351
  "locale_sk": "Slovenčina",
352
352
  "locale_sv": "Svenska",
@@ -461,7 +461,16 @@ const messages= {
461
461
  "logoutConfirmTitle": "注销",
462
462
  "logoutConfirmHeader": "您确定要注销吗?",
463
463
  "doLogout": "注销",
464
- "readOnlyUsernameMessage": "由于用户名是只读的,您无法更新用户名。"
464
+ "readOnlyUsernameMessage": "由于用户名是只读的,您无法更新用户名。",
465
+ "shouldBeEqual": "{0} 应该等于 {1}",
466
+ "shouldBeDifferent": "{0} 应该不同于 {1}",
467
+ "shouldMatchPattern": "模式应匹配: `/{0}/`",
468
+ "mustBeAnInteger": "必须是整数",
469
+ "notAValidOption": "不是有效选项",
470
+ "selectAnOption": "选择一个选项",
471
+ "remove": "移除",
472
+ "addValue": "添加值",
473
+ "languages": "语言"
465
474
  };
466
475
 
467
476
  export default messages;
@@ -1,24 +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_fallbackLanguage from "./baseMessages/en";
4
+ import { getMessages } from "./baseMessages";
5
+ import type { KcContext } from "../KcContext";
6
+ import { fallbackLanguageTag } from "keycloakify/bin/shared/constants";
11
7
 
12
8
  export type KcContextLike = {
13
9
  locale?: {
14
10
  currentLanguageTag: string;
15
11
  supported: { languageTag: string; url: string; label: string }[];
16
12
  };
13
+ "x-keycloakify": {
14
+ realmMessageBundleUserProfile: Record<string, string> | undefined;
15
+ realmMessageBundleTermsText: string | undefined;
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];
21
+ export type MessageKey = keyof typeof messages_fallbackLanguage;
22
22
 
23
23
  export type GenericI18n<MessageKey extends string> = {
24
24
  /**
@@ -28,11 +28,10 @@ export type GenericI18n<MessageKey extends string> = {
28
28
  */
29
29
  currentLanguageTag: string;
30
30
  /**
31
- * To call when the user switch language.
32
- * This will cause the page to be reloaded,
33
- * on next load currentLanguageTag === newLanguageTag
31
+ * Redirect to this url to change the language.
32
+ * After reload currentLanguageTag === newLanguageTag
34
33
  */
35
- changeLocale: (newLanguageTag: string) => never;
34
+ getChangeLocaleUrl: (newLanguageTag: string) => string;
36
35
  /**
37
36
  * e.g. "en" => "English", "fr" => "Français", ...
38
37
  *
@@ -54,182 +53,275 @@ export type GenericI18n<MessageKey extends string> = {
54
53
  */
55
54
  msgStr: (key: MessageKey, ...args: (string | undefined)[]) => string;
56
55
  /**
56
+ * This is meant to be used when the key argument is variable, something that might have been configured by the user
57
+ * in the Keycloak admin for example.
58
+ *
57
59
  * Examples assuming currentLanguageTag === "en"
58
- * advancedMsg("${access-denied} foo bar") === <span>${msgStr("access-denied")} foo bar<span> === <span>Access denied foo bar</span>
60
+ * {
61
+ * en: {
62
+ * "access-denied": "Access denied",
63
+ * "foo": "Foo {0} {1}",
64
+ * "bar": "Bar {0}"
65
+ * }
66
+ * }
67
+ *
68
+ * advancedMsg("${access-denied} foo bar") === <span>{msgStr("access-denied")} foo bar<span> === <span>Access denied foo bar</span>
59
69
  * advancedMsg("${access-denied}") === advancedMsg("access-denied") === msg("access-denied") === <span>Access denied</span>
60
70
  * advancedMsg("${not-a-message-key}") === advancedMsg(not-a-message-key") === <span>not-a-message-key</span>
71
+ * advancedMsg("${bar}", "<strong>c</strong>")
72
+ * === <span>{msgStr("bar", "<strong>XXX</strong>")}<span>
73
+ * === <span>Bar &lt;strong&gt;XXX&lt;/strong&gt;</span> (The html in the arg is partially escaped for security reasons, it might be untrusted)
74
+ * advancedMsg("${foo} xx ${bar}", "a", "b", "c")
75
+ * === <span>{msgStr("foo", "a", "b")} xx {msgStr("bar")}<span>
76
+ * === <span>Foo a b xx Bar {0}</span> (The substitution are only applied in the first message)
61
77
  */
62
78
  advancedMsg: (key: string, ...args: (string | undefined)[]) => JSX.Element;
63
79
  /**
64
- * Examples assuming currentLanguageTag === "en"
65
- * advancedMsg("${access-denied} foo bar") === msg("access-denied") + " foo bar" === "Access denied foo bar"
66
- * advancedMsg("${not-a-message-key}") === advancedMsg(not-a-message-key") === "not-a-message-key"
80
+ * See advancedMsg() but instead of returning a JSX.Element it returns a string.
67
81
  */
68
82
  advancedMsgStr: (key: string, ...args: (string | undefined)[]) => string;
69
- };
70
83
 
71
- export type I18n = GenericI18n<MessageKey>;
84
+ /**
85
+ * Initially the messages are in english (fallback language).
86
+ * The translations in the current language are being fetched dynamically.
87
+ * This property is true while the translations are being fetched.
88
+ */
89
+ isFetchingTranslations: boolean;
90
+ };
72
91
 
73
- export function createUseI18n<ExtraMessageKey extends string = never>(extraMessages: {
92
+ export function createGetI18n<ExtraMessageKey extends string = never>(messageBundle: {
74
93
  [languageTag: string]: { [key in ExtraMessageKey]: string };
75
94
  }) {
76
- function useI18n(params: { kcContext: KcContextLike }): GenericI18n<MessageKey | ExtraMessageKey> | null {
77
- const { kcContext } = params;
95
+ type I18n = GenericI18n<MessageKey | ExtraMessageKey>;
78
96
 
79
- const [i18n, setI18n] = useState<GenericI18n<ExtraMessageKey | MessageKey> | undefined>(undefined);
97
+ type Result = { i18n: I18n; prI18n_currentLanguage: Promise<I18n> | undefined };
98
+
99
+ const cachedResultByKcContext = new WeakMap<KcContextLike, Result>();
100
+
101
+ function getI18n(params: { kcContext: KcContextLike }): Result {
102
+ const { kcContext } = params;
80
103
 
81
- const refHasStartedFetching = useRef(false);
104
+ use_cache: {
105
+ const cachedResult = cachedResultByKcContext.get(kcContext);
82
106
 
83
- useEffect(() => {
84
- if (refHasStartedFetching.current) {
85
- return;
107
+ if (cachedResult === undefined) {
108
+ break use_cache;
86
109
  }
87
110
 
88
- refHasStartedFetching.current = true;
89
-
90
- (async () => {
91
- const { currentLanguageTag = fallbackLanguageTag } = kcContext.locale ?? {};
92
-
93
- setI18n({
94
- ...createI18nTranslationFunctions({
95
- "fallbackMessages": {
96
- ...fallbackMessages,
97
- ...(keycloakifyExtraMessages[fallbackLanguageTag] ?? {}),
98
- ...(extraMessages[fallbackLanguageTag] ?? {})
99
- } as any,
100
- "messages": {
101
- ...(await getMessages(currentLanguageTag)),
102
- ...((keycloakifyExtraMessages as any)[currentLanguageTag] ?? {}),
103
- ...(extraMessages[currentLanguageTag] ?? {})
104
- } as any
105
- }),
106
- currentLanguageTag,
107
- "changeLocale": newLanguageTag => {
108
- const { locale } = kcContext;
109
-
110
- assert(locale !== undefined, "Internationalization not enabled");
111
-
112
- const targetSupportedLocale = locale.supported.find(({ languageTag }) => languageTag === newLanguageTag);
113
-
114
- assert(targetSupportedLocale !== undefined, `${newLanguageTag} need to be enabled in Keycloak admin`);
115
-
116
- window.location.href = targetSupportedLocale.url;
117
-
118
- assert(false, "never");
119
- },
120
- "labelBySupportedLanguageTag": Object.fromEntries(
121
- (kcContext.locale?.supported ?? []).map(({ languageTag, label }) => [languageTag, label])
122
- )
123
- });
124
- })();
125
- }, []);
111
+ return cachedResult;
112
+ }
113
+
114
+ const partialI18n: Pick<I18n, "currentLanguageTag" | "getChangeLocaleUrl" | "labelBySupportedLanguageTag"> = {
115
+ currentLanguageTag: kcContext.locale?.currentLanguageTag ?? fallbackLanguageTag,
116
+ getChangeLocaleUrl: newLanguageTag => {
117
+ const { locale } = kcContext;
118
+
119
+ assert(locale !== undefined, "Internationalization not enabled");
120
+
121
+ const targetSupportedLocale = locale.supported.find(({ languageTag }) => languageTag === newLanguageTag);
122
+
123
+ assert(targetSupportedLocale !== undefined, `${newLanguageTag} need to be enabled in Keycloak admin`);
124
+
125
+ return targetSupportedLocale.url;
126
+ },
127
+ labelBySupportedLanguageTag: Object.fromEntries((kcContext.locale?.supported ?? []).map(({ languageTag, label }) => [languageTag, label]))
128
+ };
126
129
 
127
- return i18n ?? null;
130
+ const { createI18nTranslationFunctions } = createI18nTranslationFunctionsFactory<MessageKey, ExtraMessageKey>({
131
+ messages_fallbackLanguage,
132
+ messageBundle_fallbackLanguage: messageBundle[fallbackLanguageTag],
133
+ messageBundle_currentLanguage: messageBundle[partialI18n.currentLanguageTag],
134
+ realmMessageBundleUserProfile: kcContext["x-keycloakify"].realmMessageBundleUserProfile,
135
+ realmMessageBundleTermsText: kcContext["x-keycloakify"].realmMessageBundleTermsText
136
+ });
137
+
138
+ const isCurrentLanguageFallbackLanguage = partialI18n.currentLanguageTag === fallbackLanguageTag;
139
+
140
+ const result: Result = {
141
+ i18n: {
142
+ ...partialI18n,
143
+ ...createI18nTranslationFunctions({
144
+ messages_currentLanguage: isCurrentLanguageFallbackLanguage ? messages_fallbackLanguage : undefined
145
+ }),
146
+ isFetchingTranslations: !isCurrentLanguageFallbackLanguage
147
+ },
148
+ prI18n_currentLanguage: isCurrentLanguageFallbackLanguage
149
+ ? undefined
150
+ : (async () => {
151
+ const messages_currentLanguage = await getMessages(partialI18n.currentLanguageTag);
152
+
153
+ const i18n_currentLanguage: I18n = {
154
+ ...partialI18n,
155
+ ...createI18nTranslationFunctions({ messages_currentLanguage }),
156
+ isFetchingTranslations: false
157
+ };
158
+
159
+ // NOTE: This promise.resolve is just because without it we TypeScript
160
+ // gives a Variable 'result' is used before being assigned. error
161
+ await Promise.resolve().then(() => {
162
+ result.i18n = i18n_currentLanguage;
163
+ result.prI18n_currentLanguage = undefined;
164
+ });
165
+
166
+ return i18n_currentLanguage;
167
+ })()
168
+ };
169
+
170
+ cachedResultByKcContext.set(kcContext, result);
171
+
172
+ return result;
128
173
  }
129
174
 
130
- return { useI18n };
175
+ return { getI18n };
131
176
  }
132
177
 
133
- function createI18nTranslationFunctions<MessageKey extends string>(params: {
134
- fallbackMessages: Record<MessageKey, string>;
135
- messages: Record<MessageKey, string>;
136
- }): Pick<GenericI18n<MessageKey>, "msg" | "msgStr" | "advancedMsg" | "advancedMsgStr"> {
137
- const { fallbackMessages, messages } = params;
178
+ function createI18nTranslationFunctionsFactory<MessageKey extends string, ExtraMessageKey extends string>(params: {
179
+ messages_fallbackLanguage: Record<MessageKey, string>;
180
+ messageBundle_fallbackLanguage: Record<ExtraMessageKey, string> | undefined;
181
+ messageBundle_currentLanguage: Partial<Record<ExtraMessageKey, string>> | undefined;
182
+ realmMessageBundleUserProfile: Record<string, string> | undefined;
183
+ realmMessageBundleTermsText: string | undefined;
184
+ }) {
185
+ const { messageBundle_currentLanguage, realmMessageBundleUserProfile, realmMessageBundleTermsText } = params;
138
186
 
139
- function resolveMsg(props: { key: string; args: (string | undefined)[]; doRenderMarkdown: boolean }): string | JSX.Element | undefined {
140
- const { key, args, doRenderMarkdown } = props;
187
+ const messages_fallbackLanguage = {
188
+ ...params.messages_fallbackLanguage,
189
+ ...params.messageBundle_fallbackLanguage
190
+ };
141
191
 
142
- const messageOrUndefined: string | undefined = (messages as any)[key] ?? (fallbackMessages as any)[key];
192
+ function createI18nTranslationFunctions(params: {
193
+ messages_currentLanguage: Partial<Record<MessageKey, string>> | undefined;
194
+ }): Pick<GenericI18n<MessageKey | ExtraMessageKey>, "msg" | "msgStr" | "advancedMsg" | "advancedMsgStr"> {
195
+ const messages_currentLanguage = {
196
+ ...params.messages_currentLanguage,
197
+ ...messageBundle_currentLanguage
198
+ };
143
199
 
144
- if (messageOrUndefined === undefined) {
145
- return undefined;
146
- }
200
+ function resolveMsg(props: { key: string; args: (string | undefined)[]; doRenderAsHtml: boolean }): string | JSX.Element | undefined {
201
+ const { key, args, doRenderAsHtml } = props;
202
+
203
+ const messageOrUndefined: string | undefined = (() => {
204
+ const messageOrUndefined = (messages_currentLanguage as any)[key] ?? (messages_fallbackLanguage as any)[key];
147
205
 
148
- const message = messageOrUndefined;
206
+ if (key === "termsText" && realmMessageBundleTermsText !== undefined) {
207
+ return realmMessageBundleTermsText;
208
+ }
149
209
 
150
- const messageWithArgsInjectedIfAny = (() => {
151
- const startIndex = message
152
- .match(/{[0-9]+}/g)
153
- ?.map(g => g.match(/{([0-9]+)}/)![1])
154
- .map(indexStr => parseInt(indexStr))
155
- .sort((a, b) => a - b)[0];
210
+ return messageOrUndefined;
211
+ })();
156
212
 
157
- if (startIndex === undefined) {
158
- // No {0} in message (no arguments expected)
159
- return message;
213
+ if (messageOrUndefined === undefined) {
214
+ return undefined;
160
215
  }
161
216
 
162
- let messageWithArgsInjected = message;
217
+ const message = messageOrUndefined;
218
+
219
+ const messageWithArgsInjectedIfAny = (() => {
220
+ const startIndex = message
221
+ .match(/{[0-9]+}/g)
222
+ ?.map(g => g.match(/{([0-9]+)}/)![1])
223
+ .map(indexStr => parseInt(indexStr))
224
+ .sort((a, b) => a - b)[0];
163
225
 
164
- args.forEach((arg, i) => {
165
- if (arg === undefined) {
166
- return;
226
+ if (startIndex === undefined) {
227
+ // No {0} in message (no arguments expected)
228
+ return message;
167
229
  }
168
230
 
169
- messageWithArgsInjected = messageWithArgsInjected.replace(new RegExp(`\\{${i + startIndex}\\}`, "g"), arg);
170
- });
231
+ let messageWithArgsInjected = message;
171
232
 
172
- return messageWithArgsInjected;
173
- })();
233
+ args.forEach((arg, i) => {
234
+ if (arg === undefined) {
235
+ return;
236
+ }
174
237
 
175
- return doRenderMarkdown ? (
176
- <Markdown allowDangerousHtml renderers={{ "paragraph": "span" }}>
177
- {messageWithArgsInjectedIfAny}
178
- </Markdown>
179
- ) : (
180
- messageWithArgsInjectedIfAny
181
- );
182
- }
238
+ messageWithArgsInjected = messageWithArgsInjected.replace(
239
+ new RegExp(`\\{${i + startIndex}\\}`, "g"),
240
+ arg.replace(/</g, "&lt;").replace(/>/g, "&gt;")
241
+ );
242
+ });
183
243
 
184
- function resolveMsgAdvanced(props: { key: string; args: (string | undefined)[]; doRenderMarkdown: boolean }): JSX.Element | string {
185
- const { key, args, doRenderMarkdown } = props;
244
+ return messageWithArgsInjected;
245
+ })();
186
246
 
187
- const match = key.match(/^\$\{([^{]+)\}$/);
247
+ return doRenderAsHtml ? (
248
+ <span
249
+ // NOTE: The message is trusted. The arguments are not but are escaped.
250
+ dangerouslySetInnerHTML={{
251
+ __html: messageWithArgsInjectedIfAny
252
+ }}
253
+ />
254
+ ) : (
255
+ messageWithArgsInjectedIfAny
256
+ );
257
+ }
188
258
 
189
- const keyUnwrappedFromCurlyBraces = match === null ? key : match[1];
259
+ function resolveMsgAdvanced(props: { key: string; args: (string | undefined)[]; doRenderAsHtml: boolean }): JSX.Element | string {
260
+ const { key, args, doRenderAsHtml } = props;
190
261
 
191
- const out = resolveMsg({
192
- "key": keyUnwrappedFromCurlyBraces,
193
- args,
194
- doRenderMarkdown
195
- });
262
+ user_profile: {
263
+ if (realmMessageBundleUserProfile === undefined) {
264
+ break user_profile;
265
+ }
196
266
 
197
- return (out !== undefined ? out : doRenderMarkdown ? <span>{keyUnwrappedFromCurlyBraces}</span> : keyUnwrappedFromCurlyBraces) as any;
198
- }
267
+ const resolvedMessage = realmMessageBundleUserProfile[key] ?? realmMessageBundleUserProfile["${" + key + "}"];
199
268
 
200
- return {
201
- "msgStr": (key, ...args) => resolveMsg({ key, args, "doRenderMarkdown": false }) as string,
202
- "msg": (key, ...args) => resolveMsg({ key, args, "doRenderMarkdown": true }) as JSX.Element,
203
- "advancedMsg": (key, ...args) => resolveMsgAdvanced({ key, args, "doRenderMarkdown": true }) as JSX.Element,
204
- "advancedMsgStr": (key, ...args) => resolveMsgAdvanced({ key, args, "doRenderMarkdown": false }) as string
205
- };
206
- }
269
+ if (resolvedMessage === undefined) {
270
+ break user_profile;
271
+ }
272
+
273
+ return doRenderAsHtml ? (
274
+ <span
275
+ // NOTE: The message is trusted. The arguments are not but are escaped.
276
+ dangerouslySetInnerHTML={{
277
+ __html: resolvedMessage
278
+ }}
279
+ />
280
+ ) : (
281
+ resolvedMessage
282
+ );
283
+ }
207
284
 
208
- const keycloakifyExtraMessages = {
209
- "en": {
210
- "shouldBeEqual": "{0} should be equal to {1}",
211
- "shouldBeDifferent": "{0} should be different to {1}",
212
- "shouldMatchPattern": "Pattern should match: `/{0}/`",
213
- "mustBeAnInteger": "Must be an integer",
214
- "notAValidOption": "Not a valid option",
215
- "selectAnOption": "Select an option",
216
- "remove": "Remove",
217
- "addValue": "Add value"
218
- },
219
- "fr": {
220
- /* spell-checker: disable */
221
- "shouldBeEqual": "{0} doit être égal à {1}",
222
- "shouldBeDifferent": "{0} doit être différent de {1}",
223
- "shouldMatchPattern": "Dois respecter le schéma: `/{0}/`",
224
- "mustBeAnInteger": "Doit être un nombre entier",
225
- "notAValidOption": "N'est pas une option valide",
226
-
227
- "logoutConfirmTitle": "Déconnexion",
228
- "logoutConfirmHeader": "Êtes-vous sûr(e) de vouloir vous déconnecter ?",
229
- "doLogout": "Se déconnecter",
230
- "selectAnOption": "Sélectionner une option",
231
- "remove": "Supprimer",
232
- "addValue": "Ajouter une valeur"
233
- /* spell-checker: enable */
285
+ if (!/\$\{[^}]+\}/.test(key)) {
286
+ const resolvedMessage = resolveMsg({ key, args, doRenderAsHtml });
287
+
288
+ if (resolvedMessage === undefined) {
289
+ return doRenderAsHtml ? <span dangerouslySetInnerHTML={{ __html: key }} /> : key;
290
+ }
291
+
292
+ return resolvedMessage;
293
+ }
294
+
295
+ let isFirstMatch = true;
296
+
297
+ const resolvedComplexMessage = key.replace(/\$\{([^}]+)\}/g, (...[, key_i]) => {
298
+ const replaceBy = resolveMsg({ key: key_i, args: isFirstMatch ? args : [], doRenderAsHtml: false }) ?? key_i;
299
+
300
+ isFirstMatch = false;
301
+
302
+ return replaceBy;
303
+ });
304
+
305
+ return doRenderAsHtml ? <span dangerouslySetInnerHTML={{ __html: resolvedComplexMessage }} /> : resolvedComplexMessage;
306
+ }
307
+
308
+ return {
309
+ msgStr: (key, ...args) => resolveMsg({ key, args, doRenderAsHtml: false }) as string,
310
+ msg: (key, ...args) => resolveMsg({ key, args, doRenderAsHtml: true }) as JSX.Element,
311
+ advancedMsg: (key, ...args) =>
312
+ resolveMsgAdvanced({
313
+ key,
314
+ args,
315
+ doRenderAsHtml: true
316
+ }) as JSX.Element,
317
+ advancedMsgStr: (key, ...args) =>
318
+ resolveMsgAdvanced({
319
+ key,
320
+ args,
321
+ doRenderAsHtml: false
322
+ }) as string
323
+ };
234
324
  }
235
- };
325
+
326
+ return { createI18nTranslationFunctions };
327
+ }
@@ -1 +1,4 @@
1
- export type { I18n } from "./i18n";
1
+ import type { GenericI18n, MessageKey, KcContextLike } from "./i18n";
2
+ export type { MessageKey, KcContextLike };
3
+ export type I18n = GenericI18n<MessageKey>;
4
+ export { createUseI18n } from "./useI18n";