keycloakify 9.6.6 → 10.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/README.md +1 -1
  2. package/account/Template.js +34 -14
  3. package/account/Template.js.map +1 -1
  4. package/account/i18n/baseMessages/de.d.ts +1 -1
  5. package/account/i18n/baseMessages/de.js +1 -1
  6. package/account/i18n/baseMessages/de.js.map +1 -1
  7. package/account/i18n/baseMessages/en.d.ts +2 -0
  8. package/account/i18n/baseMessages/en.js +2 -0
  9. package/account/i18n/baseMessages/en.js.map +1 -1
  10. package/account/i18n/baseMessages/es.d.ts +230 -0
  11. package/account/i18n/baseMessages/es.js +231 -1
  12. package/account/i18n/baseMessages/es.js.map +1 -1
  13. package/account/i18n/baseMessages/index.d.ts +353 -407
  14. package/account/i18n/baseMessages/index.js +1 -0
  15. package/account/i18n/baseMessages/index.js.map +1 -1
  16. package/account/i18n/baseMessages/pl.d.ts +115 -1
  17. package/account/i18n/baseMessages/pl.js +115 -1
  18. package/account/i18n/baseMessages/pl.js.map +1 -1
  19. package/account/i18n/baseMessages/tr.d.ts +1 -1
  20. package/account/i18n/baseMessages/tr.js +1 -1
  21. package/account/i18n/baseMessages/tr.js.map +1 -1
  22. package/account/i18n/baseMessages/uk.d.ts +337 -0
  23. package/account/i18n/baseMessages/uk.js +342 -0
  24. package/account/i18n/baseMessages/uk.js.map +1 -0
  25. package/account/i18n/baseMessages/zh-CN.d.ts +10 -0
  26. package/account/i18n/baseMessages/zh-CN.js +10 -0
  27. package/account/i18n/baseMessages/zh-CN.js.map +1 -1
  28. package/bin/constants.d.ts +0 -1
  29. package/bin/constants.js +1 -2
  30. package/bin/constants.js.map +1 -1
  31. package/bin/download-builtin-keycloak-theme.js +12 -2
  32. package/bin/download-builtin-keycloak-theme.js.map +1 -1
  33. package/bin/keycloakify/buildJars/buildJar.d.ts +14 -0
  34. package/bin/keycloakify/buildJars/buildJar.js +216 -0
  35. package/bin/keycloakify/buildJars/buildJar.js.map +1 -0
  36. package/bin/keycloakify/buildJars/buildJars.d.ts +10 -0
  37. package/bin/keycloakify/buildJars/buildJars.js +95 -0
  38. package/bin/keycloakify/buildJars/buildJars.js.map +1 -0
  39. package/bin/keycloakify/buildJars/extensionVersions.d.ts +12 -0
  40. package/bin/keycloakify/buildJars/extensionVersions.js +7 -0
  41. package/bin/keycloakify/buildJars/extensionVersions.js.map +1 -0
  42. package/bin/keycloakify/buildJars/generatePom.d.ts +13 -0
  43. package/bin/keycloakify/buildJars/generatePom.js +94 -0
  44. package/bin/keycloakify/buildJars/generatePom.js.map +1 -0
  45. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.d.ts +6 -0
  46. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.js +35 -0
  47. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.js.map +1 -0
  48. package/bin/keycloakify/buildJars/index.d.ts +1 -0
  49. package/bin/keycloakify/buildJars/index.js +18 -0
  50. package/bin/keycloakify/buildJars/index.js.map +1 -0
  51. package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.d.ts +0 -8
  52. package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.js +1 -3
  53. package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.js.map +1 -1
  54. package/bin/keycloakify/buildOptions/buildOptions.d.ts +0 -2
  55. package/bin/keycloakify/buildOptions/buildOptions.js +3 -5
  56. package/bin/keycloakify/buildOptions/buildOptions.js.map +1 -1
  57. package/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.js +1 -1
  58. package/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.js.map +1 -1
  59. package/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +103 -232
  60. package/bin/keycloakify/generateFtl/generateFtl.js +17 -39
  61. package/bin/keycloakify/generateFtl/generateFtl.js.map +1 -1
  62. package/bin/keycloakify/generateFtl/pageId.d.ts +1 -1
  63. package/bin/keycloakify/generateFtl/pageId.js +11 -3
  64. package/bin/keycloakify/generateFtl/pageId.js.map +1 -1
  65. package/bin/keycloakify/generateStartKeycloakTestingContainer.d.ts +0 -1
  66. package/bin/keycloakify/generateStartKeycloakTestingContainer.js +3 -6
  67. package/bin/keycloakify/generateStartKeycloakTestingContainer.js.map +1 -1
  68. package/bin/keycloakify/generateTheme/bringInAccountV1.d.ts +1 -1
  69. package/bin/keycloakify/generateTheme/bringInAccountV1.js +5 -9
  70. package/bin/keycloakify/generateTheme/bringInAccountV1.js.map +1 -1
  71. package/bin/keycloakify/generateTheme/generateSrcMainResources.d.ts +21 -0
  72. package/bin/keycloakify/generateTheme/generateSrcMainResources.js +340 -0
  73. package/bin/keycloakify/generateTheme/generateSrcMainResources.js.map +1 -0
  74. package/bin/keycloakify/generateTheme/generateTheme.d.ts +5 -13
  75. package/bin/keycloakify/generateTheme/generateTheme.js +30 -293
  76. package/bin/keycloakify/generateTheme/generateTheme.js.map +1 -1
  77. package/bin/keycloakify/generateTheme/generateThemeVariants.d.ts +5 -0
  78. package/bin/keycloakify/generateTheme/generateThemeVariants.js +67 -0
  79. package/bin/keycloakify/generateTheme/generateThemeVariants.js.map +1 -0
  80. package/bin/keycloakify/generateTheme/readFieldNameUsage.js +54 -18
  81. package/bin/keycloakify/generateTheme/readFieldNameUsage.js.map +1 -1
  82. package/bin/keycloakify/keycloakify.js +28 -104
  83. package/bin/keycloakify/keycloakify.js.map +1 -1
  84. package/lib/useGetClassName.js +2 -2
  85. package/lib/useGetClassName.js.map +1 -1
  86. package/login/Fallback.d.ts +7 -1
  87. package/login/Fallback.js +32 -8
  88. package/login/Fallback.js.map +1 -1
  89. package/login/Template.js +76 -20
  90. package/login/Template.js.map +1 -1
  91. package/login/TemplateProps.d.ts +4 -2
  92. package/login/UserProfileFormFields.d.ts +22 -0
  93. package/login/UserProfileFormFields.js +327 -0
  94. package/login/UserProfileFormFields.js.map +1 -0
  95. package/login/i18n/baseMessages/ar.d.ts +3 -0
  96. package/login/i18n/baseMessages/ar.js +3 -0
  97. package/login/i18n/baseMessages/ar.js.map +1 -1
  98. package/login/i18n/baseMessages/ca.d.ts +1 -0
  99. package/login/i18n/baseMessages/ca.js +1 -0
  100. package/login/i18n/baseMessages/ca.js.map +1 -1
  101. package/login/i18n/baseMessages/cs.d.ts +3 -0
  102. package/login/i18n/baseMessages/cs.js +3 -0
  103. package/login/i18n/baseMessages/cs.js.map +1 -1
  104. package/login/i18n/baseMessages/da.d.ts +1 -0
  105. package/login/i18n/baseMessages/da.js +1 -0
  106. package/login/i18n/baseMessages/da.js.map +1 -1
  107. package/login/i18n/baseMessages/de.d.ts +1 -0
  108. package/login/i18n/baseMessages/de.js +1 -0
  109. package/login/i18n/baseMessages/de.js.map +1 -1
  110. package/login/i18n/baseMessages/el.d.ts +1 -0
  111. package/login/i18n/baseMessages/el.js +1 -0
  112. package/login/i18n/baseMessages/el.js.map +1 -1
  113. package/login/i18n/baseMessages/en.d.ts +7 -0
  114. package/login/i18n/baseMessages/en.js +23 -16
  115. package/login/i18n/baseMessages/en.js.map +1 -1
  116. package/login/i18n/baseMessages/es.d.ts +239 -0
  117. package/login/i18n/baseMessages/es.js +240 -1
  118. package/login/i18n/baseMessages/es.js.map +1 -1
  119. package/login/i18n/baseMessages/fa.d.ts +1 -0
  120. package/login/i18n/baseMessages/fa.js +1 -0
  121. package/login/i18n/baseMessages/fa.js.map +1 -1
  122. package/login/i18n/baseMessages/fi.d.ts +1 -0
  123. package/login/i18n/baseMessages/fi.js +1 -0
  124. package/login/i18n/baseMessages/fi.js.map +1 -1
  125. package/login/i18n/baseMessages/fr.d.ts +1 -0
  126. package/login/i18n/baseMessages/fr.js +2 -1
  127. package/login/i18n/baseMessages/fr.js.map +1 -1
  128. package/login/i18n/baseMessages/hu.d.ts +1 -0
  129. package/login/i18n/baseMessages/hu.js +1 -0
  130. package/login/i18n/baseMessages/hu.js.map +1 -1
  131. package/login/i18n/baseMessages/index.d.ts +211 -416
  132. package/login/i18n/baseMessages/index.js +1 -0
  133. package/login/i18n/baseMessages/index.js.map +1 -1
  134. package/login/i18n/baseMessages/it.d.ts +1 -0
  135. package/login/i18n/baseMessages/it.js +1 -0
  136. package/login/i18n/baseMessages/it.js.map +1 -1
  137. package/login/i18n/baseMessages/ja.d.ts +1 -0
  138. package/login/i18n/baseMessages/ja.js +1 -0
  139. package/login/i18n/baseMessages/ja.js.map +1 -1
  140. package/login/i18n/baseMessages/lt.d.ts +1 -0
  141. package/login/i18n/baseMessages/lt.js +1 -0
  142. package/login/i18n/baseMessages/lt.js.map +1 -1
  143. package/login/i18n/baseMessages/lv.d.ts +1 -0
  144. package/login/i18n/baseMessages/lv.js +1 -0
  145. package/login/i18n/baseMessages/lv.js.map +1 -1
  146. package/login/i18n/baseMessages/nl.d.ts +1 -0
  147. package/login/i18n/baseMessages/nl.js +1 -0
  148. package/login/i18n/baseMessages/nl.js.map +1 -1
  149. package/login/i18n/baseMessages/no.d.ts +1 -0
  150. package/login/i18n/baseMessages/no.js +1 -0
  151. package/login/i18n/baseMessages/no.js.map +1 -1
  152. package/login/i18n/baseMessages/pl.d.ts +1 -0
  153. package/login/i18n/baseMessages/pl.js +1 -0
  154. package/login/i18n/baseMessages/pl.js.map +1 -1
  155. package/login/i18n/baseMessages/pt-BR.d.ts +1 -0
  156. package/login/i18n/baseMessages/pt-BR.js +1 -0
  157. package/login/i18n/baseMessages/pt-BR.js.map +1 -1
  158. package/login/i18n/baseMessages/ru.d.ts +1 -0
  159. package/login/i18n/baseMessages/ru.js +1 -0
  160. package/login/i18n/baseMessages/ru.js.map +1 -1
  161. package/login/i18n/baseMessages/sk.d.ts +2 -0
  162. package/login/i18n/baseMessages/sk.js +3 -1
  163. package/login/i18n/baseMessages/sk.js.map +1 -1
  164. package/login/i18n/baseMessages/sv.d.ts +1 -0
  165. package/login/i18n/baseMessages/sv.js +1 -0
  166. package/login/i18n/baseMessages/sv.js.map +1 -1
  167. package/login/i18n/baseMessages/th.d.ts +1 -0
  168. package/login/i18n/baseMessages/th.js +1 -0
  169. package/login/i18n/baseMessages/th.js.map +1 -1
  170. package/login/i18n/baseMessages/tr.d.ts +1 -0
  171. package/login/i18n/baseMessages/tr.js +1 -0
  172. package/login/i18n/baseMessages/tr.js.map +1 -1
  173. package/login/i18n/baseMessages/uk.d.ts +433 -0
  174. package/login/i18n/baseMessages/uk.js +438 -0
  175. package/login/i18n/baseMessages/uk.js.map +1 -0
  176. package/login/i18n/baseMessages/zh-CN.d.ts +273 -3
  177. package/login/i18n/baseMessages/zh-CN.js +325 -55
  178. package/login/i18n/baseMessages/zh-CN.js.map +1 -1
  179. package/login/i18n/i18n.d.ts +4 -0
  180. package/login/i18n/i18n.js +6 -2
  181. package/login/i18n/i18n.js.map +1 -1
  182. package/login/kcContext/KcContext.d.ts +181 -105
  183. package/login/kcContext/KcContext.js +1 -1
  184. package/login/kcContext/KcContext.js.map +1 -1
  185. package/login/kcContext/createGetKcContext.js +3 -9
  186. package/login/kcContext/createGetKcContext.js.map +1 -1
  187. package/login/kcContext/kcContextMocks.d.ts +1 -1
  188. package/login/kcContext/kcContextMocks.js +92 -198
  189. package/login/kcContext/kcContextMocks.js.map +1 -1
  190. package/login/lib/useDownloadTerms.d.ts +4 -1
  191. package/login/lib/useDownloadTerms.js +9 -4
  192. package/login/lib/useDownloadTerms.js.map +1 -1
  193. package/login/lib/useGetClassName.js +112 -73
  194. package/login/lib/useGetClassName.js.map +1 -1
  195. package/login/lib/useUserProfileForm.d.ts +74 -0
  196. package/login/lib/useUserProfileForm.js +868 -0
  197. package/login/lib/useUserProfileForm.js.map +1 -0
  198. package/login/pages/{UpdateUserProfile.d.ts → Code.d.ts} +2 -2
  199. package/login/pages/Code.js +13 -0
  200. package/login/pages/Code.js.map +1 -0
  201. package/login/pages/DeleteAccountConfirm.d.ts +7 -0
  202. package/login/pages/DeleteAccountConfirm.js +14 -0
  203. package/login/pages/DeleteAccountConfirm.js.map +1 -0
  204. package/login/pages/{RegisterUserProfile.d.ts → DeleteCredential.d.ts} +2 -2
  205. package/login/pages/DeleteCredential.js +14 -0
  206. package/login/pages/DeleteCredential.js.map +1 -0
  207. package/login/pages/Error.js +2 -2
  208. package/login/pages/Error.js.map +1 -1
  209. package/login/pages/FrontchannelLogout.d.ts +7 -0
  210. package/login/pages/FrontchannelLogout.js +14 -0
  211. package/login/pages/FrontchannelLogout.js.map +1 -0
  212. package/login/pages/IdpReviewUserProfile.d.ts +8 -2
  213. package/login/pages/IdpReviewUserProfile.js +3 -4
  214. package/login/pages/IdpReviewUserProfile.js.map +1 -1
  215. package/login/pages/Info.js +14 -1
  216. package/login/pages/Info.js.map +1 -1
  217. package/login/pages/Login.js +24 -38
  218. package/login/pages/Login.js.map +1 -1
  219. package/login/pages/LoginConfigTotp.js +8 -1
  220. package/login/pages/LoginConfigTotp.js.map +1 -1
  221. package/login/pages/{LoginDeviceVerifyUserCode.d.ts → LoginOauth2DeviceVerifyUserCode.d.ts} +1 -1
  222. package/login/pages/{LoginDeviceVerifyUserCode.js → LoginOauth2DeviceVerifyUserCode.js} +2 -2
  223. package/login/pages/LoginOauth2DeviceVerifyUserCode.js.map +1 -0
  224. package/login/pages/LoginOauthGrant.js +3 -2
  225. package/login/pages/LoginOauthGrant.js.map +1 -1
  226. package/login/pages/LoginOtp.js +4 -6
  227. package/login/pages/LoginOtp.js.map +1 -1
  228. package/login/pages/LoginPageExpired.js +1 -1
  229. package/login/pages/LoginPageExpired.js.map +1 -1
  230. package/login/pages/LoginPassword.d.ts +1 -1
  231. package/login/pages/LoginPassword.js +18 -11
  232. package/login/pages/LoginPassword.js.map +1 -1
  233. package/login/pages/LoginRecoveryAuthnCodeConfig.d.ts +7 -0
  234. package/login/pages/LoginRecoveryAuthnCodeConfig.js +147 -0
  235. package/login/pages/LoginRecoveryAuthnCodeConfig.js.map +1 -0
  236. package/login/pages/LoginRecoveryAuthnCodeInput.d.ts +7 -0
  237. package/login/pages/LoginRecoveryAuthnCodeInput.js +14 -0
  238. package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -0
  239. package/login/pages/LoginResetOtp.d.ts +7 -0
  240. package/login/pages/LoginResetOtp.js +15 -0
  241. package/login/pages/LoginResetOtp.js.map +1 -0
  242. package/login/pages/LoginResetPassword.js +4 -3
  243. package/login/pages/LoginResetPassword.js.map +1 -1
  244. package/login/pages/LoginUpdatePassword.js +21 -3
  245. package/login/pages/LoginUpdatePassword.js.map +1 -1
  246. package/login/pages/LoginUpdateProfile.d.ts +8 -2
  247. package/login/pages/LoginUpdateProfile.js +11 -5
  248. package/login/pages/LoginUpdateProfile.js.map +1 -1
  249. package/login/pages/LoginUsername.js +11 -35
  250. package/login/pages/LoginUsername.js.map +1 -1
  251. package/login/pages/LoginVerifyEmail.js +1 -1
  252. package/login/pages/LoginVerifyEmail.js.map +1 -1
  253. package/login/pages/LoginX509Info.d.ts +7 -0
  254. package/login/pages/LoginX509Info.js +14 -0
  255. package/login/pages/LoginX509Info.js.map +1 -0
  256. package/login/pages/LogoutConfirm.js +1 -1
  257. package/login/pages/LogoutConfirm.js.map +1 -1
  258. package/login/pages/Register.d.ts +8 -2
  259. package/login/pages/Register.js +26 -4
  260. package/login/pages/Register.js.map +1 -1
  261. package/login/pages/SamlPostForm.js +1 -1
  262. package/login/pages/SamlPostForm.js.map +1 -1
  263. package/login/pages/SelectAuthenticator.js +5 -21
  264. package/login/pages/SelectAuthenticator.js.map +1 -1
  265. package/login/pages/Terms.js +4 -6
  266. package/login/pages/Terms.js.map +1 -1
  267. package/login/pages/UpdateEmail.d.ts +8 -2
  268. package/login/pages/UpdateEmail.js +16 -5
  269. package/login/pages/UpdateEmail.js.map +1 -1
  270. package/login/pages/WebauthnAuthenticate.js +121 -83
  271. package/login/pages/WebauthnAuthenticate.js.map +1 -1
  272. package/login/pages/WebauthnError.d.ts +7 -0
  273. package/login/pages/WebauthnError.js +21 -0
  274. package/login/pages/WebauthnError.js.map +1 -0
  275. package/login/pages/WebauthnRegister.d.ts +7 -0
  276. package/login/pages/WebauthnRegister.js +193 -0
  277. package/login/pages/WebauthnRegister.js.map +1 -0
  278. package/package.json +138 -43
  279. package/src/account/Template.tsx +41 -14
  280. package/src/account/i18n/baseMessages/de.ts +1 -1
  281. package/src/account/i18n/baseMessages/en.ts +2 -0
  282. package/src/account/i18n/baseMessages/es.ts +231 -1
  283. package/src/account/i18n/baseMessages/index.ts +1 -0
  284. package/src/account/i18n/baseMessages/pl.ts +115 -1
  285. package/src/account/i18n/baseMessages/tr.ts +1 -1
  286. package/src/account/i18n/baseMessages/uk.ts +343 -0
  287. package/src/account/i18n/baseMessages/zh-CN.ts +10 -0
  288. package/src/bin/constants.ts +0 -1
  289. package/src/bin/download-builtin-keycloak-theme.ts +14 -1
  290. package/src/bin/keycloakify/buildJars/buildJar.ts +163 -0
  291. package/src/bin/keycloakify/buildJars/buildJars.ts +62 -0
  292. package/src/bin/keycloakify/buildJars/extensionVersions.ts +16 -0
  293. package/src/bin/keycloakify/buildJars/generatePom.ts +86 -0
  294. package/src/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.ts +37 -0
  295. package/src/bin/keycloakify/buildJars/index.ts +1 -0
  296. package/src/bin/keycloakify/buildOptions/UserProvidedBuildOptions.ts +1 -5
  297. package/src/bin/keycloakify/buildOptions/buildOptions.ts +1 -5
  298. package/src/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.ts +1 -1
  299. package/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +103 -232
  300. package/src/bin/keycloakify/generateFtl/generateFtl.ts +15 -31
  301. package/src/bin/keycloakify/generateFtl/pageId.ts +11 -3
  302. package/src/bin/keycloakify/generateStartKeycloakTestingContainer.ts +4 -8
  303. package/src/bin/keycloakify/generateTheme/bringInAccountV1.ts +5 -11
  304. package/src/bin/keycloakify/generateTheme/generateSrcMainResources.ts +267 -0
  305. package/src/bin/keycloakify/generateTheme/generateTheme.ts +22 -309
  306. package/src/bin/keycloakify/generateTheme/generateThemeVariants.ts +50 -0
  307. package/src/bin/keycloakify/generateTheme/readFieldNameUsage.ts +33 -8
  308. package/src/bin/keycloakify/keycloakify.ts +23 -56
  309. package/src/lib/useGetClassName.ts +2 -2
  310. package/src/login/Fallback.tsx +39 -9
  311. package/src/login/Template.tsx +160 -61
  312. package/src/login/TemplateProps.ts +113 -63
  313. package/src/login/UserProfileFormFields.tsx +750 -0
  314. package/src/login/i18n/baseMessages/ar.ts +3 -0
  315. package/src/login/i18n/baseMessages/ca.ts +1 -0
  316. package/src/login/i18n/baseMessages/cs.ts +3 -0
  317. package/src/login/i18n/baseMessages/da.ts +1 -0
  318. package/src/login/i18n/baseMessages/de.ts +1 -0
  319. package/src/login/i18n/baseMessages/el.ts +1 -0
  320. package/src/login/i18n/baseMessages/en.ts +23 -16
  321. package/src/login/i18n/baseMessages/es.ts +240 -1
  322. package/src/login/i18n/baseMessages/fa.ts +1 -0
  323. package/src/login/i18n/baseMessages/fi.ts +1 -0
  324. package/src/login/i18n/baseMessages/fr.ts +2 -1
  325. package/src/login/i18n/baseMessages/hu.ts +1 -0
  326. package/src/login/i18n/baseMessages/index.ts +1 -0
  327. package/src/login/i18n/baseMessages/it.ts +1 -0
  328. package/src/login/i18n/baseMessages/ja.ts +1 -0
  329. package/src/login/i18n/baseMessages/lt.ts +1 -0
  330. package/src/login/i18n/baseMessages/lv.ts +1 -0
  331. package/src/login/i18n/baseMessages/nl.ts +1 -0
  332. package/src/login/i18n/baseMessages/no.ts +1 -0
  333. package/src/login/i18n/baseMessages/pl.ts +1 -0
  334. package/src/login/i18n/baseMessages/pt-BR.ts +1 -0
  335. package/src/login/i18n/baseMessages/ru.ts +1 -0
  336. package/src/login/i18n/baseMessages/sk.ts +3 -1
  337. package/src/login/i18n/baseMessages/sv.ts +1 -0
  338. package/src/login/i18n/baseMessages/th.ts +1 -0
  339. package/src/login/i18n/baseMessages/tr.ts +1 -0
  340. package/src/login/i18n/baseMessages/uk.ts +439 -0
  341. package/src/login/i18n/baseMessages/zh-CN.ts +325 -55
  342. package/src/login/i18n/i18n.tsx +6 -2
  343. package/src/login/kcContext/KcContext.ts +216 -103
  344. package/src/login/kcContext/createGetKcContext.ts +11 -19
  345. package/src/login/kcContext/kcContextMocks.ts +165 -226
  346. package/src/login/lib/useDownloadTerms.ts +15 -7
  347. package/src/login/lib/useGetClassName.ts +112 -83
  348. package/src/login/lib/useUserProfileForm.tsx +1227 -0
  349. package/src/login/pages/Code.tsx +35 -0
  350. package/src/login/pages/DeleteAccountConfirm.tsx +53 -0
  351. package/src/login/pages/DeleteCredential.tsx +45 -0
  352. package/src/login/pages/Error.tsx +2 -2
  353. package/src/login/pages/FrontchannelLogout.tsx +41 -0
  354. package/src/login/pages/IdpReviewUserProfile.tsx +15 -5
  355. package/src/login/pages/Info.tsx +29 -19
  356. package/src/login/pages/Login.tsx +156 -117
  357. package/src/login/pages/LoginConfigTotp.tsx +26 -1
  358. package/src/login/pages/{LoginDeviceVerifyUserCode.tsx → LoginOauth2DeviceVerifyUserCode.tsx} +3 -1
  359. package/src/login/pages/LoginOauthGrant.tsx +38 -2
  360. package/src/login/pages/LoginOtp.tsx +73 -65
  361. package/src/login/pages/LoginPageExpired.tsx +1 -1
  362. package/src/login/pages/LoginPassword.tsx +77 -28
  363. package/src/login/pages/LoginRecoveryAuthnCodeConfig.tsx +260 -0
  364. package/src/login/pages/LoginRecoveryAuthnCodeInput.tsx +73 -0
  365. package/src/login/pages/LoginResetOtp.tsx +70 -0
  366. package/src/login/pages/LoginResetPassword.tsx +11 -4
  367. package/src/login/pages/LoginUpdatePassword.tsx +120 -81
  368. package/src/login/pages/LoginUpdateProfile.tsx +41 -115
  369. package/src/login/pages/LoginUsername.tsx +93 -101
  370. package/src/login/pages/LoginVerifyEmail.tsx +14 -8
  371. package/src/login/pages/LoginX509Info.tsx +94 -0
  372. package/src/login/pages/LogoutConfirm.tsx +2 -2
  373. package/src/login/pages/Register.tsx +83 -131
  374. package/src/login/pages/SamlPostForm.tsx +1 -1
  375. package/src/login/pages/SelectAuthenticator.tsx +29 -52
  376. package/src/login/pages/Terms.tsx +4 -7
  377. package/src/login/pages/UpdateEmail.tsx +69 -54
  378. package/src/login/pages/WebauthnAuthenticate.tsx +205 -165
  379. package/src/login/pages/WebauthnError.tsx +66 -0
  380. package/src/login/pages/WebauthnRegister.tsx +285 -0
  381. package/src/tools/formatNumber.ts +48 -0
  382. package/src/tools/useInsertLinkTags.ts +82 -0
  383. package/src/tools/useInsertScriptTags.ts +106 -0
  384. package/src/tools/useSetClassName.ts +21 -0
  385. package/tools/formatNumber.d.ts +1 -0
  386. package/tools/formatNumber.js +37 -0
  387. package/tools/formatNumber.js.map +1 -0
  388. package/tools/useInsertLinkTags.d.ts +7 -0
  389. package/tools/useInsertLinkTags.js +57 -0
  390. package/tools/useInsertLinkTags.js.map +1 -0
  391. package/tools/useInsertScriptTags.d.ts +20 -0
  392. package/tools/useInsertScriptTags.js +75 -0
  393. package/tools/useInsertScriptTags.js.map +1 -0
  394. package/tools/useSetClassName.d.ts +4 -0
  395. package/tools/useSetClassName.js +16 -0
  396. package/tools/useSetClassName.js.map +1 -0
  397. package/vite-plugin/tsconfig.tsbuildinfo +1 -1
  398. package/bin/keycloakify/generatePom.d.ts +0 -12
  399. package/bin/keycloakify/generatePom.js +0 -59
  400. package/bin/keycloakify/generatePom.js.map +0 -1
  401. package/lib/usePrepareTemplate.d.ts +0 -11
  402. package/lib/usePrepareTemplate.js +0 -80
  403. package/lib/usePrepareTemplate.js.map +0 -1
  404. package/login/lib/useFormValidation.d.ts +0 -47
  405. package/login/lib/useFormValidation.js +0 -316
  406. package/login/lib/useFormValidation.js.map +0 -1
  407. package/login/pages/LoginDeviceVerifyUserCode.js.map +0 -1
  408. package/login/pages/RegisterUserProfile.js +0 -18
  409. package/login/pages/RegisterUserProfile.js.map +0 -1
  410. package/login/pages/UpdateUserProfile.js +0 -17
  411. package/login/pages/UpdateUserProfile.js.map +0 -1
  412. package/login/pages/shared/UserProfileFormFields.d.ts +0 -18
  413. package/login/pages/shared/UserProfileFormFields.js +0 -58
  414. package/login/pages/shared/UserProfileFormFields.js.map +0 -1
  415. package/src/bin/keycloakify/generatePom.ts +0 -70
  416. package/src/lib/usePrepareTemplate.ts +0 -113
  417. package/src/login/lib/useFormValidation.tsx +0 -474
  418. package/src/login/pages/RegisterUserProfile.tsx +0 -72
  419. package/src/login/pages/UpdateUserProfile.tsx +0 -82
  420. package/src/login/pages/shared/UserProfileFormFields.tsx +0 -177
  421. package/src/tools/headInsert.ts +0 -73
  422. package/tools/headInsert.d.ts +0 -12
  423. package/tools/headInsert.js +0 -50
  424. package/tools/headInsert.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateEmail.js","sourceRoot":"","sources":["../../src/login/pages/UpdateEmail.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UpdateEmail.js","sourceRoot":"","sources":["../../src/login/pages/UpdateEmail.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAI9C,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAQxE,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAuB;IACvD,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,EAAE,GAAG,KAAK,CAAC;IAE7F,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC;QACrC,eAAe;QACf,OAAO;KACV,CAAC,CAAC;IAEH,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE7B,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElE,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,GAAG,SAAS,CAAC;IAElE,OAAO,CACH,KAAC,QAAQ,oBACD,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IACjD,cAAc,EAAE,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,EACjD,qBAAqB,EAAE,IAAI,EAC3B,UAAU,EAAE,GAAG,CAAC,kBAAkB,CAAC,gBAEnC,8BAAM,EAAE,EAAC,sBAAsB,EAAC,SAAS,EAAE,YAAY,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,EAAC,MAAM,iBAC1G,KAAC,qBAAqB,oBACd;oBACA,SAAS;oBACT,IAAI;oBACJ,YAAY;oBACZ,gBAAgB;iBACnB,IACD,8BAA8B,EAAE,oBAAoB,IACtD,EAEF,6BAAK,SAAS,EAAE,YAAY,CAAC,kBAAkB,CAAC,iBAC5C,4BAAK,EAAE,EAAC,iBAAiB,EAAC,SAAS,EAAE,YAAY,CAAC,oBAAoB,CAAC,gBACnE,cAAK,SAAS,EAAE,YAAY,CAAC,2BAA2B,CAAC,GAAI,IAC3D,EAEN,KAAC,mBAAmB,oBAAK,EAAE,YAAY,EAAE,IAAI,EAAE,EAAI,EAEnD,6BAAK,EAAE,EAAC,iBAAiB,EAAC,SAAS,EAAE,YAAY,CAAC,oBAAoB,CAAC,iBACnE,gBACI,QAAQ,EAAE,CAAC,iBAAiB,EAC5B,SAAS,EAAE,IAAI,CACX,YAAY,CAAC,eAAe,CAAC,EAC7B,YAAY,CAAC,sBAAsB,CAAC,EACpC,oBAAoB,IAAI,YAAY,CAAC,oBAAoB,CAAC,EAC1D,YAAY,CAAC,oBAAoB,CAAC,CACrC,EACD,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,GAC3B,EACD,oBAAoB,IAAI,CACrB,+BACI,SAAS,EAAE,IAAI,CACX,YAAY,CAAC,eAAe,CAAC,EAC7B,YAAY,CAAC,sBAAsB,CAAC,EACpC,YAAY,CAAC,oBAAoB,CAAC,CACrC,EACD,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,YAAY,EACjB,KAAK,EAAC,MAAM,gBAEX,GAAG,CAAC,UAAU,CAAC,IACX,CACZ,KACC,KACJ,KACH,IACA,CACd,CAAC;AACN,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAuF;IAChH,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAErC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAErB,OAAO,CACH,4BAAK,EAAE,EAAC,iBAAiB,EAAC,SAAS,EAAE,YAAY,CAAC,oBAAoB,CAAC,gBACnE,4BAAK,SAAS,EAAE,YAAY,CAAC,2BAA2B,CAAC,gBACrD,4BAAK,SAAS,EAAC,UAAU,gBACrB,4BACI,gBAAO,IAAI,EAAC,UAAU,EAAC,EAAE,EAAC,iBAAiB,EAAC,IAAI,EAAC,iBAAiB,EAAC,KAAK,EAAC,IAAI,EAAC,cAAc,EAAE,IAAI,GAAI,EACrG,GAAG,CAAC,qBAAqB,CAAC,IACvB,IACN,IACJ,IACJ,CACT,CAAC;AACN,CAAC"}
@@ -1,95 +1,133 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useRef, useState } from "react";
2
+ import { useEffect, Fragment } from "react";
3
3
  import { clsx } from "../../tools/clsx";
4
- import { base64url } from "rfc4648";
5
- import { useConstCallback } from "../../tools/useConstCallback";
6
4
  import { useGetClassName } from "../../login/lib/useGetClassName";
7
5
  import { assert } from "tsafe/assert";
8
- import { is } from "tsafe/is";
9
- import { typeGuard } from "tsafe/typeGuard";
6
+ import { createUseInsertScriptTags } from "../../tools/useInsertScriptTags";
7
+ const { useInsertScriptTags } = createUseInsertScriptTags();
10
8
  export default function WebauthnAuthenticate(props) {
11
9
  const { kcContext, i18n, doUseDefaultCss, Template, classes } = props;
12
10
  const { getClassName } = useGetClassName({ doUseDefaultCss, classes });
13
- const { url } = kcContext;
11
+ const { url, isUserIdentified, challenge, userVerification, rpId, createTimeout, messagesPerField, realm, registrationDisabled, authenticators, shouldDisplayAuthenticators } = kcContext;
14
12
  const { msg, msgStr } = i18n;
15
- const { authenticators, challenge, shouldDisplayAuthenticators, userVerification, rpId } = kcContext;
16
- const createTimeout = Number(kcContext.createTimeout);
17
- const isUserIdentified = kcContext.isUserIdentified == "true";
18
- const formElementRef = useRef(null);
19
- const webAuthnAuthenticate = useConstCallback(async () => {
20
- if (!isUserIdentified) {
21
- return;
22
- }
23
- const submitForm = async () => {
24
- const formElement = formElementRef.current;
25
- if (formElement === null) {
26
- await new Promise(resolve => setTimeout(resolve, 100));
27
- return submitForm();
13
+ const { insertScriptTags } = useInsertScriptTags({
14
+ "scriptTags": [
15
+ {
16
+ "type": "text/javascript",
17
+ "src": `${url.resourcesCommonPath}/node_modules/jquery/dist/jquery.min.js`
18
+ },
19
+ {
20
+ "type": "text/javascript",
21
+ "src": `${url.resourcesPath}/js/base64url.js`
22
+ },
23
+ {
24
+ "type": "text/javascript",
25
+ "textContent": `
26
+
27
+ function webAuthnAuthenticate() {
28
+ let isUserIdentified = ${isUserIdentified};
29
+ if (!isUserIdentified) {
30
+ doAuthenticate([]);
31
+ return;
32
+ }
33
+ checkAllowCredentials();
34
+ }
35
+
36
+ function checkAllowCredentials() {
37
+ let allowCredentials = [];
38
+ let authn_use = document.forms['authn_select'].authn_use_chk;
39
+
40
+ if (authn_use !== undefined) {
41
+ if (authn_use.length === undefined) {
42
+ allowCredentials.push({
43
+ id: base64url.decode(authn_use.value, {loose: true}),
44
+ type: 'public-key',
45
+ });
46
+ } else {
47
+ for (let i = 0; i < authn_use.length; i++) {
48
+ allowCredentials.push({
49
+ id: base64url.decode(authn_use[i].value, {loose: true}),
50
+ type: 'public-key',
51
+ });
52
+ }
53
+ }
54
+ }
55
+ doAuthenticate(allowCredentials);
56
+ }
57
+
58
+
59
+ function doAuthenticate(allowCredentials) {
60
+
61
+ // Check if WebAuthn is supported by this browser
62
+ if (!window.PublicKeyCredential) {
63
+ $("#error").val("${msgStr("webauthn-unsupported-browser-text")}");
64
+ $("#webauth").submit();
65
+ return;
66
+ }
67
+
68
+ let challenge = "${challenge}";
69
+ let userVerification = "${userVerification}";
70
+ let rpId = "${rpId}";
71
+ let publicKey = {
72
+ rpId : rpId,
73
+ challenge: base64url.decode(challenge, { loose: true })
74
+ };
75
+
76
+ let createTimeout = ${createTimeout};
77
+ if (createTimeout !== 0) publicKey.timeout = createTimeout * 1000;
78
+
79
+ if (allowCredentials.length) {
80
+ publicKey.allowCredentials = allowCredentials;
81
+ }
82
+
83
+ if (userVerification !== 'not specified') publicKey.userVerification = userVerification;
84
+
85
+ navigator.credentials.get({publicKey})
86
+ .then((result) => {
87
+ window.result = result;
88
+
89
+ let clientDataJSON = result.response.clientDataJSON;
90
+ let authenticatorData = result.response.authenticatorData;
91
+ let signature = result.response.signature;
92
+
93
+ $("#clientDataJSON").val(base64url.encode(new Uint8Array(clientDataJSON), { pad: false }));
94
+ $("#authenticatorData").val(base64url.encode(new Uint8Array(authenticatorData), { pad: false }));
95
+ $("#signature").val(base64url.encode(new Uint8Array(signature), { pad: false }));
96
+ $("#credentialId").val(result.id);
97
+ if(result.response.userHandle) {
98
+ $("#userHandle").val(base64url.encode(new Uint8Array(result.response.userHandle), { pad: false }));
99
+ }
100
+ $("#webauth").submit();
101
+ })
102
+ .catch((err) => {
103
+ $("#error").val(err);
104
+ $("#webauth").submit();
105
+ })
106
+ ;
107
+ }
108
+
109
+ `
28
110
  }
29
- formElement.submit();
30
- };
31
- const allowCredentials = authenticators.authenticators.map(authenticator => ({
32
- id: base64url.parse(authenticator.credentialId, { loose: true }),
33
- type: "public-key"
34
- }));
35
- // Check if WebAuthn is supported by this browser
36
- if (!window.PublicKeyCredential) {
37
- setError(msgStr("webauthn-unsupported-browser-text"));
38
- submitForm();
39
- return;
40
- }
41
- const publicKey = {
42
- rpId,
43
- challenge: base64url.parse(challenge, { loose: true })
44
- };
45
- if (createTimeout !== 0) {
46
- publicKey.timeout = createTimeout * 1000;
47
- }
48
- if (allowCredentials.length) {
49
- publicKey.allowCredentials = allowCredentials;
50
- }
51
- if (userVerification !== "not specified") {
52
- publicKey.userVerification = userVerification;
53
- }
54
- try {
55
- const result = await navigator.credentials.get({ publicKey });
56
- if (!result || result.type != "public-key") {
57
- return;
58
- }
59
- assert(is(result));
60
- if (!("authenticatorData" in result.response)) {
61
- return;
62
- }
63
- const response = result.response;
64
- const clientDataJSON = response.clientDataJSON;
65
- assert(typeGuard(response, "signature" in response && response.authenticatorData instanceof ArrayBuffer), "response not an AuthenticatorAssertionResponse");
66
- const authenticatorData = response.authenticatorData;
67
- const signature = response.signature;
68
- setClientDataJSON(base64url.stringify(new Uint8Array(clientDataJSON), { "pad": false }));
69
- setAuthenticatorData(base64url.stringify(new Uint8Array(authenticatorData), { "pad": false }));
70
- setSignature(base64url.stringify(new Uint8Array(signature), { "pad": false }));
71
- setCredentialId(result.id);
72
- setUserHandle(base64url.stringify(new Uint8Array(response.userHandle), { "pad": false }));
73
- }
74
- catch (err) {
75
- setError(String(err));
76
- }
77
- submitForm();
111
+ ]
78
112
  });
79
- const [clientDataJSON, setClientDataJSON] = useState("");
80
- const [authenticatorData, setAuthenticatorData] = useState("");
81
- const [signature, setSignature] = useState("");
82
- const [credentialId, setCredentialId] = useState("");
83
- const [userHandle, setUserHandle] = useState("");
84
- const [error, setError] = useState("");
85
- return (_jsx(Template, Object.assign({}, { kcContext, i18n, doUseDefaultCss, classes }, { headerNode: msg("webauthn-login-title") }, { children: _jsxs("div", Object.assign({ id: "kc-form-webauthn", className: getClassName("kcFormClass") }, { children: [_jsxs("form", Object.assign({ id: "webauth", action: url.loginAction, ref: formElementRef, method: "post" }, { children: [_jsx("input", { type: "hidden", id: "clientDataJSON", name: "clientDataJSON", value: clientDataJSON }), _jsx("input", { type: "hidden", id: "authenticatorData", name: "authenticatorData", value: authenticatorData }), _jsx("input", { type: "hidden", id: "signature", name: "signature", value: signature }), _jsx("input", { type: "hidden", id: "credentialId", name: "credentialId", value: credentialId }), _jsx("input", { type: "hidden", id: "userHandle", name: "userHandle", value: userHandle }), _jsx("input", { type: "hidden", id: "error", name: "error", value: error })] })), _jsxs("div", Object.assign({ className: getClassName("kcFormGroupClass") }, { children: [authenticators &&
86
- (() => (_jsx("form", Object.assign({ id: "authn_select", className: getClassName("kcFormClass") }, { children: authenticators.authenticators.map(authenticator => (_jsx("input", { type: "hidden", name: "authn_use_chk", value: authenticator.credentialId }, authenticator.credentialId))) }))))(), authenticators &&
87
- shouldDisplayAuthenticators &&
88
- (() => (_jsxs(_Fragment, { children: [authenticators.authenticators.length > 1 && (_jsx("p", Object.assign({ className: getClassName("kcSelectAuthListItemTitle") }, { children: msg("webauthn-available-authenticators") }))), _jsx("div", Object.assign({ className: getClassName("kcFormClass") }, { children: authenticators.authenticators.map(authenticator => (_jsxs("div", Object.assign({ id: "kc-webauthn-authenticator", className: getClassName("kcSelectAuthListItemClass") }, { children: [_jsx("div", Object.assign({ className: getClassName("kcSelectAuthListItemIconClass") }, { children: _jsx("i", { className: clsx((() => {
89
- const className = getClassName(authenticator.transports.iconClass);
90
- return className.includes(" ")
91
- ? className
92
- : [className, getClassName("kcWebAuthnDefaultIcon")];
93
- })(), getClassName("kcSelectAuthListItemIconPropertyClass")) }) })), _jsxs("div", Object.assign({ className: getClassName("kcSelectAuthListItemBodyClass") }, { children: [_jsx("div", Object.assign({ id: "kc-webauthn-authenticator-label", className: getClassName("kcSelectAuthListItemHeadingClass") }, { children: authenticator.label })), authenticator.transports && authenticator.transports.displayNameProperties.length && (_jsx("div", Object.assign({ id: "kc-webauthn-authenticator-transport", className: getClassName("kcSelectAuthListItemDescriptionClass") }, { children: authenticator.transports.displayNameProperties.map((transport, index) => (_jsxs(_Fragment, { children: [_jsx("span", { children: msg(transport) }), index < authenticator.transports.displayNameProperties.length - 1 && (_jsx("span", { children: ", " }))] }))) }))), _jsxs("div", Object.assign({ className: getClassName("kcSelectAuthListItemDescriptionClass") }, { children: [_jsx("span", Object.assign({ id: "kc-webauthn-authenticator-created-label" }, { children: msg("webauthn-createdAt-label") })), _jsx("span", Object.assign({ id: "kc-webauthn-authenticator-created" }, { children: authenticator.createdAt }))] }))] })), _jsx("div", { className: getClassName("kcSelectAuthListItemFillClass") })] })))) }))] })))(), _jsx("div", Object.assign({ id: "kc-form-buttons", className: getClassName("kcFormButtonsClass") }, { children: _jsx("input", { id: "authenticateWebAuthnButton", type: "button", onClick: webAuthnAuthenticate, autoFocus: true, value: msgStr("webauthn-doAuthenticate"), className: clsx(getClassName("kcButtonClass"), getClassName("kcButtonPrimaryClass"), getClassName("kcButtonBlockClass"), getClassName("kcButtonLargeClass")) }) }))] }))] })) })));
113
+ useEffect(() => {
114
+ insertScriptTags();
115
+ }, []);
116
+ return (_jsx(Template, Object.assign({}, { kcContext, i18n, doUseDefaultCss, classes }, { displayMessage: !messagesPerField.existsError("username"), displayInfo: realm.password && realm.registrationAllowed && !registrationDisabled, infoNode: _jsx("div", Object.assign({ id: "kc-registration" }, { children: _jsxs("span", { children: [msg("noAccount"), " ", _jsx("a", Object.assign({ tabIndex: 6, href: url.registrationUrl }, { children: msg("doRegister") }))] }) })), headerNode: msg("webauthn-login-title") }, { children: _jsxs("div", Object.assign({ id: "kc-form-webauthn", className: getClassName("kcFormClass") }, { children: [_jsxs("form", Object.assign({ id: "webauth", action: url.loginAction, method: "post" }, { children: [_jsx("input", { type: "hidden", id: "clientDataJSON", name: "clientDataJSON" }), _jsx("input", { type: "hidden", id: "authenticatorData", name: "authenticatorData" }), _jsx("input", { type: "hidden", id: "signature", name: "signature" }), _jsx("input", { type: "hidden", id: "credentialId", name: "credentialId" }), _jsx("input", { type: "hidden", id: "userHandle", name: "userHandle" }), _jsx("input", { type: "hidden", id: "error", name: "error" })] })), _jsxs("div", Object.assign({ className: clsx(getClassName("kcFormGroupClass"), "no-bottom-margin") }, { children: [authenticators && (_jsxs(_Fragment, { children: [_jsx("form", Object.assign({ id: "authn_select", className: getClassName("kcFormClass") }, { children: authenticators.authenticators.map(authenticator => (_jsx("input", { type: "hidden", name: "authn_use_chk", value: authenticator.credentialId }))) })), shouldDisplayAuthenticators && (_jsxs(_Fragment, { children: [authenticators.authenticators.length > 1 && (_jsx("p", Object.assign({ className: getClassName("kcSelectAuthListItemTitle") }, { children: msg("webauthn-available-authenticators") }))), _jsx("div", Object.assign({ className: getClassName("kcFormOptionsClass") }, { children: authenticators.authenticators.map((authenticator, i) => {
117
+ var _a;
118
+ return (_jsxs("div", Object.assign({ id: "kc-webauthn-authenticator", className: getClassName("kcSelectAuthListItemClass") }, { children: [_jsx("div", Object.assign({ className: getClassName("kcSelectAuthListItemIconClass") }, { children: _jsx("i", { className: clsx((() => {
119
+ const className = getClassName(authenticator.transports.iconClass);
120
+ if (className === authenticator.transports.iconClass) {
121
+ return getClassName("kcWebAuthnDefaultIcon");
122
+ }
123
+ return className;
124
+ })(), getClassName("kcSelectAuthListItemIconPropertyClass")) }) })), _jsxs("div", Object.assign({ className: getClassName("kcSelectAuthListItemArrowIconClass") }, { children: [_jsx("div", Object.assign({ id: "kc-webauthn-authenticator-label", className: getClassName("kcSelectAuthListItemHeadingClass") }, { children: msg(authenticator.label) })), ((_a = authenticator.transports.displayNameProperties) === null || _a === void 0 ? void 0 : _a.length) && (_jsx("div", Object.assign({ id: "kc-webauthn-authenticator-transport", className: getClassName("kcSelectAuthListItemDescriptionClass") }, { children: authenticator.transports.displayNameProperties
125
+ .map((nameProperty, i, arr) => ({ nameProperty, "hasNext": i !== arr.length - 1 }))
126
+ .map(({ nameProperty, hasNext }) => (_jsxs(Fragment, { children: [_jsx("span", { children: msg(nameProperty) }), hasNext && _jsx("span", { children: ", " })] }, nameProperty))) }))), _jsxs("div", Object.assign({ className: getClassName("kcSelectAuthListItemDescriptionClass") }, { children: [_jsx("span", Object.assign({ id: "kc-webauthn-authenticator-created-label" }, { children: msg("webauthn-createdAt-label") })), _jsx("span", Object.assign({ id: "kc-webauthn-authenticator-created" }, { children: authenticator.createdAt }))] })), _jsx("div", { className: getClassName("kcSelectAuthListItemFillClass") })] }))] }), i));
127
+ }) }))] }))] })), _jsx("div", Object.assign({ id: "kc-form-buttons", className: getClassName("kcFormButtonsClass") }, { children: _jsx("input", { id: "authenticateWebAuthnButton", type: "button", onClick: () => {
128
+ assert("webAuthnAuthenticate" in window);
129
+ assert(typeof window.webAuthnAuthenticate === "function");
130
+ window.webAuthnAuthenticate();
131
+ }, autoFocus: true, value: msgStr("webauthn-doAuthenticate"), className: clsx(getClassName("kcButtonClass"), getClassName("kcButtonPrimaryClass"), getClassName("kcButtonBlockClass"), getClassName("kcButtonLargeClass")) }) }))] }))] })) })));
94
132
  }
95
133
  //# sourceMappingURL=WebauthnAuthenticate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WebauthnAuthenticate.js","sourceRoot":"","sources":["../../src/login/pages/WebauthnAuthenticate.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebauthnAuthenticate.js","sourceRoot":"","sources":["../../src/login/pages/WebauthnAuthenticate.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import type { PageProps } from "../../login/pages/PageProps";
3
+ import type { KcContext } from "../kcContext";
4
+ import type { I18n } from "../i18n";
5
+ export default function WebauthnError(props: PageProps<Extract<KcContext, {
6
+ pageId: "webauthn-error.ftl";
7
+ }>, I18n>): JSX.Element;
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { clsx } from "../../tools/clsx";
3
+ import { useGetClassName } from "../../login/lib/useGetClassName";
4
+ export default function WebauthnError(props) {
5
+ const { kcContext, i18n, doUseDefaultCss, Template, classes } = props;
6
+ const { url, isAppInitiatedAction } = kcContext;
7
+ const { msg, msgStr } = i18n;
8
+ const { getClassName } = useGetClassName({
9
+ doUseDefaultCss,
10
+ classes
11
+ });
12
+ return (_jsxs(Template, Object.assign({}, { kcContext, i18n, doUseDefaultCss, classes }, { displayMessage: true, headerNode: msg("webauthn-error-title") }, { children: [_jsxs("form", Object.assign({ id: "kc-error-credential-form", className: getClassName("kcFormClass"), action: url.loginAction, method: "post" }, { children: [_jsx("input", { type: "hidden", id: "executionValue", name: "authenticationExecution" }), _jsx("input", { type: "hidden", id: "isSetRetry", name: "isSetRetry" })] })), _jsx("input", { tabIndex: 4, onClick: () => {
13
+ // @ts-expect-error: Trusted Keycloak's code
14
+ document.getElementById("isSetRetry").value = "retry";
15
+ // @ts-expect-error: Trusted Keycloak's code
16
+ document.getElementById("executionValue").value = "${execution}";
17
+ // @ts-expect-error: Trusted Keycloak's code
18
+ document.getElementById("kc-error-credential-form").submit();
19
+ }, type: "button", className: clsx(getClassName("kcButtonClass"), getClassName("kcButtonPrimaryClass"), getClassName("kcButtonBlockClass"), getClassName("kcButtonLargeClass")), name: "try-again", id: "kc-try-again", value: msgStr("doTryAgain") }), isAppInitiatedAction && (_jsx("form", Object.assign({ action: url.loginAction, className: getClassName("kcFormClass"), id: "kc-webauthn-settings-form", method: "post" }, { children: _jsx("button", Object.assign({ type: "submit", className: clsx(getClassName("kcButtonClass"), getClassName("kcButtonDefaultClass"), getClassName("kcButtonBlockClass"), getClassName("kcButtonLargeClass")), id: "cancelWebAuthnAIA", name: "cancel-aia", value: "true" }, { children: msgStr("doCancel") })) })))] })));
20
+ }
21
+ //# sourceMappingURL=WebauthnError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebauthnError.js","sourceRoot":"","sources":["../../src/login/pages/WebauthnError.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAIxE,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAA4E;IAC9G,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEtE,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,SAAS,CAAC;IAEhD,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE7B,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC;QACrC,eAAe;QACf,OAAO;KACV,CAAC,CAAC;IAEH,OAAO,CACH,MAAC,QAAQ,oBAAK,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAE,cAAc,QAAC,UAAU,EAAE,GAAG,CAAC,sBAAsB,CAAC,iBAC/G,8BAAM,EAAE,EAAC,0BAA0B,EAAC,SAAS,EAAE,YAAY,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,EAAC,MAAM,iBAC9G,gBAAO,IAAI,EAAC,QAAQ,EAAC,EAAE,EAAC,gBAAgB,EAAC,IAAI,EAAC,yBAAyB,GAAG,EAC1E,gBAAO,IAAI,EAAC,QAAQ,EAAC,EAAE,EAAC,YAAY,EAAC,IAAI,EAAC,YAAY,GAAG,KACtD,EACP,gBACI,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,GAAG,EAAE;oBACV,4CAA4C;oBAC5C,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC;oBACtD,4CAA4C;oBAC5C,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,KAAK,GAAG,cAAc,CAAC;oBACjE,4CAA4C;oBAC5C,QAAQ,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC,MAAM,EAAE,CAAC;gBACjE,CAAC,EACD,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,IAAI,CACX,YAAY,CAAC,eAAe,CAAC,EAC7B,YAAY,CAAC,sBAAsB,CAAC,EACpC,YAAY,CAAC,oBAAoB,CAAC,EAClC,YAAY,CAAC,oBAAoB,CAAC,CACrC,EACD,IAAI,EAAC,WAAW,EAChB,EAAE,EAAC,cAAc,EACjB,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,GAC7B,EACD,oBAAoB,IAAI,CACrB,6BAAM,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,aAAa,CAAC,EAAE,EAAE,EAAC,2BAA2B,EAAC,MAAM,EAAC,MAAM,gBAC/G,+BACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,IAAI,CACX,YAAY,CAAC,eAAe,CAAC,EAC7B,YAAY,CAAC,sBAAsB,CAAC,EACpC,YAAY,CAAC,oBAAoB,CAAC,EAClC,YAAY,CAAC,oBAAoB,CAAC,CACrC,EACD,EAAE,EAAC,mBAAmB,EACtB,IAAI,EAAC,YAAY,EACjB,KAAK,EAAC,MAAM,gBAEX,MAAM,CAAC,UAAU,CAAC,IACd,IACN,CACV,KACM,CACd,CAAC;AACN,CAAC"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import type { PageProps } from "../../login/pages/PageProps";
3
+ import type { KcContext } from "../kcContext";
4
+ import type { I18n } from "../i18n";
5
+ export default function WebauthnRegister(props: PageProps<Extract<KcContext, {
6
+ pageId: "webauthn-register.ftl";
7
+ }>, I18n>): JSX.Element;
@@ -0,0 +1,193 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEffect } from "react";
3
+ import { clsx } from "../../tools/clsx";
4
+ import { useGetClassName } from "../../login/lib/useGetClassName";
5
+ import { assert } from "tsafe/assert";
6
+ import { createUseInsertScriptTags } from "../../tools/useInsertScriptTags";
7
+ const { useInsertScriptTags } = createUseInsertScriptTags();
8
+ export default function WebauthnRegister(props) {
9
+ const { kcContext, i18n, doUseDefaultCss, Template, classes } = props;
10
+ const { getClassName } = useGetClassName({ doUseDefaultCss, classes });
11
+ const { url, challenge, userid, username, signatureAlgorithms, rpEntityName, rpId, attestationConveyancePreference, authenticatorAttachment, requireResidentKey, userVerificationRequirement, createTimeout, excludeCredentialIds, isSetRetry, isAppInitiatedAction } = kcContext;
12
+ const { msg, msgStr } = i18n;
13
+ const { insertScriptTags } = useInsertScriptTags({
14
+ "scriptTags": [
15
+ {
16
+ "type": "text/javascript",
17
+ "src": `${url.resourcesCommonPath}/node_modules/jquery/dist/jquery.min.js`
18
+ },
19
+ {
20
+ "type": "text/javascript",
21
+ "src": `${url.resourcesPath}/js/base64url.js`
22
+ },
23
+ {
24
+ "type": "text/javascript",
25
+ "textContent": `
26
+ function registerSecurityKey() {
27
+
28
+ // Check if WebAuthn is supported by this browser
29
+ if (!window.PublicKeyCredential) {
30
+ $("#error").val("${msgStr("webauthn-unsupported-browser-text")}");
31
+ $("#register").submit();
32
+ return;
33
+ }
34
+
35
+ // mandatory parameters
36
+ let challenge = "${challenge}";
37
+ let userid = "${userid}";
38
+ let username = "${username}";
39
+
40
+ let signatureAlgorithms =${JSON.stringify(signatureAlgorithms)};
41
+ let pubKeyCredParams = getPubKeyCredParams(signatureAlgorithms);
42
+
43
+ let rpEntityName = "${rpEntityName}";
44
+ let rp = {name: rpEntityName};
45
+
46
+ let publicKey = {
47
+ challenge: base64url.decode(challenge, {loose: true}),
48
+ rp: rp,
49
+ user: {
50
+ id: base64url.decode(userid, {loose: true}),
51
+ name: username,
52
+ displayName: username
53
+ },
54
+ pubKeyCredParams: pubKeyCredParams,
55
+ };
56
+
57
+ // optional parameters
58
+ let rpId = "${rpId}";
59
+ publicKey.rp.id = rpId;
60
+
61
+ let attestationConveyancePreference = "${attestationConveyancePreference}";
62
+ if (attestationConveyancePreference !== 'not specified') publicKey.attestation = attestationConveyancePreference;
63
+
64
+ let authenticatorSelection = {};
65
+ let isAuthenticatorSelectionSpecified = false;
66
+
67
+ let authenticatorAttachment = "${authenticatorAttachment}";
68
+ if (authenticatorAttachment !== 'not specified') {
69
+ authenticatorSelection.authenticatorAttachment = authenticatorAttachment;
70
+ isAuthenticatorSelectionSpecified = true;
71
+ }
72
+
73
+ let requireResidentKey = "${requireResidentKey}";
74
+ if (requireResidentKey !== 'not specified') {
75
+ if (requireResidentKey === 'Yes')
76
+ authenticatorSelection.requireResidentKey = true;
77
+ else
78
+ authenticatorSelection.requireResidentKey = false;
79
+ isAuthenticatorSelectionSpecified = true;
80
+ }
81
+
82
+ let userVerificationRequirement = "${userVerificationRequirement}";
83
+ if (userVerificationRequirement !== 'not specified') {
84
+ authenticatorSelection.userVerification = userVerificationRequirement;
85
+ isAuthenticatorSelectionSpecified = true;
86
+ }
87
+
88
+ if (isAuthenticatorSelectionSpecified) publicKey.authenticatorSelection = authenticatorSelection;
89
+
90
+ let createTimeout = ${createTimeout};
91
+ if (createTimeout !== 0) publicKey.timeout = createTimeout * 1000;
92
+
93
+ let excludeCredentialIds = "${excludeCredentialIds}";
94
+ let excludeCredentials = getExcludeCredentials(excludeCredentialIds);
95
+ if (excludeCredentials.length > 0) publicKey.excludeCredentials = excludeCredentials;
96
+
97
+ navigator.credentials.create({publicKey})
98
+ .then(function (result) {
99
+ window.result = result;
100
+ let clientDataJSON = result.response.clientDataJSON;
101
+ let attestationObject = result.response.attestationObject;
102
+ let publicKeyCredentialId = result.rawId;
103
+
104
+ $("#clientDataJSON").val(base64url.encode(new Uint8Array(clientDataJSON), {pad: false}));
105
+ $("#attestationObject").val(base64url.encode(new Uint8Array(attestationObject), {pad: false}));
106
+ $("#publicKeyCredentialId").val(base64url.encode(new Uint8Array(publicKeyCredentialId), {pad: false}));
107
+
108
+ if (typeof result.response.getTransports === "function") {
109
+ let transports = result.response.getTransports();
110
+ if (transports) {
111
+ $("#transports").val(getTransportsAsString(transports));
112
+ }
113
+ } else {
114
+ console.log("Your browser is not able to recognize supported transport media for the authenticator.");
115
+ }
116
+
117
+ let initLabel = "WebAuthn Authenticator (Default Label)";
118
+ let labelResult = window.prompt("Please input your registered authenticator's label", initLabel);
119
+ if (labelResult === null) labelResult = initLabel;
120
+ $("#authenticatorLabel").val(labelResult);
121
+
122
+ $("#register").submit();
123
+
124
+ })
125
+ .catch(function (err) {
126
+ $("#error").val(err);
127
+ $("#register").submit();
128
+
129
+ });
130
+ }
131
+
132
+ function getPubKeyCredParams(signatureAlgorithmsList) {
133
+ let pubKeyCredParams = [];
134
+ if (signatureAlgorithmsList === []) {
135
+ pubKeyCredParams.push({type: "public-key", alg: -7});
136
+ return pubKeyCredParams;
137
+ }
138
+
139
+ for (let i = 0; i < signatureAlgorithmsList.length; i++) {
140
+ pubKeyCredParams.push({
141
+ type: "public-key",
142
+ alg: signatureAlgorithmsList[i]
143
+ });
144
+ }
145
+ return pubKeyCredParams;
146
+ }
147
+
148
+ function getExcludeCredentials(excludeCredentialIds) {
149
+ let excludeCredentials = [];
150
+ if (excludeCredentialIds === "") return excludeCredentials;
151
+
152
+ let excludeCredentialIdsList = excludeCredentialIds.split(',');
153
+
154
+ for (let i = 0; i < excludeCredentialIdsList.length; i++) {
155
+ excludeCredentials.push({
156
+ type: "public-key",
157
+ id: base64url.decode(excludeCredentialIdsList[i],
158
+ {loose: true})
159
+ });
160
+ }
161
+ return excludeCredentials;
162
+ }
163
+
164
+ function getTransportsAsString(transportsList) {
165
+ if (transportsList === '' || transportsList.constructor !== Array) return "";
166
+
167
+ let transportsString = "";
168
+
169
+ for (let i = 0; i < transportsList.length; i++) {
170
+ transportsString += transportsList[i] + ",";
171
+ }
172
+
173
+ return transportsString.slice(0, -1);
174
+ }
175
+ `
176
+ }
177
+ ]
178
+ });
179
+ useEffect(() => {
180
+ insertScriptTags();
181
+ }, []);
182
+ return (_jsxs(Template, Object.assign({}, { kcContext, i18n, doUseDefaultCss, classes }, { headerNode: _jsxs(_Fragment, { children: [_jsx("span", { className: getClassName("kcWebAuthnKeyIcon") }), msg("webauthn-registration-title")] }) }, { children: [_jsx("form", Object.assign({ id: "register", className: getClassName("kcFormClass"), action: url.loginAction, method: "post" }, { children: _jsxs("div", Object.assign({ className: getClassName("kcFormGroupClass") }, { children: [_jsx("input", { type: "hidden", id: "clientDataJSON", name: "clientDataJSON" }), _jsx("input", { type: "hidden", id: "attestationObject", name: "attestationObject" }), _jsx("input", { type: "hidden", id: "publicKeyCredentialId", name: "publicKeyCredentialId" }), _jsx("input", { type: "hidden", id: "authenticatorLabel", name: "authenticatorLabel" }), _jsx("input", { type: "hidden", id: "transports", name: "transports" }), _jsx("input", { type: "hidden", id: "error", name: "error" }), _jsx(LogoutOtherSessions, Object.assign({}, { i18n, getClassName }))] })) })), _jsx("input", { type: "submit", className: clsx(getClassName("kcButtonClass"), getClassName("kcButtonPrimaryClass"), getClassName("kcButtonBlockClass"), getClassName("kcButtonLargeClass")), id: "registerWebAuthn", value: msgStr("doRegisterSecurityKey"), onClick: () => {
183
+ assert("registerSecurityKey" in window);
184
+ assert(typeof window.registerSecurityKey === "function");
185
+ window.registerSecurityKey();
186
+ } }), !isSetRetry && isAppInitiatedAction && (_jsx("form", Object.assign({ action: url.loginAction, className: getClassName("kcFormClass"), id: "kc-webauthn-settings-form", method: "post" }, { children: _jsx("button", Object.assign({ type: "submit", className: clsx(getClassName("kcButtonClass"), getClassName("kcButtonDefaultClass"), getClassName("kcButtonBlockClass"), getClassName("kcButtonLargeClass")), id: "cancelWebAuthnAIA", name: "cancel-aia", value: "true" }, { children: msg("doCancel") })) })))] })));
187
+ }
188
+ function LogoutOtherSessions(props) {
189
+ const { getClassName, i18n } = props;
190
+ const { msg } = i18n;
191
+ return (_jsx("div", Object.assign({ id: "kc-form-options", className: getClassName("kcFormOptionsClass") }, { children: _jsx("div", Object.assign({ className: getClassName("kcFormOptionsWrapperClass") }, { children: _jsx("div", Object.assign({ className: "checkbox" }, { children: _jsxs("label", { children: [_jsx("input", { type: "checkbox", id: "logout-sessions", name: "logout-sessions", value: "on", checked: true }), msg("logoutOtherSessions")] }) })) })) })));
192
+ }
193
+ //# sourceMappingURL=WebauthnRegister.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebauthnRegister.js","sourceRoot":"","sources":["../../src/login/pages/WebauthnRegister.tsx"],"names":[],"mappings":"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"}