keycloakify 9.6.6 → 10.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/README.md +1 -1
  2. package/account/Template.js +34 -14
  3. package/account/Template.js.map +1 -1
  4. package/account/i18n/baseMessages/de.d.ts +1 -1
  5. package/account/i18n/baseMessages/de.js +1 -1
  6. package/account/i18n/baseMessages/de.js.map +1 -1
  7. package/account/i18n/baseMessages/en.d.ts +2 -0
  8. package/account/i18n/baseMessages/en.js +2 -0
  9. package/account/i18n/baseMessages/en.js.map +1 -1
  10. package/account/i18n/baseMessages/es.d.ts +230 -0
  11. package/account/i18n/baseMessages/es.js +231 -1
  12. package/account/i18n/baseMessages/es.js.map +1 -1
  13. package/account/i18n/baseMessages/index.d.ts +353 -407
  14. package/account/i18n/baseMessages/index.js +1 -0
  15. package/account/i18n/baseMessages/index.js.map +1 -1
  16. package/account/i18n/baseMessages/pl.d.ts +115 -1
  17. package/account/i18n/baseMessages/pl.js +115 -1
  18. package/account/i18n/baseMessages/pl.js.map +1 -1
  19. package/account/i18n/baseMessages/tr.d.ts +1 -1
  20. package/account/i18n/baseMessages/tr.js +1 -1
  21. package/account/i18n/baseMessages/tr.js.map +1 -1
  22. package/account/i18n/baseMessages/uk.d.ts +337 -0
  23. package/account/i18n/baseMessages/uk.js +342 -0
  24. package/account/i18n/baseMessages/uk.js.map +1 -0
  25. package/account/i18n/baseMessages/zh-CN.d.ts +10 -0
  26. package/account/i18n/baseMessages/zh-CN.js +10 -0
  27. package/account/i18n/baseMessages/zh-CN.js.map +1 -1
  28. package/bin/constants.d.ts +0 -1
  29. package/bin/constants.js +1 -2
  30. package/bin/constants.js.map +1 -1
  31. package/bin/download-builtin-keycloak-theme.js +12 -2
  32. package/bin/download-builtin-keycloak-theme.js.map +1 -1
  33. package/bin/keycloakify/buildJars/buildJar.d.ts +14 -0
  34. package/bin/keycloakify/buildJars/buildJar.js +216 -0
  35. package/bin/keycloakify/buildJars/buildJar.js.map +1 -0
  36. package/bin/keycloakify/buildJars/buildJars.d.ts +10 -0
  37. package/bin/keycloakify/buildJars/buildJars.js +95 -0
  38. package/bin/keycloakify/buildJars/buildJars.js.map +1 -0
  39. package/bin/keycloakify/buildJars/extensionVersions.d.ts +12 -0
  40. package/bin/keycloakify/buildJars/extensionVersions.js +7 -0
  41. package/bin/keycloakify/buildJars/extensionVersions.js.map +1 -0
  42. package/bin/keycloakify/buildJars/generatePom.d.ts +13 -0
  43. package/bin/keycloakify/buildJars/generatePom.js +94 -0
  44. package/bin/keycloakify/buildJars/generatePom.js.map +1 -0
  45. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.d.ts +6 -0
  46. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.js +35 -0
  47. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.js.map +1 -0
  48. package/bin/keycloakify/buildJars/index.d.ts +1 -0
  49. package/bin/keycloakify/buildJars/index.js +18 -0
  50. package/bin/keycloakify/buildJars/index.js.map +1 -0
  51. package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.d.ts +0 -8
  52. package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.js +1 -3
  53. package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.js.map +1 -1
  54. package/bin/keycloakify/buildOptions/buildOptions.d.ts +0 -2
  55. package/bin/keycloakify/buildOptions/buildOptions.js +3 -5
  56. package/bin/keycloakify/buildOptions/buildOptions.js.map +1 -1
  57. package/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.js +1 -1
  58. package/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.js.map +1 -1
  59. package/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +103 -232
  60. package/bin/keycloakify/generateFtl/generateFtl.js +17 -39
  61. package/bin/keycloakify/generateFtl/generateFtl.js.map +1 -1
  62. package/bin/keycloakify/generateFtl/pageId.d.ts +1 -1
  63. package/bin/keycloakify/generateFtl/pageId.js +11 -3
  64. package/bin/keycloakify/generateFtl/pageId.js.map +1 -1
  65. package/bin/keycloakify/generateStartKeycloakTestingContainer.d.ts +0 -1
  66. package/bin/keycloakify/generateStartKeycloakTestingContainer.js +3 -6
  67. package/bin/keycloakify/generateStartKeycloakTestingContainer.js.map +1 -1
  68. package/bin/keycloakify/generateTheme/bringInAccountV1.d.ts +1 -1
  69. package/bin/keycloakify/generateTheme/bringInAccountV1.js +5 -9
  70. package/bin/keycloakify/generateTheme/bringInAccountV1.js.map +1 -1
  71. package/bin/keycloakify/generateTheme/generateSrcMainResources.d.ts +21 -0
  72. package/bin/keycloakify/generateTheme/generateSrcMainResources.js +340 -0
  73. package/bin/keycloakify/generateTheme/generateSrcMainResources.js.map +1 -0
  74. package/bin/keycloakify/generateTheme/generateTheme.d.ts +5 -13
  75. package/bin/keycloakify/generateTheme/generateTheme.js +30 -293
  76. package/bin/keycloakify/generateTheme/generateTheme.js.map +1 -1
  77. package/bin/keycloakify/generateTheme/generateThemeVariants.d.ts +5 -0
  78. package/bin/keycloakify/generateTheme/generateThemeVariants.js +67 -0
  79. package/bin/keycloakify/generateTheme/generateThemeVariants.js.map +1 -0
  80. package/bin/keycloakify/generateTheme/readFieldNameUsage.js +54 -18
  81. package/bin/keycloakify/generateTheme/readFieldNameUsage.js.map +1 -1
  82. package/bin/keycloakify/keycloakify.js +28 -104
  83. package/bin/keycloakify/keycloakify.js.map +1 -1
  84. package/lib/useGetClassName.js +2 -2
  85. package/lib/useGetClassName.js.map +1 -1
  86. package/login/Fallback.d.ts +7 -1
  87. package/login/Fallback.js +32 -8
  88. package/login/Fallback.js.map +1 -1
  89. package/login/Template.js +76 -20
  90. package/login/Template.js.map +1 -1
  91. package/login/TemplateProps.d.ts +4 -2
  92. package/login/UserProfileFormFields.d.ts +22 -0
  93. package/login/UserProfileFormFields.js +327 -0
  94. package/login/UserProfileFormFields.js.map +1 -0
  95. package/login/i18n/baseMessages/ar.d.ts +3 -0
  96. package/login/i18n/baseMessages/ar.js +3 -0
  97. package/login/i18n/baseMessages/ar.js.map +1 -1
  98. package/login/i18n/baseMessages/ca.d.ts +1 -0
  99. package/login/i18n/baseMessages/ca.js +1 -0
  100. package/login/i18n/baseMessages/ca.js.map +1 -1
  101. package/login/i18n/baseMessages/cs.d.ts +3 -0
  102. package/login/i18n/baseMessages/cs.js +3 -0
  103. package/login/i18n/baseMessages/cs.js.map +1 -1
  104. package/login/i18n/baseMessages/da.d.ts +1 -0
  105. package/login/i18n/baseMessages/da.js +1 -0
  106. package/login/i18n/baseMessages/da.js.map +1 -1
  107. package/login/i18n/baseMessages/de.d.ts +1 -0
  108. package/login/i18n/baseMessages/de.js +1 -0
  109. package/login/i18n/baseMessages/de.js.map +1 -1
  110. package/login/i18n/baseMessages/el.d.ts +1 -0
  111. package/login/i18n/baseMessages/el.js +1 -0
  112. package/login/i18n/baseMessages/el.js.map +1 -1
  113. package/login/i18n/baseMessages/en.d.ts +7 -0
  114. package/login/i18n/baseMessages/en.js +23 -16
  115. package/login/i18n/baseMessages/en.js.map +1 -1
  116. package/login/i18n/baseMessages/es.d.ts +239 -0
  117. package/login/i18n/baseMessages/es.js +240 -1
  118. package/login/i18n/baseMessages/es.js.map +1 -1
  119. package/login/i18n/baseMessages/fa.d.ts +1 -0
  120. package/login/i18n/baseMessages/fa.js +1 -0
  121. package/login/i18n/baseMessages/fa.js.map +1 -1
  122. package/login/i18n/baseMessages/fi.d.ts +1 -0
  123. package/login/i18n/baseMessages/fi.js +1 -0
  124. package/login/i18n/baseMessages/fi.js.map +1 -1
  125. package/login/i18n/baseMessages/fr.d.ts +1 -0
  126. package/login/i18n/baseMessages/fr.js +2 -1
  127. package/login/i18n/baseMessages/fr.js.map +1 -1
  128. package/login/i18n/baseMessages/hu.d.ts +1 -0
  129. package/login/i18n/baseMessages/hu.js +1 -0
  130. package/login/i18n/baseMessages/hu.js.map +1 -1
  131. package/login/i18n/baseMessages/index.d.ts +211 -416
  132. package/login/i18n/baseMessages/index.js +1 -0
  133. package/login/i18n/baseMessages/index.js.map +1 -1
  134. package/login/i18n/baseMessages/it.d.ts +1 -0
  135. package/login/i18n/baseMessages/it.js +1 -0
  136. package/login/i18n/baseMessages/it.js.map +1 -1
  137. package/login/i18n/baseMessages/ja.d.ts +1 -0
  138. package/login/i18n/baseMessages/ja.js +1 -0
  139. package/login/i18n/baseMessages/ja.js.map +1 -1
  140. package/login/i18n/baseMessages/lt.d.ts +1 -0
  141. package/login/i18n/baseMessages/lt.js +1 -0
  142. package/login/i18n/baseMessages/lt.js.map +1 -1
  143. package/login/i18n/baseMessages/lv.d.ts +1 -0
  144. package/login/i18n/baseMessages/lv.js +1 -0
  145. package/login/i18n/baseMessages/lv.js.map +1 -1
  146. package/login/i18n/baseMessages/nl.d.ts +1 -0
  147. package/login/i18n/baseMessages/nl.js +1 -0
  148. package/login/i18n/baseMessages/nl.js.map +1 -1
  149. package/login/i18n/baseMessages/no.d.ts +1 -0
  150. package/login/i18n/baseMessages/no.js +1 -0
  151. package/login/i18n/baseMessages/no.js.map +1 -1
  152. package/login/i18n/baseMessages/pl.d.ts +1 -0
  153. package/login/i18n/baseMessages/pl.js +1 -0
  154. package/login/i18n/baseMessages/pl.js.map +1 -1
  155. package/login/i18n/baseMessages/pt-BR.d.ts +1 -0
  156. package/login/i18n/baseMessages/pt-BR.js +1 -0
  157. package/login/i18n/baseMessages/pt-BR.js.map +1 -1
  158. package/login/i18n/baseMessages/ru.d.ts +1 -0
  159. package/login/i18n/baseMessages/ru.js +1 -0
  160. package/login/i18n/baseMessages/ru.js.map +1 -1
  161. package/login/i18n/baseMessages/sk.d.ts +2 -0
  162. package/login/i18n/baseMessages/sk.js +3 -1
  163. package/login/i18n/baseMessages/sk.js.map +1 -1
  164. package/login/i18n/baseMessages/sv.d.ts +1 -0
  165. package/login/i18n/baseMessages/sv.js +1 -0
  166. package/login/i18n/baseMessages/sv.js.map +1 -1
  167. package/login/i18n/baseMessages/th.d.ts +1 -0
  168. package/login/i18n/baseMessages/th.js +1 -0
  169. package/login/i18n/baseMessages/th.js.map +1 -1
  170. package/login/i18n/baseMessages/tr.d.ts +1 -0
  171. package/login/i18n/baseMessages/tr.js +1 -0
  172. package/login/i18n/baseMessages/tr.js.map +1 -1
  173. package/login/i18n/baseMessages/uk.d.ts +433 -0
  174. package/login/i18n/baseMessages/uk.js +438 -0
  175. package/login/i18n/baseMessages/uk.js.map +1 -0
  176. package/login/i18n/baseMessages/zh-CN.d.ts +273 -3
  177. package/login/i18n/baseMessages/zh-CN.js +325 -55
  178. package/login/i18n/baseMessages/zh-CN.js.map +1 -1
  179. package/login/i18n/i18n.d.ts +4 -0
  180. package/login/i18n/i18n.js +6 -2
  181. package/login/i18n/i18n.js.map +1 -1
  182. package/login/kcContext/KcContext.d.ts +181 -105
  183. package/login/kcContext/KcContext.js +1 -1
  184. package/login/kcContext/KcContext.js.map +1 -1
  185. package/login/kcContext/createGetKcContext.js +3 -9
  186. package/login/kcContext/createGetKcContext.js.map +1 -1
  187. package/login/kcContext/kcContextMocks.d.ts +1 -1
  188. package/login/kcContext/kcContextMocks.js +92 -198
  189. package/login/kcContext/kcContextMocks.js.map +1 -1
  190. package/login/lib/useDownloadTerms.d.ts +4 -1
  191. package/login/lib/useDownloadTerms.js +9 -4
  192. package/login/lib/useDownloadTerms.js.map +1 -1
  193. package/login/lib/useGetClassName.js +112 -73
  194. package/login/lib/useGetClassName.js.map +1 -1
  195. package/login/lib/useUserProfileForm.d.ts +74 -0
  196. package/login/lib/useUserProfileForm.js +868 -0
  197. package/login/lib/useUserProfileForm.js.map +1 -0
  198. package/login/pages/{UpdateUserProfile.d.ts → Code.d.ts} +2 -2
  199. package/login/pages/Code.js +13 -0
  200. package/login/pages/Code.js.map +1 -0
  201. package/login/pages/DeleteAccountConfirm.d.ts +7 -0
  202. package/login/pages/DeleteAccountConfirm.js +14 -0
  203. package/login/pages/DeleteAccountConfirm.js.map +1 -0
  204. package/login/pages/{RegisterUserProfile.d.ts → DeleteCredential.d.ts} +2 -2
  205. package/login/pages/DeleteCredential.js +14 -0
  206. package/login/pages/DeleteCredential.js.map +1 -0
  207. package/login/pages/Error.js +2 -2
  208. package/login/pages/Error.js.map +1 -1
  209. package/login/pages/FrontchannelLogout.d.ts +7 -0
  210. package/login/pages/FrontchannelLogout.js +14 -0
  211. package/login/pages/FrontchannelLogout.js.map +1 -0
  212. package/login/pages/IdpReviewUserProfile.d.ts +8 -2
  213. package/login/pages/IdpReviewUserProfile.js +3 -4
  214. package/login/pages/IdpReviewUserProfile.js.map +1 -1
  215. package/login/pages/Info.js +14 -1
  216. package/login/pages/Info.js.map +1 -1
  217. package/login/pages/Login.js +24 -38
  218. package/login/pages/Login.js.map +1 -1
  219. package/login/pages/LoginConfigTotp.js +8 -1
  220. package/login/pages/LoginConfigTotp.js.map +1 -1
  221. package/login/pages/{LoginDeviceVerifyUserCode.d.ts → LoginOauth2DeviceVerifyUserCode.d.ts} +1 -1
  222. package/login/pages/{LoginDeviceVerifyUserCode.js → LoginOauth2DeviceVerifyUserCode.js} +2 -2
  223. package/login/pages/LoginOauth2DeviceVerifyUserCode.js.map +1 -0
  224. package/login/pages/LoginOauthGrant.js +3 -2
  225. package/login/pages/LoginOauthGrant.js.map +1 -1
  226. package/login/pages/LoginOtp.js +4 -6
  227. package/login/pages/LoginOtp.js.map +1 -1
  228. package/login/pages/LoginPageExpired.js +1 -1
  229. package/login/pages/LoginPageExpired.js.map +1 -1
  230. package/login/pages/LoginPassword.d.ts +1 -1
  231. package/login/pages/LoginPassword.js +18 -11
  232. package/login/pages/LoginPassword.js.map +1 -1
  233. package/login/pages/LoginRecoveryAuthnCodeConfig.d.ts +7 -0
  234. package/login/pages/LoginRecoveryAuthnCodeConfig.js +147 -0
  235. package/login/pages/LoginRecoveryAuthnCodeConfig.js.map +1 -0
  236. package/login/pages/LoginRecoveryAuthnCodeInput.d.ts +7 -0
  237. package/login/pages/LoginRecoveryAuthnCodeInput.js +14 -0
  238. package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -0
  239. package/login/pages/LoginResetOtp.d.ts +7 -0
  240. package/login/pages/LoginResetOtp.js +15 -0
  241. package/login/pages/LoginResetOtp.js.map +1 -0
  242. package/login/pages/LoginResetPassword.js +4 -3
  243. package/login/pages/LoginResetPassword.js.map +1 -1
  244. package/login/pages/LoginUpdatePassword.js +21 -3
  245. package/login/pages/LoginUpdatePassword.js.map +1 -1
  246. package/login/pages/LoginUpdateProfile.d.ts +8 -2
  247. package/login/pages/LoginUpdateProfile.js +11 -5
  248. package/login/pages/LoginUpdateProfile.js.map +1 -1
  249. package/login/pages/LoginUsername.js +11 -35
  250. package/login/pages/LoginUsername.js.map +1 -1
  251. package/login/pages/LoginVerifyEmail.js +1 -1
  252. package/login/pages/LoginVerifyEmail.js.map +1 -1
  253. package/login/pages/LoginX509Info.d.ts +7 -0
  254. package/login/pages/LoginX509Info.js +14 -0
  255. package/login/pages/LoginX509Info.js.map +1 -0
  256. package/login/pages/LogoutConfirm.js +1 -1
  257. package/login/pages/LogoutConfirm.js.map +1 -1
  258. package/login/pages/Register.d.ts +8 -2
  259. package/login/pages/Register.js +26 -4
  260. package/login/pages/Register.js.map +1 -1
  261. package/login/pages/SamlPostForm.js +1 -1
  262. package/login/pages/SamlPostForm.js.map +1 -1
  263. package/login/pages/SelectAuthenticator.js +5 -21
  264. package/login/pages/SelectAuthenticator.js.map +1 -1
  265. package/login/pages/Terms.js +4 -6
  266. package/login/pages/Terms.js.map +1 -1
  267. package/login/pages/UpdateEmail.d.ts +8 -2
  268. package/login/pages/UpdateEmail.js +16 -5
  269. package/login/pages/UpdateEmail.js.map +1 -1
  270. package/login/pages/WebauthnAuthenticate.js +121 -83
  271. package/login/pages/WebauthnAuthenticate.js.map +1 -1
  272. package/login/pages/WebauthnError.d.ts +7 -0
  273. package/login/pages/WebauthnError.js +21 -0
  274. package/login/pages/WebauthnError.js.map +1 -0
  275. package/login/pages/WebauthnRegister.d.ts +7 -0
  276. package/login/pages/WebauthnRegister.js +193 -0
  277. package/login/pages/WebauthnRegister.js.map +1 -0
  278. package/package.json +138 -43
  279. package/src/account/Template.tsx +41 -14
  280. package/src/account/i18n/baseMessages/de.ts +1 -1
  281. package/src/account/i18n/baseMessages/en.ts +2 -0
  282. package/src/account/i18n/baseMessages/es.ts +231 -1
  283. package/src/account/i18n/baseMessages/index.ts +1 -0
  284. package/src/account/i18n/baseMessages/pl.ts +115 -1
  285. package/src/account/i18n/baseMessages/tr.ts +1 -1
  286. package/src/account/i18n/baseMessages/uk.ts +343 -0
  287. package/src/account/i18n/baseMessages/zh-CN.ts +10 -0
  288. package/src/bin/constants.ts +0 -1
  289. package/src/bin/download-builtin-keycloak-theme.ts +14 -1
  290. package/src/bin/keycloakify/buildJars/buildJar.ts +163 -0
  291. package/src/bin/keycloakify/buildJars/buildJars.ts +62 -0
  292. package/src/bin/keycloakify/buildJars/extensionVersions.ts +16 -0
  293. package/src/bin/keycloakify/buildJars/generatePom.ts +86 -0
  294. package/src/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.ts +37 -0
  295. package/src/bin/keycloakify/buildJars/index.ts +1 -0
  296. package/src/bin/keycloakify/buildOptions/UserProvidedBuildOptions.ts +1 -5
  297. package/src/bin/keycloakify/buildOptions/buildOptions.ts +1 -5
  298. package/src/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.ts +1 -1
  299. package/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +103 -232
  300. package/src/bin/keycloakify/generateFtl/generateFtl.ts +15 -31
  301. package/src/bin/keycloakify/generateFtl/pageId.ts +11 -3
  302. package/src/bin/keycloakify/generateStartKeycloakTestingContainer.ts +4 -8
  303. package/src/bin/keycloakify/generateTheme/bringInAccountV1.ts +5 -11
  304. package/src/bin/keycloakify/generateTheme/generateSrcMainResources.ts +267 -0
  305. package/src/bin/keycloakify/generateTheme/generateTheme.ts +22 -309
  306. package/src/bin/keycloakify/generateTheme/generateThemeVariants.ts +50 -0
  307. package/src/bin/keycloakify/generateTheme/readFieldNameUsage.ts +33 -8
  308. package/src/bin/keycloakify/keycloakify.ts +23 -56
  309. package/src/lib/useGetClassName.ts +2 -2
  310. package/src/login/Fallback.tsx +39 -9
  311. package/src/login/Template.tsx +160 -61
  312. package/src/login/TemplateProps.ts +113 -63
  313. package/src/login/UserProfileFormFields.tsx +750 -0
  314. package/src/login/i18n/baseMessages/ar.ts +3 -0
  315. package/src/login/i18n/baseMessages/ca.ts +1 -0
  316. package/src/login/i18n/baseMessages/cs.ts +3 -0
  317. package/src/login/i18n/baseMessages/da.ts +1 -0
  318. package/src/login/i18n/baseMessages/de.ts +1 -0
  319. package/src/login/i18n/baseMessages/el.ts +1 -0
  320. package/src/login/i18n/baseMessages/en.ts +23 -16
  321. package/src/login/i18n/baseMessages/es.ts +240 -1
  322. package/src/login/i18n/baseMessages/fa.ts +1 -0
  323. package/src/login/i18n/baseMessages/fi.ts +1 -0
  324. package/src/login/i18n/baseMessages/fr.ts +2 -1
  325. package/src/login/i18n/baseMessages/hu.ts +1 -0
  326. package/src/login/i18n/baseMessages/index.ts +1 -0
  327. package/src/login/i18n/baseMessages/it.ts +1 -0
  328. package/src/login/i18n/baseMessages/ja.ts +1 -0
  329. package/src/login/i18n/baseMessages/lt.ts +1 -0
  330. package/src/login/i18n/baseMessages/lv.ts +1 -0
  331. package/src/login/i18n/baseMessages/nl.ts +1 -0
  332. package/src/login/i18n/baseMessages/no.ts +1 -0
  333. package/src/login/i18n/baseMessages/pl.ts +1 -0
  334. package/src/login/i18n/baseMessages/pt-BR.ts +1 -0
  335. package/src/login/i18n/baseMessages/ru.ts +1 -0
  336. package/src/login/i18n/baseMessages/sk.ts +3 -1
  337. package/src/login/i18n/baseMessages/sv.ts +1 -0
  338. package/src/login/i18n/baseMessages/th.ts +1 -0
  339. package/src/login/i18n/baseMessages/tr.ts +1 -0
  340. package/src/login/i18n/baseMessages/uk.ts +439 -0
  341. package/src/login/i18n/baseMessages/zh-CN.ts +325 -55
  342. package/src/login/i18n/i18n.tsx +6 -2
  343. package/src/login/kcContext/KcContext.ts +216 -103
  344. package/src/login/kcContext/createGetKcContext.ts +11 -19
  345. package/src/login/kcContext/kcContextMocks.ts +165 -226
  346. package/src/login/lib/useDownloadTerms.ts +15 -7
  347. package/src/login/lib/useGetClassName.ts +112 -83
  348. package/src/login/lib/useUserProfileForm.tsx +1227 -0
  349. package/src/login/pages/Code.tsx +35 -0
  350. package/src/login/pages/DeleteAccountConfirm.tsx +53 -0
  351. package/src/login/pages/DeleteCredential.tsx +45 -0
  352. package/src/login/pages/Error.tsx +2 -2
  353. package/src/login/pages/FrontchannelLogout.tsx +41 -0
  354. package/src/login/pages/IdpReviewUserProfile.tsx +15 -5
  355. package/src/login/pages/Info.tsx +29 -19
  356. package/src/login/pages/Login.tsx +156 -117
  357. package/src/login/pages/LoginConfigTotp.tsx +26 -1
  358. package/src/login/pages/{LoginDeviceVerifyUserCode.tsx → LoginOauth2DeviceVerifyUserCode.tsx} +3 -1
  359. package/src/login/pages/LoginOauthGrant.tsx +38 -2
  360. package/src/login/pages/LoginOtp.tsx +73 -65
  361. package/src/login/pages/LoginPageExpired.tsx +1 -1
  362. package/src/login/pages/LoginPassword.tsx +77 -28
  363. package/src/login/pages/LoginRecoveryAuthnCodeConfig.tsx +260 -0
  364. package/src/login/pages/LoginRecoveryAuthnCodeInput.tsx +73 -0
  365. package/src/login/pages/LoginResetOtp.tsx +70 -0
  366. package/src/login/pages/LoginResetPassword.tsx +11 -4
  367. package/src/login/pages/LoginUpdatePassword.tsx +120 -81
  368. package/src/login/pages/LoginUpdateProfile.tsx +41 -115
  369. package/src/login/pages/LoginUsername.tsx +93 -101
  370. package/src/login/pages/LoginVerifyEmail.tsx +14 -8
  371. package/src/login/pages/LoginX509Info.tsx +94 -0
  372. package/src/login/pages/LogoutConfirm.tsx +2 -2
  373. package/src/login/pages/Register.tsx +83 -131
  374. package/src/login/pages/SamlPostForm.tsx +1 -1
  375. package/src/login/pages/SelectAuthenticator.tsx +29 -52
  376. package/src/login/pages/Terms.tsx +4 -7
  377. package/src/login/pages/UpdateEmail.tsx +69 -54
  378. package/src/login/pages/WebauthnAuthenticate.tsx +205 -165
  379. package/src/login/pages/WebauthnError.tsx +66 -0
  380. package/src/login/pages/WebauthnRegister.tsx +285 -0
  381. package/src/tools/formatNumber.ts +48 -0
  382. package/src/tools/useInsertLinkTags.ts +82 -0
  383. package/src/tools/useInsertScriptTags.ts +106 -0
  384. package/src/tools/useSetClassName.ts +21 -0
  385. package/tools/formatNumber.d.ts +1 -0
  386. package/tools/formatNumber.js +37 -0
  387. package/tools/formatNumber.js.map +1 -0
  388. package/tools/useInsertLinkTags.d.ts +7 -0
  389. package/tools/useInsertLinkTags.js +57 -0
  390. package/tools/useInsertLinkTags.js.map +1 -0
  391. package/tools/useInsertScriptTags.d.ts +20 -0
  392. package/tools/useInsertScriptTags.js +75 -0
  393. package/tools/useInsertScriptTags.js.map +1 -0
  394. package/tools/useSetClassName.d.ts +4 -0
  395. package/tools/useSetClassName.js +16 -0
  396. package/tools/useSetClassName.js.map +1 -0
  397. package/vite-plugin/tsconfig.tsbuildinfo +1 -1
  398. package/bin/keycloakify/generatePom.d.ts +0 -12
  399. package/bin/keycloakify/generatePom.js +0 -59
  400. package/bin/keycloakify/generatePom.js.map +0 -1
  401. package/lib/usePrepareTemplate.d.ts +0 -11
  402. package/lib/usePrepareTemplate.js +0 -80
  403. package/lib/usePrepareTemplate.js.map +0 -1
  404. package/login/lib/useFormValidation.d.ts +0 -47
  405. package/login/lib/useFormValidation.js +0 -316
  406. package/login/lib/useFormValidation.js.map +0 -1
  407. package/login/pages/LoginDeviceVerifyUserCode.js.map +0 -1
  408. package/login/pages/RegisterUserProfile.js +0 -18
  409. package/login/pages/RegisterUserProfile.js.map +0 -1
  410. package/login/pages/UpdateUserProfile.js +0 -17
  411. package/login/pages/UpdateUserProfile.js.map +0 -1
  412. package/login/pages/shared/UserProfileFormFields.d.ts +0 -18
  413. package/login/pages/shared/UserProfileFormFields.js +0 -58
  414. package/login/pages/shared/UserProfileFormFields.js.map +0 -1
  415. package/src/bin/keycloakify/generatePom.ts +0 -70
  416. package/src/lib/usePrepareTemplate.ts +0 -113
  417. package/src/login/lib/useFormValidation.tsx +0 -474
  418. package/src/login/pages/RegisterUserProfile.tsx +0 -72
  419. package/src/login/pages/UpdateUserProfile.tsx +0 -82
  420. package/src/login/pages/shared/UserProfileFormFields.tsx +0 -177
  421. package/src/tools/headInsert.ts +0 -73
  422. package/tools/headInsert.d.ts +0 -12
  423. package/tools/headInsert.js +0 -50
  424. package/tools/headInsert.js.map +0 -1
@@ -7,7 +7,6 @@ export type BuildOptions = {
7
7
  extraThemeProperties: string[] | undefined;
8
8
  groupId: string;
9
9
  artifactId: string;
10
- doCreateJar: boolean;
11
10
  loginThemeResourcesFromKeycloakVersion: string;
12
11
  reactAppRootDirPath: string;
13
12
  reactAppBuildDirPath: string;
@@ -19,7 +18,6 @@ export type BuildOptions = {
19
18
  * In this case the urlPathname will be "/my-app/" */
20
19
  urlPathname: string | undefined;
21
20
  assetsDirPath: string;
22
- doBuildRetrocompatAccountTheme: boolean;
23
21
  npmWorkspaceRootDirPath: string;
24
22
  };
25
23
  export declare function readBuildOptions(params: {
@@ -60,7 +60,7 @@ var getCacheDirPath_1 = require("./getCacheDirPath");
60
60
  var getReactAppRootDirPath_1 = require("./getReactAppRootDirPath");
61
61
  var getNpmWorkspaceRootDirPath_1 = require("./getNpmWorkspaceRootDirPath");
62
62
  function readBuildOptions(params) {
63
- var _a, _b, _c, _d, _e, _f, _g;
63
+ var _a, _b, _c, _d, _e;
64
64
  var processArgv = params.processArgv;
65
65
  var reactAppRootDirPath = (0, getReactAppRootDirPath_1.getReactAppRootDirPath)({ processArgv: processArgv }).reactAppRootDirPath;
66
66
  var cacheDirPath = (0, getCacheDirPath_1.getCacheDirPath)({ reactAppRootDirPath: reactAppRootDirPath }).cacheDirPath;
@@ -68,7 +68,7 @@ function readBuildOptions(params) {
68
68
  if (resolvedViteConfig === undefined && fs.existsSync((0, path_1.join)(reactAppRootDirPath, "vite.config.ts"))) {
69
69
  throw new Error("Keycloakify's Vite plugin output not found");
70
70
  }
71
- var _h = (0, parsedPackageJson_1.readParsedPackageJson)({ reactAppRootDirPath: reactAppRootDirPath }), userProvidedBuildOptionsFromPackageJson = _h.keycloakify, parsedPackageJson = __rest(_h, ["keycloakify"]);
71
+ var _f = (0, parsedPackageJson_1.readParsedPackageJson)({ reactAppRootDirPath: reactAppRootDirPath }), userProvidedBuildOptionsFromPackageJson = _f.keycloakify, parsedPackageJson = __rest(_f, ["keycloakify"]);
72
72
  var userProvidedBuildOptions = __assign(__assign({}, userProvidedBuildOptionsFromPackageJson), resolvedViteConfig === null || resolvedViteConfig === void 0 ? void 0 : resolvedViteConfig.userProvidedBuildOptions);
73
73
  var themeNames = (function () {
74
74
  if (userProvidedBuildOptions.themeName === undefined) {
@@ -116,8 +116,7 @@ function readBuildOptions(params) {
116
116
  .host) === null || _c === void 0 ? void 0 : _c.replace(/:[0-9]+$/, "")) === null || _d === void 0 ? void 0 : _d.split(".").reverse().join(".")) !== null && _e !== void 0 ? _e : fallbackGroupId) + ".keycloak");
117
117
  })(),
118
118
  "artifactId": (_d = (_c = process.env.KEYCLOAKIFY_ARTIFACT_ID) !== null && _c !== void 0 ? _c : userProvidedBuildOptions.artifactId) !== null && _d !== void 0 ? _d : "".concat(themeNames[0], "-keycloak-theme"),
119
- "doCreateJar": (_e = userProvidedBuildOptions.doCreateJar) !== null && _e !== void 0 ? _e : true,
120
- "loginThemeResourcesFromKeycloakVersion": (_f = userProvidedBuildOptions.loginThemeResourcesFromKeycloakVersion) !== null && _f !== void 0 ? _f : "11.0.3",
119
+ "loginThemeResourcesFromKeycloakVersion": (_e = userProvidedBuildOptions.loginThemeResourcesFromKeycloakVersion) !== null && _e !== void 0 ? _e : "24.0.4",
121
120
  reactAppRootDirPath: reactAppRootDirPath,
122
121
  reactAppBuildDirPath: reactAppBuildDirPath,
123
122
  "keycloakifyBuildDirPath": (function () {
@@ -172,7 +171,6 @@ function readBuildOptions(params) {
172
171
  }
173
172
  return (0, path_1.join)(reactAppBuildDirPath, resolvedViteConfig.assetsDir);
174
173
  })(),
175
- "doBuildRetrocompatAccountTheme": (_g = userProvidedBuildOptions.doBuildRetrocompatAccountTheme) !== null && _g !== void 0 ? _g : true,
176
174
  npmWorkspaceRootDirPath: npmWorkspaceRootDirPath
177
175
  };
178
176
  }
@@ -1 +1 @@
1
- {"version":3,"file":"buildOptions.js","sourceRoot":"","sources":["../../../src/bin/keycloakify/buildOptions/buildOptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildOptions.js","sourceRoot":"","sources":["../../../src/bin/keycloakify/buildOptions/buildOptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAAwC;AACxC,yDAA4D;AAC5D,6BAAwC;AACxC,sDAAiC;AACjC,yFAAwF;AACxF,2DAA8D;AAC9D,qCAAyB;AACzB,qDAAoD;AACpD,mEAAkE;AAClE,2EAA0E;AAyB1E,SAAgB,gBAAgB,CAAC,MAAiC;;IACtD,IAAA,WAAW,GAAK,MAAM,YAAX,CAAY;IAEvB,IAAA,mBAAmB,GAAK,IAAA,+CAAsB,EAAC,EAAE,WAAW,aAAA,EAAE,CAAC,oBAA5C,CAA6C;IAEhE,IAAA,YAAY,GAAK,IAAA,iCAAe,EAAC,EAAE,mBAAmB,qBAAA,EAAE,CAAC,aAA7C,CAA8C;IAE1D,IAAA,kBAAkB,GAAK,IAAA,2CAAsB,EAAC,EAAE,YAAY,cAAA,EAAE,CAAC,mBAA7C,CAA8C;IAExE,IAAI,kBAAkB,KAAK,SAAS,IAAI,EAAE,CAAC,UAAU,CAAC,IAAA,WAAQ,EAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC,EAAE;QACpG,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KACjE;IAED,IAAM,KAAiF,IAAA,yCAAqB,EAAC,EAAE,mBAAmB,qBAAA,EAAE,CAAC,EAAhH,uCAAuC,iBAAA,EAAK,iBAAiB,cAA5E,eAA8E,CAAiD,CAAC;IAEtI,IAAM,wBAAwB,yBACvB,uCAAuC,GACvC,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,wBAAwB,CAClD,CAAC;IAEF,IAAM,UAAU,GAAG,CAAC;QAChB,IAAI,wBAAwB,CAAC,SAAS,KAAK,SAAS,EAAE;YAClD,OAAO;gBACH,iBAAiB,CAAC,IAAI;qBACjB,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;qBACvB,KAAK,CAAC,GAAG,CAAC;qBACV,IAAI,CAAC,GAAG,CAAC;aACjB,CAAC;SACL;QAED,IAAI,OAAO,wBAAwB,CAAC,SAAS,KAAK,QAAQ,EAAE;YACxD,OAAO,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;SAC/C;QAED,OAAO,wBAAwB,CAAC,SAAS,CAAC;IAC9C,CAAC,CAAC,EAAE,CAAC;IAEL,IAAM,oBAAoB,GAAG,CAAC;QAC1B,OAAO,EAAE;YACL,IAAI,kBAAkB,KAAK,SAAS,EAAE;gBAClC,MAAM,OAAO,CAAC;aACjB;YAED,IAAI,wBAAwB,CAAC,oBAAoB,KAAK,SAAS,EAAE;gBAC7D,OAAO,IAAA,2DAA4B,EAAC;oBAChC,SAAS,EAAE,wBAAwB,CAAC,oBAAoB;oBACxD,KAAK,EAAE,mBAAmB;iBAC7B,CAAC,CAAC;aACN;YAED,OAAO,IAAA,WAAQ,EAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;SACjD;QAED,OAAO,IAAA,WAAQ,EAAC,mBAAmB,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtE,CAAC,CAAC,EAAE,CAAC;IAEL,IAAM,IAAI,GAAG,IAAA,kBAAS,EAAC,WAAW,CAAC,CAAC;IAE5B,IAAA,uBAAuB,GAAK,IAAA,uDAA0B,EAAC,EAAE,mBAAmB,qBAAA,EAAE,CAAC,wBAAxD,CAAyD;IAExF,OAAO;QACH,SAAS,EAAE,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAChE,UAAU,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK;QACxE,cAAc,EAAE,MAAA,MAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,mCAAI,iBAAiB,CAAC,OAAO,mCAAI,OAAO;QAC7F,UAAU,YAAA;QACV,sBAAsB,EAAE,wBAAwB,CAAC,oBAAoB;QACrE,SAAS,EAAE,CAAC;;YACR,IAAM,eAAe,GAAG,UAAG,UAAU,CAAC,CAAC,CAAC,cAAW,CAAC;YAEpD,OAAO,CACH,MAAA,MAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,mCAChC,wBAAwB,CAAC,OAAO,mCAChC,CAAC,iBAAiB,CAAC,QAAQ,KAAK,SAAS;gBACrC,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,MAAA,MAAA,MAAA,IAAA,WAAQ,EAAC,iBAAiB,CAAC,QAAQ,CAAC;qBAC/B,IAAI,0CAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,0CAC5B,KAAK,CAAC,GAAG,EACV,OAAO,GACP,IAAI,CAAC,GAAG,CAAC,mCAAI,eAAe,CAAC,GAAG,WAAW,CACzD,CAAC;QACN,CAAC,CAAC,EAAE;QACJ,YAAY,EAAE,MAAA,MAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,mCAAI,wBAAwB,CAAC,UAAU,mCAAI,UAAG,UAAU,CAAC,CAAC,CAAC,oBAAiB;QAC7H,wCAAwC,EAAE,MAAA,wBAAwB,CAAC,sCAAsC,mCAAI,QAAQ;QACrH,mBAAmB,qBAAA;QACnB,oBAAoB,sBAAA;QACpB,yBAAyB,EAAE,CAAC;YACxB,IAAI,wBAAwB,CAAC,uBAAuB,KAAK,SAAS,EAAE;gBAChE,OAAO,IAAA,2DAA4B,EAAC;oBAChC,SAAS,EAAE,wBAAwB,CAAC,uBAAuB;oBAC3D,KAAK,EAAE,mBAAmB;iBAC7B,CAAC,CAAC;aACN;YAED,OAAO,IAAA,WAAQ,EACX,mBAAmB,EACnB,CAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,QAAQ,MAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAG,kBAAkB,CAAC,QAAQ,cAAW,CAC5G,CAAC;QACN,CAAC,CAAC,EAAE;QACJ,eAAe,EAAE,CAAC;YACd,OAAO,EAAE;gBACL,IAAI,kBAAkB,KAAK,SAAS,EAAE;oBAClC,MAAM,OAAO,CAAC;iBACjB;gBAED,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,SAAS,EAAE;oBAC3C,OAAO,IAAA,2DAA4B,EAAC;wBAChC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;wBACtC,KAAK,EAAE,mBAAmB;qBAC7B,CAAC,CAAC;iBACN;gBAED,OAAO,IAAA,WAAQ,EAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;aAClD;YAED,OAAO,IAAA,WAAQ,EAAC,mBAAmB,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACvE,CAAC,CAAC,EAAE;QACJ,YAAY,cAAA;QACZ,aAAa,EAAE,CAAC;YACZ,OAAO,EAAE;gBACL,IAAI,kBAAkB,KAAK,SAAS,EAAE;oBAClC,MAAM,OAAO,CAAC;iBACjB;gBAEO,IAAA,QAAQ,GAAK,iBAAiB,SAAtB,CAAuB;gBAEvC,IAAI,GAAG,GAAoB,SAAS,CAAC;gBAErC,IAAI,QAAQ,KAAK,SAAS,EAAE;oBACxB,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;iBAC3B;gBAED,IAAI,GAAG,KAAK,SAAS,EAAE;oBACnB,OAAO,SAAS,CAAC;iBACpB;gBAED,IAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACnD,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;aACxC;YAED,OAAO,kBAAkB,CAAC,WAAW,CAAC;QAC1C,CAAC,CAAC,EAAE;QACJ,eAAe,EAAE,CAAC;YACd,OAAO,EAAE;gBACL,IAAI,kBAAkB,KAAK,SAAS,EAAE;oBAClC,MAAM,OAAO,CAAC;iBACjB;gBAED,OAAO,IAAA,WAAQ,EAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;aACnD;YAED,OAAO,IAAA,WAAQ,EAAC,oBAAoB,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACxE,CAAC,CAAC,EAAE;QACJ,uBAAuB,yBAAA;KAC1B,CAAC;AACN,CAAC;AA1JD,4CA0JC"}
@@ -65,7 +65,7 @@ function getNpmWorkspaceRootDirPath(params) {
65
65
  var npmWorkspaceRootDirPath = (function callee(depth) {
66
66
  var cwd = (0, path_1.resolve)(path_1.join.apply(void 0, __spreadArray([], __read(__spreadArray([reactAppRootDirPath], __read(Array(depth).fill("..")), false)), false)));
67
67
  try {
68
- child_process.execSync("npm config get", { cwd: cwd });
68
+ child_process.execSync("npm config get", { cwd: cwd, "stdio": ["pipe", "pipe", "pipe"] });
69
69
  }
70
70
  catch (error) {
71
71
  if (String(error).includes("ENOWORKSPACES")) {
@@ -1 +1 @@
1
- {"version":3,"file":"getNpmWorkspaceRootDirPath.js","sourceRoot":"","sources":["../../../src/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAA+C;AAC/C,6BAAgF;AAChF,uCAAsC;AAEtC,IAAI,KAAK,GAKS,SAAS,CAAC;AAE5B,SAAgB,0BAA0B,CAAC,MAAuC;IACtE,IAAA,mBAAmB,GAAK,MAAM,oBAAX,CAAY;IAEvC,SAAS,EAAE;QACP,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,mBAAmB,KAAK,mBAAmB,EAAE;YAC1E,MAAM,SAAS,CAAC;SACnB;QAEO,IAAA,yBAAuB,GAAK,KAAK,wBAAV,CAAW;QAE1C,OAAO,EAAE,uBAAuB,2BAAA,EAAE,CAAC;KACtC;IAED,IAAM,uBAAuB,GAAG,CAAC,SAAS,MAAM,CAAC,KAAa;QAC1D,IAAM,GAAG,GAAG,IAAA,cAAW,EAAC,WAAQ,uDAAK,mBAAmB,UAAK,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAG,CAAC;QAExF,IAAI;YACA,aAAa,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;SAC1D;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;gBACzC,IAAA,eAAM,EAAC,GAAG,KAAK,UAAO,EAAE,yBAAyB,CAAC,CAAC;gBAEnD,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;aAC5B;YAED,MAAM,KAAK,CAAC;SACf;QAED,OAAO,GAAG,CAAC;IACf,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEN,KAAK,GAAG;QACJ,mBAAmB,qBAAA;QACnB,uBAAuB,yBAAA;KAC1B,CAAC;IAEF,OAAO,EAAE,uBAAuB,yBAAA,EAAE,CAAC;AACvC,CAAC;AArCD,gEAqCC"}
1
+ {"version":3,"file":"getNpmWorkspaceRootDirPath.js","sourceRoot":"","sources":["../../../src/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAA+C;AAC/C,6BAAgF;AAChF,uCAAsC;AAEtC,IAAI,KAAK,GAKS,SAAS,CAAC;AAE5B,SAAgB,0BAA0B,CAAC,MAAuC;IACtE,IAAA,mBAAmB,GAAK,MAAM,oBAAX,CAAY;IAEvC,SAAS,EAAE;QACP,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,mBAAmB,KAAK,mBAAmB,EAAE;YAC1E,MAAM,SAAS,CAAC;SACnB;QAEO,IAAA,yBAAuB,GAAK,KAAK,wBAAV,CAAW;QAE1C,OAAO,EAAE,uBAAuB,2BAAA,EAAE,CAAC;KACtC;IAED,IAAM,uBAAuB,GAAG,CAAC,SAAS,MAAM,CAAC,KAAa;QAC1D,IAAM,GAAG,GAAG,IAAA,cAAW,EAAC,WAAQ,uDAAK,mBAAmB,UAAK,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAG,CAAC;QAExF,IAAI;YACA,aAAa,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,GAAG,KAAA,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;SACxF;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;gBACzC,IAAA,eAAM,EAAC,GAAG,KAAK,UAAO,EAAE,yBAAyB,CAAC,CAAC;gBAEnD,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;aAC5B;YAED,MAAM,KAAK,CAAC;SACf;QAED,OAAO,GAAG,CAAC;IACf,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEN,KAAK,GAAG;QACJ,mBAAmB,qBAAA;QACnB,uBAAuB,yBAAA;KAC1B,CAAC;IAEF,OAAO,EAAE,uBAAuB,yBAAA,EAAE,CAAC;AACvC,CAAC;AArCD,gEAqCC"}
@@ -30,30 +30,19 @@
30
30
  <#list fieldNames as fieldName>
31
31
  if(fieldName === "${fieldName}" ){
32
32
 
33
- <#-- https://github.com/keycloakify/keycloakify/pull/359 Compat with Keycloak prior v12 -->
34
- <#if !messagesPerField.existsError??>
33
+ <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
34
+ <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
35
35
 
36
- <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
37
- <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
38
-
39
- <#assign doExistMessageForUsernameOrPassword = "">
36
+ <#assign doExistErrorOnUsernameOrPassword = "">
40
37
 
41
- <#attempt>
42
- <#assign doExistMessageForUsernameOrPassword = messagesPerField.exists('username')>
43
- <#recover>
44
- <#assign doExistMessageForUsernameOrPassword = true>
45
- </#attempt>
46
-
47
- <#if !doExistMessageForUsernameOrPassword>
48
- <#attempt>
49
- <#assign doExistMessageForUsernameOrPassword = messagesPerField.exists('password')>
50
- <#recover>
51
- <#assign doExistMessageForUsernameOrPassword = true>
52
- </#attempt>
53
- </#if>
54
-
55
- return <#if doExistMessageForUsernameOrPassword>text<#else>undefined</#if>;
38
+ <#attempt>
39
+ <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
40
+ <#recover>
41
+ <#assign doExistErrorOnUsernameOrPassword = true>
42
+ </#attempt>
56
43
 
44
+ <#if doExistErrorOnUsernameOrPassword>
45
+ return text;
57
46
  <#else>
58
47
 
59
48
  <#assign doExistMessageForField = "">
@@ -70,49 +59,19 @@
70
59
 
71
60
  <#else>
72
61
 
73
- <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
74
- <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
75
-
76
- <#assign doExistErrorOnUsernameOrPassword = "">
77
-
78
- <#attempt>
79
- <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
80
- <#recover>
81
- <#assign doExistErrorOnUsernameOrPassword = true>
82
- </#attempt>
83
-
84
- <#if doExistErrorOnUsernameOrPassword>
85
- return text;
86
- <#else>
87
-
88
- <#assign doExistMessageForField = "">
89
-
90
- <#attempt>
91
- <#assign doExistMessageForField = messagesPerField.exists('${fieldName}')>
92
- <#recover>
93
- <#assign doExistMessageForField = true>
94
- </#attempt>
62
+ <#assign doExistMessageForField = "">
95
63
 
96
- return <#if doExistMessageForField>text<#else>undefined</#if>;
64
+ <#attempt>
65
+ <#assign doExistMessageForField = messagesPerField.exists('${fieldName}')>
66
+ <#recover>
67
+ <#assign doExistMessageForField = true>
68
+ </#attempt>
97
69
 
98
- </#if>
99
-
100
- <#else>
101
-
102
- <#assign doExistMessageForField = "">
103
-
104
- <#attempt>
105
- <#assign doExistMessageForField = messagesPerField.exists('${fieldName}')>
106
- <#recover>
107
- <#assign doExistMessageForField = true>
108
- </#attempt>
109
-
110
- return <#if doExistMessageForField>text<#else>undefined</#if>;
111
-
112
- </#if>
70
+ return <#if doExistMessageForField>text<#else>undefined</#if>;
113
71
 
114
72
  </#if>
115
73
 
74
+
116
75
  }
117
76
  </#list>
118
77
 
@@ -120,53 +79,15 @@
120
79
  </#if>
121
80
 
122
81
  },
123
- "existsError": function (fieldName) {
82
+ "existsError": function (){
124
83
 
125
- <#if !messagesPerField?? || !(messagesPerField?is_hash)>
126
- throw new Error("You're not supposed to use messagesPerField.printIfExists in this page");
127
- <#else>
128
- <#list fieldNames as fieldName>
129
- if(fieldName === "${fieldName}" ){
84
+ function existsError_singleFieldName(fieldName) {
130
85
 
131
- <#-- https://github.com/keycloakify/keycloakify/pull/359 Compat with Keycloak prior v12 -->
132
- <#if !messagesPerField.existsError??>
133
-
134
- <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
135
- <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
136
-
137
- <#assign doExistMessageForUsernameOrPassword = "">
138
-
139
- <#attempt>
140
- <#assign doExistMessageForUsernameOrPassword = messagesPerField.exists('username')>
141
- <#recover>
142
- <#assign doExistMessageForUsernameOrPassword = true>
143
- </#attempt>
144
-
145
- <#if !doExistMessageForUsernameOrPassword>
146
- <#attempt>
147
- <#assign doExistMessageForUsernameOrPassword = messagesPerField.exists('password')>
148
- <#recover>
149
- <#assign doExistMessageForUsernameOrPassword = true>
150
- </#attempt>
151
- </#if>
152
-
153
- return <#if doExistMessageForUsernameOrPassword>true<#else>false</#if>;
154
-
155
- <#else>
156
-
157
- <#assign doExistMessageForField = "">
158
-
159
- <#attempt>
160
- <#assign doExistMessageForField = messagesPerField.exists('${fieldName}')>
161
- <#recover>
162
- <#assign doExistMessageForField = true>
163
- </#attempt>
164
-
165
- return <#if doExistMessageForField>true<#else>false</#if>;
166
-
167
- </#if>
168
-
169
- <#else>
86
+ <#if !messagesPerField?? || !(messagesPerField?is_hash)>
87
+ throw new Error("You're not supposed to use messagesPerField.printIfExists in this page");
88
+ <#else>
89
+ <#list fieldNames as fieldName>
90
+ if(fieldName === "${fieldName}" ){
170
91
 
171
92
  <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
172
93
  <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
@@ -195,14 +116,24 @@
195
116
 
196
117
  </#if>
197
118
 
198
- </#if>
119
+ }
120
+ </#list>
199
121
 
200
- }
201
- </#list>
122
+ throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
202
123
 
203
- throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
124
+ </#if>
204
125
 
205
- </#if>
126
+ }
127
+
128
+ for( let i = 0; i < arguments.length; i++ ){
129
+
130
+ if( existsError_singleFieldName(arguments[i]) ){
131
+ return true;
132
+ }
133
+
134
+ }
135
+
136
+ return false;
206
137
 
207
138
  },
208
139
  "get": function (fieldName) {
@@ -214,88 +145,42 @@
214
145
  <#list fieldNames as fieldName>
215
146
  if(fieldName === "${fieldName}" ){
216
147
 
217
- <#-- https://github.com/keycloakify/keycloakify/pull/359 Compat with Keycloak prior v12 -->
218
- <#if !messagesPerField.existsError??>
148
+ <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
149
+ <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
219
150
 
220
- <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
221
- <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
151
+ <#assign doExistErrorOnUsernameOrPassword = "">
222
152
 
223
- <#assign doExistMessageForUsernameOrPassword = "">
153
+ <#attempt>
154
+ <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
155
+ <#recover>
156
+ <#assign doExistErrorOnUsernameOrPassword = true>
157
+ </#attempt>
158
+
159
+ <#if doExistErrorOnUsernameOrPassword>
224
160
 
225
161
  <#attempt>
226
- <#assign doExistMessageForUsernameOrPassword = messagesPerField.exists('username')>
162
+ return "${kcSanitize(msg('invalidUserMessage'))?no_esc}";
227
163
  <#recover>
228
- <#assign doExistMessageForUsernameOrPassword = true>
164
+ return "Invalid username or password.";
229
165
  </#attempt>
230
166
 
231
- <#if !doExistMessageForUsernameOrPassword>
232
- <#attempt>
233
- <#assign doExistMessageForUsernameOrPassword = messagesPerField.exists('password')>
234
- <#recover>
235
- <#assign doExistMessageForUsernameOrPassword = true>
236
- </#attempt>
237
- </#if>
238
-
239
- <#if !doExistMessageForUsernameOrPassword>
240
- return "";
241
- <#else>
242
- <#attempt>
243
- return "${kcSanitize(msg('invalidUserMessage'))?no_esc}";
244
- <#recover>
245
- return "Invalid username or password.";
246
- </#attempt>
247
- </#if>
248
-
249
167
  <#else>
250
168
 
251
169
  <#attempt>
252
170
  return "${messagesPerField.get('${fieldName}')?no_esc}";
253
171
  <#recover>
254
- return "invalid field";
172
+ return "";
255
173
  </#attempt>
256
174
 
257
175
  </#if>
258
176
 
259
177
  <#else>
260
178
 
261
- <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
262
- <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
263
-
264
- <#assign doExistErrorOnUsernameOrPassword = "">
265
-
266
- <#attempt>
267
- <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
268
- <#recover>
269
- <#assign doExistErrorOnUsernameOrPassword = true>
270
- </#attempt>
271
-
272
- <#if doExistErrorOnUsernameOrPassword>
273
-
274
- <#attempt>
275
- return "${kcSanitize(msg('invalidUserMessage'))?no_esc}";
276
- <#recover>
277
- return "Invalid username or password.";
278
- </#attempt>
279
-
280
- <#else>
281
-
282
- <#attempt>
283
- return "${messagesPerField.get('${fieldName}')?no_esc}";
284
- <#recover>
285
- return "";
286
- </#attempt>
287
-
288
- </#if>
289
-
290
- <#else>
291
-
292
- <#attempt>
293
- return "${messagesPerField.get('${fieldName}')?no_esc}";
294
- <#recover>
295
- return "invalid field";
296
- </#attempt>
297
-
298
- </#if>
179
+ <#attempt>
180
+ return "${messagesPerField.get('${fieldName}')?no_esc}";
181
+ <#recover>
182
+ return "invalid field";
183
+ </#attempt>
299
184
 
300
185
  </#if>
301
186
 
@@ -315,72 +200,30 @@
315
200
  <#list fieldNames as fieldName>
316
201
  if(fieldName === "${fieldName}" ){
317
202
 
318
- <#-- https://github.com/keycloakify/keycloakify/pull/359 Compat with Keycloak prior v12 -->
319
- <#if !messagesPerField.existsError??>
320
-
321
- <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
322
- <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
323
-
324
- <#assign doExistMessageForUsernameOrPassword = "">
325
-
326
- <#attempt>
327
- <#assign doExistMessageForUsernameOrPassword = messagesPerField.exists('username')>
328
- <#recover>
329
- <#assign doExistMessageForUsernameOrPassword = true>
330
- </#attempt>
331
-
332
- <#if !doExistMessageForUsernameOrPassword>
333
- <#attempt>
334
- <#assign doExistMessageForUsernameOrPassword = messagesPerField.exists('password')>
335
- <#recover>
336
- <#assign doExistMessageForUsernameOrPassword = true>
337
- </#attempt>
338
- </#if>
339
-
340
- return <#if doExistMessageForUsernameOrPassword>true<#else>false</#if>;
341
-
342
- <#else>
343
-
344
- <#assign doExistMessageForField = "">
203
+ <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
204
+ <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
345
205
 
346
- <#attempt>
347
- <#assign doExistMessageForField = messagesPerField.exists('${fieldName}')>
348
- <#recover>
349
- <#assign doExistMessageForField = true>
350
- </#attempt>
206
+ <#assign doExistErrorOnUsernameOrPassword = "">
351
207
 
352
- return <#if doExistMessageForField>true<#else>false</#if>;
208
+ <#attempt>
209
+ <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
210
+ <#recover>
211
+ <#assign doExistErrorOnUsernameOrPassword = true>
212
+ </#attempt>
353
213
 
354
- </#if>
214
+ return <#if doExistErrorOnUsernameOrPassword>true<#else>false</#if>;
355
215
 
356
216
  <#else>
357
217
 
358
- <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
359
- <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
218
+ <#assign doExistErrorMessageForField = "">
360
219
 
361
- <#assign doExistErrorOnUsernameOrPassword = "">
220
+ <#attempt>
221
+ <#assign doExistErrorMessageForField = messagesPerField.exists('${fieldName}')>
222
+ <#recover>
223
+ <#assign doExistErrorMessageForField = true>
224
+ </#attempt>
362
225
 
363
- <#attempt>
364
- <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
365
- <#recover>
366
- <#assign doExistErrorOnUsernameOrPassword = true>
367
- </#attempt>
368
-
369
- return <#if doExistErrorOnUsernameOrPassword>true<#else>false</#if>;
370
-
371
- <#else>
372
-
373
- <#assign doExistErrorMessageForField = "">
374
-
375
- <#attempt>
376
- <#assign doExistErrorMessageForField = messagesPerField.exists('${fieldName}')>
377
- <#recover>
378
- <#assign doExistErrorMessageForField = true>
379
- </#attempt>
380
-
381
- return <#if doExistErrorMessageForField>true<#else>false</#if>;
382
-
383
- </#if>
226
+ return <#if doExistErrorMessageForField>true<#else>false</#if>;
384
227
 
385
228
  </#if>
386
229
 
@@ -390,6 +233,19 @@
390
233
  throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
391
234
  </#if>
392
235
 
236
+ },
237
+ "getFirstError": function () {
238
+
239
+ for( let i = 0; i < arguments.length; i++ ){
240
+
241
+ const fieldName = arguments[i];
242
+
243
+ if( out.messagesPerField.existsError(fieldName) ){
244
+ return out.messagesPerField.get(fieldName);
245
+ }
246
+
247
+ }
248
+
393
249
  }
394
250
  };
395
251
 
@@ -505,6 +361,10 @@
505
361
  <#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
506
362
  are_same_path(path, ["login"]) &&
507
363
  key == "password"
364
+ ) || (
365
+ <#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
366
+ are_same_path(path, []) &&
367
+ key == "realmAttributes"
508
368
  )
509
369
  >
510
370
  <#local out_seq += ["/*If you need '" + path?join(".") + "." + key + "' on " + pageId + ", please submit an issue to the Keycloakify repo*/"]>
@@ -668,12 +528,23 @@
668
528
  <#return '"' + object?datetime?iso_utc + '"'>
669
529
  </#if>
670
530
 
531
+ <#local isNumber = "">
532
+ <#attempt>
533
+ <#local isNumber = object?is_number>
534
+ <#recover>
535
+ <#return "ABORT: Can't test if it's a number">
536
+ </#attempt>
537
+
538
+ <#if isNumber>
539
+ <#return object?c>
540
+ </#if>
541
+
671
542
  <#attempt>
672
543
  <#return '"' + object?js_string + '"'>;
673
544
  <#recover>
674
545
  </#attempt>
675
546
 
676
- <#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non enumerable object">
547
+ <#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
677
548
 
678
549
  </#function>
679
550
  <#function is_subpath path searchedPath>
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
3
  if (k2 === undefined) k2 = k;
15
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -60,7 +49,6 @@ var replaceImportsInCssCode_1 = require("../replacers/replaceImportsInCssCode");
60
49
  var replaceImportsInInlineCssCode_1 = require("../replacers/replaceImportsInInlineCssCode");
61
50
  var fs = __importStar(require("fs"));
62
51
  var path_1 = require("path");
63
- var objectKeys_1 = require("tsafe/objectKeys");
64
52
  var assert_1 = require("tsafe/assert");
65
53
  var constants_1 = require("../../constants");
66
54
  (0, assert_1.assert)();
@@ -126,32 +114,18 @@ function generateFtlFilesCodeFactory(params) {
126
114
  }
127
115
  }
128
116
  //FTL is no valid html, we can't insert with cheerio, we put placeholder for injecting later.
129
- var replaceValueBySearchValue = {
130
- '{ "x": "vIdLqMeOed9sdLdIdOxdK0d" }': fs
131
- .readFileSync((0, path_1.join)(__dirname, "ftl_object_to_js_code_declaring_an_object.ftl"))
132
- .toString("utf8")
133
- .match(/^<script>const _=((?:.|\n)+)<\/script>[\n]?$/)[1]
134
- .replace("FIELD_NAMES_eKsIY4ZsZ4xeM", fieldNames.map(function (name) { return "\"".concat(name, "\""); }).join(", "))
135
- .replace("KEYCLOAKIFY_VERSION_xEdKd3xEdr", keycloakifyVersion)
136
- .replace("KEYCLOAKIFY_THEME_VERSION_sIgKd3xEdr3dx", buildOptions.themeVersion)
137
- .replace("KEYCLOAKIFY_THEME_TYPE_dExKd3xEdr", themeType)
138
- .replace("KEYCLOAKIFY_THEME_NAME_cXxKd3xEer", themeName)
139
- .replace("RESOURCES_COMMON_cLsLsMrtDkpVv", constants_1.resources_common),
140
- "<!-- xIdLqMeOedErIdLsPdNdI9dSlxI -->": [
141
- "<#if scripts??>",
142
- " <#list scripts as script>",
143
- ' <script src="${script}" type="text/javascript"></script>',
144
- " </#list>",
145
- "</#if>"
146
- ].join("\n")
147
- };
148
- $("head").prepend([
149
- "<script>",
150
- " window.".concat(constants_1.nameOfTheGlobal, "= ").concat((0, objectKeys_1.objectKeys)(replaceValueBySearchValue)[0], ";"),
151
- "</script>",
152
- "",
153
- (0, objectKeys_1.objectKeys)(replaceValueBySearchValue)[1]
154
- ].join("\n"));
117
+ var ftlObjectToJsCodeDeclaringAnObject = fs
118
+ .readFileSync((0, path_1.join)(__dirname, "ftl_object_to_js_code_declaring_an_object.ftl"))
119
+ .toString("utf8")
120
+ .match(/^<script>const _=((?:.|\n)+)<\/script>[\n]?$/)[1]
121
+ .replace("FIELD_NAMES_eKsIY4ZsZ4xeM", fieldNames.map(function (name) { return "\"".concat(name, "\""); }).join(", "))
122
+ .replace("KEYCLOAKIFY_VERSION_xEdKd3xEdr", keycloakifyVersion)
123
+ .replace("KEYCLOAKIFY_THEME_VERSION_sIgKd3xEdr3dx", buildOptions.themeVersion)
124
+ .replace("KEYCLOAKIFY_THEME_TYPE_dExKd3xEdr", themeType)
125
+ .replace("KEYCLOAKIFY_THEME_NAME_cXxKd3xEer", themeName)
126
+ .replace("RESOURCES_COMMON_cLsLsMrtDkpVv", constants_1.resources_common);
127
+ var ftlObjectToJsCodeDeclaringAnObjectPlaceholder = '{ "x": "vIdLqMeOed9sdLdIdOxdK0d" }';
128
+ $("head").prepend(["<script>", " window.".concat(constants_1.nameOfTheGlobal, "= ").concat(ftlObjectToJsCodeDeclaringAnObjectPlaceholder, ";"), "</script>"].join("\n"));
155
129
  // Remove part of the document marked as ignored.
156
130
  {
157
131
  var startTags = $('meta[name="keycloakify-ignore-start"]');
@@ -176,10 +150,14 @@ function generateFtlFilesCodeFactory(params) {
176
150
  }
177
151
  var partiallyFixedIndexHtmlCode = $.html();
178
152
  function generateFtlFilesCode(params) {
153
+ var _a;
179
154
  var pageId = params.pageId;
180
155
  var $ = cheerio_1.default.load(partiallyFixedIndexHtmlCode);
181
156
  var ftlCode = $.html();
182
- Object.entries(__assign(__assign({}, replaceValueBySearchValue), { "PAGE_ID_xIgLsPgGId9D8e": pageId })).map(function (_a) {
157
+ Object.entries((_a = {},
158
+ _a[ftlObjectToJsCodeDeclaringAnObjectPlaceholder] = ftlObjectToJsCodeDeclaringAnObject,
159
+ _a["PAGE_ID_xIgLsPgGId9D8e"] = pageId,
160
+ _a)).map(function (_a) {
183
161
  var _b = __read(_a, 2), searchValue = _b[0], replaceValue = _b[1];
184
162
  return (ftlCode = ftlCode.replace(searchValue, replaceValue));
185
163
  });