keycloakify 10.0.0-rc.2 → 10.0.0-rc.21

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 (567) hide show
  1. package/PUBLIC_URL.js +1 -1
  2. package/PUBLIC_URL.js.map +1 -1
  3. package/account/Fallback.js +3 -0
  4. package/account/Fallback.js.map +1 -1
  5. package/account/Template.js +7 -7
  6. package/account/Template.js.map +1 -1
  7. package/account/i18n/baseMessages/index.js.map +1 -1
  8. package/account/i18n/i18n.d.ts +3 -4
  9. package/account/i18n/i18n.js +38 -31
  10. package/account/i18n/i18n.js.map +1 -1
  11. package/account/index.d.ts +1 -1
  12. package/account/kcContext/KcContext.d.ts +62 -59
  13. package/account/kcContext/KcContext.js.map +1 -1
  14. package/account/kcContext/createGetKcContext.d.ts +3 -3
  15. package/account/kcContext/createGetKcContext.js +20 -15
  16. package/account/kcContext/createGetKcContext.js.map +1 -1
  17. package/account/kcContext/getKcContext.js.map +1 -1
  18. package/account/kcContext/getKcContextFromWindow.d.ts +3 -1
  19. package/account/kcContext/getKcContextFromWindow.js +1 -1
  20. package/account/kcContext/getKcContextFromWindow.js.map +1 -1
  21. package/account/kcContext/kcContextMocks.js +155 -143
  22. package/account/kcContext/kcContextMocks.js.map +1 -1
  23. package/account/lib/useGetClassName.js +14 -14
  24. package/account/lib/useGetClassName.js.map +1 -1
  25. package/account/pages/Account.js +2 -2
  26. package/account/pages/Account.js.map +1 -1
  27. package/account/pages/Applications.js +3 -3
  28. package/account/pages/Applications.js.map +1 -1
  29. package/account/pages/FederatedIdentity.d.ts +7 -0
  30. package/account/pages/FederatedIdentity.js +8 -0
  31. package/account/pages/FederatedIdentity.js.map +1 -0
  32. package/account/pages/Log.js +2 -2
  33. package/account/pages/Log.js.map +1 -1
  34. package/account/pages/Password.js +9 -11
  35. package/account/pages/Password.js.map +1 -1
  36. package/account/pages/Sessions.js +1 -5
  37. package/account/pages/Sessions.js.map +1 -1
  38. package/account/pages/Totp.js +5 -5
  39. package/account/pages/Totp.js.map +1 -1
  40. package/bin/246.index.js +466 -0
  41. package/bin/420.index.js +508 -0
  42. package/bin/509.index.js +438 -0
  43. package/bin/772.index.js +1524 -0
  44. package/bin/main.js +155619 -0
  45. package/bin/{keycloakify/generateFtl/pageId.d.ts → shared/constants.d.ts} +16 -1
  46. package/bin/shared/constants.js +63 -0
  47. package/bin/shared/constants.js.map +1 -0
  48. package/lib/BASE_URL.js.map +1 -1
  49. package/lib/isStorybook.js +2 -1
  50. package/lib/isStorybook.js.map +1 -1
  51. package/lib/useGetClassName.js.map +1 -1
  52. package/login/Fallback.js.map +1 -1
  53. package/login/Template.js +17 -17
  54. package/login/Template.js.map +1 -1
  55. package/login/UserProfileFormFields.js +59 -59
  56. package/login/UserProfileFormFields.js.map +1 -1
  57. package/login/i18n/baseMessages/ca.d.ts +1 -1
  58. package/login/i18n/baseMessages/ca.js +1 -1
  59. package/login/i18n/baseMessages/el.d.ts +0 -1
  60. package/login/i18n/baseMessages/el.js +0 -1
  61. package/login/i18n/baseMessages/el.js.map +1 -1
  62. package/login/i18n/baseMessages/en.d.ts +1 -1
  63. package/login/i18n/baseMessages/en.js +1 -1
  64. package/login/i18n/baseMessages/es.d.ts +1 -1
  65. package/login/i18n/baseMessages/es.js +1 -1
  66. package/login/i18n/baseMessages/fa.d.ts +0 -1
  67. package/login/i18n/baseMessages/fa.js +0 -1
  68. package/login/i18n/baseMessages/fa.js.map +1 -1
  69. package/login/i18n/baseMessages/hu.d.ts +1 -1
  70. package/login/i18n/baseMessages/hu.js +1 -1
  71. package/login/i18n/baseMessages/index.d.ts +1 -2
  72. package/login/i18n/baseMessages/index.js.map +1 -1
  73. package/login/i18n/baseMessages/zh-CN.d.ts +1 -1
  74. package/login/i18n/baseMessages/zh-CN.js +1 -1
  75. package/login/i18n/i18n.d.ts +5 -5
  76. package/login/i18n/i18n.js +59 -41
  77. package/login/i18n/i18n.js.map +1 -1
  78. package/login/index.d.ts +1 -1
  79. package/login/kcContext/KcContext.d.ts +1 -0
  80. package/login/kcContext/KcContext.js +1 -0
  81. package/login/kcContext/KcContext.js.map +1 -1
  82. package/login/kcContext/createGetKcContext.d.ts +3 -3
  83. package/login/kcContext/createGetKcContext.js +30 -22
  84. package/login/kcContext/createGetKcContext.js.map +1 -1
  85. package/login/kcContext/getKcContext.js.map +1 -1
  86. package/login/kcContext/getKcContextFromWindow.d.ts +3 -1
  87. package/login/kcContext/getKcContextFromWindow.js +1 -1
  88. package/login/kcContext/getKcContextFromWindow.js.map +1 -1
  89. package/login/kcContext/kcContextMocks.js +235 -232
  90. package/login/kcContext/kcContextMocks.js.map +1 -1
  91. package/login/lib/useDownloadTerms.js +5 -6
  92. package/login/lib/useDownloadTerms.js.map +1 -1
  93. package/login/lib/useGetClassName.js +112 -112
  94. package/login/lib/useGetClassName.js.map +1 -1
  95. package/login/lib/useUserProfileForm.js +188 -188
  96. package/login/lib/useUserProfileForm.js.map +1 -1
  97. package/login/pages/Code.js +1 -1
  98. package/login/pages/Code.js.map +1 -1
  99. package/login/pages/DeleteAccountConfirm.js +5 -1
  100. package/login/pages/DeleteAccountConfirm.js.map +1 -1
  101. package/login/pages/DeleteCredential.js +1 -1
  102. package/login/pages/DeleteCredential.js.map +1 -1
  103. package/login/pages/Error.js +1 -1
  104. package/login/pages/Error.js.map +1 -1
  105. package/login/pages/FrontchannelLogout.js +1 -1
  106. package/login/pages/FrontchannelLogout.js.map +1 -1
  107. package/login/pages/IdpReviewUserProfile.js +1 -1
  108. package/login/pages/IdpReviewUserProfile.js.map +1 -1
  109. package/login/pages/Info.js +5 -5
  110. package/login/pages/Info.js.map +1 -1
  111. package/login/pages/Login.js +4 -4
  112. package/login/pages/Login.js.map +1 -1
  113. package/login/pages/LoginConfigTotp.js +2 -2
  114. package/login/pages/LoginConfigTotp.js.map +1 -1
  115. package/login/pages/LoginIdpLinkConfirm.js +1 -1
  116. package/login/pages/LoginIdpLinkConfirm.js.map +1 -1
  117. package/login/pages/LoginIdpLinkEmail.js +1 -1
  118. package/login/pages/LoginIdpLinkEmail.js.map +1 -1
  119. package/login/pages/LoginOauth2DeviceVerifyUserCode.js +1 -1
  120. package/login/pages/LoginOauth2DeviceVerifyUserCode.js.map +1 -1
  121. package/login/pages/LoginOauthGrant.js +2 -2
  122. package/login/pages/LoginOauthGrant.js.map +1 -1
  123. package/login/pages/LoginOtp.js +1 -1
  124. package/login/pages/LoginOtp.js.map +1 -1
  125. package/login/pages/LoginPageExpired.js +1 -1
  126. package/login/pages/LoginPageExpired.js.map +1 -1
  127. package/login/pages/LoginPassword.js +3 -3
  128. package/login/pages/LoginPassword.js.map +1 -1
  129. package/login/pages/LoginRecoveryAuthnCodeConfig.js +6 -6
  130. package/login/pages/LoginRecoveryAuthnCodeConfig.js.map +1 -1
  131. package/login/pages/LoginRecoveryAuthnCodeInput.js +1 -1
  132. package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -1
  133. package/login/pages/LoginResetOtp.js +1 -1
  134. package/login/pages/LoginResetOtp.js.map +1 -1
  135. package/login/pages/LoginResetPassword.js +2 -2
  136. package/login/pages/LoginResetPassword.js.map +1 -1
  137. package/login/pages/LoginUpdatePassword.js +3 -3
  138. package/login/pages/LoginUpdatePassword.js.map +1 -1
  139. package/login/pages/LoginUpdateProfile.js +2 -4
  140. package/login/pages/LoginUpdateProfile.js.map +1 -1
  141. package/login/pages/LoginUsername.js +3 -3
  142. package/login/pages/LoginUsername.js.map +1 -1
  143. package/login/pages/LoginVerifyEmail.js +1 -1
  144. package/login/pages/LoginVerifyEmail.js.map +1 -1
  145. package/login/pages/LoginX509Info.js +1 -1
  146. package/login/pages/LoginX509Info.js.map +1 -1
  147. package/login/pages/LogoutConfirm.js +1 -1
  148. package/login/pages/LogoutConfirm.js.map +1 -1
  149. package/login/pages/Register.js +4 -8
  150. package/login/pages/Register.js.map +1 -1
  151. package/login/pages/SamlPostForm.js +1 -1
  152. package/login/pages/SamlPostForm.js.map +1 -1
  153. package/login/pages/SelectAuthenticator.js +2 -2
  154. package/login/pages/SelectAuthenticator.js.map +1 -1
  155. package/login/pages/Terms.js +1 -1
  156. package/login/pages/Terms.js.map +1 -1
  157. package/login/pages/UpdateEmail.js +3 -5
  158. package/login/pages/UpdateEmail.js.map +1 -1
  159. package/login/pages/WebauthnAuthenticate.js +17 -14
  160. package/login/pages/WebauthnAuthenticate.js.map +1 -1
  161. package/login/pages/WebauthnError.js +2 -2
  162. package/login/pages/WebauthnError.js.map +1 -1
  163. package/login/pages/WebauthnRegister.js +10 -10
  164. package/login/pages/WebauthnRegister.js.map +1 -1
  165. package/package.json +103 -512
  166. package/src/PUBLIC_URL.ts +4 -1
  167. package/src/account/Fallback.tsx +3 -0
  168. package/src/account/Template.tsx +7 -10
  169. package/src/account/TemplateProps.ts +4 -1
  170. package/src/account/i18n/i18n.tsx +44 -37
  171. package/src/account/index.ts +1 -1
  172. package/src/account/kcContext/KcContext.ts +76 -63
  173. package/src/account/kcContext/createGetKcContext.ts +48 -22
  174. package/src/account/kcContext/getKcContext.ts +3 -1
  175. package/src/account/kcContext/getKcContextFromWindow.ts +7 -3
  176. package/src/account/kcContext/kcContextMocks.ts +172 -162
  177. package/src/account/lib/useGetClassName.ts +15 -14
  178. package/src/account/pages/Account.tsx +2 -2
  179. package/src/account/pages/Applications.tsx +2 -2
  180. package/src/account/pages/FederatedIdentity.tsx +58 -0
  181. package/src/account/pages/Log.tsx +1 -1
  182. package/src/account/pages/Password.tsx +8 -8
  183. package/src/account/pages/Sessions.tsx +0 -3
  184. package/src/account/pages/Totp.tsx +23 -26
  185. package/src/bin/copy-keycloak-resources-to-public.ts +10 -106
  186. package/src/bin/download-keycloak-default-theme.ts +63 -0
  187. package/src/bin/eject-page.ts +176 -0
  188. package/src/bin/initialize-email-theme.ts +38 -29
  189. package/src/bin/keycloakify/buildJars/buildJar.ts +192 -72
  190. package/src/bin/keycloakify/buildJars/buildJars.ts +41 -23
  191. package/src/bin/keycloakify/buildJars/extensionVersions.ts +2 -1
  192. package/src/bin/keycloakify/buildJars/generatePom.ts +12 -4
  193. package/src/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.ts +73 -21
  194. package/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +182 -252
  195. package/src/bin/keycloakify/generateFtl/generateFtl.ts +59 -15
  196. package/src/bin/keycloakify/generateFtl/index.ts +0 -1
  197. package/src/bin/keycloakify/{generateTheme → generateSrcMainResources}/bringInAccountV1.ts +34 -22
  198. package/src/bin/keycloakify/{generateTheme → generateSrcMainResources}/generateMessageProperties.ts +72 -20
  199. package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResources.ts +34 -0
  200. package/src/bin/keycloakify/{generateTheme/generateSrcMainResources.ts → generateSrcMainResources/generateSrcMainResourcesForMainTheme.ts} +113 -74
  201. package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForThemeVariant.ts +80 -0
  202. package/src/bin/keycloakify/generateSrcMainResources/index.ts +1 -0
  203. package/src/bin/keycloakify/{generateTheme → generateSrcMainResources}/readExtraPageNames.ts +21 -8
  204. package/src/bin/keycloakify/generateSrcMainResources/readFieldNameUsage.ts +83 -0
  205. package/src/bin/keycloakify/generateStartKeycloakTestingContainer.ts +31 -18
  206. package/src/bin/keycloakify/index.ts +0 -7
  207. package/src/bin/keycloakify/keycloakify.ts +77 -69
  208. package/src/bin/keycloakify/replacers/replaceImportsInCssCode.ts +26 -7
  209. package/src/bin/keycloakify/replacers/replaceImportsInInlineCssCode.ts +8 -4
  210. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.ts +7 -4
  211. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/vite.ts +25 -7
  212. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.ts +50 -12
  213. package/src/bin/main.ts +212 -0
  214. package/src/bin/shared/KeycloakVersionRange.ts +9 -0
  215. package/src/bin/shared/buildOptions.ts +307 -0
  216. package/src/bin/{keycloakify/generateFtl/pageId.ts → shared/constants.ts} +31 -1
  217. package/src/bin/shared/copyKeycloakResourcesToPublic.ts +104 -0
  218. package/src/bin/shared/downloadKeycloakDefaultTheme.ts +207 -0
  219. package/src/bin/shared/downloadKeycloakStaticResources.ts +53 -0
  220. package/src/bin/shared/getJarFileBasename.ts +11 -0
  221. package/src/bin/{getThemeSrcDirPath.ts → shared/getThemeSrcDirPath.ts} +6 -3
  222. package/src/bin/shared/metaInfKeycloakThemes.ts +61 -0
  223. package/src/bin/shared/promptKeycloakVersion.ts +125 -0
  224. package/src/bin/start-keycloak/appBuild.ts +129 -0
  225. package/src/bin/start-keycloak/index.ts +1 -0
  226. package/src/bin/start-keycloak/keycloakifyBuild.ts +41 -0
  227. package/src/bin/start-keycloak/myrealm-realm-23.json +2142 -0
  228. package/src/bin/start-keycloak/myrealm-realm-24.json +2318 -0
  229. package/src/bin/start-keycloak/start-keycloak.ts +467 -0
  230. package/src/bin/tools/SemVer.ts +32 -13
  231. package/src/bin/tools/String.prototype.replaceAll.ts +9 -2
  232. package/src/bin/tools/crawl.ts +4 -1
  233. package/src/bin/tools/crc32.ts +42 -24
  234. package/src/bin/tools/downloadAndExtractArchive/downloadAndExtractArchive.ts +262 -0
  235. package/src/bin/tools/downloadAndExtractArchive/fetchProxyOptions.ts +96 -0
  236. package/src/bin/tools/downloadAndExtractArchive/index.ts +1 -0
  237. package/src/bin/tools/extractArchive.ts +140 -0
  238. package/src/bin/tools/fetchProxyOptions.ts +31 -8
  239. package/src/bin/tools/fs.rmSync.ts +4 -4
  240. package/src/bin/tools/getAbsoluteAndInOsFormatPath.ts +17 -2
  241. package/src/bin/tools/getNpmWorkspaceRootDirPath.ts +73 -0
  242. package/src/bin/tools/octokit-addons/getLatestsSemVersionedTag.ts +8 -2
  243. package/src/bin/tools/octokit-addons/listTags.ts +15 -4
  244. package/src/bin/tools/partitionPromiseSettledResults.ts +12 -3
  245. package/src/bin/tools/{readThisNpmProjectVersion.ts → readThisNpmPackageVersion.ts} +6 -2
  246. package/src/bin/tools/transformCodebase.ts +29 -10
  247. package/src/bin/tools/trimIndent.ts +4 -1
  248. package/src/lib/isStorybook.ts +3 -1
  249. package/src/lib/useGetClassName.ts +12 -3
  250. package/src/login/Template.tsx +20 -36
  251. package/src/login/TemplateProps.ts +4 -1
  252. package/src/login/UserProfileFormFields.tsx +46 -47
  253. package/src/login/i18n/baseMessages/ca.ts +1 -1
  254. package/src/login/i18n/baseMessages/el.ts +0 -1
  255. package/src/login/i18n/baseMessages/en.ts +1 -1
  256. package/src/login/i18n/baseMessages/es.ts +1 -1
  257. package/src/login/i18n/baseMessages/fa.ts +0 -1
  258. package/src/login/i18n/baseMessages/hu.ts +1 -1
  259. package/src/login/i18n/baseMessages/zh-CN.ts +1 -1
  260. package/src/login/i18n/i18n.tsx +77 -54
  261. package/src/login/index.ts +1 -1
  262. package/src/login/kcContext/KcContext.ts +23 -4
  263. package/src/login/kcContext/createGetKcContext.ts +84 -37
  264. package/src/login/kcContext/getKcContext.ts +3 -1
  265. package/src/login/kcContext/getKcContextFromWindow.ts +7 -3
  266. package/src/login/kcContext/kcContextMocks.ts +340 -326
  267. package/src/login/lib/useDownloadTerms.ts +13 -9
  268. package/src/login/lib/useGetClassName.ts +119 -112
  269. package/src/login/lib/useUserProfileForm.tsx +227 -213
  270. package/src/login/pages/Code.tsx +1 -1
  271. package/src/login/pages/DeleteAccountConfirm.tsx +9 -3
  272. package/src/login/pages/FrontchannelLogout.tsx +1 -1
  273. package/src/login/pages/IdpReviewUserProfile.tsx +1 -1
  274. package/src/login/pages/Login.tsx +3 -3
  275. package/src/login/pages/LoginRecoveryAuthnCodeConfig.tsx +3 -3
  276. package/src/login/pages/LoginResetPassword.tsx +2 -2
  277. package/src/login/pages/LoginUpdateProfile.tsx +1 -1
  278. package/src/login/pages/LoginUsername.tsx +3 -3
  279. package/src/login/pages/Register.tsx +1 -1
  280. package/src/login/pages/UpdateEmail.tsx +1 -1
  281. package/src/login/pages/WebauthnAuthenticate.tsx +11 -8
  282. package/src/login/pages/WebauthnRegister.tsx +8 -8
  283. package/src/tools/AndByDiscriminatingKey.ts +12 -6
  284. package/src/tools/Array.prototype.every.ts +4 -1
  285. package/src/tools/LazyOrNot.ts +3 -1
  286. package/src/tools/StatefulObservable/README.md +16 -0
  287. package/src/tools/StatefulObservable/StatefulObservable.ts +58 -0
  288. package/src/tools/StatefulObservable/hooks/index.ts +2 -0
  289. package/src/tools/StatefulObservable/hooks/useObservable.ts +25 -0
  290. package/src/tools/StatefulObservable/hooks/useRerenderOnChange.ts +19 -0
  291. package/src/tools/StatefulObservable/index.ts +2 -0
  292. package/src/tools/clsx.ts +7 -1
  293. package/src/tools/deepAssign.ts +15 -8
  294. package/src/tools/deepClone.ts +3 -1
  295. package/src/tools/formatNumber.ts +4 -1
  296. package/src/tools/useConstCallback.ts +3 -1
  297. package/src/tools/useInsertLinkTags.ts +20 -7
  298. package/src/tools/useInsertScriptTags.ts +7 -2
  299. package/src/tools/useSetClassName.ts +4 -1
  300. package/src/vite-plugin/tsconfig.json +2 -1
  301. package/src/vite-plugin/vite-plugin.ts +64 -52
  302. package/tools/Array.prototype.every.js +2 -1
  303. package/tools/Array.prototype.every.js.map +1 -1
  304. package/tools/HTMLElement.prototype.prepend.js.map +1 -1
  305. package/tools/StatefulObservable/StatefulObservable.d.ts +8 -0
  306. package/tools/StatefulObservable/StatefulObservable.js +36 -0
  307. package/tools/StatefulObservable/StatefulObservable.js.map +1 -0
  308. package/tools/StatefulObservable/hooks/index.d.ts +2 -0
  309. package/tools/StatefulObservable/hooks/index.js +3 -0
  310. package/tools/StatefulObservable/hooks/index.js.map +1 -0
  311. package/tools/StatefulObservable/hooks/useObservable.d.ts +8 -0
  312. package/tools/StatefulObservable/hooks/useObservable.js +17 -0
  313. package/tools/StatefulObservable/hooks/useObservable.js.map +1 -0
  314. package/tools/StatefulObservable/hooks/useRerenderOnChange.d.ts +5 -0
  315. package/tools/StatefulObservable/hooks/useRerenderOnChange.js +14 -0
  316. package/tools/StatefulObservable/hooks/useRerenderOnChange.js.map +1 -0
  317. package/tools/StatefulObservable/index.d.ts +2 -0
  318. package/tools/StatefulObservable/index.js +3 -0
  319. package/tools/StatefulObservable/index.js.map +1 -0
  320. package/tools/clsx.js.map +1 -1
  321. package/tools/deepAssign.js +9 -7
  322. package/tools/deepAssign.js.map +1 -1
  323. package/tools/deepClone.js.map +1 -1
  324. package/tools/formatNumber.js.map +1 -1
  325. package/tools/memoize.js.map +1 -1
  326. package/tools/useConstCallback.js.map +1 -1
  327. package/tools/useInsertLinkTags.js +5 -4
  328. package/tools/useInsertLinkTags.js.map +1 -1
  329. package/tools/useInsertScriptTags.js +5 -2
  330. package/tools/useInsertScriptTags.js.map +1 -1
  331. package/tools/useSetClassName.js.map +1 -1
  332. package/vite-plugin/index.js +50241 -3
  333. package/bin/constants.d.ts +0 -10
  334. package/bin/constants.js +0 -13
  335. package/bin/constants.js.map +0 -1
  336. package/bin/copy-keycloak-resources-to-public.d.ts +0 -14
  337. package/bin/copy-keycloak-resources-to-public.js +0 -216
  338. package/bin/copy-keycloak-resources-to-public.js.map +0 -1
  339. package/bin/download-builtin-keycloak-theme.d.ts +0 -10
  340. package/bin/download-builtin-keycloak-theme.js +0 -352
  341. package/bin/download-builtin-keycloak-theme.js.map +0 -1
  342. package/bin/downloadAndUnzip.d.ts +0 -16
  343. package/bin/downloadAndUnzip.js +0 -255
  344. package/bin/downloadAndUnzip.js.map +0 -1
  345. package/bin/eject-keycloak-page.d.ts +0 -2
  346. package/bin/eject-keycloak-page.js +0 -132
  347. package/bin/eject-keycloak-page.js.map +0 -1
  348. package/bin/getThemeSrcDirPath.d.ts +0 -6
  349. package/bin/getThemeSrcDirPath.js +0 -123
  350. package/bin/getThemeSrcDirPath.js.map +0 -1
  351. package/bin/initialize-email-theme.d.ts +0 -2
  352. package/bin/initialize-email-theme.js +0 -121
  353. package/bin/initialize-email-theme.js.map +0 -1
  354. package/bin/keycloakify/buildJars/buildJar.d.ts +0 -14
  355. package/bin/keycloakify/buildJars/buildJar.js +0 -224
  356. package/bin/keycloakify/buildJars/buildJar.js.map +0 -1
  357. package/bin/keycloakify/buildJars/buildJars.d.ts +0 -10
  358. package/bin/keycloakify/buildJars/buildJars.js +0 -95
  359. package/bin/keycloakify/buildJars/buildJars.js.map +0 -1
  360. package/bin/keycloakify/buildJars/extensionVersions.d.ts +0 -12
  361. package/bin/keycloakify/buildJars/extensionVersions.js +0 -7
  362. package/bin/keycloakify/buildJars/extensionVersions.js.map +0 -1
  363. package/bin/keycloakify/buildJars/generatePom.d.ts +0 -13
  364. package/bin/keycloakify/buildJars/generatePom.js +0 -95
  365. package/bin/keycloakify/buildJars/generatePom.js.map +0 -1
  366. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.d.ts +0 -6
  367. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.js +0 -35
  368. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.js.map +0 -1
  369. package/bin/keycloakify/buildJars/index.d.ts +0 -1
  370. package/bin/keycloakify/buildJars/index.js +0 -18
  371. package/bin/keycloakify/buildJars/index.js.map +0 -1
  372. package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.d.ts +0 -35
  373. package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.js +0 -14
  374. package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.js.map +0 -1
  375. package/bin/keycloakify/buildOptions/buildOptions.d.ts +0 -25
  376. package/bin/keycloakify/buildOptions/buildOptions.js +0 -178
  377. package/bin/keycloakify/buildOptions/buildOptions.js.map +0 -1
  378. package/bin/keycloakify/buildOptions/getCacheDirPath.d.ts +0 -5
  379. package/bin/keycloakify/buildOptions/getCacheDirPath.js +0 -22
  380. package/bin/keycloakify/buildOptions/getCacheDirPath.js.map +0 -1
  381. package/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.d.ts +0 -5
  382. package/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.js +0 -86
  383. package/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.js.map +0 -1
  384. package/bin/keycloakify/buildOptions/getReactAppRootDirPath.d.ts +0 -5
  385. package/bin/keycloakify/buildOptions/getReactAppRootDirPath.js +0 -26
  386. package/bin/keycloakify/buildOptions/getReactAppRootDirPath.js.map +0 -1
  387. package/bin/keycloakify/buildOptions/index.d.ts +0 -1
  388. package/bin/keycloakify/buildOptions/index.js +0 -18
  389. package/bin/keycloakify/buildOptions/index.js.map +0 -1
  390. package/bin/keycloakify/buildOptions/parsedPackageJson.d.ts +0 -10
  391. package/bin/keycloakify/buildOptions/parsedPackageJson.js +0 -49
  392. package/bin/keycloakify/buildOptions/parsedPackageJson.js.map +0 -1
  393. package/bin/keycloakify/buildOptions/resolvedViteConfig.d.ts +0 -13
  394. package/bin/keycloakify/buildOptions/resolvedViteConfig.js +0 -77
  395. package/bin/keycloakify/buildOptions/resolvedViteConfig.js.map +0 -1
  396. package/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +0 -604
  397. package/bin/keycloakify/generateFtl/generateFtl.d.ts +0 -23
  398. package/bin/keycloakify/generateFtl/generateFtl.js +0 -169
  399. package/bin/keycloakify/generateFtl/generateFtl.js.map +0 -1
  400. package/bin/keycloakify/generateFtl/index.d.ts +0 -2
  401. package/bin/keycloakify/generateFtl/index.js +0 -19
  402. package/bin/keycloakify/generateFtl/index.js.map +0 -1
  403. package/bin/keycloakify/generateFtl/pageId.js +0 -41
  404. package/bin/keycloakify/generateFtl/pageId.js.map +0 -1
  405. package/bin/keycloakify/generateStartKeycloakTestingContainer.d.ts +0 -11
  406. package/bin/keycloakify/generateStartKeycloakTestingContainer.js +0 -89
  407. package/bin/keycloakify/generateStartKeycloakTestingContainer.js.map +0 -1
  408. package/bin/keycloakify/generateTheme/bringInAccountV1.d.ts +0 -9
  409. package/bin/keycloakify/generateTheme/bringInAccountV1.js +0 -153
  410. package/bin/keycloakify/generateTheme/bringInAccountV1.js.map +0 -1
  411. package/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.d.ts +0 -11
  412. package/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.js +0 -102
  413. package/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.js.map +0 -1
  414. package/bin/keycloakify/generateTheme/generateMessageProperties.d.ts +0 -8
  415. package/bin/keycloakify/generateTheme/generateMessageProperties.js +0 -271
  416. package/bin/keycloakify/generateTheme/generateMessageProperties.js.map +0 -1
  417. package/bin/keycloakify/generateTheme/generateSrcMainResources.d.ts +0 -21
  418. package/bin/keycloakify/generateTheme/generateSrcMainResources.js +0 -340
  419. package/bin/keycloakify/generateTheme/generateSrcMainResources.js.map +0 -1
  420. package/bin/keycloakify/generateTheme/generateTheme.d.ts +0 -13
  421. package/bin/keycloakify/generateTheme/generateTheme.js +0 -115
  422. package/bin/keycloakify/generateTheme/generateTheme.js.map +0 -1
  423. package/bin/keycloakify/generateTheme/generateThemeVariants.d.ts +0 -5
  424. package/bin/keycloakify/generateTheme/generateThemeVariants.js +0 -67
  425. package/bin/keycloakify/generateTheme/generateThemeVariants.js.map +0 -1
  426. package/bin/keycloakify/generateTheme/index.d.ts +0 -1
  427. package/bin/keycloakify/generateTheme/index.js +0 -18
  428. package/bin/keycloakify/generateTheme/index.js.map +0 -1
  429. package/bin/keycloakify/generateTheme/readExtraPageNames.d.ts +0 -5
  430. package/bin/keycloakify/generateTheme/readExtraPageNames.js +0 -105
  431. package/bin/keycloakify/generateTheme/readExtraPageNames.js.map +0 -1
  432. package/bin/keycloakify/generateTheme/readFieldNameUsage.d.ts +0 -7
  433. package/bin/keycloakify/generateTheme/readFieldNameUsage.js +0 -141
  434. package/bin/keycloakify/generateTheme/readFieldNameUsage.js.map +0 -1
  435. package/bin/keycloakify/index.d.ts +0 -2
  436. package/bin/keycloakify/index.js +0 -23
  437. package/bin/keycloakify/index.js.map +0 -1
  438. package/bin/keycloakify/keycloakify.d.ts +0 -1
  439. package/bin/keycloakify/keycloakify.js +0 -166
  440. package/bin/keycloakify/keycloakify.js.map +0 -1
  441. package/bin/keycloakify/replacers/replaceImportsInCssCode.d.ts +0 -15
  442. package/bin/keycloakify/replacers/replaceImportsInCssCode.js +0 -88
  443. package/bin/keycloakify/replacers/replaceImportsInCssCode.js.map +0 -1
  444. package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.d.ts +0 -9
  445. package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.js +0 -38
  446. package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.js.map +0 -1
  447. package/bin/keycloakify/replacers/replaceImportsInJsCode/index.d.ts +0 -1
  448. package/bin/keycloakify/replacers/replaceImportsInJsCode/index.js +0 -18
  449. package/bin/keycloakify/replacers/replaceImportsInJsCode/index.js.map +0 -1
  450. package/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.d.ts +0 -12
  451. package/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.js +0 -70
  452. package/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.js.map +0 -1
  453. package/bin/keycloakify/replacers/replaceImportsInJsCode/vite.d.ts +0 -13
  454. package/bin/keycloakify/replacers/replaceImportsInJsCode/vite.js +0 -95
  455. package/bin/keycloakify/replacers/replaceImportsInJsCode/vite.js.map +0 -1
  456. package/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.d.ts +0 -12
  457. package/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.js +0 -103
  458. package/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.js.map +0 -1
  459. package/bin/promptKeycloakVersion.d.ts +0 -3
  460. package/bin/promptKeycloakVersion.js +0 -121
  461. package/bin/promptKeycloakVersion.js.map +0 -1
  462. package/bin/tools/OptionalIfCanBeUndefined.d.ts +0 -14
  463. package/bin/tools/OptionalIfCanBeUndefined.js +0 -3
  464. package/bin/tools/OptionalIfCanBeUndefined.js.map +0 -1
  465. package/bin/tools/SemVer.d.ts +0 -26
  466. package/bin/tools/SemVer.js +0 -119
  467. package/bin/tools/SemVer.js.map +0 -1
  468. package/bin/tools/String.prototype.replaceAll.d.ts +0 -1
  469. package/bin/tools/String.prototype.replaceAll.js +0 -29
  470. package/bin/tools/String.prototype.replaceAll.js.map +0 -1
  471. package/bin/tools/crawl.d.ts +0 -5
  472. package/bin/tools/crawl.js +0 -74
  473. package/bin/tools/crawl.js.map +0 -1
  474. package/bin/tools/crc32.d.ts +0 -9
  475. package/bin/tools/crc32.js +0 -64
  476. package/bin/tools/crc32.js.map +0 -1
  477. package/bin/tools/deflate.d.ts +0 -24
  478. package/bin/tools/deflate.js +0 -155
  479. package/bin/tools/deflate.js.map +0 -1
  480. package/bin/tools/fetchProxyOptions.d.ts +0 -5
  481. package/bin/tools/fetchProxyOptions.js +0 -172
  482. package/bin/tools/fetchProxyOptions.js.map +0 -1
  483. package/bin/tools/fs.existsAsync.d.ts +0 -1
  484. package/bin/tools/fs.existsAsync.js +0 -86
  485. package/bin/tools/fs.existsAsync.js.map +0 -1
  486. package/bin/tools/fs.rm.d.ts +0 -8
  487. package/bin/tools/fs.rm.js +0 -151
  488. package/bin/tools/fs.rm.js.map +0 -1
  489. package/bin/tools/fs.rmSync.d.ts +0 -8
  490. package/bin/tools/fs.rmSync.js +0 -58
  491. package/bin/tools/fs.rmSync.js.map +0 -1
  492. package/bin/tools/getAbsoluteAndInOsFormatPath.d.ts +0 -4
  493. package/bin/tools/getAbsoluteAndInOsFormatPath.js +0 -16
  494. package/bin/tools/getAbsoluteAndInOsFormatPath.js.map +0 -1
  495. package/bin/tools/getThisCodebaseRootDirPath.d.ts +0 -1
  496. package/bin/tools/getThisCodebaseRootDirPath.js +0 -43
  497. package/bin/tools/getThisCodebaseRootDirPath.js.map +0 -1
  498. package/bin/tools/grant-exec-perms.d.ts +0 -1
  499. package/bin/tools/grant-exec-perms.js +0 -100
  500. package/bin/tools/grant-exec-perms.js.map +0 -1
  501. package/bin/tools/isInside.d.ts +0 -4
  502. package/bin/tools/isInside.js +0 -10
  503. package/bin/tools/isInside.js.map +0 -1
  504. package/bin/tools/kebabCaseToSnakeCase.d.ts +0 -1
  505. package/bin/tools/kebabCaseToSnakeCase.js +0 -35
  506. package/bin/tools/kebabCaseToSnakeCase.js.map +0 -1
  507. package/bin/tools/logger.d.ts +0 -12
  508. package/bin/tools/logger.js +0 -23
  509. package/bin/tools/logger.js.map +0 -1
  510. package/bin/tools/octokit-addons/getLatestsSemVersionedTag.d.ts +0 -14
  511. package/bin/tools/octokit-addons/getLatestsSemVersionedTag.js +0 -119
  512. package/bin/tools/octokit-addons/getLatestsSemVersionedTag.js.map +0 -1
  513. package/bin/tools/octokit-addons/listTags.d.ts +0 -13
  514. package/bin/tools/octokit-addons/listTags.js +0 -154
  515. package/bin/tools/octokit-addons/listTags.js.map +0 -1
  516. package/bin/tools/partitionPromiseSettledResults.d.ts +0 -2
  517. package/bin/tools/partitionPromiseSettledResults.js +0 -41
  518. package/bin/tools/partitionPromiseSettledResults.js.map +0 -1
  519. package/bin/tools/readThisNpmProjectVersion.d.ts +0 -1
  520. package/bin/tools/readThisNpmProjectVersion.js +0 -37
  521. package/bin/tools/readThisNpmProjectVersion.js.map +0 -1
  522. package/bin/tools/tee.d.ts +0 -3
  523. package/bin/tools/tee.js +0 -37
  524. package/bin/tools/tee.js.map +0 -1
  525. package/bin/tools/transformCodebase.d.ts +0 -20
  526. package/bin/tools/transformCodebase.js +0 -97
  527. package/bin/tools/transformCodebase.js.map +0 -1
  528. package/bin/tools/trimIndent.d.ts +0 -5
  529. package/bin/tools/trimIndent.js +0 -82
  530. package/bin/tools/trimIndent.js.map +0 -1
  531. package/bin/tools/unzip.d.ts +0 -2
  532. package/bin/tools/unzip.js +0 -274
  533. package/bin/tools/unzip.js.map +0 -1
  534. package/index.d.ts +0 -1
  535. package/index.js +0 -2
  536. package/index.js.map +0 -1
  537. package/lib/keycloakJsAdapter.d.ts +0 -51
  538. package/lib/keycloakJsAdapter.js +0 -74
  539. package/lib/keycloakJsAdapter.js.map +0 -1
  540. package/src/bin/constants.ts +0 -13
  541. package/src/bin/download-builtin-keycloak-theme.ts +0 -290
  542. package/src/bin/downloadAndUnzip.ts +0 -203
  543. package/src/bin/eject-keycloak-page.ts +0 -64
  544. package/src/bin/keycloakify/buildOptions/UserProvidedBuildOptions.ts +0 -21
  545. package/src/bin/keycloakify/buildOptions/buildOptions.ts +0 -189
  546. package/src/bin/keycloakify/buildOptions/getCacheDirPath.ts +0 -25
  547. package/src/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.ts +0 -49
  548. package/src/bin/keycloakify/buildOptions/getReactAppRootDirPath.ts +0 -23
  549. package/src/bin/keycloakify/buildOptions/index.ts +0 -1
  550. package/src/bin/keycloakify/buildOptions/parsedPackageJson.ts +0 -32
  551. package/src/bin/keycloakify/buildOptions/resolvedViteConfig.ts +0 -74
  552. package/src/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.ts +0 -49
  553. package/src/bin/keycloakify/generateTheme/generateTheme.ts +0 -44
  554. package/src/bin/keycloakify/generateTheme/generateThemeVariants.ts +0 -50
  555. package/src/bin/keycloakify/generateTheme/index.ts +0 -1
  556. package/src/bin/keycloakify/generateTheme/readFieldNameUsage.ts +0 -55
  557. package/src/bin/promptKeycloakVersion.ts +0 -49
  558. package/src/bin/tools/grant-exec-perms.ts +0 -19
  559. package/src/bin/tools/logger.ts +0 -27
  560. package/src/bin/tools/unzip.ts +0 -141
  561. package/src/index.ts +0 -1
  562. package/src/lib/keycloakJsAdapter.ts +0 -118
  563. package/vite-plugin/index.js.map +0 -1
  564. package/vite-plugin/tsconfig.tsbuildinfo +0 -1
  565. package/vite-plugin/vite-plugin.d.ts +0 -6
  566. package/vite-plugin/vite-plugin.js +0 -158
  567. package/vite-plugin/vite-plugin.js.map +0 -1
@@ -1,20 +1,29 @@
1
1
  import { assert, type Equals } from "tsafe/assert";
2
- import type { KeycloakAccountV1Version, KeycloakThemeAdditionalInfoExtensionVersion } from "./extensionVersions";
2
+ import type {
3
+ KeycloakAccountV1Version,
4
+ KeycloakThemeAdditionalInfoExtensionVersion
5
+ } from "./extensionVersions";
3
6
  import { join as pathJoin, dirname as pathDirname } from "path";
4
7
  import { transformCodebase } from "../../tools/transformCodebase";
5
- import type { BuildOptions } from "../buildOptions";
8
+ import type { BuildOptions } from "../../shared/buildOptions";
6
9
  import * as fs from "fs/promises";
7
- import { accountV1ThemeName } from "../../constants";
8
- import { generatePom, BuildOptionsLike as BuildOptionsLike_generatePom } from "./generatePom";
9
- import { existsSync, readFileSync } from "fs";
10
+ import { accountV1ThemeName } from "../../shared/constants";
11
+ import {
12
+ generatePom,
13
+ BuildOptionsLike as BuildOptionsLike_generatePom
14
+ } from "./generatePom";
15
+ import { readFileSync } from "fs";
10
16
  import { isInside } from "../../tools/isInside";
11
17
  import child_process from "child_process";
18
+ import { rmSync } from "../../tools/fs.rmSync";
19
+ import { getMetaInfKeycloakThemesJsonFilePath } from "../../shared/metaInfKeycloakThemes";
12
20
 
13
21
  export type BuildOptionsLike = BuildOptionsLike_generatePom & {
14
22
  keycloakifyBuildDirPath: string;
15
23
  themeNames: string[];
16
24
  artifactId: string;
17
25
  themeVersion: string;
26
+ cacheDirPath: string;
18
27
  };
19
28
 
20
29
  assert<BuildOptions extends BuildOptionsLike ? true : false>();
@@ -25,64 +34,152 @@ export async function buildJar(params: {
25
34
  keycloakThemeAdditionalInfoExtensionVersion: KeycloakThemeAdditionalInfoExtensionVersion;
26
35
  buildOptions: BuildOptionsLike;
27
36
  }): Promise<void> {
28
- const { jarFileBasename, keycloakAccountV1Version, keycloakThemeAdditionalInfoExtensionVersion, buildOptions } = params;
37
+ const {
38
+ jarFileBasename,
39
+ keycloakAccountV1Version,
40
+ keycloakThemeAdditionalInfoExtensionVersion,
41
+ buildOptions
42
+ } = params;
29
43
 
30
- const keycloakifyBuildTmpDirPath = pathJoin(buildOptions.keycloakifyBuildDirPath, "..", jarFileBasename.replace(".jar", ""));
44
+ const keycloakifyBuildTmpDirPath = pathJoin(
45
+ buildOptions.cacheDirPath,
46
+ jarFileBasename.replace(".jar", "")
47
+ );
31
48
 
32
- if (existsSync(keycloakifyBuildTmpDirPath)) {
33
- await fs.rm(keycloakifyBuildTmpDirPath, { "recursive": true });
34
- }
49
+ rmSync(keycloakifyBuildTmpDirPath, { recursive: true, force: true });
35
50
 
36
- await fs.mkdir(keycloakifyBuildTmpDirPath, { "recursive": true });
37
- await fs.writeFile(pathJoin(keycloakifyBuildTmpDirPath, ".gitignore"), Buffer.from("*", "utf8"));
51
+ {
52
+ const transformCodebase_common = (params: {
53
+ fileRelativePath: string;
54
+ sourceCode: Buffer;
55
+ }): { modifiedSourceCode: Buffer } | undefined => {
56
+ const { fileRelativePath, sourceCode } = params;
38
57
 
39
- const srcMainResourcesRelativeDirPath = pathJoin("src", "main", "resources");
58
+ if (
59
+ fileRelativePath ===
60
+ getMetaInfKeycloakThemesJsonFilePath({ keycloakifyBuildDirPath: "." })
61
+ ) {
62
+ return { modifiedSourceCode: sourceCode };
63
+ }
40
64
 
41
- {
42
- const keycloakThemesJsonFilePath = pathJoin(srcMainResourcesRelativeDirPath, "META-INF", "keycloak-themes.json");
65
+ for (const themeName of [...buildOptions.themeNames, accountV1ThemeName]) {
66
+ if (
67
+ isInside({
68
+ dirPath: pathJoin("src", "main", "resources", "theme", themeName),
69
+ filePath: fileRelativePath
70
+ })
71
+ ) {
72
+ return { modifiedSourceCode: sourceCode };
73
+ }
74
+ }
43
75
 
44
- const themePropertiesFilePathSet = new Set(
45
- ...buildOptions.themeNames.map(themeName => pathJoin(srcMainResourcesRelativeDirPath, "theme", themeName, "account", "theme.properties"))
46
- );
76
+ return undefined;
77
+ };
47
78
 
48
- const accountV1RelativeDirPath = pathJoin(srcMainResourcesRelativeDirPath, "theme", accountV1ThemeName);
79
+ const transformCodebase_patchForUsingBuiltinAccountV1 =
80
+ keycloakAccountV1Version !== null
81
+ ? undefined
82
+ : (params: {
83
+ fileRelativePath: string;
84
+ sourceCode: Buffer;
85
+ }): { modifiedSourceCode: Buffer } | undefined => {
86
+ const { fileRelativePath, sourceCode } = params;
49
87
 
50
- transformCodebase({
51
- "srcDirPath": buildOptions.keycloakifyBuildDirPath,
52
- "destDirPath": keycloakifyBuildTmpDirPath,
53
- "transformSourceCode":
54
- keycloakAccountV1Version !== null
55
- ? undefined
56
- : ({ fileRelativePath, sourceCode }) => {
57
- if (fileRelativePath === keycloakThemesJsonFilePath) {
58
- const keycloakThemesJsonParsed = JSON.parse(sourceCode.toString("utf8")) as {
59
- themes: { name: string; types: string[] }[];
60
- };
61
-
62
- keycloakThemesJsonParsed.themes = keycloakThemesJsonParsed.themes.filter(({ name }) => name !== accountV1ThemeName);
63
-
64
- return { "modifiedSourceCode": Buffer.from(JSON.stringify(keycloakThemesJsonParsed, null, 2), "utf8") };
65
- }
88
+ if (
89
+ isInside({
90
+ dirPath: pathJoin(
91
+ "src",
92
+ "main",
93
+ "resources",
94
+ "theme",
95
+ accountV1ThemeName
96
+ ),
97
+ filePath: fileRelativePath
98
+ })
99
+ ) {
100
+ return undefined;
101
+ }
66
102
 
67
- if (isInside({ "dirPath": "target", "filePath": fileRelativePath })) {
68
- return undefined;
69
- }
103
+ if (
104
+ fileRelativePath ===
105
+ getMetaInfKeycloakThemesJsonFilePath({
106
+ keycloakifyBuildDirPath: "."
107
+ })
108
+ ) {
109
+ const keycloakThemesJsonParsed = JSON.parse(
110
+ sourceCode.toString("utf8")
111
+ ) as {
112
+ themes: { name: string; types: string[] }[];
113
+ };
70
114
 
71
- if (isInside({ "dirPath": accountV1RelativeDirPath, "filePath": fileRelativePath })) {
72
- return undefined;
73
- }
115
+ keycloakThemesJsonParsed.themes =
116
+ keycloakThemesJsonParsed.themes.filter(
117
+ ({ name }) => name !== accountV1ThemeName
118
+ );
74
119
 
75
- if (themePropertiesFilePathSet.has(fileRelativePath)) {
76
- return {
77
- "modifiedSourceCode": Buffer.from(
78
- sourceCode.toString("utf8").replace(`parent=${accountV1ThemeName}`, "parent=keycloak"),
79
- "utf8"
80
- )
81
- };
82
- }
120
+ return {
121
+ modifiedSourceCode: Buffer.from(
122
+ JSON.stringify(keycloakThemesJsonParsed, null, 2),
123
+ "utf8"
124
+ )
125
+ };
126
+ }
127
+
128
+ for (const themeName of buildOptions.themeNames) {
129
+ if (
130
+ fileRelativePath ===
131
+ pathJoin(
132
+ "src",
133
+ "main",
134
+ "resources",
135
+ "theme",
136
+ themeName,
137
+ "account",
138
+ "theme.properties"
139
+ )
140
+ ) {
141
+ const modifiedSourceCode = Buffer.from(
142
+ sourceCode
143
+ .toString("utf8")
144
+ .replace(
145
+ `parent=${accountV1ThemeName}`,
146
+ "parent=keycloak"
147
+ ),
148
+ "utf8"
149
+ );
83
150
 
84
- return { "modifiedSourceCode": sourceCode };
151
+ assert(
152
+ Buffer.compare(modifiedSourceCode, sourceCode) !== 0
153
+ );
154
+
155
+ return { modifiedSourceCode };
156
+ }
85
157
  }
158
+
159
+ return { modifiedSourceCode: sourceCode };
160
+ };
161
+
162
+ transformCodebase({
163
+ srcDirPath: buildOptions.keycloakifyBuildDirPath,
164
+ destDirPath: keycloakifyBuildTmpDirPath,
165
+ transformSourceCode: params => {
166
+ const resultCommon = transformCodebase_common(params);
167
+
168
+ if (transformCodebase_patchForUsingBuiltinAccountV1 === undefined) {
169
+ return resultCommon;
170
+ }
171
+
172
+ if (resultCommon === undefined) {
173
+ return undefined;
174
+ }
175
+
176
+ const { modifiedSourceCode } = resultCommon;
177
+
178
+ return transformCodebase_patchForUsingBuiltinAccountV1({
179
+ ...params,
180
+ sourceCode: modifiedSourceCode
181
+ });
182
+ }
86
183
  });
87
184
  }
88
185
 
@@ -107,7 +204,16 @@ export async function buildJar(params: {
107
204
 
108
205
  (["register.ftl", "login-update-profile.ftl"] as const).forEach(pageId =>
109
206
  buildOptions.themeNames.map(themeName => {
110
- const ftlFilePath = pathJoin(keycloakifyBuildTmpDirPath, srcMainResourcesRelativeDirPath, "theme", themeName, "login", pageId);
207
+ const ftlFilePath = pathJoin(
208
+ keycloakifyBuildTmpDirPath,
209
+ "src",
210
+ "main",
211
+ "resources",
212
+ "theme",
213
+ themeName,
214
+ "login",
215
+ pageId
216
+ );
111
217
 
112
218
  const ftlFileContent = readFileSync(ftlFilePath).toString("utf8");
113
219
 
@@ -128,7 +234,10 @@ export async function buildJar(params: {
128
234
 
129
235
  assert(modifiedFtlFileContent !== ftlFileContent);
130
236
 
131
- fs.writeFile(pathJoin(pathDirname(ftlFilePath), realPageId), Buffer.from(modifiedFtlFileContent, "utf8"));
237
+ fs.writeFile(
238
+ pathJoin(pathDirname(ftlFilePath), realPageId),
239
+ Buffer.from(modifiedFtlFileContent, "utf8")
240
+ );
132
241
  })
133
242
  );
134
243
  }
@@ -140,35 +249,46 @@ export async function buildJar(params: {
140
249
  keycloakThemeAdditionalInfoExtensionVersion
141
250
  });
142
251
 
143
- await fs.writeFile(pathJoin(keycloakifyBuildTmpDirPath, "pom.xml"), Buffer.from(pomFileCode, "utf8"));
252
+ await fs.writeFile(
253
+ pathJoin(keycloakifyBuildTmpDirPath, "pom.xml"),
254
+ Buffer.from(pomFileCode, "utf8")
255
+ );
144
256
  }
145
257
 
146
258
  await new Promise<void>((resolve, reject) =>
147
- child_process.exec("mvn clean install", { "cwd": keycloakifyBuildTmpDirPath }, error => {
148
- if (error !== null) {
149
- console.error(
150
- `Build jar failed: ${JSON.stringify(
151
- {
152
- jarFileBasename,
153
- keycloakAccountV1Version,
154
- keycloakThemeAdditionalInfoExtensionVersion
155
- },
156
- null,
157
- 2
158
- )}`
159
- );
259
+ child_process.exec(
260
+ `mvn clean install -Dmaven.repo.local=${pathJoin(keycloakifyBuildTmpDirPath, ".m2")}`,
261
+ { cwd: keycloakifyBuildTmpDirPath },
262
+ error => {
263
+ if (error !== null) {
264
+ console.error(
265
+ `Build jar failed: ${JSON.stringify(
266
+ {
267
+ jarFileBasename,
268
+ keycloakAccountV1Version,
269
+ keycloakThemeAdditionalInfoExtensionVersion
270
+ },
271
+ null,
272
+ 2
273
+ )}`
274
+ );
160
275
 
161
- reject(error);
162
- return;
276
+ reject(error);
277
+ return;
278
+ }
279
+ resolve();
163
280
  }
164
- resolve();
165
- })
281
+ )
166
282
  );
167
283
 
168
284
  await fs.rename(
169
- pathJoin(keycloakifyBuildTmpDirPath, "target", `${buildOptions.artifactId}-${buildOptions.themeVersion}.jar`),
285
+ pathJoin(
286
+ keycloakifyBuildTmpDirPath,
287
+ "target",
288
+ `${buildOptions.artifactId}-${buildOptions.themeVersion}.jar`
289
+ ),
170
290
  pathJoin(buildOptions.keycloakifyBuildDirPath, jarFileBasename)
171
291
  );
172
292
 
173
- await fs.rm(keycloakifyBuildTmpDirPath, { "recursive": true });
293
+ rmSync(keycloakifyBuildTmpDirPath, { recursive: true });
174
294
  }
@@ -1,9 +1,15 @@
1
1
  import { assert } from "tsafe/assert";
2
2
  import { exclude } from "tsafe/exclude";
3
- import { keycloakAccountV1Versions, keycloakThemeAdditionalInfoExtensionVersions } from "./extensionVersions";
3
+ import {
4
+ keycloakAccountV1Versions,
5
+ keycloakThemeAdditionalInfoExtensionVersions
6
+ } from "./extensionVersions";
4
7
  import { getKeycloakVersionRangeForJar } from "./getKeycloakVersionRangeForJar";
5
8
  import { buildJar, BuildOptionsLike as BuildOptionsLike_buildJar } from "./buildJar";
6
- import type { BuildOptions } from "../buildOptions";
9
+ import type { BuildOptions } from "../../shared/buildOptions";
10
+ import { getJarFileBasename } from "../../shared/getJarFileBasename";
11
+ import { readMetaInfKeycloakThemes } from "../../shared/metaInfKeycloakThemes";
12
+ import { accountV1ThemeName } from "../../shared/constants";
7
13
 
8
14
  export type BuildOptionsLike = BuildOptionsLike_buildJar & {
9
15
  keycloakifyBuildDirPath: string;
@@ -12,12 +18,13 @@ export type BuildOptionsLike = BuildOptionsLike_buildJar & {
12
18
  assert<BuildOptions extends BuildOptionsLike ? true : false>();
13
19
 
14
20
  export async function buildJars(params: {
15
- doesImplementAccountTheme: boolean;
16
21
  buildOptions: BuildOptionsLike;
17
- }): Promise<{ lastJarFileBasename: string }> {
18
- const { doesImplementAccountTheme, buildOptions } = params;
22
+ }): Promise<void> {
23
+ const { buildOptions } = params;
19
24
 
20
- let lastJarFileBasename: string | undefined = undefined;
25
+ const doesImplementAccountTheme = readMetaInfKeycloakThemes({
26
+ keycloakifyBuildDirPath: buildOptions.keycloakifyBuildDirPath
27
+ }).themes.some(({ name }) => name === accountV1ThemeName);
21
28
 
22
29
  await Promise.all(
23
30
  keycloakAccountV1Versions
@@ -34,29 +41,40 @@ export async function buildJars(params: {
34
41
  return undefined;
35
42
  }
36
43
 
37
- return { keycloakThemeAdditionalInfoExtensionVersion, keycloakVersionRange };
44
+ return {
45
+ keycloakThemeAdditionalInfoExtensionVersion,
46
+ keycloakVersionRange
47
+ };
38
48
  })
39
49
  .filter(exclude(undefined))
40
- .map(({ keycloakThemeAdditionalInfoExtensionVersion, keycloakVersionRange }) => {
41
- const jarFileBasename = `keycloak-theme-for-kc-${keycloakVersionRange}.jar`;
42
-
43
- lastJarFileBasename = jarFileBasename;
50
+ .map(
51
+ ({
52
+ keycloakThemeAdditionalInfoExtensionVersion,
53
+ keycloakVersionRange
54
+ }) => {
55
+ const { jarFileBasename } = getJarFileBasename({
56
+ keycloakVersionRange
57
+ });
44
58
 
45
- return { keycloakThemeAdditionalInfoExtensionVersion, jarFileBasename };
46
- })
47
- .map(({ keycloakThemeAdditionalInfoExtensionVersion, jarFileBasename }) =>
48
- buildJar({
49
- jarFileBasename,
50
- keycloakAccountV1Version,
59
+ return {
60
+ keycloakThemeAdditionalInfoExtensionVersion,
61
+ jarFileBasename
62
+ };
63
+ }
64
+ )
65
+ .map(
66
+ ({
51
67
  keycloakThemeAdditionalInfoExtensionVersion,
52
- buildOptions
53
- })
68
+ jarFileBasename
69
+ }) =>
70
+ buildJar({
71
+ jarFileBasename,
72
+ keycloakAccountV1Version,
73
+ keycloakThemeAdditionalInfoExtensionVersion,
74
+ buildOptions
75
+ })
54
76
  )
55
77
  )
56
78
  .flat()
57
79
  );
58
-
59
- assert(lastJarFileBasename !== undefined);
60
-
61
- return { lastJarFileBasename };
62
80
  }
@@ -13,4 +13,5 @@ export const keycloakThemeAdditionalInfoExtensionVersions = [null, "1.1.5"] as c
13
13
  * https://central.sonatype.com/artifact/dev.jcputney/keycloak-theme-additional-info-extension
14
14
  * https://github.com/jcputney/keycloak-theme-additional-info-extension
15
15
  * */
16
- export type KeycloakThemeAdditionalInfoExtensionVersion = (typeof keycloakThemeAdditionalInfoExtensionVersions)[number];
16
+ export type KeycloakThemeAdditionalInfoExtensionVersion =
17
+ (typeof keycloakThemeAdditionalInfoExtensionVersions)[number];
@@ -1,6 +1,9 @@
1
1
  import { assert } from "tsafe/assert";
2
- import type { BuildOptions } from "../buildOptions";
3
- import type { KeycloakAccountV1Version, KeycloakThemeAdditionalInfoExtensionVersion } from "./extensionVersions";
2
+ import type { BuildOptions } from "../../shared/buildOptions";
3
+ import type {
4
+ KeycloakAccountV1Version,
5
+ KeycloakThemeAdditionalInfoExtensionVersion
6
+ } from "./extensionVersions";
4
7
 
5
8
  export type BuildOptionsLike = {
6
9
  groupId: string;
@@ -15,7 +18,11 @@ export function generatePom(params: {
15
18
  keycloakThemeAdditionalInfoExtensionVersion: KeycloakThemeAdditionalInfoExtensionVersion;
16
19
  buildOptions: BuildOptionsLike;
17
20
  }) {
18
- const { keycloakAccountV1Version, keycloakThemeAdditionalInfoExtensionVersion, buildOptions } = params;
21
+ const {
22
+ keycloakAccountV1Version,
23
+ keycloakThemeAdditionalInfoExtensionVersion,
24
+ buildOptions
25
+ } = params;
19
26
 
20
27
  const { pomFileCode } = (function generatePomFileCode(): {
21
28
  pomFileCode: string;
@@ -35,7 +42,8 @@ export function generatePom(params: {
35
42
  ` <properties>`,
36
43
  ` <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>`,
37
44
  ` </properties>`,
38
- ...(keycloakAccountV1Version !== null && keycloakThemeAdditionalInfoExtensionVersion !== null
45
+ ...(keycloakAccountV1Version !== null &&
46
+ keycloakThemeAdditionalInfoExtensionVersion !== null
39
47
  ? [
40
48
  ` <build>`,
41
49
  ` <plugins>`,
@@ -1,37 +1,89 @@
1
1
  import { assert, type Equals } from "tsafe/assert";
2
- import type { KeycloakAccountV1Version, KeycloakThemeAdditionalInfoExtensionVersion } from "./extensionVersions";
2
+ import type {
3
+ KeycloakAccountV1Version,
4
+ KeycloakThemeAdditionalInfoExtensionVersion
5
+ } from "./extensionVersions";
6
+ import type { KeycloakVersionRange } from "../../shared/KeycloakVersionRange";
3
7
 
4
8
  export function getKeycloakVersionRangeForJar(params: {
5
9
  doesImplementAccountTheme: boolean;
6
10
  keycloakAccountV1Version: KeycloakAccountV1Version;
7
11
  keycloakThemeAdditionalInfoExtensionVersion: KeycloakThemeAdditionalInfoExtensionVersion;
8
- }): string | undefined {
9
- const { keycloakAccountV1Version, keycloakThemeAdditionalInfoExtensionVersion, doesImplementAccountTheme } = params;
12
+ }): KeycloakVersionRange | undefined {
13
+ const {
14
+ keycloakAccountV1Version,
15
+ keycloakThemeAdditionalInfoExtensionVersion,
16
+ doesImplementAccountTheme
17
+ } = params;
10
18
 
11
- switch (keycloakAccountV1Version) {
12
- case null:
13
- switch (keycloakThemeAdditionalInfoExtensionVersion) {
19
+ if (doesImplementAccountTheme) {
20
+ const keycloakVersionRange = (() => {
21
+ switch (keycloakAccountV1Version) {
14
22
  case null:
15
- return doesImplementAccountTheme ? "21-and-below" : "21-and-below";
16
- case "1.1.5":
17
- return doesImplementAccountTheme ? undefined : "22-and-above";
23
+ switch (keycloakThemeAdditionalInfoExtensionVersion) {
24
+ case null:
25
+ return "21-and-below" as const;
26
+ case "1.1.5":
27
+ return undefined;
28
+ }
29
+ assert<
30
+ Equals<typeof keycloakThemeAdditionalInfoExtensionVersion, never>
31
+ >(false);
32
+ case "0.3":
33
+ switch (keycloakThemeAdditionalInfoExtensionVersion) {
34
+ case null:
35
+ return undefined;
36
+ case "1.1.5":
37
+ return "23" as const;
38
+ }
39
+ assert<
40
+ Equals<typeof keycloakThemeAdditionalInfoExtensionVersion, never>
41
+ >(false);
42
+ case "0.4":
43
+ switch (keycloakThemeAdditionalInfoExtensionVersion) {
44
+ case null:
45
+ return undefined;
46
+ case "1.1.5":
47
+ return "24-and-above" as const;
48
+ }
49
+ assert<
50
+ Equals<typeof keycloakThemeAdditionalInfoExtensionVersion, never>
51
+ >(false);
18
52
  }
19
- assert<Equals<typeof keycloakThemeAdditionalInfoExtensionVersion, never>>(false);
20
- case "0.3":
21
- switch (keycloakThemeAdditionalInfoExtensionVersion) {
22
- case null:
23
- return doesImplementAccountTheme ? undefined : undefined;
24
- case "1.1.5":
25
- return doesImplementAccountTheme ? "23" : undefined;
53
+ })();
54
+
55
+ assert<
56
+ Equals<
57
+ typeof keycloakVersionRange,
58
+ KeycloakVersionRange.WithAccountTheme | undefined
59
+ >
60
+ >();
61
+
62
+ return keycloakVersionRange;
63
+ } else {
64
+ const keycloakVersionRange = (() => {
65
+ if (keycloakAccountV1Version !== null) {
66
+ return undefined;
26
67
  }
27
- assert<Equals<typeof keycloakThemeAdditionalInfoExtensionVersion, never>>(false);
28
- case "0.4":
68
+
29
69
  switch (keycloakThemeAdditionalInfoExtensionVersion) {
30
70
  case null:
31
- return doesImplementAccountTheme ? undefined : undefined;
71
+ return "21-and-below";
32
72
  case "1.1.5":
33
- return doesImplementAccountTheme ? "24-and-above" : undefined;
73
+ return "22-and-above";
34
74
  }
35
- assert<Equals<typeof keycloakThemeAdditionalInfoExtensionVersion, never>>(false);
75
+ assert<Equals<typeof keycloakThemeAdditionalInfoExtensionVersion, never>>(
76
+ false
77
+ );
78
+ })();
79
+
80
+ assert<
81
+ Equals<
82
+ typeof keycloakVersionRange,
83
+ KeycloakVersionRange.WithoutAccountTheme | undefined
84
+ >
85
+ >();
86
+
87
+ return keycloakVersionRange;
36
88
  }
37
89
  }