keycloakify 10.0.0-rc.97 → 10.0.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 (507) hide show
  1. package/PUBLIC_URL.js +2 -2
  2. package/PUBLIC_URL.js.map +1 -1
  3. package/README.md +28 -242
  4. package/account/KcContext/KcContext.d.ts +4 -1
  5. package/account/KcContext/KcContext.js.map +1 -1
  6. package/account/KcContext/kcContextMocks.js +7 -4
  7. package/account/KcContext/kcContextMocks.js.map +1 -1
  8. package/account/Template.js +3 -1
  9. package/account/Template.js.map +1 -1
  10. package/account/i18n/GenericI18n.d.ts +6 -0
  11. package/account/i18n/GenericI18n.js +2 -0
  12. package/account/i18n/GenericI18n.js.map +1 -0
  13. package/account/i18n/i18n.d.ts +24 -30
  14. package/account/i18n/i18n.js +50 -70
  15. package/account/i18n/i18n.js.map +1 -1
  16. package/account/i18n/index.d.ts +4 -3
  17. package/account/i18n/index.js.map +1 -1
  18. package/account/i18n/messages_defaultSet/ar.js.map +1 -0
  19. package/account/i18n/messages_defaultSet/ca.js.map +1 -0
  20. package/account/i18n/messages_defaultSet/cs.js.map +1 -0
  21. package/account/i18n/messages_defaultSet/da.js.map +1 -0
  22. package/account/i18n/messages_defaultSet/de.js.map +1 -0
  23. package/account/i18n/messages_defaultSet/el.js.map +1 -0
  24. package/account/i18n/messages_defaultSet/en.js.map +1 -0
  25. package/account/i18n/messages_defaultSet/es.js.map +1 -0
  26. package/account/i18n/messages_defaultSet/fa.js.map +1 -0
  27. package/account/i18n/messages_defaultSet/fi.js.map +1 -0
  28. package/account/i18n/messages_defaultSet/fr.js.map +1 -0
  29. package/account/i18n/messages_defaultSet/hu.js.map +1 -0
  30. package/account/i18n/{baseMessages → messages_defaultSet}/index.d.ts +1 -1
  31. package/account/i18n/{baseMessages → messages_defaultSet}/index.js +3 -3
  32. package/account/i18n/messages_defaultSet/index.js.map +1 -0
  33. package/account/i18n/messages_defaultSet/it.js.map +1 -0
  34. package/account/i18n/messages_defaultSet/ja.js.map +1 -0
  35. package/account/i18n/messages_defaultSet/lt.js.map +1 -0
  36. package/account/i18n/messages_defaultSet/lv.js.map +1 -0
  37. package/account/i18n/messages_defaultSet/nl.js.map +1 -0
  38. package/account/i18n/messages_defaultSet/no.js.map +1 -0
  39. package/account/i18n/messages_defaultSet/pl.js.map +1 -0
  40. package/account/i18n/messages_defaultSet/pt-BR.js.map +1 -0
  41. package/account/i18n/messages_defaultSet/ru.js.map +1 -0
  42. package/account/i18n/messages_defaultSet/sk.js.map +1 -0
  43. package/account/i18n/messages_defaultSet/sv.js.map +1 -0
  44. package/account/i18n/messages_defaultSet/th.js.map +1 -0
  45. package/account/i18n/messages_defaultSet/tr.js.map +1 -0
  46. package/account/i18n/messages_defaultSet/uk.js.map +1 -0
  47. package/account/i18n/messages_defaultSet/zh-CN.js.map +1 -0
  48. package/account/i18n/useI18n.d.ts +6 -5
  49. package/account/i18n/useI18n.js +37 -4
  50. package/account/i18n/useI18n.js.map +1 -1
  51. package/account/pages/Applications.js +1 -1
  52. package/account/pages/Applications.js.map +1 -1
  53. package/account/pages/FederatedIdentity.js +1 -1
  54. package/account/pages/FederatedIdentity.js.map +1 -1
  55. package/account/pages/Totp.js +5 -1
  56. package/account/pages/Totp.js.map +1 -1
  57. package/bin/193.index.js +5 -5
  58. package/bin/{490.index.js → 246.index.js} +22 -4
  59. package/bin/31.index.js +264 -203
  60. package/bin/440.index.js +178 -106
  61. package/bin/453.index.js +59 -7
  62. package/bin/526.index.js +525 -137
  63. package/bin/599.index.js +567 -0
  64. package/bin/{893.index.js → 622.index.js} +239 -231
  65. package/bin/{36.index.js → 678.index.js} +577 -71
  66. package/bin/{180.index.js → 697.index.js} +611 -526
  67. package/bin/743.index.js +70 -0
  68. package/bin/780.index.js +895 -0
  69. package/bin/786.index.js +185 -0
  70. package/bin/932.index.js +740 -52
  71. package/bin/{456.index.js → 941.index.js} +3 -1988
  72. package/bin/97.index.js +29 -7
  73. package/bin/main.js +1994 -8
  74. package/bin/shared/KeycloakVersionRange.d.ts +3 -3
  75. package/bin/shared/buildContext.d.ts +52 -16
  76. package/bin/shared/buildContext.js.map +1 -1
  77. package/bin/shared/constants.d.ts +18 -17
  78. package/bin/shared/constants.js +15 -14
  79. package/bin/shared/constants.js.map +1 -1
  80. package/bin/shared/copyKeycloakResourcesToPublic.js.map +1 -1
  81. package/bin/shared/downloadKeycloakDefaultTheme.js.map +1 -1
  82. package/bin/shared/generateKcGenTs.d.ts +3 -0
  83. package/bin/shared/generateKcGenTs.js.map +1 -1
  84. package/bin/shared/getLatestsSemVersionedTag.d.ts +15 -0
  85. package/bin/shared/getLatestsSemVersionedTag.js.map +1 -0
  86. package/bin/shared/promptKeycloakVersion.d.ts +3 -1
  87. package/bin/shared/promptKeycloakVersion.js.map +1 -1
  88. package/lib/getKcClsx.js +2 -1
  89. package/lib/getKcClsx.js.map +1 -1
  90. package/login/KcContext/KcContext.d.ts +10 -11
  91. package/login/KcContext/KcContext.js.map +1 -1
  92. package/login/KcContext/kcContextMocks.js +4 -5
  93. package/login/KcContext/kcContextMocks.js.map +1 -1
  94. package/login/Template.js +13 -7
  95. package/login/Template.js.map +1 -1
  96. package/login/TemplateProps.d.ts +0 -1
  97. package/login/UserProfileFormFields.js +6 -5
  98. package/login/UserProfileFormFields.js.map +1 -1
  99. package/login/i18n/GenericI18n.d.ts +6 -0
  100. package/login/i18n/GenericI18n.js +2 -0
  101. package/login/i18n/GenericI18n.js.map +1 -0
  102. package/login/i18n/i18n.d.ts +22 -32
  103. package/login/i18n/i18n.js +51 -92
  104. package/login/i18n/i18n.js.map +1 -1
  105. package/login/i18n/index.d.ts +4 -3
  106. package/login/i18n/index.js.map +1 -1
  107. package/login/i18n/messages_defaultSet/ar.js.map +1 -0
  108. package/login/i18n/messages_defaultSet/ca.js.map +1 -0
  109. package/login/i18n/messages_defaultSet/cs.js.map +1 -0
  110. package/login/i18n/messages_defaultSet/da.js.map +1 -0
  111. package/login/i18n/messages_defaultSet/de.js.map +1 -0
  112. package/login/i18n/messages_defaultSet/el.js.map +1 -0
  113. package/login/i18n/messages_defaultSet/en.js.map +1 -0
  114. package/login/i18n/messages_defaultSet/es.js.map +1 -0
  115. package/login/i18n/messages_defaultSet/fa.js.map +1 -0
  116. package/login/i18n/messages_defaultSet/fi.js.map +1 -0
  117. package/login/i18n/messages_defaultSet/fr.js.map +1 -0
  118. package/login/i18n/messages_defaultSet/hu.js.map +1 -0
  119. package/login/i18n/{baseMessages → messages_defaultSet}/index.d.ts +1 -1
  120. package/login/i18n/{baseMessages → messages_defaultSet}/index.js +3 -3
  121. package/login/i18n/messages_defaultSet/index.js.map +1 -0
  122. package/login/i18n/messages_defaultSet/it.js.map +1 -0
  123. package/login/i18n/messages_defaultSet/ja.js.map +1 -0
  124. package/login/i18n/messages_defaultSet/lt.js.map +1 -0
  125. package/login/i18n/messages_defaultSet/lv.js.map +1 -0
  126. package/login/i18n/messages_defaultSet/nl.js.map +1 -0
  127. package/login/i18n/messages_defaultSet/no.js.map +1 -0
  128. package/login/i18n/messages_defaultSet/pl.js.map +1 -0
  129. package/login/i18n/messages_defaultSet/pt-BR.js.map +1 -0
  130. package/login/i18n/messages_defaultSet/ru.js.map +1 -0
  131. package/login/i18n/messages_defaultSet/sk.js.map +1 -0
  132. package/login/i18n/messages_defaultSet/sv.js.map +1 -0
  133. package/login/i18n/messages_defaultSet/th.js.map +1 -0
  134. package/login/i18n/messages_defaultSet/tr.js.map +1 -0
  135. package/login/i18n/messages_defaultSet/uk.js.map +1 -0
  136. package/login/i18n/messages_defaultSet/zh-CN.js.map +1 -0
  137. package/login/i18n/useI18n.d.ts +6 -5
  138. package/login/i18n/useI18n.js +37 -4
  139. package/login/i18n/useI18n.js.map +1 -1
  140. package/login/lib/useUserProfileForm.d.ts +2 -0
  141. package/login/lib/useUserProfileForm.js +44 -10
  142. package/login/lib/useUserProfileForm.js.map +1 -1
  143. package/login/pages/Error.js +1 -1
  144. package/login/pages/Error.js.map +1 -1
  145. package/login/pages/Info.js +15 -3
  146. package/login/pages/Info.js.map +1 -1
  147. package/login/pages/Login.js +6 -2
  148. package/login/pages/Login.js.map +1 -1
  149. package/login/pages/LoginConfigTotp.js +5 -1
  150. package/login/pages/LoginConfigTotp.js.map +1 -1
  151. package/login/pages/LoginOtp.js +3 -1
  152. package/login/pages/LoginOtp.js.map +1 -1
  153. package/login/pages/LoginPassword.js +3 -1
  154. package/login/pages/LoginPassword.js.map +1 -1
  155. package/login/pages/LoginRecoveryAuthnCodeInput.js +3 -1
  156. package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -1
  157. package/login/pages/LoginResetPassword.js +3 -1
  158. package/login/pages/LoginResetPassword.js.map +1 -1
  159. package/login/pages/LoginUpdatePassword.js +5 -1
  160. package/login/pages/LoginUpdatePassword.js.map +1 -1
  161. package/login/pages/Register.js +3 -1
  162. package/login/pages/Register.js.map +1 -1
  163. package/login/pages/SamlPostForm.js +1 -1
  164. package/login/pages/SamlPostForm.js.map +1 -1
  165. package/login/pages/SelectAuthenticator.js +2 -2
  166. package/login/pages/SelectAuthenticator.js.map +1 -1
  167. package/login/pages/WebauthnAuthenticate.js +3 -3
  168. package/login/pages/WebauthnAuthenticate.js.map +1 -1
  169. package/login/pages/WebauthnRegister.js +2 -2
  170. package/package.json +267 -245
  171. package/src/PUBLIC_URL.ts +2 -2
  172. package/src/account/KcContext/KcContext.ts +4 -1
  173. package/src/account/KcContext/kcContextMocks.ts +7 -4
  174. package/src/account/Template.tsx +6 -1
  175. package/src/account/i18n/GenericI18n.tsx +6 -0
  176. package/src/account/i18n/i18n.tsx +91 -129
  177. package/src/account/i18n/index.ts +4 -3
  178. package/src/account/i18n/{baseMessages → messages_defaultSet}/index.ts +3 -3
  179. package/src/account/i18n/useI18n.tsx +95 -0
  180. package/src/account/pages/Applications.tsx +0 -1
  181. package/src/account/pages/FederatedIdentity.tsx +1 -1
  182. package/src/account/pages/Totp.tsx +16 -6
  183. package/src/bin/add-story.ts +42 -10
  184. package/src/bin/eject-page.ts +119 -11
  185. package/src/bin/initialize-account-theme/copyBoilerplate.ts +32 -0
  186. package/src/bin/initialize-account-theme/index.ts +1 -0
  187. package/src/bin/initialize-account-theme/initialize-account-theme.ts +112 -0
  188. package/src/bin/initialize-account-theme/initializeAccountTheme_multiPage.ts +21 -0
  189. package/src/bin/initialize-account-theme/initializeAccountTheme_singlePage.ts +152 -0
  190. package/src/bin/initialize-account-theme/src/multi-page/KcContext.ts +12 -0
  191. package/src/bin/initialize-account-theme/src/multi-page/KcPage.tsx +25 -0
  192. package/src/bin/initialize-account-theme/src/multi-page/KcPageStory.tsx +38 -0
  193. package/src/bin/initialize-account-theme/src/multi-page/i18n.ts +5 -0
  194. package/src/bin/initialize-account-theme/src/single-page/KcContext.ts +7 -0
  195. package/src/bin/initialize-account-theme/src/single-page/KcPage.tsx +11 -0
  196. package/src/bin/initialize-account-theme/updateAccountThemeImplementationInConfig.ts +92 -0
  197. package/src/bin/initialize-email-theme.ts +1 -1
  198. package/src/bin/keycloakify/buildJars/buildJar.ts +38 -24
  199. package/src/bin/keycloakify/buildJars/buildJars.ts +6 -3
  200. package/src/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.ts +5 -5
  201. package/src/bin/keycloakify/generateFtl/generateFtl.ts +16 -16
  202. package/src/bin/keycloakify/generateFtl/kcContextDeclarationTemplate.ftl +471 -364
  203. package/src/bin/keycloakify/generateResources/bringInAccountV1.ts +7 -7
  204. package/src/bin/keycloakify/generateResources/generateMessageProperties.ts +3 -3
  205. package/src/bin/keycloakify/generateResources/generateResourcesForMainTheme.ts +125 -59
  206. package/src/bin/keycloakify/generateResources/generateResourcesForThemeVariant.ts +2 -2
  207. package/src/bin/keycloakify/generateResources/readExtraPageNames.ts +5 -8
  208. package/src/bin/keycloakify/keycloakify.ts +8 -6
  209. package/src/bin/keycloakify/replacers/replaceImportsInCssCode.ts +41 -27
  210. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.ts +2 -2
  211. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/vite.ts +6 -6
  212. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.ts +4 -4
  213. package/src/bin/main.ts +19 -2
  214. package/src/bin/shared/KeycloakVersionRange.ts +4 -4
  215. package/src/bin/shared/buildContext.ts +360 -251
  216. package/src/bin/shared/constants.ts +19 -17
  217. package/src/bin/shared/copyKeycloakResourcesToPublic.ts +6 -6
  218. package/src/bin/shared/downloadKeycloakDefaultTheme.ts +48 -27
  219. package/src/bin/shared/downloadKeycloakStaticResources.ts +2 -2
  220. package/src/bin/shared/generateKcGenTs.ts +110 -3
  221. package/src/bin/shared/getLatestsSemVersionedTag.ts +201 -0
  222. package/src/bin/shared/promptKeycloakVersion.ts +20 -80
  223. package/src/bin/start-keycloak/appBuild.ts +15 -11
  224. package/src/bin/start-keycloak/keycloakifyBuild.ts +3 -3
  225. package/src/bin/start-keycloak/myrealm-realm-18.json +4 -4
  226. package/src/bin/start-keycloak/myrealm-realm-19.json +4 -4
  227. package/src/bin/start-keycloak/myrealm-realm-20.json +4 -4
  228. package/src/bin/start-keycloak/myrealm-realm-21.json +4 -4
  229. package/src/bin/start-keycloak/myrealm-realm-23.json +3 -3
  230. package/src/bin/start-keycloak/myrealm-realm-24.json +4 -4
  231. package/src/bin/start-keycloak/myrealm-realm-25.json +4 -4
  232. package/src/bin/start-keycloak/start-keycloak.ts +256 -102
  233. package/src/bin/tools/assertNoPnpmDlx.ts +17 -0
  234. package/src/bin/tools/downloadAndExtractArchive.ts +10 -9
  235. package/src/bin/tools/fetchProxyOptions.ts +32 -11
  236. package/src/bin/tools/npmInstall.ts +63 -0
  237. package/src/bin/tools/octokit-addons/getLatestsSemVersionedTag.ts +3 -2
  238. package/src/bin/tsconfig.json +3 -1
  239. package/src/lib/getKcClsx.ts +2 -2
  240. package/src/login/KcContext/KcContext.ts +10 -28
  241. package/src/login/KcContext/kcContextMocks.ts +5 -6
  242. package/src/login/Template.tsx +32 -54
  243. package/src/login/TemplateProps.ts +0 -1
  244. package/src/login/UserProfileFormFields.tsx +15 -11
  245. package/src/login/i18n/GenericI18n.tsx +6 -0
  246. package/src/login/i18n/i18n.tsx +91 -166
  247. package/src/login/i18n/index.ts +4 -3
  248. package/src/login/i18n/{baseMessages → messages_defaultSet}/index.ts +3 -3
  249. package/src/login/i18n/useI18n.tsx +95 -0
  250. package/src/login/lib/useUserProfileForm.tsx +68 -20
  251. package/src/login/pages/Error.tsx +1 -1
  252. package/src/login/pages/Info.tsx +26 -6
  253. package/src/login/pages/Login.tsx +20 -9
  254. package/src/login/pages/LoginConfigTotp.tsx +16 -6
  255. package/src/login/pages/LoginOtp.tsx +8 -3
  256. package/src/login/pages/LoginPassword.tsx +8 -3
  257. package/src/login/pages/LoginRecoveryAuthnCodeInput.tsx +8 -3
  258. package/src/login/pages/LoginResetPassword.tsx +8 -3
  259. package/src/login/pages/LoginUpdatePassword.tsx +55 -47
  260. package/src/login/pages/Register.tsx +8 -3
  261. package/src/login/pages/SamlPostForm.tsx +1 -1
  262. package/src/login/pages/SelectAuthenticator.tsx +4 -4
  263. package/src/login/pages/WebauthnAuthenticate.tsx +5 -5
  264. package/src/login/pages/WebauthnRegister.tsx +2 -2
  265. package/src/tools/useInsertLinkTags.ts +9 -1
  266. package/src/tools/useInsertScriptTags.ts +9 -1
  267. package/src/vite-plugin/vite-plugin.ts +15 -13
  268. package/stories/account/pages/Applications.stories.tsx +80 -0
  269. package/stories/account/pages/Log.stories.tsx +1 -0
  270. package/stories/account-spa/index.stories.tsx +94 -0
  271. package/stories/intro/intro.stories.tsx +90 -0
  272. package/stories/login/pages/Info.stories.tsx +7 -2
  273. package/stories/login/pages/Login.stories.tsx +25 -13
  274. package/stories/login/pages/Register.stories.tsx +11 -9
  275. package/stories/login/pages/SelectAuthenticator.stories.tsx +41 -0
  276. package/stories/login/pages/Terms.stories.tsx +6 -2
  277. package/tools/useInsertLinkTags.js +7 -1
  278. package/tools/useInsertLinkTags.js.map +1 -1
  279. package/tools/useInsertScriptTags.js +7 -1
  280. package/tools/useInsertScriptTags.js.map +1 -1
  281. package/vite-plugin/index.js +25820 -25686
  282. package/vite-plugin/vite-plugin.d.ts +6 -4
  283. package/account/i18n/baseMessages/ar.js.map +0 -1
  284. package/account/i18n/baseMessages/ca.js.map +0 -1
  285. package/account/i18n/baseMessages/cs.js.map +0 -1
  286. package/account/i18n/baseMessages/da.js.map +0 -1
  287. package/account/i18n/baseMessages/de.js.map +0 -1
  288. package/account/i18n/baseMessages/el.js.map +0 -1
  289. package/account/i18n/baseMessages/en.js.map +0 -1
  290. package/account/i18n/baseMessages/es.js.map +0 -1
  291. package/account/i18n/baseMessages/fa.js.map +0 -1
  292. package/account/i18n/baseMessages/fi.js.map +0 -1
  293. package/account/i18n/baseMessages/fr.js.map +0 -1
  294. package/account/i18n/baseMessages/hu.js.map +0 -1
  295. package/account/i18n/baseMessages/index.js.map +0 -1
  296. package/account/i18n/baseMessages/it.js.map +0 -1
  297. package/account/i18n/baseMessages/ja.js.map +0 -1
  298. package/account/i18n/baseMessages/lt.js.map +0 -1
  299. package/account/i18n/baseMessages/lv.js.map +0 -1
  300. package/account/i18n/baseMessages/nl.js.map +0 -1
  301. package/account/i18n/baseMessages/no.js.map +0 -1
  302. package/account/i18n/baseMessages/pl.js.map +0 -1
  303. package/account/i18n/baseMessages/pt-BR.js.map +0 -1
  304. package/account/i18n/baseMessages/ru.js.map +0 -1
  305. package/account/i18n/baseMessages/sk.js.map +0 -1
  306. package/account/i18n/baseMessages/sv.js.map +0 -1
  307. package/account/i18n/baseMessages/th.js.map +0 -1
  308. package/account/i18n/baseMessages/tr.js.map +0 -1
  309. package/account/i18n/baseMessages/uk.js.map +0 -1
  310. package/account/i18n/baseMessages/zh-CN.js.map +0 -1
  311. package/bin/538.index.js +0 -108
  312. package/login/i18n/baseMessages/ar.js.map +0 -1
  313. package/login/i18n/baseMessages/ca.js.map +0 -1
  314. package/login/i18n/baseMessages/cs.js.map +0 -1
  315. package/login/i18n/baseMessages/da.js.map +0 -1
  316. package/login/i18n/baseMessages/de.js.map +0 -1
  317. package/login/i18n/baseMessages/el.js.map +0 -1
  318. package/login/i18n/baseMessages/en.js.map +0 -1
  319. package/login/i18n/baseMessages/es.js.map +0 -1
  320. package/login/i18n/baseMessages/fa.js.map +0 -1
  321. package/login/i18n/baseMessages/fi.js.map +0 -1
  322. package/login/i18n/baseMessages/fr.js.map +0 -1
  323. package/login/i18n/baseMessages/hu.js.map +0 -1
  324. package/login/i18n/baseMessages/index.js.map +0 -1
  325. package/login/i18n/baseMessages/it.js.map +0 -1
  326. package/login/i18n/baseMessages/ja.js.map +0 -1
  327. package/login/i18n/baseMessages/lt.js.map +0 -1
  328. package/login/i18n/baseMessages/lv.js.map +0 -1
  329. package/login/i18n/baseMessages/nl.js.map +0 -1
  330. package/login/i18n/baseMessages/no.js.map +0 -1
  331. package/login/i18n/baseMessages/pl.js.map +0 -1
  332. package/login/i18n/baseMessages/pt-BR.js.map +0 -1
  333. package/login/i18n/baseMessages/ru.js.map +0 -1
  334. package/login/i18n/baseMessages/sk.js.map +0 -1
  335. package/login/i18n/baseMessages/sv.js.map +0 -1
  336. package/login/i18n/baseMessages/th.js.map +0 -1
  337. package/login/i18n/baseMessages/tr.js.map +0 -1
  338. package/login/i18n/baseMessages/uk.js.map +0 -1
  339. package/login/i18n/baseMessages/zh-CN.js.map +0 -1
  340. package/src/account/i18n/useI18n.ts +0 -44
  341. package/src/login/i18n/useI18n.ts +0 -44
  342. package/src/tools/ExtractAfterStartingWith.ts +0 -4
  343. package/tools/ExtractAfterStartingWith.d.ts +0 -1
  344. package/tools/ExtractAfterStartingWith.js +0 -2
  345. package/tools/ExtractAfterStartingWith.js.map +0 -1
  346. /package/account/i18n/{baseMessages → messages_defaultSet}/ar.d.ts +0 -0
  347. /package/account/i18n/{baseMessages → messages_defaultSet}/ar.js +0 -0
  348. /package/account/i18n/{baseMessages → messages_defaultSet}/ca.d.ts +0 -0
  349. /package/account/i18n/{baseMessages → messages_defaultSet}/ca.js +0 -0
  350. /package/account/i18n/{baseMessages → messages_defaultSet}/cs.d.ts +0 -0
  351. /package/account/i18n/{baseMessages → messages_defaultSet}/cs.js +0 -0
  352. /package/account/i18n/{baseMessages → messages_defaultSet}/da.d.ts +0 -0
  353. /package/account/i18n/{baseMessages → messages_defaultSet}/da.js +0 -0
  354. /package/account/i18n/{baseMessages → messages_defaultSet}/de.d.ts +0 -0
  355. /package/account/i18n/{baseMessages → messages_defaultSet}/de.js +0 -0
  356. /package/account/i18n/{baseMessages → messages_defaultSet}/el.d.ts +0 -0
  357. /package/account/i18n/{baseMessages → messages_defaultSet}/el.js +0 -0
  358. /package/account/i18n/{baseMessages → messages_defaultSet}/en.d.ts +0 -0
  359. /package/account/i18n/{baseMessages → messages_defaultSet}/en.js +0 -0
  360. /package/account/i18n/{baseMessages → messages_defaultSet}/es.d.ts +0 -0
  361. /package/account/i18n/{baseMessages → messages_defaultSet}/es.js +0 -0
  362. /package/account/i18n/{baseMessages → messages_defaultSet}/fa.d.ts +0 -0
  363. /package/account/i18n/{baseMessages → messages_defaultSet}/fa.js +0 -0
  364. /package/account/i18n/{baseMessages → messages_defaultSet}/fi.d.ts +0 -0
  365. /package/account/i18n/{baseMessages → messages_defaultSet}/fi.js +0 -0
  366. /package/account/i18n/{baseMessages → messages_defaultSet}/fr.d.ts +0 -0
  367. /package/account/i18n/{baseMessages → messages_defaultSet}/fr.js +0 -0
  368. /package/account/i18n/{baseMessages → messages_defaultSet}/hu.d.ts +0 -0
  369. /package/account/i18n/{baseMessages → messages_defaultSet}/hu.js +0 -0
  370. /package/account/i18n/{baseMessages → messages_defaultSet}/it.d.ts +0 -0
  371. /package/account/i18n/{baseMessages → messages_defaultSet}/it.js +0 -0
  372. /package/account/i18n/{baseMessages → messages_defaultSet}/ja.d.ts +0 -0
  373. /package/account/i18n/{baseMessages → messages_defaultSet}/ja.js +0 -0
  374. /package/account/i18n/{baseMessages → messages_defaultSet}/lt.d.ts +0 -0
  375. /package/account/i18n/{baseMessages → messages_defaultSet}/lt.js +0 -0
  376. /package/account/i18n/{baseMessages → messages_defaultSet}/lv.d.ts +0 -0
  377. /package/account/i18n/{baseMessages → messages_defaultSet}/lv.js +0 -0
  378. /package/account/i18n/{baseMessages → messages_defaultSet}/nl.d.ts +0 -0
  379. /package/account/i18n/{baseMessages → messages_defaultSet}/nl.js +0 -0
  380. /package/account/i18n/{baseMessages → messages_defaultSet}/no.d.ts +0 -0
  381. /package/account/i18n/{baseMessages → messages_defaultSet}/no.js +0 -0
  382. /package/account/i18n/{baseMessages → messages_defaultSet}/pl.d.ts +0 -0
  383. /package/account/i18n/{baseMessages → messages_defaultSet}/pl.js +0 -0
  384. /package/account/i18n/{baseMessages → messages_defaultSet}/pt-BR.d.ts +0 -0
  385. /package/account/i18n/{baseMessages → messages_defaultSet}/pt-BR.js +0 -0
  386. /package/account/i18n/{baseMessages → messages_defaultSet}/ru.d.ts +0 -0
  387. /package/account/i18n/{baseMessages → messages_defaultSet}/ru.js +0 -0
  388. /package/account/i18n/{baseMessages → messages_defaultSet}/sk.d.ts +0 -0
  389. /package/account/i18n/{baseMessages → messages_defaultSet}/sk.js +0 -0
  390. /package/account/i18n/{baseMessages → messages_defaultSet}/sv.d.ts +0 -0
  391. /package/account/i18n/{baseMessages → messages_defaultSet}/sv.js +0 -0
  392. /package/account/i18n/{baseMessages → messages_defaultSet}/th.d.ts +0 -0
  393. /package/account/i18n/{baseMessages → messages_defaultSet}/th.js +0 -0
  394. /package/account/i18n/{baseMessages → messages_defaultSet}/tr.d.ts +0 -0
  395. /package/account/i18n/{baseMessages → messages_defaultSet}/tr.js +0 -0
  396. /package/account/i18n/{baseMessages → messages_defaultSet}/uk.d.ts +0 -0
  397. /package/account/i18n/{baseMessages → messages_defaultSet}/uk.js +0 -0
  398. /package/account/i18n/{baseMessages → messages_defaultSet}/zh-CN.d.ts +0 -0
  399. /package/account/i18n/{baseMessages → messages_defaultSet}/zh-CN.js +0 -0
  400. /package/login/i18n/{baseMessages → messages_defaultSet}/ar.d.ts +0 -0
  401. /package/login/i18n/{baseMessages → messages_defaultSet}/ar.js +0 -0
  402. /package/login/i18n/{baseMessages → messages_defaultSet}/ca.d.ts +0 -0
  403. /package/login/i18n/{baseMessages → messages_defaultSet}/ca.js +0 -0
  404. /package/login/i18n/{baseMessages → messages_defaultSet}/cs.d.ts +0 -0
  405. /package/login/i18n/{baseMessages → messages_defaultSet}/cs.js +0 -0
  406. /package/login/i18n/{baseMessages → messages_defaultSet}/da.d.ts +0 -0
  407. /package/login/i18n/{baseMessages → messages_defaultSet}/da.js +0 -0
  408. /package/login/i18n/{baseMessages → messages_defaultSet}/de.d.ts +0 -0
  409. /package/login/i18n/{baseMessages → messages_defaultSet}/de.js +0 -0
  410. /package/login/i18n/{baseMessages → messages_defaultSet}/el.d.ts +0 -0
  411. /package/login/i18n/{baseMessages → messages_defaultSet}/el.js +0 -0
  412. /package/login/i18n/{baseMessages → messages_defaultSet}/en.d.ts +0 -0
  413. /package/login/i18n/{baseMessages → messages_defaultSet}/en.js +0 -0
  414. /package/login/i18n/{baseMessages → messages_defaultSet}/es.d.ts +0 -0
  415. /package/login/i18n/{baseMessages → messages_defaultSet}/es.js +0 -0
  416. /package/login/i18n/{baseMessages → messages_defaultSet}/fa.d.ts +0 -0
  417. /package/login/i18n/{baseMessages → messages_defaultSet}/fa.js +0 -0
  418. /package/login/i18n/{baseMessages → messages_defaultSet}/fi.d.ts +0 -0
  419. /package/login/i18n/{baseMessages → messages_defaultSet}/fi.js +0 -0
  420. /package/login/i18n/{baseMessages → messages_defaultSet}/fr.d.ts +0 -0
  421. /package/login/i18n/{baseMessages → messages_defaultSet}/fr.js +0 -0
  422. /package/login/i18n/{baseMessages → messages_defaultSet}/hu.d.ts +0 -0
  423. /package/login/i18n/{baseMessages → messages_defaultSet}/hu.js +0 -0
  424. /package/login/i18n/{baseMessages → messages_defaultSet}/it.d.ts +0 -0
  425. /package/login/i18n/{baseMessages → messages_defaultSet}/it.js +0 -0
  426. /package/login/i18n/{baseMessages → messages_defaultSet}/ja.d.ts +0 -0
  427. /package/login/i18n/{baseMessages → messages_defaultSet}/ja.js +0 -0
  428. /package/login/i18n/{baseMessages → messages_defaultSet}/lt.d.ts +0 -0
  429. /package/login/i18n/{baseMessages → messages_defaultSet}/lt.js +0 -0
  430. /package/login/i18n/{baseMessages → messages_defaultSet}/lv.d.ts +0 -0
  431. /package/login/i18n/{baseMessages → messages_defaultSet}/lv.js +0 -0
  432. /package/login/i18n/{baseMessages → messages_defaultSet}/nl.d.ts +0 -0
  433. /package/login/i18n/{baseMessages → messages_defaultSet}/nl.js +0 -0
  434. /package/login/i18n/{baseMessages → messages_defaultSet}/no.d.ts +0 -0
  435. /package/login/i18n/{baseMessages → messages_defaultSet}/no.js +0 -0
  436. /package/login/i18n/{baseMessages → messages_defaultSet}/pl.d.ts +0 -0
  437. /package/login/i18n/{baseMessages → messages_defaultSet}/pl.js +0 -0
  438. /package/login/i18n/{baseMessages → messages_defaultSet}/pt-BR.d.ts +0 -0
  439. /package/login/i18n/{baseMessages → messages_defaultSet}/pt-BR.js +0 -0
  440. /package/login/i18n/{baseMessages → messages_defaultSet}/ru.d.ts +0 -0
  441. /package/login/i18n/{baseMessages → messages_defaultSet}/ru.js +0 -0
  442. /package/login/i18n/{baseMessages → messages_defaultSet}/sk.d.ts +0 -0
  443. /package/login/i18n/{baseMessages → messages_defaultSet}/sk.js +0 -0
  444. /package/login/i18n/{baseMessages → messages_defaultSet}/sv.d.ts +0 -0
  445. /package/login/i18n/{baseMessages → messages_defaultSet}/sv.js +0 -0
  446. /package/login/i18n/{baseMessages → messages_defaultSet}/th.d.ts +0 -0
  447. /package/login/i18n/{baseMessages → messages_defaultSet}/th.js +0 -0
  448. /package/login/i18n/{baseMessages → messages_defaultSet}/tr.d.ts +0 -0
  449. /package/login/i18n/{baseMessages → messages_defaultSet}/tr.js +0 -0
  450. /package/login/i18n/{baseMessages → messages_defaultSet}/uk.d.ts +0 -0
  451. /package/login/i18n/{baseMessages → messages_defaultSet}/uk.js +0 -0
  452. /package/login/i18n/{baseMessages → messages_defaultSet}/zh-CN.d.ts +0 -0
  453. /package/login/i18n/{baseMessages → messages_defaultSet}/zh-CN.js +0 -0
  454. /package/src/account/i18n/{baseMessages → messages_defaultSet}/ar.ts +0 -0
  455. /package/src/account/i18n/{baseMessages → messages_defaultSet}/ca.ts +0 -0
  456. /package/src/account/i18n/{baseMessages → messages_defaultSet}/cs.ts +0 -0
  457. /package/src/account/i18n/{baseMessages → messages_defaultSet}/da.ts +0 -0
  458. /package/src/account/i18n/{baseMessages → messages_defaultSet}/de.ts +0 -0
  459. /package/src/account/i18n/{baseMessages → messages_defaultSet}/el.ts +0 -0
  460. /package/src/account/i18n/{baseMessages → messages_defaultSet}/en.ts +0 -0
  461. /package/src/account/i18n/{baseMessages → messages_defaultSet}/es.ts +0 -0
  462. /package/src/account/i18n/{baseMessages → messages_defaultSet}/fa.ts +0 -0
  463. /package/src/account/i18n/{baseMessages → messages_defaultSet}/fi.ts +0 -0
  464. /package/src/account/i18n/{baseMessages → messages_defaultSet}/fr.ts +0 -0
  465. /package/src/account/i18n/{baseMessages → messages_defaultSet}/hu.ts +0 -0
  466. /package/src/account/i18n/{baseMessages → messages_defaultSet}/it.ts +0 -0
  467. /package/src/account/i18n/{baseMessages → messages_defaultSet}/ja.ts +0 -0
  468. /package/src/account/i18n/{baseMessages → messages_defaultSet}/lt.ts +0 -0
  469. /package/src/account/i18n/{baseMessages → messages_defaultSet}/lv.ts +0 -0
  470. /package/src/account/i18n/{baseMessages → messages_defaultSet}/nl.ts +0 -0
  471. /package/src/account/i18n/{baseMessages → messages_defaultSet}/no.ts +0 -0
  472. /package/src/account/i18n/{baseMessages → messages_defaultSet}/pl.ts +0 -0
  473. /package/src/account/i18n/{baseMessages → messages_defaultSet}/pt-BR.ts +0 -0
  474. /package/src/account/i18n/{baseMessages → messages_defaultSet}/ru.ts +0 -0
  475. /package/src/account/i18n/{baseMessages → messages_defaultSet}/sk.ts +0 -0
  476. /package/src/account/i18n/{baseMessages → messages_defaultSet}/sv.ts +0 -0
  477. /package/src/account/i18n/{baseMessages → messages_defaultSet}/th.ts +0 -0
  478. /package/src/account/i18n/{baseMessages → messages_defaultSet}/tr.ts +0 -0
  479. /package/src/account/i18n/{baseMessages → messages_defaultSet}/uk.ts +0 -0
  480. /package/src/account/i18n/{baseMessages → messages_defaultSet}/zh-CN.ts +0 -0
  481. /package/src/login/i18n/{baseMessages → messages_defaultSet}/ar.ts +0 -0
  482. /package/src/login/i18n/{baseMessages → messages_defaultSet}/ca.ts +0 -0
  483. /package/src/login/i18n/{baseMessages → messages_defaultSet}/cs.ts +0 -0
  484. /package/src/login/i18n/{baseMessages → messages_defaultSet}/da.ts +0 -0
  485. /package/src/login/i18n/{baseMessages → messages_defaultSet}/de.ts +0 -0
  486. /package/src/login/i18n/{baseMessages → messages_defaultSet}/el.ts +0 -0
  487. /package/src/login/i18n/{baseMessages → messages_defaultSet}/en.ts +0 -0
  488. /package/src/login/i18n/{baseMessages → messages_defaultSet}/es.ts +0 -0
  489. /package/src/login/i18n/{baseMessages → messages_defaultSet}/fa.ts +0 -0
  490. /package/src/login/i18n/{baseMessages → messages_defaultSet}/fi.ts +0 -0
  491. /package/src/login/i18n/{baseMessages → messages_defaultSet}/fr.ts +0 -0
  492. /package/src/login/i18n/{baseMessages → messages_defaultSet}/hu.ts +0 -0
  493. /package/src/login/i18n/{baseMessages → messages_defaultSet}/it.ts +0 -0
  494. /package/src/login/i18n/{baseMessages → messages_defaultSet}/ja.ts +0 -0
  495. /package/src/login/i18n/{baseMessages → messages_defaultSet}/lt.ts +0 -0
  496. /package/src/login/i18n/{baseMessages → messages_defaultSet}/lv.ts +0 -0
  497. /package/src/login/i18n/{baseMessages → messages_defaultSet}/nl.ts +0 -0
  498. /package/src/login/i18n/{baseMessages → messages_defaultSet}/no.ts +0 -0
  499. /package/src/login/i18n/{baseMessages → messages_defaultSet}/pl.ts +0 -0
  500. /package/src/login/i18n/{baseMessages → messages_defaultSet}/pt-BR.ts +0 -0
  501. /package/src/login/i18n/{baseMessages → messages_defaultSet}/ru.ts +0 -0
  502. /package/src/login/i18n/{baseMessages → messages_defaultSet}/sk.ts +0 -0
  503. /package/src/login/i18n/{baseMessages → messages_defaultSet}/sv.ts +0 -0
  504. /package/src/login/i18n/{baseMessages → messages_defaultSet}/th.ts +0 -0
  505. /package/src/login/i18n/{baseMessages → messages_defaultSet}/tr.ts +0 -0
  506. /package/src/login/i18n/{baseMessages → messages_defaultSet}/uk.ts +0 -0
  507. /package/src/login/i18n/{baseMessages → messages_defaultSet}/zh-CN.ts +0 -0
@@ -0,0 +1,92 @@
1
+ import { join as pathJoin } from "path";
2
+ import { assert, type Equals } from "tsafe/assert";
3
+ import type { BuildContext } from "../shared/buildContext";
4
+ import * as fs from "fs";
5
+ import chalk from "chalk";
6
+ import { z } from "zod";
7
+ import { id } from "tsafe/id";
8
+
9
+ export type BuildContextLike = {
10
+ bundler: BuildContext["bundler"];
11
+ };
12
+
13
+ assert<BuildContext extends BuildContextLike ? true : false>();
14
+
15
+ export function updateAccountThemeImplementationInConfig(params: {
16
+ buildContext: BuildContext;
17
+ accountThemeType: "Single-Page" | "Multi-Page";
18
+ }) {
19
+ const { buildContext, accountThemeType } = params;
20
+
21
+ switch (buildContext.bundler) {
22
+ case "vite":
23
+ {
24
+ const viteConfigPath = pathJoin(
25
+ buildContext.projectDirPath,
26
+ "vite.config.ts"
27
+ );
28
+
29
+ if (!fs.existsSync(viteConfigPath)) {
30
+ console.log(
31
+ chalk.bold(
32
+ `You must manually set the accountThemeImplementation to "${accountThemeType}" in your vite config`
33
+ )
34
+ );
35
+ break;
36
+ }
37
+
38
+ const viteConfigContent = fs
39
+ .readFileSync(viteConfigPath)
40
+ .toString("utf8");
41
+
42
+ const modifiedViteConfigContent = viteConfigContent.replace(
43
+ /accountThemeImplementation\s*:\s*"none"/,
44
+ `accountThemeImplementation: "${accountThemeType}"`
45
+ );
46
+
47
+ if (modifiedViteConfigContent === viteConfigContent) {
48
+ console.log(
49
+ chalk.bold(
50
+ `You must manually set the accountThemeImplementation to "${accountThemeType}" in your vite.config.ts`
51
+ )
52
+ );
53
+ break;
54
+ }
55
+
56
+ fs.writeFileSync(viteConfigPath, modifiedViteConfigContent);
57
+ }
58
+ break;
59
+ case "webpack":
60
+ {
61
+ const parsedPackageJson = (() => {
62
+ type ParsedPackageJson = {
63
+ keycloakify: Record<string, string>;
64
+ };
65
+
66
+ const zParsedPackageJson = (() => {
67
+ type TargetType = ParsedPackageJson;
68
+
69
+ const zTargetType = z.object({
70
+ keycloakify: z.record(z.string())
71
+ });
72
+
73
+ assert<Equals<z.infer<typeof zTargetType>, TargetType>>();
74
+
75
+ return id<z.ZodType<TargetType>>(zTargetType);
76
+ })();
77
+
78
+ return zParsedPackageJson.parse(
79
+ JSON.parse(
80
+ fs
81
+ .readFileSync(buildContext.packageJsonFilePath)
82
+ .toString("utf8")
83
+ )
84
+ );
85
+ })();
86
+
87
+ parsedPackageJson.keycloakify.accountThemeImplementation =
88
+ accountThemeType;
89
+ }
90
+ break;
91
+ }
92
+ }
@@ -30,7 +30,7 @@ export async function command(params: { cliCommandOptions: CliCommandOptions })
30
30
  // NOTE: This is arbitrary
31
31
  startingFromMajor: 17,
32
32
  excludeMajorVersions: [],
33
- cacheDirPath: buildContext.cacheDirPath
33
+ buildContext
34
34
  });
35
35
 
36
36
  const { defaultThemeDirPath } = await downloadKeycloakDefaultTheme({
@@ -7,7 +7,7 @@ import { join as pathJoin, dirname as pathDirname } from "path";
7
7
  import { transformCodebase } from "../../tools/transformCodebase";
8
8
  import type { BuildContext } from "../../shared/buildContext";
9
9
  import * as fs from "fs/promises";
10
- import { accountV1ThemeName } from "../../shared/constants";
10
+ import { ACCOUNT_V1_THEME_NAME } from "../../shared/constants";
11
11
  import {
12
12
  generatePom,
13
13
  BuildContextLike as BuildContextLike_generatePom
@@ -24,6 +24,7 @@ export type BuildContextLike = BuildContextLike_generatePom & {
24
24
  artifactId: string;
25
25
  themeVersion: string;
26
26
  cacheDirPath: string;
27
+ implementedThemeTypes: BuildContext["implementedThemeTypes"];
27
28
  };
28
29
 
29
30
  assert<BuildContext extends BuildContextLike ? true : false>();
@@ -33,6 +34,7 @@ export async function buildJar(params: {
33
34
  keycloakAccountV1Version: KeycloakAccountV1Version;
34
35
  keycloakThemeAdditionalInfoExtensionVersion: KeycloakThemeAdditionalInfoExtensionVersion;
35
36
  resourcesDirPath: string;
37
+ doesImplementAccountV1Theme: boolean;
36
38
  buildContext: BuildContextLike;
37
39
  }): Promise<void> {
38
40
  const {
@@ -40,28 +42,30 @@ export async function buildJar(params: {
40
42
  keycloakAccountV1Version,
41
43
  keycloakThemeAdditionalInfoExtensionVersion,
42
44
  resourcesDirPath,
45
+ doesImplementAccountV1Theme,
43
46
  buildContext
44
47
  } = params;
45
48
 
46
- const keycloakifyBuildTmpDirPath = pathJoin(
49
+ const keycloakifyBuildCacheDirPath = pathJoin(
47
50
  buildContext.cacheDirPath,
51
+ "maven",
48
52
  jarFileBasename.replace(".jar", "")
49
53
  );
50
54
 
51
- rmSync(keycloakifyBuildTmpDirPath, { recursive: true, force: true });
52
-
53
55
  const tmpResourcesDirPath = pathJoin(
54
- keycloakifyBuildTmpDirPath,
56
+ keycloakifyBuildCacheDirPath,
55
57
  "src",
56
58
  "main",
57
59
  "resources"
58
60
  );
59
61
 
62
+ rmSync(tmpResourcesDirPath, { recursive: true, force: true });
63
+
60
64
  transformCodebase({
61
65
  srcDirPath: resourcesDirPath,
62
66
  destDirPath: tmpResourcesDirPath,
63
67
  transformSourceCode:
64
- keycloakAccountV1Version !== null
68
+ !doesImplementAccountV1Theme || keycloakAccountV1Version !== null
65
69
  ? undefined
66
70
  : (params: {
67
71
  fileRelativePath: string;
@@ -71,7 +75,7 @@ export async function buildJar(params: {
71
75
 
72
76
  if (
73
77
  isInside({
74
- dirPath: pathJoin("theme", accountV1ThemeName),
78
+ dirPath: pathJoin("theme", ACCOUNT_V1_THEME_NAME),
75
79
  filePath: fileRelativePath
76
80
  })
77
81
  ) {
@@ -87,7 +91,7 @@ export async function buildJar(params: {
87
91
  sourceCode
88
92
  .toString("utf8")
89
93
  .replace(
90
- `parent=${accountV1ThemeName}`,
94
+ `parent=${ACCOUNT_V1_THEME_NAME}`,
91
95
  "parent=keycloak"
92
96
  ),
93
97
  "utf8"
@@ -105,14 +109,24 @@ export async function buildJar(params: {
105
109
  }
106
110
  });
107
111
 
108
- if (keycloakAccountV1Version === null) {
112
+ remove_account_v1_in_meta_inf: {
113
+ if (!doesImplementAccountV1Theme) {
114
+ // NOTE: We do not have account v1 anyway
115
+ break remove_account_v1_in_meta_inf;
116
+ }
117
+
118
+ if (keycloakAccountV1Version !== null) {
119
+ // NOTE: No, we need to keep account-v1 in meta-inf
120
+ break remove_account_v1_in_meta_inf;
121
+ }
122
+
109
123
  writeMetaInfKeycloakThemes({
110
124
  resourcesDirPath: tmpResourcesDirPath,
111
125
  getNewMetaInfKeycloakTheme: ({ metaInfKeycloakTheme }) => {
112
126
  assert(metaInfKeycloakTheme !== undefined);
113
127
 
114
128
  metaInfKeycloakTheme.themes = metaInfKeycloakTheme.themes.filter(
115
- ({ name }) => name !== accountV1ThemeName
129
+ ({ name }) => name !== ACCOUNT_V1_THEME_NAME
116
130
  );
117
131
 
118
132
  return metaInfKeycloakTheme;
@@ -121,6 +135,10 @@ export async function buildJar(params: {
121
135
  }
122
136
 
123
137
  route_legacy_pages: {
138
+ if (!buildContext.implementedThemeTypes.login.isImplemented) {
139
+ break route_legacy_pages;
140
+ }
141
+
124
142
  // NOTE: If there's no account theme there is no special target for keycloak 24 and up so we create
125
143
  // the pages anyway. If there is an account pages, since we know that account-v1 is only support keycloak
126
144
  // 24 in version 0.4 and up, we can safely break the route for legacy pages.
@@ -135,6 +153,7 @@ export async function buildJar(params: {
135
153
  }
136
154
  })();
137
155
 
156
+ // TODO: Remove this optimization, it's a bit hacky.
138
157
  if (doBreak) {
139
158
  break route_legacy_pages;
140
159
  }
@@ -142,10 +161,7 @@ export async function buildJar(params: {
142
161
  (["register.ftl", "login-update-profile.ftl"] as const).forEach(pageId =>
143
162
  buildContext.themeNames.map(themeName => {
144
163
  const ftlFilePath = pathJoin(
145
- keycloakifyBuildTmpDirPath,
146
- "src",
147
- "main",
148
- "resources",
164
+ tmpResourcesDirPath,
149
165
  "theme",
150
166
  themeName,
151
167
  "login",
@@ -154,7 +170,7 @@ export async function buildJar(params: {
154
170
 
155
171
  const ftlFileContent = readFileSync(ftlFilePath).toString("utf8");
156
172
 
157
- const realPageId = (() => {
173
+ const ftlFileBasename = (() => {
158
174
  switch (pageId) {
159
175
  case "register.ftl":
160
176
  return "register-user-profile.ftl";
@@ -165,14 +181,14 @@ export async function buildJar(params: {
165
181
  })();
166
182
 
167
183
  const modifiedFtlFileContent = ftlFileContent.replace(
168
- `kcContext.pageId = "\${pageId}";`,
169
- `kcContext.pageId = "${pageId}"; kcContext.realPageId = "${realPageId}";`
184
+ `"ftlTemplateFileName": "${pageId}"`,
185
+ `"ftlTemplateFileName": "${ftlFileBasename}"`
170
186
  );
171
187
 
172
188
  assert(modifiedFtlFileContent !== ftlFileContent);
173
189
 
174
190
  fs.writeFile(
175
- pathJoin(pathDirname(ftlFilePath), realPageId),
191
+ pathJoin(pathDirname(ftlFilePath), ftlFileBasename),
176
192
  Buffer.from(modifiedFtlFileContent, "utf8")
177
193
  );
178
194
  })
@@ -187,15 +203,15 @@ export async function buildJar(params: {
187
203
  });
188
204
 
189
205
  await fs.writeFile(
190
- pathJoin(keycloakifyBuildTmpDirPath, "pom.xml"),
206
+ pathJoin(keycloakifyBuildCacheDirPath, "pom.xml"),
191
207
  Buffer.from(pomFileCode, "utf8")
192
208
  );
193
209
  }
194
210
 
195
211
  await new Promise<void>((resolve, reject) =>
196
212
  child_process.exec(
197
- `mvn clean install -Dmaven.repo.local=${pathJoin(keycloakifyBuildTmpDirPath, ".m2")}`,
198
- { cwd: keycloakifyBuildTmpDirPath },
213
+ `mvn install -Dmaven.repo.local="${pathJoin(keycloakifyBuildCacheDirPath, ".m2")}"`,
214
+ { cwd: keycloakifyBuildCacheDirPath },
199
215
  error => {
200
216
  if (error !== null) {
201
217
  console.error(
@@ -220,12 +236,10 @@ export async function buildJar(params: {
220
236
 
221
237
  await fs.rename(
222
238
  pathJoin(
223
- keycloakifyBuildTmpDirPath,
239
+ keycloakifyBuildCacheDirPath,
224
240
  "target",
225
241
  `${buildContext.artifactId}-${buildContext.themeVersion}.jar`
226
242
  ),
227
243
  pathJoin(buildContext.keycloakifyBuildDirPath, jarFileBasename)
228
244
  );
229
-
230
- rmSync(keycloakifyBuildTmpDirPath, { recursive: true });
231
245
  }
@@ -10,7 +10,7 @@ import type { BuildContext } from "../../shared/buildContext";
10
10
  export type BuildContextLike = BuildContextLike_buildJar & {
11
11
  projectDirPath: string;
12
12
  keycloakifyBuildDirPath: string;
13
- recordIsImplementedByThemeType: BuildContext["recordIsImplementedByThemeType"];
13
+ implementedThemeTypes: BuildContext["implementedThemeTypes"];
14
14
  jarTargets: BuildContext["jarTargets"];
15
15
  };
16
16
 
@@ -22,7 +22,9 @@ export async function buildJars(params: {
22
22
  }): Promise<void> {
23
23
  const { resourcesDirPath, buildContext } = params;
24
24
 
25
- const doesImplementAccountTheme = buildContext.recordIsImplementedByThemeType.account;
25
+ const doesImplementAccountV1Theme =
26
+ buildContext.implementedThemeTypes.account.isImplemented &&
27
+ buildContext.implementedThemeTypes.account.type === "Multi-Page";
26
28
 
27
29
  await Promise.all(
28
30
  keycloakAccountV1Versions
@@ -30,7 +32,7 @@ export async function buildJars(params: {
30
32
  keycloakThemeAdditionalInfoExtensionVersions.map(
31
33
  keycloakThemeAdditionalInfoExtensionVersion => {
32
34
  const keycloakVersionRange = getKeycloakVersionRangeForJar({
33
- doesImplementAccountTheme,
35
+ doesImplementAccountV1Theme,
34
36
  keycloakAccountV1Version,
35
37
  keycloakThemeAdditionalInfoExtensionVersion
36
38
  });
@@ -55,6 +57,7 @@ export async function buildJars(params: {
55
57
  keycloakAccountV1Version,
56
58
  keycloakThemeAdditionalInfoExtensionVersion,
57
59
  resourcesDirPath,
60
+ doesImplementAccountV1Theme,
58
61
  buildContext
59
62
  });
60
63
  }
@@ -6,17 +6,17 @@ import type {
6
6
  import type { KeycloakVersionRange } from "../../shared/KeycloakVersionRange";
7
7
 
8
8
  export function getKeycloakVersionRangeForJar(params: {
9
- doesImplementAccountTheme: boolean;
9
+ doesImplementAccountV1Theme: boolean;
10
10
  keycloakAccountV1Version: KeycloakAccountV1Version;
11
11
  keycloakThemeAdditionalInfoExtensionVersion: KeycloakThemeAdditionalInfoExtensionVersion;
12
12
  }): KeycloakVersionRange | undefined {
13
13
  const {
14
14
  keycloakAccountV1Version,
15
15
  keycloakThemeAdditionalInfoExtensionVersion,
16
- doesImplementAccountTheme
16
+ doesImplementAccountV1Theme
17
17
  } = params;
18
18
 
19
- if (doesImplementAccountTheme) {
19
+ if (doesImplementAccountV1Theme) {
20
20
  const keycloakVersionRange = (() => {
21
21
  switch (keycloakAccountV1Version) {
22
22
  case null:
@@ -63,7 +63,7 @@ export function getKeycloakVersionRangeForJar(params: {
63
63
  assert<
64
64
  Equals<
65
65
  typeof keycloakVersionRange,
66
- KeycloakVersionRange.WithAccountTheme | undefined
66
+ KeycloakVersionRange.WithAccountV1Theme | undefined
67
67
  >
68
68
  >();
69
69
 
@@ -87,7 +87,7 @@ export function getKeycloakVersionRangeForJar(params: {
87
87
  assert<
88
88
  Equals<
89
89
  typeof keycloakVersionRange,
90
- KeycloakVersionRange.WithoutAccountTheme | undefined
90
+ KeycloakVersionRange.WithoutAccountV1Theme | undefined
91
91
  >
92
92
  >();
93
93
 
@@ -1,4 +1,4 @@
1
- import cheerio from "cheerio";
1
+ import * as cheerio from "cheerio";
2
2
  import {
3
3
  replaceImportsInJsCode,
4
4
  BuildContextLike as BuildContextLike_replaceImportsInJsCode
@@ -13,8 +13,8 @@ import type { BuildContext } from "../../shared/buildContext";
13
13
  import { assert } from "tsafe/assert";
14
14
  import {
15
15
  type ThemeType,
16
- basenameOfTheKeycloakifyResourcesDir,
17
- resources_common
16
+ BASENAME_OF_KEYCLOAKIFY_RESOURCES_DIR,
17
+ RESOURCES_COMMON
18
18
  } from "../../shared/constants";
19
19
  import { getThisCodebaseRootDirPath } from "../../tools/getThisCodebaseRootDirPath";
20
20
 
@@ -77,7 +77,8 @@ export function generateFtlFilesCodeFactory(params: {
77
77
  (
78
78
  [
79
79
  ["link", "href"],
80
- ["script", "src"]
80
+ ["script", "src"],
81
+ ["script", "data-src"]
81
82
  ] as const
82
83
  ).forEach(([selector, attrName]) =>
83
84
  $(selector).each((...[, element]) => {
@@ -93,7 +94,7 @@ export function generateFtlFilesCodeFactory(params: {
93
94
  new RegExp(
94
95
  `^${(buildContext.urlPathname ?? "/").replace(/\//g, "\\/")}`
95
96
  ),
96
- `\${url.resourcesPath}/${basenameOfTheKeycloakifyResourcesDir}/`
97
+ `\${xKeycloakify.resourcesPath}/${BASENAME_OF_KEYCLOAKIFY_RESOURCES_DIR}/`
97
98
  )
98
99
  );
99
100
  })
@@ -113,19 +114,17 @@ export function generateFtlFilesCodeFactory(params: {
113
114
  )
114
115
  )
115
116
  .toString("utf8")
117
+ .replace("{{themeType}}", themeType)
118
+ .replace("{{themeName}}", themeName)
119
+ .replace("{{keycloakifyVersion}}", keycloakifyVersion)
120
+ .replace("{{themeVersion}}", buildContext.themeVersion)
121
+ .replace("{{fieldNames}}", fieldNames.map(name => `"${name}"`).join(", "))
122
+ .replace("{{RESOURCES_COMMON}}", RESOURCES_COMMON)
116
123
  .replace(
117
- "FIELD_NAMES_eKsIY4ZsZ4xeM",
118
- fieldNames.map(name => `"${name}"`).join(", ")
119
- )
120
- .replace("KEYCLOAKIFY_VERSION_xEdKd3xEdr", keycloakifyVersion)
121
- .replace("KEYCLOAKIFY_THEME_VERSION_sIgKd3xEdr3dx", buildContext.themeVersion)
122
- .replace("KEYCLOAKIFY_THEME_TYPE_dExKd3xEdr", themeType)
123
- .replace("KEYCLOAKIFY_THEME_NAME_cXxKd3xEer", themeName)
124
- .replace("RESOURCES_COMMON_cLsLsMrtDkpVv", resources_common)
125
- .replace(
126
- "USER_DEFINED_EXCLUSIONS_eKsaY4ZsZ4eMr2",
124
+ "{{userDefinedExclusions}}",
127
125
  buildContext.kcContextExclusionsFtlCode ?? ""
128
126
  );
127
+
129
128
  const ftlObjectToJsCodeDeclaringAnObjectPlaceholder =
130
129
  '{ "x": "vIdLqMeOed9sdLdIdOxdK0d" }';
131
130
 
@@ -170,7 +169,8 @@ export function generateFtlFilesCodeFactory(params: {
170
169
  Object.entries({
171
170
  [ftlObjectToJsCodeDeclaringAnObjectPlaceholder]:
172
171
  kcContextDeclarationTemplateFtl,
173
- PAGE_ID_xIgLsPgGId9D8e: pageId
172
+ "{{pageId}}": pageId,
173
+ "{{ftlTemplateFileName}}": pageId
174
174
  }).map(
175
175
  ([searchValue, replaceValue]) =>
176
176
  (ftlCode = ftlCode.replace(searchValue, replaceValue))