keycloakify 10.0.0-rc.99 → 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 (503) 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/FederatedIdentity.js +1 -1
  52. package/account/pages/FederatedIdentity.js.map +1 -1
  53. package/account/pages/Totp.js +5 -1
  54. package/account/pages/Totp.js.map +1 -1
  55. package/bin/193.index.js +5 -5
  56. package/bin/{490.index.js → 246.index.js} +22 -4
  57. package/bin/31.index.js +264 -203
  58. package/bin/440.index.js +178 -106
  59. package/bin/453.index.js +59 -7
  60. package/bin/526.index.js +525 -137
  61. package/bin/599.index.js +567 -0
  62. package/bin/{893.index.js → 622.index.js} +239 -231
  63. package/bin/{36.index.js → 678.index.js} +577 -71
  64. package/bin/{180.index.js → 697.index.js} +611 -526
  65. package/bin/743.index.js +70 -0
  66. package/bin/780.index.js +895 -0
  67. package/bin/786.index.js +185 -0
  68. package/bin/932.index.js +740 -52
  69. package/bin/{966.index.js → 941.index.js} +2 -19
  70. package/bin/97.index.js +29 -7
  71. package/bin/main.js +22 -10
  72. package/bin/shared/KeycloakVersionRange.d.ts +3 -3
  73. package/bin/shared/buildContext.d.ts +52 -16
  74. package/bin/shared/buildContext.js.map +1 -1
  75. package/bin/shared/constants.d.ts +18 -17
  76. package/bin/shared/constants.js +15 -14
  77. package/bin/shared/constants.js.map +1 -1
  78. package/bin/shared/copyKeycloakResourcesToPublic.js.map +1 -1
  79. package/bin/shared/downloadKeycloakDefaultTheme.js.map +1 -1
  80. package/bin/shared/generateKcGenTs.d.ts +3 -0
  81. package/bin/shared/generateKcGenTs.js.map +1 -1
  82. package/bin/shared/getLatestsSemVersionedTag.d.ts +15 -0
  83. package/bin/shared/getLatestsSemVersionedTag.js.map +1 -0
  84. package/bin/shared/promptKeycloakVersion.d.ts +3 -1
  85. package/bin/shared/promptKeycloakVersion.js.map +1 -1
  86. package/lib/getKcClsx.js +2 -1
  87. package/lib/getKcClsx.js.map +1 -1
  88. package/login/KcContext/KcContext.d.ts +10 -11
  89. package/login/KcContext/KcContext.js.map +1 -1
  90. package/login/KcContext/kcContextMocks.js +4 -5
  91. package/login/KcContext/kcContextMocks.js.map +1 -1
  92. package/login/Template.js +13 -7
  93. package/login/Template.js.map +1 -1
  94. package/login/TemplateProps.d.ts +0 -1
  95. package/login/UserProfileFormFields.js +6 -5
  96. package/login/UserProfileFormFields.js.map +1 -1
  97. package/login/i18n/GenericI18n.d.ts +6 -0
  98. package/login/i18n/GenericI18n.js +2 -0
  99. package/login/i18n/GenericI18n.js.map +1 -0
  100. package/login/i18n/i18n.d.ts +22 -32
  101. package/login/i18n/i18n.js +51 -92
  102. package/login/i18n/i18n.js.map +1 -1
  103. package/login/i18n/index.d.ts +4 -3
  104. package/login/i18n/index.js.map +1 -1
  105. package/login/i18n/messages_defaultSet/ar.js.map +1 -0
  106. package/login/i18n/messages_defaultSet/ca.js.map +1 -0
  107. package/login/i18n/messages_defaultSet/cs.js.map +1 -0
  108. package/login/i18n/messages_defaultSet/da.js.map +1 -0
  109. package/login/i18n/messages_defaultSet/de.js.map +1 -0
  110. package/login/i18n/messages_defaultSet/el.js.map +1 -0
  111. package/login/i18n/messages_defaultSet/en.js.map +1 -0
  112. package/login/i18n/messages_defaultSet/es.js.map +1 -0
  113. package/login/i18n/messages_defaultSet/fa.js.map +1 -0
  114. package/login/i18n/messages_defaultSet/fi.js.map +1 -0
  115. package/login/i18n/messages_defaultSet/fr.js.map +1 -0
  116. package/login/i18n/messages_defaultSet/hu.js.map +1 -0
  117. package/login/i18n/{baseMessages → messages_defaultSet}/index.d.ts +1 -1
  118. package/login/i18n/{baseMessages → messages_defaultSet}/index.js +3 -3
  119. package/login/i18n/messages_defaultSet/index.js.map +1 -0
  120. package/login/i18n/messages_defaultSet/it.js.map +1 -0
  121. package/login/i18n/messages_defaultSet/ja.js.map +1 -0
  122. package/login/i18n/messages_defaultSet/lt.js.map +1 -0
  123. package/login/i18n/messages_defaultSet/lv.js.map +1 -0
  124. package/login/i18n/messages_defaultSet/nl.js.map +1 -0
  125. package/login/i18n/messages_defaultSet/no.js.map +1 -0
  126. package/login/i18n/messages_defaultSet/pl.js.map +1 -0
  127. package/login/i18n/messages_defaultSet/pt-BR.js.map +1 -0
  128. package/login/i18n/messages_defaultSet/ru.js.map +1 -0
  129. package/login/i18n/messages_defaultSet/sk.js.map +1 -0
  130. package/login/i18n/messages_defaultSet/sv.js.map +1 -0
  131. package/login/i18n/messages_defaultSet/th.js.map +1 -0
  132. package/login/i18n/messages_defaultSet/tr.js.map +1 -0
  133. package/login/i18n/messages_defaultSet/uk.js.map +1 -0
  134. package/login/i18n/messages_defaultSet/zh-CN.js.map +1 -0
  135. package/login/i18n/useI18n.d.ts +6 -5
  136. package/login/i18n/useI18n.js +37 -4
  137. package/login/i18n/useI18n.js.map +1 -1
  138. package/login/lib/useUserProfileForm.d.ts +2 -0
  139. package/login/lib/useUserProfileForm.js +44 -10
  140. package/login/lib/useUserProfileForm.js.map +1 -1
  141. package/login/pages/Error.js +1 -1
  142. package/login/pages/Error.js.map +1 -1
  143. package/login/pages/Info.js +15 -3
  144. package/login/pages/Info.js.map +1 -1
  145. package/login/pages/Login.js +6 -2
  146. package/login/pages/Login.js.map +1 -1
  147. package/login/pages/LoginConfigTotp.js +5 -1
  148. package/login/pages/LoginConfigTotp.js.map +1 -1
  149. package/login/pages/LoginOtp.js +3 -1
  150. package/login/pages/LoginOtp.js.map +1 -1
  151. package/login/pages/LoginPassword.js +3 -1
  152. package/login/pages/LoginPassword.js.map +1 -1
  153. package/login/pages/LoginRecoveryAuthnCodeInput.js +3 -1
  154. package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -1
  155. package/login/pages/LoginResetPassword.js +3 -1
  156. package/login/pages/LoginResetPassword.js.map +1 -1
  157. package/login/pages/LoginUpdatePassword.js +5 -1
  158. package/login/pages/LoginUpdatePassword.js.map +1 -1
  159. package/login/pages/Register.js +3 -1
  160. package/login/pages/Register.js.map +1 -1
  161. package/login/pages/SamlPostForm.js +1 -1
  162. package/login/pages/SamlPostForm.js.map +1 -1
  163. package/login/pages/SelectAuthenticator.js +2 -2
  164. package/login/pages/SelectAuthenticator.js.map +1 -1
  165. package/login/pages/WebauthnAuthenticate.js +3 -3
  166. package/login/pages/WebauthnAuthenticate.js.map +1 -1
  167. package/login/pages/WebauthnRegister.js +2 -2
  168. package/package.json +265 -245
  169. package/src/PUBLIC_URL.ts +2 -2
  170. package/src/account/KcContext/KcContext.ts +4 -1
  171. package/src/account/KcContext/kcContextMocks.ts +7 -4
  172. package/src/account/Template.tsx +6 -1
  173. package/src/account/i18n/GenericI18n.tsx +6 -0
  174. package/src/account/i18n/i18n.tsx +91 -129
  175. package/src/account/i18n/index.ts +4 -3
  176. package/src/account/i18n/{baseMessages → messages_defaultSet}/index.ts +3 -3
  177. package/src/account/i18n/useI18n.tsx +95 -0
  178. package/src/account/pages/FederatedIdentity.tsx +1 -1
  179. package/src/account/pages/Totp.tsx +16 -6
  180. package/src/bin/add-story.ts +42 -10
  181. package/src/bin/eject-page.ts +119 -11
  182. package/src/bin/initialize-account-theme/copyBoilerplate.ts +32 -0
  183. package/src/bin/initialize-account-theme/index.ts +1 -0
  184. package/src/bin/initialize-account-theme/initialize-account-theme.ts +112 -0
  185. package/src/bin/initialize-account-theme/initializeAccountTheme_multiPage.ts +21 -0
  186. package/src/bin/initialize-account-theme/initializeAccountTheme_singlePage.ts +152 -0
  187. package/src/bin/initialize-account-theme/src/multi-page/KcContext.ts +12 -0
  188. package/src/bin/initialize-account-theme/src/multi-page/KcPage.tsx +25 -0
  189. package/src/bin/initialize-account-theme/src/multi-page/KcPageStory.tsx +38 -0
  190. package/src/bin/initialize-account-theme/src/multi-page/i18n.ts +5 -0
  191. package/src/bin/initialize-account-theme/src/single-page/KcContext.ts +7 -0
  192. package/src/bin/initialize-account-theme/src/single-page/KcPage.tsx +11 -0
  193. package/src/bin/initialize-account-theme/updateAccountThemeImplementationInConfig.ts +92 -0
  194. package/src/bin/initialize-email-theme.ts +1 -1
  195. package/src/bin/keycloakify/buildJars/buildJar.ts +38 -24
  196. package/src/bin/keycloakify/buildJars/buildJars.ts +6 -3
  197. package/src/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.ts +5 -5
  198. package/src/bin/keycloakify/generateFtl/generateFtl.ts +16 -16
  199. package/src/bin/keycloakify/generateFtl/kcContextDeclarationTemplate.ftl +471 -364
  200. package/src/bin/keycloakify/generateResources/bringInAccountV1.ts +7 -7
  201. package/src/bin/keycloakify/generateResources/generateMessageProperties.ts +3 -3
  202. package/src/bin/keycloakify/generateResources/generateResourcesForMainTheme.ts +125 -59
  203. package/src/bin/keycloakify/generateResources/generateResourcesForThemeVariant.ts +2 -2
  204. package/src/bin/keycloakify/generateResources/readExtraPageNames.ts +5 -8
  205. package/src/bin/keycloakify/keycloakify.ts +8 -6
  206. package/src/bin/keycloakify/replacers/replaceImportsInCssCode.ts +41 -27
  207. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.ts +2 -2
  208. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/vite.ts +6 -6
  209. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.ts +4 -4
  210. package/src/bin/main.ts +16 -2
  211. package/src/bin/shared/KeycloakVersionRange.ts +4 -4
  212. package/src/bin/shared/buildContext.ts +360 -251
  213. package/src/bin/shared/constants.ts +19 -17
  214. package/src/bin/shared/copyKeycloakResourcesToPublic.ts +6 -6
  215. package/src/bin/shared/downloadKeycloakDefaultTheme.ts +48 -27
  216. package/src/bin/shared/downloadKeycloakStaticResources.ts +2 -2
  217. package/src/bin/shared/generateKcGenTs.ts +110 -3
  218. package/src/bin/shared/getLatestsSemVersionedTag.ts +201 -0
  219. package/src/bin/shared/promptKeycloakVersion.ts +20 -80
  220. package/src/bin/start-keycloak/appBuild.ts +15 -11
  221. package/src/bin/start-keycloak/keycloakifyBuild.ts +3 -3
  222. package/src/bin/start-keycloak/myrealm-realm-18.json +4 -4
  223. package/src/bin/start-keycloak/myrealm-realm-19.json +4 -4
  224. package/src/bin/start-keycloak/myrealm-realm-20.json +4 -4
  225. package/src/bin/start-keycloak/myrealm-realm-21.json +4 -4
  226. package/src/bin/start-keycloak/myrealm-realm-23.json +3 -3
  227. package/src/bin/start-keycloak/myrealm-realm-24.json +4 -4
  228. package/src/bin/start-keycloak/myrealm-realm-25.json +4 -4
  229. package/src/bin/start-keycloak/start-keycloak.ts +256 -102
  230. package/src/bin/tools/assertNoPnpmDlx.ts +4 -2
  231. package/src/bin/tools/downloadAndExtractArchive.ts +10 -9
  232. package/src/bin/tools/fetchProxyOptions.ts +32 -11
  233. package/src/bin/tools/npmInstall.ts +63 -0
  234. package/src/bin/tools/octokit-addons/getLatestsSemVersionedTag.ts +3 -2
  235. package/src/bin/tsconfig.json +3 -1
  236. package/src/lib/getKcClsx.ts +2 -2
  237. package/src/login/KcContext/KcContext.ts +10 -28
  238. package/src/login/KcContext/kcContextMocks.ts +5 -6
  239. package/src/login/Template.tsx +32 -54
  240. package/src/login/TemplateProps.ts +0 -1
  241. package/src/login/UserProfileFormFields.tsx +15 -11
  242. package/src/login/i18n/GenericI18n.tsx +6 -0
  243. package/src/login/i18n/i18n.tsx +91 -166
  244. package/src/login/i18n/index.ts +4 -3
  245. package/src/login/i18n/{baseMessages → messages_defaultSet}/index.ts +3 -3
  246. package/src/login/i18n/useI18n.tsx +95 -0
  247. package/src/login/lib/useUserProfileForm.tsx +68 -20
  248. package/src/login/pages/Error.tsx +1 -1
  249. package/src/login/pages/Info.tsx +26 -6
  250. package/src/login/pages/Login.tsx +20 -9
  251. package/src/login/pages/LoginConfigTotp.tsx +16 -6
  252. package/src/login/pages/LoginOtp.tsx +8 -3
  253. package/src/login/pages/LoginPassword.tsx +8 -3
  254. package/src/login/pages/LoginRecoveryAuthnCodeInput.tsx +8 -3
  255. package/src/login/pages/LoginResetPassword.tsx +8 -3
  256. package/src/login/pages/LoginUpdatePassword.tsx +55 -47
  257. package/src/login/pages/Register.tsx +8 -3
  258. package/src/login/pages/SamlPostForm.tsx +1 -1
  259. package/src/login/pages/SelectAuthenticator.tsx +4 -4
  260. package/src/login/pages/WebauthnAuthenticate.tsx +5 -5
  261. package/src/login/pages/WebauthnRegister.tsx +2 -2
  262. package/src/tools/useInsertLinkTags.ts +9 -1
  263. package/src/tools/useInsertScriptTags.ts +9 -1
  264. package/src/vite-plugin/vite-plugin.ts +15 -13
  265. package/stories/account/pages/Log.stories.tsx +1 -0
  266. package/stories/account-spa/index.stories.tsx +94 -0
  267. package/stories/intro/intro.stories.tsx +90 -0
  268. package/stories/login/pages/Info.stories.tsx +7 -2
  269. package/stories/login/pages/Login.stories.tsx +25 -13
  270. package/stories/login/pages/Register.stories.tsx +11 -9
  271. package/stories/login/pages/SelectAuthenticator.stories.tsx +41 -0
  272. package/stories/login/pages/Terms.stories.tsx +6 -2
  273. package/tools/useInsertLinkTags.js +7 -1
  274. package/tools/useInsertLinkTags.js.map +1 -1
  275. package/tools/useInsertScriptTags.js +7 -1
  276. package/tools/useInsertScriptTags.js.map +1 -1
  277. package/vite-plugin/index.js +25820 -25686
  278. package/vite-plugin/vite-plugin.d.ts +6 -4
  279. package/account/i18n/baseMessages/ar.js.map +0 -1
  280. package/account/i18n/baseMessages/ca.js.map +0 -1
  281. package/account/i18n/baseMessages/cs.js.map +0 -1
  282. package/account/i18n/baseMessages/da.js.map +0 -1
  283. package/account/i18n/baseMessages/de.js.map +0 -1
  284. package/account/i18n/baseMessages/el.js.map +0 -1
  285. package/account/i18n/baseMessages/en.js.map +0 -1
  286. package/account/i18n/baseMessages/es.js.map +0 -1
  287. package/account/i18n/baseMessages/fa.js.map +0 -1
  288. package/account/i18n/baseMessages/fi.js.map +0 -1
  289. package/account/i18n/baseMessages/fr.js.map +0 -1
  290. package/account/i18n/baseMessages/hu.js.map +0 -1
  291. package/account/i18n/baseMessages/index.js.map +0 -1
  292. package/account/i18n/baseMessages/it.js.map +0 -1
  293. package/account/i18n/baseMessages/ja.js.map +0 -1
  294. package/account/i18n/baseMessages/lt.js.map +0 -1
  295. package/account/i18n/baseMessages/lv.js.map +0 -1
  296. package/account/i18n/baseMessages/nl.js.map +0 -1
  297. package/account/i18n/baseMessages/no.js.map +0 -1
  298. package/account/i18n/baseMessages/pl.js.map +0 -1
  299. package/account/i18n/baseMessages/pt-BR.js.map +0 -1
  300. package/account/i18n/baseMessages/ru.js.map +0 -1
  301. package/account/i18n/baseMessages/sk.js.map +0 -1
  302. package/account/i18n/baseMessages/sv.js.map +0 -1
  303. package/account/i18n/baseMessages/th.js.map +0 -1
  304. package/account/i18n/baseMessages/tr.js.map +0 -1
  305. package/account/i18n/baseMessages/uk.js.map +0 -1
  306. package/account/i18n/baseMessages/zh-CN.js.map +0 -1
  307. package/bin/538.index.js +0 -108
  308. package/login/i18n/baseMessages/ar.js.map +0 -1
  309. package/login/i18n/baseMessages/ca.js.map +0 -1
  310. package/login/i18n/baseMessages/cs.js.map +0 -1
  311. package/login/i18n/baseMessages/da.js.map +0 -1
  312. package/login/i18n/baseMessages/de.js.map +0 -1
  313. package/login/i18n/baseMessages/el.js.map +0 -1
  314. package/login/i18n/baseMessages/en.js.map +0 -1
  315. package/login/i18n/baseMessages/es.js.map +0 -1
  316. package/login/i18n/baseMessages/fa.js.map +0 -1
  317. package/login/i18n/baseMessages/fi.js.map +0 -1
  318. package/login/i18n/baseMessages/fr.js.map +0 -1
  319. package/login/i18n/baseMessages/hu.js.map +0 -1
  320. package/login/i18n/baseMessages/index.js.map +0 -1
  321. package/login/i18n/baseMessages/it.js.map +0 -1
  322. package/login/i18n/baseMessages/ja.js.map +0 -1
  323. package/login/i18n/baseMessages/lt.js.map +0 -1
  324. package/login/i18n/baseMessages/lv.js.map +0 -1
  325. package/login/i18n/baseMessages/nl.js.map +0 -1
  326. package/login/i18n/baseMessages/no.js.map +0 -1
  327. package/login/i18n/baseMessages/pl.js.map +0 -1
  328. package/login/i18n/baseMessages/pt-BR.js.map +0 -1
  329. package/login/i18n/baseMessages/ru.js.map +0 -1
  330. package/login/i18n/baseMessages/sk.js.map +0 -1
  331. package/login/i18n/baseMessages/sv.js.map +0 -1
  332. package/login/i18n/baseMessages/th.js.map +0 -1
  333. package/login/i18n/baseMessages/tr.js.map +0 -1
  334. package/login/i18n/baseMessages/uk.js.map +0 -1
  335. package/login/i18n/baseMessages/zh-CN.js.map +0 -1
  336. package/src/account/i18n/useI18n.ts +0 -44
  337. package/src/login/i18n/useI18n.ts +0 -44
  338. package/src/tools/ExtractAfterStartingWith.ts +0 -4
  339. package/tools/ExtractAfterStartingWith.d.ts +0 -1
  340. package/tools/ExtractAfterStartingWith.js +0 -2
  341. package/tools/ExtractAfterStartingWith.js.map +0 -1
  342. /package/account/i18n/{baseMessages → messages_defaultSet}/ar.d.ts +0 -0
  343. /package/account/i18n/{baseMessages → messages_defaultSet}/ar.js +0 -0
  344. /package/account/i18n/{baseMessages → messages_defaultSet}/ca.d.ts +0 -0
  345. /package/account/i18n/{baseMessages → messages_defaultSet}/ca.js +0 -0
  346. /package/account/i18n/{baseMessages → messages_defaultSet}/cs.d.ts +0 -0
  347. /package/account/i18n/{baseMessages → messages_defaultSet}/cs.js +0 -0
  348. /package/account/i18n/{baseMessages → messages_defaultSet}/da.d.ts +0 -0
  349. /package/account/i18n/{baseMessages → messages_defaultSet}/da.js +0 -0
  350. /package/account/i18n/{baseMessages → messages_defaultSet}/de.d.ts +0 -0
  351. /package/account/i18n/{baseMessages → messages_defaultSet}/de.js +0 -0
  352. /package/account/i18n/{baseMessages → messages_defaultSet}/el.d.ts +0 -0
  353. /package/account/i18n/{baseMessages → messages_defaultSet}/el.js +0 -0
  354. /package/account/i18n/{baseMessages → messages_defaultSet}/en.d.ts +0 -0
  355. /package/account/i18n/{baseMessages → messages_defaultSet}/en.js +0 -0
  356. /package/account/i18n/{baseMessages → messages_defaultSet}/es.d.ts +0 -0
  357. /package/account/i18n/{baseMessages → messages_defaultSet}/es.js +0 -0
  358. /package/account/i18n/{baseMessages → messages_defaultSet}/fa.d.ts +0 -0
  359. /package/account/i18n/{baseMessages → messages_defaultSet}/fa.js +0 -0
  360. /package/account/i18n/{baseMessages → messages_defaultSet}/fi.d.ts +0 -0
  361. /package/account/i18n/{baseMessages → messages_defaultSet}/fi.js +0 -0
  362. /package/account/i18n/{baseMessages → messages_defaultSet}/fr.d.ts +0 -0
  363. /package/account/i18n/{baseMessages → messages_defaultSet}/fr.js +0 -0
  364. /package/account/i18n/{baseMessages → messages_defaultSet}/hu.d.ts +0 -0
  365. /package/account/i18n/{baseMessages → messages_defaultSet}/hu.js +0 -0
  366. /package/account/i18n/{baseMessages → messages_defaultSet}/it.d.ts +0 -0
  367. /package/account/i18n/{baseMessages → messages_defaultSet}/it.js +0 -0
  368. /package/account/i18n/{baseMessages → messages_defaultSet}/ja.d.ts +0 -0
  369. /package/account/i18n/{baseMessages → messages_defaultSet}/ja.js +0 -0
  370. /package/account/i18n/{baseMessages → messages_defaultSet}/lt.d.ts +0 -0
  371. /package/account/i18n/{baseMessages → messages_defaultSet}/lt.js +0 -0
  372. /package/account/i18n/{baseMessages → messages_defaultSet}/lv.d.ts +0 -0
  373. /package/account/i18n/{baseMessages → messages_defaultSet}/lv.js +0 -0
  374. /package/account/i18n/{baseMessages → messages_defaultSet}/nl.d.ts +0 -0
  375. /package/account/i18n/{baseMessages → messages_defaultSet}/nl.js +0 -0
  376. /package/account/i18n/{baseMessages → messages_defaultSet}/no.d.ts +0 -0
  377. /package/account/i18n/{baseMessages → messages_defaultSet}/no.js +0 -0
  378. /package/account/i18n/{baseMessages → messages_defaultSet}/pl.d.ts +0 -0
  379. /package/account/i18n/{baseMessages → messages_defaultSet}/pl.js +0 -0
  380. /package/account/i18n/{baseMessages → messages_defaultSet}/pt-BR.d.ts +0 -0
  381. /package/account/i18n/{baseMessages → messages_defaultSet}/pt-BR.js +0 -0
  382. /package/account/i18n/{baseMessages → messages_defaultSet}/ru.d.ts +0 -0
  383. /package/account/i18n/{baseMessages → messages_defaultSet}/ru.js +0 -0
  384. /package/account/i18n/{baseMessages → messages_defaultSet}/sk.d.ts +0 -0
  385. /package/account/i18n/{baseMessages → messages_defaultSet}/sk.js +0 -0
  386. /package/account/i18n/{baseMessages → messages_defaultSet}/sv.d.ts +0 -0
  387. /package/account/i18n/{baseMessages → messages_defaultSet}/sv.js +0 -0
  388. /package/account/i18n/{baseMessages → messages_defaultSet}/th.d.ts +0 -0
  389. /package/account/i18n/{baseMessages → messages_defaultSet}/th.js +0 -0
  390. /package/account/i18n/{baseMessages → messages_defaultSet}/tr.d.ts +0 -0
  391. /package/account/i18n/{baseMessages → messages_defaultSet}/tr.js +0 -0
  392. /package/account/i18n/{baseMessages → messages_defaultSet}/uk.d.ts +0 -0
  393. /package/account/i18n/{baseMessages → messages_defaultSet}/uk.js +0 -0
  394. /package/account/i18n/{baseMessages → messages_defaultSet}/zh-CN.d.ts +0 -0
  395. /package/account/i18n/{baseMessages → messages_defaultSet}/zh-CN.js +0 -0
  396. /package/login/i18n/{baseMessages → messages_defaultSet}/ar.d.ts +0 -0
  397. /package/login/i18n/{baseMessages → messages_defaultSet}/ar.js +0 -0
  398. /package/login/i18n/{baseMessages → messages_defaultSet}/ca.d.ts +0 -0
  399. /package/login/i18n/{baseMessages → messages_defaultSet}/ca.js +0 -0
  400. /package/login/i18n/{baseMessages → messages_defaultSet}/cs.d.ts +0 -0
  401. /package/login/i18n/{baseMessages → messages_defaultSet}/cs.js +0 -0
  402. /package/login/i18n/{baseMessages → messages_defaultSet}/da.d.ts +0 -0
  403. /package/login/i18n/{baseMessages → messages_defaultSet}/da.js +0 -0
  404. /package/login/i18n/{baseMessages → messages_defaultSet}/de.d.ts +0 -0
  405. /package/login/i18n/{baseMessages → messages_defaultSet}/de.js +0 -0
  406. /package/login/i18n/{baseMessages → messages_defaultSet}/el.d.ts +0 -0
  407. /package/login/i18n/{baseMessages → messages_defaultSet}/el.js +0 -0
  408. /package/login/i18n/{baseMessages → messages_defaultSet}/en.d.ts +0 -0
  409. /package/login/i18n/{baseMessages → messages_defaultSet}/en.js +0 -0
  410. /package/login/i18n/{baseMessages → messages_defaultSet}/es.d.ts +0 -0
  411. /package/login/i18n/{baseMessages → messages_defaultSet}/es.js +0 -0
  412. /package/login/i18n/{baseMessages → messages_defaultSet}/fa.d.ts +0 -0
  413. /package/login/i18n/{baseMessages → messages_defaultSet}/fa.js +0 -0
  414. /package/login/i18n/{baseMessages → messages_defaultSet}/fi.d.ts +0 -0
  415. /package/login/i18n/{baseMessages → messages_defaultSet}/fi.js +0 -0
  416. /package/login/i18n/{baseMessages → messages_defaultSet}/fr.d.ts +0 -0
  417. /package/login/i18n/{baseMessages → messages_defaultSet}/fr.js +0 -0
  418. /package/login/i18n/{baseMessages → messages_defaultSet}/hu.d.ts +0 -0
  419. /package/login/i18n/{baseMessages → messages_defaultSet}/hu.js +0 -0
  420. /package/login/i18n/{baseMessages → messages_defaultSet}/it.d.ts +0 -0
  421. /package/login/i18n/{baseMessages → messages_defaultSet}/it.js +0 -0
  422. /package/login/i18n/{baseMessages → messages_defaultSet}/ja.d.ts +0 -0
  423. /package/login/i18n/{baseMessages → messages_defaultSet}/ja.js +0 -0
  424. /package/login/i18n/{baseMessages → messages_defaultSet}/lt.d.ts +0 -0
  425. /package/login/i18n/{baseMessages → messages_defaultSet}/lt.js +0 -0
  426. /package/login/i18n/{baseMessages → messages_defaultSet}/lv.d.ts +0 -0
  427. /package/login/i18n/{baseMessages → messages_defaultSet}/lv.js +0 -0
  428. /package/login/i18n/{baseMessages → messages_defaultSet}/nl.d.ts +0 -0
  429. /package/login/i18n/{baseMessages → messages_defaultSet}/nl.js +0 -0
  430. /package/login/i18n/{baseMessages → messages_defaultSet}/no.d.ts +0 -0
  431. /package/login/i18n/{baseMessages → messages_defaultSet}/no.js +0 -0
  432. /package/login/i18n/{baseMessages → messages_defaultSet}/pl.d.ts +0 -0
  433. /package/login/i18n/{baseMessages → messages_defaultSet}/pl.js +0 -0
  434. /package/login/i18n/{baseMessages → messages_defaultSet}/pt-BR.d.ts +0 -0
  435. /package/login/i18n/{baseMessages → messages_defaultSet}/pt-BR.js +0 -0
  436. /package/login/i18n/{baseMessages → messages_defaultSet}/ru.d.ts +0 -0
  437. /package/login/i18n/{baseMessages → messages_defaultSet}/ru.js +0 -0
  438. /package/login/i18n/{baseMessages → messages_defaultSet}/sk.d.ts +0 -0
  439. /package/login/i18n/{baseMessages → messages_defaultSet}/sk.js +0 -0
  440. /package/login/i18n/{baseMessages → messages_defaultSet}/sv.d.ts +0 -0
  441. /package/login/i18n/{baseMessages → messages_defaultSet}/sv.js +0 -0
  442. /package/login/i18n/{baseMessages → messages_defaultSet}/th.d.ts +0 -0
  443. /package/login/i18n/{baseMessages → messages_defaultSet}/th.js +0 -0
  444. /package/login/i18n/{baseMessages → messages_defaultSet}/tr.d.ts +0 -0
  445. /package/login/i18n/{baseMessages → messages_defaultSet}/tr.js +0 -0
  446. /package/login/i18n/{baseMessages → messages_defaultSet}/uk.d.ts +0 -0
  447. /package/login/i18n/{baseMessages → messages_defaultSet}/uk.js +0 -0
  448. /package/login/i18n/{baseMessages → messages_defaultSet}/zh-CN.d.ts +0 -0
  449. /package/login/i18n/{baseMessages → messages_defaultSet}/zh-CN.js +0 -0
  450. /package/src/account/i18n/{baseMessages → messages_defaultSet}/ar.ts +0 -0
  451. /package/src/account/i18n/{baseMessages → messages_defaultSet}/ca.ts +0 -0
  452. /package/src/account/i18n/{baseMessages → messages_defaultSet}/cs.ts +0 -0
  453. /package/src/account/i18n/{baseMessages → messages_defaultSet}/da.ts +0 -0
  454. /package/src/account/i18n/{baseMessages → messages_defaultSet}/de.ts +0 -0
  455. /package/src/account/i18n/{baseMessages → messages_defaultSet}/el.ts +0 -0
  456. /package/src/account/i18n/{baseMessages → messages_defaultSet}/en.ts +0 -0
  457. /package/src/account/i18n/{baseMessages → messages_defaultSet}/es.ts +0 -0
  458. /package/src/account/i18n/{baseMessages → messages_defaultSet}/fa.ts +0 -0
  459. /package/src/account/i18n/{baseMessages → messages_defaultSet}/fi.ts +0 -0
  460. /package/src/account/i18n/{baseMessages → messages_defaultSet}/fr.ts +0 -0
  461. /package/src/account/i18n/{baseMessages → messages_defaultSet}/hu.ts +0 -0
  462. /package/src/account/i18n/{baseMessages → messages_defaultSet}/it.ts +0 -0
  463. /package/src/account/i18n/{baseMessages → messages_defaultSet}/ja.ts +0 -0
  464. /package/src/account/i18n/{baseMessages → messages_defaultSet}/lt.ts +0 -0
  465. /package/src/account/i18n/{baseMessages → messages_defaultSet}/lv.ts +0 -0
  466. /package/src/account/i18n/{baseMessages → messages_defaultSet}/nl.ts +0 -0
  467. /package/src/account/i18n/{baseMessages → messages_defaultSet}/no.ts +0 -0
  468. /package/src/account/i18n/{baseMessages → messages_defaultSet}/pl.ts +0 -0
  469. /package/src/account/i18n/{baseMessages → messages_defaultSet}/pt-BR.ts +0 -0
  470. /package/src/account/i18n/{baseMessages → messages_defaultSet}/ru.ts +0 -0
  471. /package/src/account/i18n/{baseMessages → messages_defaultSet}/sk.ts +0 -0
  472. /package/src/account/i18n/{baseMessages → messages_defaultSet}/sv.ts +0 -0
  473. /package/src/account/i18n/{baseMessages → messages_defaultSet}/th.ts +0 -0
  474. /package/src/account/i18n/{baseMessages → messages_defaultSet}/tr.ts +0 -0
  475. /package/src/account/i18n/{baseMessages → messages_defaultSet}/uk.ts +0 -0
  476. /package/src/account/i18n/{baseMessages → messages_defaultSet}/zh-CN.ts +0 -0
  477. /package/src/login/i18n/{baseMessages → messages_defaultSet}/ar.ts +0 -0
  478. /package/src/login/i18n/{baseMessages → messages_defaultSet}/ca.ts +0 -0
  479. /package/src/login/i18n/{baseMessages → messages_defaultSet}/cs.ts +0 -0
  480. /package/src/login/i18n/{baseMessages → messages_defaultSet}/da.ts +0 -0
  481. /package/src/login/i18n/{baseMessages → messages_defaultSet}/de.ts +0 -0
  482. /package/src/login/i18n/{baseMessages → messages_defaultSet}/el.ts +0 -0
  483. /package/src/login/i18n/{baseMessages → messages_defaultSet}/en.ts +0 -0
  484. /package/src/login/i18n/{baseMessages → messages_defaultSet}/es.ts +0 -0
  485. /package/src/login/i18n/{baseMessages → messages_defaultSet}/fa.ts +0 -0
  486. /package/src/login/i18n/{baseMessages → messages_defaultSet}/fi.ts +0 -0
  487. /package/src/login/i18n/{baseMessages → messages_defaultSet}/fr.ts +0 -0
  488. /package/src/login/i18n/{baseMessages → messages_defaultSet}/hu.ts +0 -0
  489. /package/src/login/i18n/{baseMessages → messages_defaultSet}/it.ts +0 -0
  490. /package/src/login/i18n/{baseMessages → messages_defaultSet}/ja.ts +0 -0
  491. /package/src/login/i18n/{baseMessages → messages_defaultSet}/lt.ts +0 -0
  492. /package/src/login/i18n/{baseMessages → messages_defaultSet}/lv.ts +0 -0
  493. /package/src/login/i18n/{baseMessages → messages_defaultSet}/nl.ts +0 -0
  494. /package/src/login/i18n/{baseMessages → messages_defaultSet}/no.ts +0 -0
  495. /package/src/login/i18n/{baseMessages → messages_defaultSet}/pl.ts +0 -0
  496. /package/src/login/i18n/{baseMessages → messages_defaultSet}/pt-BR.ts +0 -0
  497. /package/src/login/i18n/{baseMessages → messages_defaultSet}/ru.ts +0 -0
  498. /package/src/login/i18n/{baseMessages → messages_defaultSet}/sk.ts +0 -0
  499. /package/src/login/i18n/{baseMessages → messages_defaultSet}/sv.ts +0 -0
  500. /package/src/login/i18n/{baseMessages → messages_defaultSet}/th.ts +0 -0
  501. /package/src/login/i18n/{baseMessages → messages_defaultSet}/tr.ts +0 -0
  502. /package/src/login/i18n/{baseMessages → messages_defaultSet}/uk.ts +0 -0
  503. /package/src/login/i18n/{baseMessages → messages_defaultSet}/zh-CN.ts +0 -0
package/bin/526.index.js CHANGED
@@ -3,13 +3,13 @@ exports.id = 526;
3
3
  exports.ids = [526];
4
4
  exports.modules = {
5
5
 
6
- /***/ 95781:
6
+ /***/ 97189:
7
7
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8
8
 
9
9
 
10
10
  // EXPORTS
11
11
  __webpack_require__.d(__webpack_exports__, {
12
- "s": () => (/* binding */ promptKeycloakVersion)
12
+ "_": () => (/* binding */ getLatestsSemVersionedTag)
13
13
  });
14
14
 
15
15
  ;// CONCATENATED MODULE: ./dist/bin/tools/octokit-addons/listTags.js
@@ -79,7 +79,7 @@ function getLatestsSemVersionedTagFactory(params) {
79
79
  const { octokit } = params;
80
80
  async function getLatestsSemVersionedTag(params) {
81
81
  var _a, e_1, _b, _c;
82
- const { owner, repo, count } = params;
82
+ const { owner, repo, count, doIgnoreReleaseCandidates } = params;
83
83
  const semVersionedTags = [];
84
84
  const { listTags } = listTagsFactory({ octokit });
85
85
  try {
@@ -95,7 +95,7 @@ function getLatestsSemVersionedTagFactory(params) {
95
95
  catch (_g) {
96
96
  continue;
97
97
  }
98
- if (version.rc !== undefined) {
98
+ if (doIgnoreReleaseCandidates && version.rc !== undefined) {
99
99
  continue;
100
100
  }
101
101
  semVersionedTags.push({ tag, version });
@@ -121,16 +121,33 @@ function getLatestsSemVersionedTagFactory(params) {
121
121
  //# sourceMappingURL=getLatestsSemVersionedTag.js.map
122
122
  // EXTERNAL MODULE: ./node_modules/@octokit/rest/dist-node/index.js
123
123
  var dist_node = __webpack_require__(55375);
124
- // EXTERNAL MODULE: ./node_modules/cli-select/dist/index.js
125
- var dist = __webpack_require__(99398);
126
- var dist_default = /*#__PURE__*/__webpack_require__.n(dist);
127
124
  // EXTERNAL MODULE: external "path"
128
125
  var external_path_ = __webpack_require__(71017);
129
126
  // EXTERNAL MODULE: external "fs"
130
127
  var external_fs_ = __webpack_require__(57147);
128
+ // EXTERNAL MODULE: ./node_modules/zod/lib/index.mjs
129
+ var lib = __webpack_require__(52300);
130
+ // EXTERNAL MODULE: ./node_modules/tsafe/assert.js
131
+ var assert = __webpack_require__(88078);
131
132
  // EXTERNAL MODULE: ./node_modules/tsafe/id.js
132
133
  var id = __webpack_require__(43047);
133
- ;// CONCATENATED MODULE: ./dist/bin/shared/promptKeycloakVersion.js
134
+ // EXTERNAL MODULE: ./node_modules/evt/tools/inDepth/same.js
135
+ var same = __webpack_require__(33805);
136
+ // EXTERNAL MODULE: ./node_modules/make-fetch-happen/lib/index.js
137
+ var make_fetch_happen_lib = __webpack_require__(9525);
138
+ var lib_default = /*#__PURE__*/__webpack_require__.n(make_fetch_happen_lib);
139
+ ;// CONCATENATED MODULE: ./dist/bin/shared/getLatestsSemVersionedTag.js
140
+ var __rest = (undefined && undefined.__rest) || function (s, e) {
141
+ var t = {};
142
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
143
+ t[p] = s[p];
144
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
145
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
146
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
147
+ t[p[i]] = s[p[i]];
148
+ }
149
+ return t;
150
+ };
134
151
 
135
152
 
136
153
 
@@ -138,50 +155,152 @@ var id = __webpack_require__(43047);
138
155
 
139
156
 
140
157
 
141
- async function promptKeycloakVersion(params) {
142
- const { startingFromMajor, excludeMajorVersions, cacheDirPath } = params;
143
- const { getLatestsSemVersionedTag } = (() => {
144
- const { octokit } = (() => {
158
+
159
+
160
+ let getLatestsSemVersionedTag_stateless = undefined;
161
+ const CACHE_VERSION = 1;
162
+ (0,assert.assert)();
163
+ async function getLatestsSemVersionedTag(_a) {
164
+ var { buildContext } = _a, params = __rest(_a, ["buildContext"]);
165
+ const cacheFilePath = (0,external_path_.join)(buildContext.cacheDirPath, "latest-sem-versioned-tags.json");
166
+ const cacheLookupResult = (() => {
167
+ const getResult_currentCache = (currentCacheEntries) => ({
168
+ hasCachedResult: false,
169
+ currentCache: {
170
+ version: CACHE_VERSION,
171
+ entries: currentCacheEntries
172
+ }
173
+ });
174
+ if (!external_fs_.existsSync(cacheFilePath)) {
175
+ return getResult_currentCache([]);
176
+ }
177
+ let cache_json;
178
+ try {
179
+ cache_json = external_fs_.readFileSync(cacheFilePath).toString("utf8");
180
+ }
181
+ catch (_a) {
182
+ return getResult_currentCache([]);
183
+ }
184
+ let cache_json_parsed;
185
+ try {
186
+ cache_json_parsed = JSON.parse(cache_json);
187
+ }
188
+ catch (_b) {
189
+ return getResult_currentCache([]);
190
+ }
191
+ const zSemVer = (() => {
192
+ const zTargetType = lib.z.object({
193
+ major: lib.z.number(),
194
+ minor: lib.z.number(),
195
+ patch: lib.z.number(),
196
+ rc: lib.z.number().optional(),
197
+ parsedFrom: lib.z.string()
198
+ });
199
+ (0,assert.assert)();
200
+ return (0,id.id)(zTargetType);
201
+ })();
202
+ const zCache = (() => {
203
+ const zTargetType = lib.z.object({
204
+ version: lib.z.literal(CACHE_VERSION),
205
+ entries: lib.z.array(lib.z.object({
206
+ time: lib.z.number(),
207
+ params: lib.z.object({
208
+ owner: lib.z.string(),
209
+ repo: lib.z.string(),
210
+ count: lib.z.number(),
211
+ doIgnoreReleaseCandidates: lib.z.boolean()
212
+ }),
213
+ result: lib.z.array(lib.z.object({
214
+ tag: lib.z.string(),
215
+ version: zSemVer
216
+ }))
217
+ }))
218
+ });
219
+ (0,assert.assert)();
220
+ return (0,id.id)(zTargetType);
221
+ })();
222
+ let cache;
223
+ try {
224
+ cache = zCache.parse(cache_json_parsed);
225
+ }
226
+ catch (_c) {
227
+ return getResult_currentCache([]);
228
+ }
229
+ const cacheEntry = cache.entries.find(e => (0,same.same)(e.params, params));
230
+ if (cacheEntry === undefined) {
231
+ return getResult_currentCache(cache.entries);
232
+ }
233
+ if (Date.now() - cacheEntry.time > 3600000) {
234
+ return getResult_currentCache(cache.entries.filter(e => e !== cacheEntry));
235
+ }
236
+ return {
237
+ hasCachedResult: true,
238
+ cachedResult: cacheEntry.result
239
+ };
240
+ })();
241
+ if (cacheLookupResult.hasCachedResult) {
242
+ return cacheLookupResult.cachedResult;
243
+ }
244
+ const { currentCache } = cacheLookupResult;
245
+ getLatestsSemVersionedTag_stateless !== null && getLatestsSemVersionedTag_stateless !== void 0 ? getLatestsSemVersionedTag_stateless : (getLatestsSemVersionedTag_stateless = (() => {
246
+ const octokit = (() => {
145
247
  const githubToken = process.env.GITHUB_TOKEN;
146
- const octokit = new dist_node.Octokit(githubToken === undefined ? undefined : { auth: githubToken });
147
- return { octokit };
248
+ const octokit = new dist_node.Octokit(Object.assign(Object.assign({}, (githubToken === undefined ? {} : { auth: githubToken })), { request: {
249
+ fetch: (url, options) => lib_default()(url, Object.assign(Object.assign({}, options), buildContext.fetchOptions))
250
+ } }));
251
+ return octokit;
148
252
  })();
149
253
  const { getLatestsSemVersionedTag } = getLatestsSemVersionedTagFactory({
150
254
  octokit
151
255
  });
152
- return { getLatestsSemVersionedTag };
153
- })();
154
- const semVersionedTagByMajor = new Map();
155
- const semVersionedTags = await (async () => {
156
- const cacheFilePath = (0,external_path_.join)(cacheDirPath, "keycloak-versions.json");
157
- use_cache: {
158
- if (!external_fs_.existsSync(cacheFilePath)) {
159
- break use_cache;
160
- }
161
- const cache = JSON.parse(external_fs_.readFileSync(cacheFilePath).toString("utf8"));
162
- if (Date.now() - cache.time > 3600000) {
163
- external_fs_.unlinkSync(cacheFilePath);
164
- break use_cache;
165
- }
166
- return cache.semVersionedTags;
167
- }
168
- const semVersionedTags = await getLatestsSemVersionedTag({
169
- count: 50,
170
- owner: "keycloak",
171
- repo: "keycloak"
172
- });
173
- {
174
- const dirPath = (0,external_path_.dirname)(cacheFilePath);
175
- if (!external_fs_.existsSync(dirPath)) {
176
- external_fs_.mkdirSync(dirPath, { recursive: true });
177
- }
256
+ return getLatestsSemVersionedTag;
257
+ })());
258
+ const result = await getLatestsSemVersionedTag_stateless(params);
259
+ currentCache.entries.push({
260
+ time: Date.now(),
261
+ params,
262
+ result
263
+ });
264
+ {
265
+ const dirPath = (0,external_path_.dirname)(cacheFilePath);
266
+ if (!external_fs_.existsSync(dirPath)) {
267
+ external_fs_.mkdirSync(dirPath, { recursive: true });
178
268
  }
179
- external_fs_.writeFileSync(cacheFilePath, JSON.stringify((0,id.id)({
180
- time: Date.now(),
181
- semVersionedTags
182
- }), null, 2));
183
- return semVersionedTags;
184
- })();
269
+ }
270
+ external_fs_.writeFileSync(cacheFilePath, JSON.stringify(currentCache, null, 2));
271
+ return result;
272
+ }
273
+ //# sourceMappingURL=getLatestsSemVersionedTag.js.map
274
+
275
+ /***/ }),
276
+
277
+ /***/ 82635:
278
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
279
+
280
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
281
+ /* harmony export */ "s": () => (/* binding */ promptKeycloakVersion)
282
+ /* harmony export */ });
283
+ /* harmony import */ var _getLatestsSemVersionedTag__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(97189);
284
+ /* harmony import */ var cli_select__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(99398);
285
+ /* harmony import */ var cli_select__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cli_select__WEBPACK_IMPORTED_MODULE_1__);
286
+ /* harmony import */ var tsafe_assert__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88078);
287
+ /* harmony import */ var tsafe_assert__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(tsafe_assert__WEBPACK_IMPORTED_MODULE_2__);
288
+ /* harmony import */ var _tools_SemVer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12171);
289
+
290
+
291
+
292
+
293
+ (0,tsafe_assert__WEBPACK_IMPORTED_MODULE_2__.assert)();
294
+ async function promptKeycloakVersion(params) {
295
+ const { startingFromMajor, excludeMajorVersions, buildContext } = params;
296
+ const semVersionedTagByMajor = new Map();
297
+ const semVersionedTags = await (0,_getLatestsSemVersionedTag__WEBPACK_IMPORTED_MODULE_0__/* .getLatestsSemVersionedTag */ ._)({
298
+ count: 50,
299
+ owner: "keycloak",
300
+ repo: "keycloak",
301
+ doIgnoreReleaseCandidates: true,
302
+ buildContext
303
+ });
185
304
  semVersionedTags.forEach(semVersionedTag => {
186
305
  if (startingFromMajor !== undefined &&
187
306
  semVersionedTag.version.major < startingFromMajor) {
@@ -192,13 +311,13 @@ async function promptKeycloakVersion(params) {
192
311
  }
193
312
  const currentSemVersionedTag = semVersionedTagByMajor.get(semVersionedTag.version.major);
194
313
  if (currentSemVersionedTag !== undefined &&
195
- SemVer/* SemVer.compare */.h.compare(semVersionedTag.version, currentSemVersionedTag.version) === -1) {
314
+ _tools_SemVer__WEBPACK_IMPORTED_MODULE_3__/* .SemVer.compare */ .h.compare(semVersionedTag.version, currentSemVersionedTag.version) === -1) {
196
315
  return;
197
316
  }
198
317
  semVersionedTagByMajor.set(semVersionedTag.version.major, semVersionedTag);
199
318
  });
200
- const lastMajorVersions = Array.from(semVersionedTagByMajor.values()).map(({ tag }) => tag);
201
- const { value } = await dist_default()({
319
+ const lastMajorVersions = Array.from(semVersionedTagByMajor.values()).map(({ version }) => `${version.major}.${version.minor}`);
320
+ const { value } = await cli_select__WEBPACK_IMPORTED_MODULE_1___default()({
202
321
  values: lastMajorVersions
203
322
  }).catch(() => {
204
323
  process.exit(-1);
@@ -225,8 +344,8 @@ __webpack_require__.d(__webpack_exports__, {
225
344
  var shared_buildContext = __webpack_require__(56031);
226
345
  // EXTERNAL MODULE: ./node_modules/tsafe/exclude.js
227
346
  var exclude = __webpack_require__(41370);
228
- // EXTERNAL MODULE: ./dist/bin/shared/promptKeycloakVersion.js + 2 modules
229
- var promptKeycloakVersion = __webpack_require__(95781);
347
+ // EXTERNAL MODULE: ./dist/bin/shared/promptKeycloakVersion.js
348
+ var promptKeycloakVersion = __webpack_require__(82635);
230
349
  // EXTERNAL MODULE: ./dist/bin/shared/constants.js
231
350
  var constants = __webpack_require__(173);
232
351
  // EXTERNAL MODULE: ./dist/bin/tools/SemVer.js
@@ -266,10 +385,12 @@ var Deferred = __webpack_require__(50689);
266
385
 
267
386
 
268
387
 
388
+
389
+
269
390
  (0,assert.assert)();
270
391
  async function appBuild(params) {
271
392
  const { buildContext } = params;
272
- switch (buildContext.bundler.type) {
393
+ switch (buildContext.bundler) {
273
394
  case "vite":
274
395
  return appBuild_vite({ buildContext });
275
396
  case "webpack":
@@ -278,9 +399,9 @@ async function appBuild(params) {
278
399
  }
279
400
  async function appBuild_vite(params) {
280
401
  const { buildContext } = params;
281
- (0,assert.assert)(buildContext.bundler.type === "vite");
402
+ (0,assert.assert)(buildContext.bundler === "vite");
282
403
  const dIsSuccess = new Deferred.Deferred();
283
- console.log(source_default().blue("Running: 'npx vite build'"));
404
+ console.log(source_default().blue("$ npx vite build"));
284
405
  const child = external_child_process_.spawn("npx", ["vite", "build"], {
285
406
  cwd: buildContext.projectDirPath,
286
407
  shell: true
@@ -297,12 +418,14 @@ async function appBuild_vite(params) {
297
418
  return { isAppBuildSuccess: isSuccess };
298
419
  }
299
420
  async function appBuild_webpack(params) {
421
+ var _a;
300
422
  const { buildContext } = params;
301
- (0,assert.assert)(buildContext.bundler.type === "webpack");
302
- const entries = Object.entries(buildContext.bundler.packageJsonScripts).filter(([, scriptCommand]) => scriptCommand.includes("keycloakify build"));
423
+ (0,assert.assert)(buildContext.bundler === "webpack");
424
+ const entries = Object.entries(((_a = JSON.parse(external_fs_.readFileSync(buildContext.packageJsonFilePath).toString("utf8"))
425
+ .scripts) !== null && _a !== void 0 ? _a : {})).filter(([, scriptCommand]) => scriptCommand.includes("keycloakify build"));
303
426
  if (entries.length === 0) {
304
427
  console.log(source_default().red([
305
- `You should have a script in your package.json at ${buildContext.bundler.packageJsonDirPath}`,
428
+ `You should have a script in your package.json at ${(0,external_path_.relative)(process.cwd(), (0,external_path_.dirname)(buildContext.packageJsonFilePath))}`,
306
429
  `that includes the 'keycloakify build' command`
307
430
  ].join(" ")));
308
431
  process.exit(-1);
@@ -329,7 +452,7 @@ async function appBuild_webpack(params) {
329
452
  console.log(source_default().red(`Your ${scriptName} script should look like "... && keycloakify build ..."`));
330
453
  process.exit(-1);
331
454
  }
332
- let commandCwd = buildContext.bundler.packageJsonDirPath;
455
+ let commandCwd = (0,external_path_.dirname)(buildContext.packageJsonFilePath);
333
456
  for (const subCommand of appBuildSubCommands) {
334
457
  const dIsSuccess = new Deferred.Deferred();
335
458
  const [command, ...args] = subCommand.split(" ");
@@ -341,14 +464,14 @@ async function appBuild_webpack(params) {
341
464
  });
342
465
  continue;
343
466
  }
344
- console.log(source_default().blue(`Running: '${subCommand}'`));
467
+ console.log(source_default().blue(`$ ${subCommand}`));
345
468
  const child = external_child_process_.spawn(command, args, {
346
469
  cwd: commandCwd,
347
470
  env: Object.assign(Object.assign({}, process.env), { PATH: (() => {
348
471
  var _a;
349
472
  const separator = external_path_.sep === "/" ? ":" : ";";
350
473
  return [
351
- (0,external_path_.join)(buildContext.bundler.packageJsonDirPath, "node_modules", ".bin"),
474
+ (0,external_path_.join)((0,external_path_.dirname)(buildContext.packageJsonFilePath), "node_modules", ".bin"),
352
475
  ...((_a = process.env.PATH) !== null && _a !== void 0 ? _a : "").split(separator)
353
476
  ].join(separator);
354
477
  })() }),
@@ -375,10 +498,10 @@ async function appBuild_webpack(params) {
375
498
  async function keycloakifyBuild(params) {
376
499
  const { buildForKeycloakMajorVersionNumber, buildContext } = params;
377
500
  const dResult = new Deferred.Deferred();
378
- console.log(source_default().blue("Running: 'npx keycloakify build'"));
501
+ console.log(source_default().blue("$ npx keycloakify build"));
379
502
  const child = external_child_process_.spawn("npx", ["keycloakify", "build"], {
380
503
  cwd: buildContext.projectDirPath,
381
- env: Object.assign(Object.assign({}, process.env), { [constants/* buildForKeycloakMajorVersionEnvName */.um]: `${buildForKeycloakMajorVersionNumber}` }),
504
+ env: Object.assign(Object.assign({}, process.env), { [constants/* BUILD_FOR_KEYCLOAK_MAJOR_VERSION_ENV_NAME */.ac]: `${buildForKeycloakMajorVersionNumber}` }),
382
505
  shell: true
383
506
  });
384
507
  child.stdout.on("data", data => process.stdout.write(data));
@@ -394,6 +517,8 @@ var isInside = __webpack_require__(90665);
394
517
  var fs_existsAsync = __webpack_require__(43765);
395
518
  // EXTERNAL MODULE: ./dist/bin/tools/fs.rm.js
396
519
  var fs_rm = __webpack_require__(8699);
520
+ // EXTERNAL MODULE: ./dist/bin/tools/downloadAndExtractArchive.js
521
+ var downloadAndExtractArchive = __webpack_require__(38367);
397
522
  ;// CONCATENATED MODULE: ./dist/bin/start-keycloak/start-keycloak.js
398
523
 
399
524
 
@@ -415,9 +540,11 @@ var fs_rm = __webpack_require__(8699);
415
540
 
416
541
 
417
542
 
543
+
418
544
 
419
545
 
420
546
  async function command(params) {
547
+ var _a, _b, _c, _d;
421
548
  exit_if_docker_not_installed: {
422
549
  let commandOutput = undefined;
423
550
  try {
@@ -425,7 +552,7 @@ async function command(params) {
425
552
  stdio: ["ignore", "pipe", "ignore"]
426
553
  });
427
554
  }
428
- catch (_a) { }
555
+ catch (_e) { }
429
556
  if (commandOutput === null || commandOutput === void 0 ? void 0 : commandOutput.toString("utf8").includes("Docker")) {
430
557
  break exit_if_docker_not_installed;
431
558
  }
@@ -442,7 +569,7 @@ async function command(params) {
442
569
  external_child_process_.execSync("docker info", { stdio: "ignore" });
443
570
  isDockerRunning = true;
444
571
  }
445
- catch (_b) {
572
+ catch (_f) {
446
573
  isDockerRunning = false;
447
574
  }
448
575
  if (isDockerRunning) {
@@ -456,23 +583,45 @@ async function command(params) {
456
583
  }
457
584
  const { cliCommandOptions } = params;
458
585
  const buildContext = (0,shared_buildContext/* getBuildContext */.s)({ cliCommandOptions });
459
- const { keycloakVersion } = await (async () => {
586
+ const { dockerImageTag } = await (async () => {
460
587
  if (cliCommandOptions.keycloakVersion !== undefined) {
588
+ return { dockerImageTag: cliCommandOptions.keycloakVersion };
589
+ }
590
+ if (buildContext.startKeycloakOptions.dockerImage !== undefined) {
461
591
  return {
462
- keycloakVersion: cliCommandOptions.keycloakVersion,
463
- keycloakMajorNumber: SemVer/* SemVer.parse */.h.parse(cliCommandOptions.keycloakVersion).major
592
+ dockerImageTag: buildContext.startKeycloakOptions.dockerImage.tag
464
593
  };
465
594
  }
466
- console.log(source_default().cyan("On which version of Keycloak do you want to test your theme?"));
595
+ console.log([
596
+ source_default().cyan("On which version of Keycloak do you want to test your theme?"),
597
+ source_default().gray("You can also explicitly provide the version with `npx keycloakify start-keycloak --keycloak-version 25.0.2` (or any other version)")
598
+ ].join("\n"));
467
599
  const { keycloakVersion } = await (0,promptKeycloakVersion/* promptKeycloakVersion */.s)({
468
600
  startingFromMajor: 18,
469
601
  excludeMajorVersions: [22],
470
- cacheDirPath: buildContext.cacheDirPath
602
+ buildContext
471
603
  });
472
604
  console.log(`→ ${keycloakVersion}`);
473
- return { keycloakVersion };
605
+ return { dockerImageTag: keycloakVersion };
606
+ })();
607
+ const keycloakMajorVersionNumber = (() => {
608
+ if (buildContext.startKeycloakOptions.dockerImage === undefined) {
609
+ return SemVer/* SemVer.parse */.h.parse(dockerImageTag).major;
610
+ }
611
+ const { tag } = buildContext.startKeycloakOptions.dockerImage;
612
+ const [wrap] = [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]
613
+ .map(majorVersionNumber => ({
614
+ majorVersionNumber,
615
+ index: tag.indexOf(`${majorVersionNumber}`)
616
+ }))
617
+ .filter(({ index }) => index !== -1)
618
+ .sort((a, b) => a.index - b.index);
619
+ if (wrap === undefined) {
620
+ console.warn(source_default().yellow(`Could not determine the major Keycloak version number from the docker image tag ${tag}. Assuming 25`));
621
+ return 25;
622
+ }
623
+ return wrap.majorVersionNumber;
474
624
  })();
475
- const keycloakMajorVersionNumber = SemVer/* SemVer.parse */.h.parse(keycloakVersion).major;
476
625
  {
477
626
  const { isAppBuildSuccess } = await appBuild({
478
627
  buildContext
@@ -495,26 +644,48 @@ async function command(params) {
495
644
  .map(fileBasename => (0,external_path_.join)(buildContext.keycloakifyBuildDirPath, fileBasename))
496
645
  .sort((a, b) => external_fs_.statSync(b).mtimeMs - external_fs_.statSync(a).mtimeMs)[0];
497
646
  (0,assert.assert)(jarFilePath !== undefined);
498
- console.log(`Using ${source_default().bold((0,external_path_.basename)(jarFilePath))}`);
647
+ const extensionJarFilePaths = await Promise.all(buildContext.startKeycloakOptions.extensionJars.map(async (extensionJar) => {
648
+ switch (extensionJar.type) {
649
+ case "path": {
650
+ (0,assert.assert)(await (0,fs_existsAsync/* existsAsync */.o)(extensionJar.path), `${extensionJar.path} does not exist`);
651
+ return extensionJar.path;
652
+ }
653
+ case "url": {
654
+ const { archiveFilePath } = await (0,downloadAndExtractArchive/* downloadAndExtractArchive */.I)({
655
+ cacheDirPath: buildContext.cacheDirPath,
656
+ fetchOptions: buildContext.fetchOptions,
657
+ url: extensionJar.url,
658
+ uniqueIdOfOnArchiveFile: "no extraction",
659
+ onArchiveFile: async () => { }
660
+ });
661
+ return archiveFilePath;
662
+ }
663
+ }
664
+ (0,assert.assert)(false);
665
+ }));
666
+ const getRealmJsonFilePath_defaultForKeycloakMajor = (keycloakMajorVersionNumber) => (0,external_path_.join)((0,getThisCodebaseRootDirPath/* getThisCodebaseRootDirPath */.e)(), "src", "bin", "start-keycloak", `myrealm-realm-${keycloakMajorVersionNumber}.json`);
499
667
  const realmJsonFilePath = await (async () => {
500
668
  if (cliCommandOptions.realmJsonFilePath !== undefined) {
501
669
  if (cliCommandOptions.realmJsonFilePath === "none") {
502
670
  return undefined;
503
671
  }
504
- console.log(source_default().green(`Using realm json file: ${cliCommandOptions.realmJsonFilePath}`));
505
672
  return (0,getAbsoluteAndInOsFormatPath/* getAbsoluteAndInOsFormatPath */.c)({
506
673
  pathIsh: cliCommandOptions.realmJsonFilePath,
507
674
  cwd: process.cwd()
508
675
  });
509
676
  }
677
+ if (buildContext.startKeycloakOptions.realmJsonFilePath !== undefined) {
678
+ (0,assert.assert)(await (0,fs_existsAsync/* existsAsync */.o)(buildContext.startKeycloakOptions.realmJsonFilePath), `${(0,external_path_.relative)(process.cwd(), buildContext.startKeycloakOptions.realmJsonFilePath)} does not exist`);
679
+ return buildContext.startKeycloakOptions.realmJsonFilePath;
680
+ }
510
681
  const internalFilePath = await (async () => {
511
- const dirPath = (0,external_path_.join)((0,getThisCodebaseRootDirPath/* getThisCodebaseRootDirPath */.e)(), "src", "bin", "start-keycloak");
512
- const filePath = (0,external_path_.join)(dirPath, `myrealm-realm-${keycloakMajorVersionNumber}.json`);
513
- if (external_fs_.existsSync(filePath)) {
514
- return filePath;
682
+ const defaultFilePath = getRealmJsonFilePath_defaultForKeycloakMajor(keycloakMajorVersionNumber);
683
+ if (external_fs_.existsSync(defaultFilePath)) {
684
+ return defaultFilePath;
515
685
  }
516
686
  console.log(`${source_default().yellow(`Keycloakify do not have a realm configuration for Keycloak ${keycloakMajorVersionNumber} yet.`)}`);
517
687
  console.log(source_default().cyan("Select what configuration to use:"));
688
+ const dirPath = (0,external_path_.dirname)(defaultFilePath);
518
689
  const { value } = await dist_default()({
519
690
  values: [
520
691
  ...external_fs_.readdirSync(dirPath)
@@ -538,6 +709,25 @@ async function command(params) {
538
709
  .replace(/keycloakify\-starter/g, buildContext.themeNames[0])), "utf8");
539
710
  return filePath;
540
711
  })();
712
+ add_test_user_if_missing: {
713
+ if (realmJsonFilePath === undefined) {
714
+ break add_test_user_if_missing;
715
+ }
716
+ const realm = JSON.parse(external_fs_.readFileSync(realmJsonFilePath).toString("utf8"));
717
+ if (realm.users !== undefined) {
718
+ break add_test_user_if_missing;
719
+ }
720
+ const realmJsonFilePath_internal = (() => {
721
+ const filePath = getRealmJsonFilePath_defaultForKeycloakMajor(keycloakMajorVersionNumber);
722
+ if (!external_fs_.existsSync(filePath)) {
723
+ return getRealmJsonFilePath_defaultForKeycloakMajor(25);
724
+ }
725
+ return filePath;
726
+ })();
727
+ const users = JSON.parse(external_fs_.readFileSync(realmJsonFilePath_internal).toString("utf8")).users;
728
+ realm.users = users;
729
+ external_fs_.writeFileSync(realmJsonFilePath, JSON.stringify(realm, null, 2), "utf8");
730
+ }
541
731
  async function extractThemeResourcesFromJar() {
542
732
  await (0,extractArchive/* extractArchive */.N)({
543
733
  archiveFilePath: jarFilePath,
@@ -560,74 +750,83 @@ async function command(params) {
560
750
  const jarFilePath_cacheDir = (0,external_path_.join)(buildContext.cacheDirPath, (0,external_path_.basename)(jarFilePath));
561
751
  external_fs_.copyFileSync(jarFilePath, jarFilePath_cacheDir);
562
752
  try {
563
- external_child_process_.execSync(`docker rm --force ${constants/* containerName */.h6}`, {
753
+ external_child_process_.execSync(`docker rm --force ${constants/* CONTAINER_NAME */.sv}`, {
564
754
  stdio: "ignore"
565
755
  });
566
756
  }
567
- catch (_c) { }
568
- const spawnArgs = [
569
- "docker",
570
- [
571
- "run",
572
- ...["-p", `${cliCommandOptions.port}:8080`],
573
- ...["--name", constants/* containerName */.h6],
574
- ...["-e", "KEYCLOAK_ADMIN=admin"],
575
- ...["-e", "KEYCLOAK_ADMIN_PASSWORD=admin"],
576
- ...(realmJsonFilePath === undefined
577
- ? []
578
- : [
579
- "-v",
580
- `${realmJsonFilePath}:/opt/keycloak/data/import/myrealm-realm.json`
581
- ]),
582
- ...[
583
- "-v",
584
- `${jarFilePath_cacheDir}:/opt/keycloak/providers/keycloak-theme.jar`
585
- ],
586
- ...(keycloakMajorVersionNumber <= 20
587
- ? ["-e", "JAVA_OPTS=-Dkeycloak.profile=preview"]
588
- : []),
589
- ...[
590
- ...buildContext.themeNames,
591
- ...(external_fs_.existsSync((0,external_path_.join)(buildContext.keycloakifyBuildDirPath, "theme", constants/* accountV1ThemeName */.y_))
592
- ? [constants/* accountV1ThemeName */.y_]
593
- : [])
594
- ]
595
- .map(themeName => ({
596
- localDirPath: (0,external_path_.join)(buildContext.keycloakifyBuildDirPath, "theme", themeName),
597
- containerDirPath: `/opt/keycloak/themes/${themeName}`
598
- }))
599
- .map(({ localDirPath, containerDirPath }) => [
600
- "-v",
601
- `${localDirPath}:${containerDirPath}:rw`
602
- ])
603
- .flat(),
604
- ...buildContext.environmentVariables
605
- .map(({ name }) => ({ name, envValue: process.env[name] }))
606
- .map(({ name, envValue }) => envValue === undefined ? undefined : { name, envValue })
607
- .filter((0,exclude.exclude)(undefined))
608
- .map(({ name, envValue }) => [
609
- "--env",
610
- `${name}='${envValue.replace(/'/g, "'\\''")}'`
757
+ catch (_g) { }
758
+ const DEFAULT_PORT = 8080;
759
+ const port = (_b = (_a = cliCommandOptions.port) !== null && _a !== void 0 ? _a : buildContext.startKeycloakOptions.port) !== null && _b !== void 0 ? _b : DEFAULT_PORT;
760
+ const SPACE_PLACEHOLDER = "SPACE_PLACEHOLDER_xKLmdPd";
761
+ const dockerRunArgs = [
762
+ `-p${SPACE_PLACEHOLDER}${port}:8080`,
763
+ `--name${SPACE_PLACEHOLDER}${constants/* CONTAINER_NAME */.sv}`,
764
+ `-e${SPACE_PLACEHOLDER}KEYCLOAK_ADMIN=admin`,
765
+ `-e${SPACE_PLACEHOLDER}KEYCLOAK_ADMIN_PASSWORD=admin`,
766
+ ...(buildContext.startKeycloakOptions.dockerExtraArgs.length === 0
767
+ ? []
768
+ : [
769
+ buildContext.startKeycloakOptions.dockerExtraArgs.join(SPACE_PLACEHOLDER)
770
+ ]),
771
+ ...(realmJsonFilePath === undefined
772
+ ? []
773
+ : [
774
+ `-v${SPACE_PLACEHOLDER}".${external_path_.sep}${(0,external_path_.relative)(process.cwd(), realmJsonFilePath)}":/opt/keycloak/data/import/myrealm-realm.json`
775
+ ]),
776
+ `-v${SPACE_PLACEHOLDER}".${external_path_.sep}${(0,external_path_.relative)(process.cwd(), jarFilePath_cacheDir)}":/opt/keycloak/providers/keycloak-theme.jar`,
777
+ ...extensionJarFilePaths.map(jarFilePath => `-v${SPACE_PLACEHOLDER}".${external_path_.sep}${(0,external_path_.relative)(process.cwd(), jarFilePath)}":/opt/keycloak/providers/${(0,external_path_.basename)(jarFilePath)}`),
778
+ ...(keycloakMajorVersionNumber <= 20
779
+ ? [`-e${SPACE_PLACEHOLDER}JAVA_OPTS=-Dkeycloak.profile=preview`]
780
+ : []),
781
+ ...[
782
+ ...buildContext.themeNames,
783
+ ...(external_fs_.existsSync((0,external_path_.join)(buildContext.keycloakifyBuildDirPath, "theme", constants/* ACCOUNT_V1_THEME_NAME */.ZQ))
784
+ ? [constants/* ACCOUNT_V1_THEME_NAME */.ZQ]
785
+ : [])
786
+ ]
787
+ .map(themeName => ({
788
+ localDirPath: (0,external_path_.join)(buildContext.keycloakifyBuildDirPath, "theme", themeName),
789
+ containerDirPath: `/opt/keycloak/themes/${themeName}`
790
+ }))
791
+ .map(({ localDirPath, containerDirPath }) => `-v${SPACE_PLACEHOLDER}".${external_path_.sep}${(0,external_path_.relative)(process.cwd(), localDirPath)}":${containerDirPath}:rw`),
792
+ ...buildContext.environmentVariables
793
+ .map(({ name }) => ({ name, envValue: process.env[name] }))
794
+ .map(({ name, envValue }) => envValue === undefined ? undefined : { name, envValue })
795
+ .filter((0,exclude.exclude)(undefined))
796
+ .map(({ name, envValue }) => `--env${SPACE_PLACEHOLDER}${name}='${envValue.replace(/'/g, "'\\''")}'`),
797
+ `${(_d = (_c = buildContext.startKeycloakOptions.dockerImage) === null || _c === void 0 ? void 0 : _c.reference) !== null && _d !== void 0 ? _d : "quay.io/keycloak/keycloak"}:${dockerImageTag}`,
798
+ "start-dev",
799
+ ...(21 <= keycloakMajorVersionNumber && keycloakMajorVersionNumber < 24
800
+ ? ["--features=declarative-user-profile"]
801
+ : []),
802
+ ...(realmJsonFilePath === undefined ? [] : ["--import-realm"]),
803
+ ...(buildContext.startKeycloakOptions.keycloakExtraArgs.length === 0
804
+ ? []
805
+ : [
806
+ buildContext.startKeycloakOptions.keycloakExtraArgs.join(SPACE_PLACEHOLDER)
611
807
  ])
612
- .flat(),
613
- `quay.io/keycloak/keycloak:${keycloakVersion}`,
614
- "start-dev",
615
- ...(21 <= keycloakMajorVersionNumber && keycloakMajorVersionNumber < 24
616
- ? ["--features=declarative-user-profile"]
617
- : []),
618
- ...(realmJsonFilePath === undefined ? [] : ["--import-realm"])
619
- ],
620
- {
621
- cwd: buildContext.keycloakifyBuildDirPath,
622
- shell: true
623
- }
624
808
  ];
625
- const child = external_child_process_.spawn(...spawnArgs);
809
+ console.log(source_default().blue([
810
+ `$ docker run \\`,
811
+ ...dockerRunArgs
812
+ .map(arg => arg.replace(new RegExp(SPACE_PLACEHOLDER, "g"), " "))
813
+ .map((line, i, arr) => ` ${line}${arr.length - 1 === i ? "" : " \\"}`)
814
+ ].join("\n")));
815
+ const child = external_child_process_.spawn("docker", ["run", ...dockerRunArgs.map(line => line.split(SPACE_PLACEHOLDER)).flat()], { shell: true });
626
816
  child.stdout.on("data", data => process.stdout.write(data));
627
817
  child.stderr.on("data", data => process.stderr.write(data));
628
818
  child.on("exit", process.exit);
629
819
  const srcDirPath = (0,external_path_.join)(buildContext.projectDirPath, "src");
630
820
  {
821
+ const kcHttpRelativePath = (() => {
822
+ const match = buildContext.startKeycloakOptions.dockerExtraArgs
823
+ .join(" ")
824
+ .match(/KC_HTTP_RELATIVE_PATH=([^ ]+)/);
825
+ if (match === null) {
826
+ return undefined;
827
+ }
828
+ return match[1];
829
+ })();
631
830
  const handler = async (data) => {
632
831
  if (!data.toString("utf8").includes("Listening on: http://0.0.0.0:8080")) {
633
832
  return;
@@ -638,13 +837,22 @@ async function command(params) {
638
837
  "",
639
838
  `The ftl files from ${source_default().bold(`.${external_path_.sep}${(0,external_path_.relative)(process.cwd(), (0,external_path_.join)(buildContext.keycloakifyBuildDirPath, "theme"))}`)} are mounted in the Keycloak container.`,
640
839
  "",
641
- `Keycloak Admin console: ${source_default().cyan.bold(`http://localhost:${cliCommandOptions.port}`)}`,
840
+ `Keycloak Admin console: ${source_default().cyan.bold(`http://localhost:${port}${kcHttpRelativePath !== null && kcHttpRelativePath !== void 0 ? kcHttpRelativePath : ""}`)}`,
642
841
  `- user: ${source_default().cyan.bold("admin")}`,
643
842
  `- password: ${source_default().cyan.bold("admin")}`,
644
843
  "",
645
844
  "",
646
845
  `${source_default().green("Your theme is accessible at:")}`,
647
- `${source_default().green("➜")} ${source_default().cyan.bold(`https://my-theme.keycloakify.dev${cliCommandOptions.port === 8080 ? "" : `?port=${cliCommandOptions.port}`}`)}`,
846
+ `${source_default().green("➜")} ${source_default().cyan.bold((() => {
847
+ const url = new URL("https://my-theme.keycloakify.dev");
848
+ if (port !== DEFAULT_PORT) {
849
+ url.searchParams.set("port", `${port}`);
850
+ }
851
+ if (kcHttpRelativePath !== undefined) {
852
+ url.searchParams.set("kcHttpRelativePath", kcHttpRelativePath);
853
+ }
854
+ return url.href;
855
+ })())}`,
648
856
  "",
649
857
  "You can login with the following credentials:",
650
858
  `- username: ${source_default().cyan.bold("testuser")}`,
@@ -785,6 +993,186 @@ var SemVer;
785
993
 
786
994
  /***/ }),
787
995
 
996
+ /***/ 38367:
997
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
998
+
999
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1000
+ /* harmony export */ "I": () => (/* binding */ downloadAndExtractArchive)
1001
+ /* harmony export */ });
1002
+ /* harmony import */ var make_fetch_happen__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9525);
1003
+ /* harmony import */ var make_fetch_happen__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(make_fetch_happen__WEBPACK_IMPORTED_MODULE_0__);
1004
+ /* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(73292);
1005
+ /* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs_promises__WEBPACK_IMPORTED_MODULE_1__);
1006
+ /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(71017);
1007
+ /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_2__);
1008
+ /* harmony import */ var tsafe_assert__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(88078);
1009
+ /* harmony import */ var tsafe_assert__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(tsafe_assert__WEBPACK_IMPORTED_MODULE_3__);
1010
+ /* harmony import */ var _extractArchive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(29121);
1011
+ /* harmony import */ var _fs_existsAsync__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(43765);
1012
+ /* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(6113);
1013
+ /* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(crypto__WEBPACK_IMPORTED_MODULE_6__);
1014
+ /* harmony import */ var _fs_rm__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(8699);
1015
+
1016
+
1017
+
1018
+
1019
+
1020
+
1021
+
1022
+
1023
+ async function downloadAndExtractArchive(params) {
1024
+ var _a;
1025
+ const { url, uniqueIdOfOnArchiveFile, onArchiveFile, cacheDirPath, fetchOptions } = params;
1026
+ const archiveFileBasename = url.split("?")[0].split("/").reverse()[0];
1027
+ const archiveFilePath = (0,path__WEBPACK_IMPORTED_MODULE_2__.join)(cacheDirPath, archiveFileBasename);
1028
+ download: {
1029
+ await (0,fs_promises__WEBPACK_IMPORTED_MODULE_1__.mkdir)((0,path__WEBPACK_IMPORTED_MODULE_2__.dirname)(archiveFilePath), { recursive: true });
1030
+ if (await (0,_fs_existsAsync__WEBPACK_IMPORTED_MODULE_5__/* .existsAsync */ .o)(archiveFilePath)) {
1031
+ const isDownloaded = await SuccessTracker.getIsDownloaded({
1032
+ cacheDirPath,
1033
+ archiveFileBasename
1034
+ });
1035
+ if (isDownloaded) {
1036
+ break download;
1037
+ }
1038
+ await (0,fs_promises__WEBPACK_IMPORTED_MODULE_1__.unlink)(archiveFilePath);
1039
+ await SuccessTracker.removeFromDownloaded({
1040
+ cacheDirPath,
1041
+ archiveFileBasename
1042
+ });
1043
+ }
1044
+ const response = await make_fetch_happen__WEBPACK_IMPORTED_MODULE_0___default()(url, fetchOptions);
1045
+ (_a = response.body) === null || _a === void 0 ? void 0 : _a.setMaxListeners(Number.MAX_VALUE);
1046
+ (0,tsafe_assert__WEBPACK_IMPORTED_MODULE_3__.assert)(typeof response.body !== "undefined" && response.body != null);
1047
+ await (0,fs_promises__WEBPACK_IMPORTED_MODULE_1__.writeFile)(archiveFilePath, response.body);
1048
+ await SuccessTracker.markAsDownloaded({
1049
+ cacheDirPath,
1050
+ archiveFileBasename
1051
+ });
1052
+ }
1053
+ const extractDirBasename = `${archiveFileBasename.replace(/\.([^.]+)$/, (...[, ext]) => `_${ext}`)}_${uniqueIdOfOnArchiveFile}_${crypto__WEBPACK_IMPORTED_MODULE_6__.createHash("sha256")
1054
+ .update(onArchiveFile.toString())
1055
+ .digest("hex")
1056
+ .substring(0, 5)}`;
1057
+ await Promise.all((await (0,fs_promises__WEBPACK_IMPORTED_MODULE_1__.readdir)(cacheDirPath))
1058
+ .filter((() => {
1059
+ const prefix = extractDirBasename
1060
+ .split("_")
1061
+ .reverse()
1062
+ .slice(1)
1063
+ .reverse()
1064
+ .join("_");
1065
+ return basename => basename !== extractDirBasename && basename.startsWith(prefix);
1066
+ })())
1067
+ .map(async (extractDirBasename) => {
1068
+ await (0,_fs_rm__WEBPACK_IMPORTED_MODULE_7__.rm)((0,path__WEBPACK_IMPORTED_MODULE_2__.join)(cacheDirPath, extractDirBasename), {
1069
+ recursive: true
1070
+ });
1071
+ await SuccessTracker.removeFromExtracted({
1072
+ cacheDirPath,
1073
+ extractDirBasename
1074
+ });
1075
+ }));
1076
+ const extractedDirPath = (0,path__WEBPACK_IMPORTED_MODULE_2__.join)(cacheDirPath, extractDirBasename);
1077
+ extract_and_transform: {
1078
+ if (await (0,_fs_existsAsync__WEBPACK_IMPORTED_MODULE_5__/* .existsAsync */ .o)(extractedDirPath)) {
1079
+ const isExtracted = await SuccessTracker.getIsExtracted({
1080
+ cacheDirPath,
1081
+ extractDirBasename
1082
+ });
1083
+ if (isExtracted) {
1084
+ break extract_and_transform;
1085
+ }
1086
+ await (0,_fs_rm__WEBPACK_IMPORTED_MODULE_7__.rm)(extractedDirPath, { recursive: true });
1087
+ await SuccessTracker.removeFromExtracted({
1088
+ cacheDirPath,
1089
+ extractDirBasename
1090
+ });
1091
+ }
1092
+ await (0,_extractArchive__WEBPACK_IMPORTED_MODULE_4__/* .extractArchive */ .N)({
1093
+ archiveFilePath,
1094
+ onArchiveFile: async ({ relativeFilePathInArchive, readFile, writeFile }) => onArchiveFile({
1095
+ fileRelativePath: relativeFilePathInArchive,
1096
+ readFile,
1097
+ writeFile: ({ fileRelativePath, modifiedData }) => writeFile({
1098
+ filePath: (0,path__WEBPACK_IMPORTED_MODULE_2__.join)(extractedDirPath, fileRelativePath),
1099
+ modifiedData
1100
+ })
1101
+ })
1102
+ });
1103
+ await SuccessTracker.markAsExtracted({
1104
+ cacheDirPath,
1105
+ extractDirBasename
1106
+ });
1107
+ }
1108
+ return { extractedDirPath, archiveFilePath };
1109
+ }
1110
+ var SuccessTracker;
1111
+ (function (SuccessTracker) {
1112
+ async function read(params) {
1113
+ const { cacheDirPath } = params;
1114
+ const filePath = (0,path__WEBPACK_IMPORTED_MODULE_2__.join)(cacheDirPath, "downloadAndExtractArchive.json");
1115
+ if (!(await (0,_fs_existsAsync__WEBPACK_IMPORTED_MODULE_5__/* .existsAsync */ .o)(filePath))) {
1116
+ return { archiveFileBasenames: [], extractDirBasenames: [] };
1117
+ }
1118
+ return JSON.parse((await (0,fs_promises__WEBPACK_IMPORTED_MODULE_1__.readFile)(filePath)).toString("utf8"));
1119
+ }
1120
+ async function write(params) {
1121
+ const { cacheDirPath, successTracker } = params;
1122
+ const filePath = (0,path__WEBPACK_IMPORTED_MODULE_2__.join)(cacheDirPath, "downloadAndExtractArchive.json");
1123
+ {
1124
+ const dirPath = (0,path__WEBPACK_IMPORTED_MODULE_2__.dirname)(filePath);
1125
+ if (!(await (0,_fs_existsAsync__WEBPACK_IMPORTED_MODULE_5__/* .existsAsync */ .o)(dirPath))) {
1126
+ await (0,fs_promises__WEBPACK_IMPORTED_MODULE_1__.mkdir)(dirPath, { recursive: true });
1127
+ }
1128
+ }
1129
+ await (0,fs_promises__WEBPACK_IMPORTED_MODULE_1__.writeFile)(filePath, JSON.stringify(successTracker));
1130
+ }
1131
+ async function markAsDownloaded(params) {
1132
+ const { cacheDirPath, archiveFileBasename } = params;
1133
+ const successTracker = await read({ cacheDirPath });
1134
+ successTracker.archiveFileBasenames.push(archiveFileBasename);
1135
+ await write({ cacheDirPath, successTracker });
1136
+ }
1137
+ SuccessTracker.markAsDownloaded = markAsDownloaded;
1138
+ async function getIsDownloaded(params) {
1139
+ const { cacheDirPath, archiveFileBasename } = params;
1140
+ const successTracker = await read({ cacheDirPath });
1141
+ return successTracker.archiveFileBasenames.includes(archiveFileBasename);
1142
+ }
1143
+ SuccessTracker.getIsDownloaded = getIsDownloaded;
1144
+ async function removeFromDownloaded(params) {
1145
+ const { cacheDirPath, archiveFileBasename } = params;
1146
+ const successTracker = await read({ cacheDirPath });
1147
+ successTracker.archiveFileBasenames = successTracker.archiveFileBasenames.filter(basename => basename !== archiveFileBasename);
1148
+ await write({ cacheDirPath, successTracker });
1149
+ }
1150
+ SuccessTracker.removeFromDownloaded = removeFromDownloaded;
1151
+ async function markAsExtracted(params) {
1152
+ const { cacheDirPath, extractDirBasename } = params;
1153
+ const successTracker = await read({ cacheDirPath });
1154
+ successTracker.extractDirBasenames.push(extractDirBasename);
1155
+ await write({ cacheDirPath, successTracker });
1156
+ }
1157
+ SuccessTracker.markAsExtracted = markAsExtracted;
1158
+ async function getIsExtracted(params) {
1159
+ const { cacheDirPath, extractDirBasename } = params;
1160
+ const successTracker = await read({ cacheDirPath });
1161
+ return successTracker.extractDirBasenames.includes(extractDirBasename);
1162
+ }
1163
+ SuccessTracker.getIsExtracted = getIsExtracted;
1164
+ async function removeFromExtracted(params) {
1165
+ const { cacheDirPath, extractDirBasename } = params;
1166
+ const successTracker = await read({ cacheDirPath });
1167
+ successTracker.extractDirBasenames = successTracker.extractDirBasenames.filter(basename => basename !== extractDirBasename);
1168
+ await write({ cacheDirPath, successTracker });
1169
+ }
1170
+ SuccessTracker.removeFromExtracted = removeFromExtracted;
1171
+ })(SuccessTracker || (SuccessTracker = {}));
1172
+ //# sourceMappingURL=downloadAndExtractArchive.js.map
1173
+
1174
+ /***/ }),
1175
+
788
1176
  /***/ 29121:
789
1177
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
790
1178