@ebrains/vue 0.8.0-alpha.0 → 0.9.0-beta
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.
- package/README.md +1 -1
- package/bookmark-c200037c-CIcZ51ZQ.js +14 -0
- package/bookmark-c200037c-ClkCtyRY.mjs +17 -0
- package/color-primary-palette_6.entry-B00J5gKq.js +1 -0
- package/color-primary-palette_6.entry-DJl4iXuX.mjs +300 -0
- package/{eds-components-section.entry-DpGQLUDG.js → components-section.entry-Bp5Ot0Sn.js} +109 -87
- package/{eds-components-section.entry-CZzJEdYb.mjs → components-section.entry-CMHPm3bn.mjs} +124 -94
- package/correct-use-of-colors.entry-BRM7osKs.js +1 -0
- package/correct-use-of-colors.entry-BcZ8MzKb.mjs +59 -0
- package/{eds-docs-palettes.entry-CvUsZJGt.js → docs-palettes.entry-BoEjXr5K.js} +1 -1
- package/{eds-docs-palettes.entry-DF_rAbne.mjs → docs-palettes.entry-CkVHcQbL.mjs} +3 -3
- package/{eds-docs-tokens.entry-C3AfntXW.js → docs-tokens.entry-C22LSw0P.js} +1 -1
- package/{eds-docs-tokens.entry-gPy71iZA.mjs → docs-tokens.entry-D38mtdPC.mjs} +4 -4
- package/eds-accordion.entry-B25YfdGD.js +4 -0
- package/eds-accordion.entry-ivh1zjpt.mjs +48 -0
- package/{eds-alert.entry-C7iR6Wau.js → eds-alert.entry-C0p3qeqh.js} +1 -1
- package/{eds-alert.entry-DHikCbw_.mjs → eds-alert.entry-DOCbYqvG.mjs} +1 -1
- package/{eds-app-root.entry-YPigXe8_.mjs → eds-app-root.entry-AYVIYcb1.mjs} +4 -4
- package/{eds-app-root.entry-rafdbiL3.js → eds-app-root.entry-DfPrDdc_.js} +1 -1
- package/{eds-accordion_17.entry-BhCBvhXC.mjs → eds-avatar_24.entry-BcY_4aZT.mjs} +8532 -387
- package/{eds-accordion_17.entry-BBnyn6EM.js → eds-avatar_24.entry-DBYYqNco.js} +7821 -29
- package/{eds-breadcrumb.entry-Bfc36jaR.mjs → eds-breadcrumb.entry-BTYLNHlm.mjs} +1 -1
- package/{eds-breadcrumb.entry-D065WE8j.js → eds-breadcrumb.entry-Drb48V7S.js} +1 -1
- package/{eds-card-desc_3.entry-CPmEcD7h.js → eds-card-desc_3.entry-BlQBUPMR.js} +1 -1
- package/{eds-card-desc_3.entry-BJP_Vvul.mjs → eds-card-desc_3.entry-DtsrKQS6.mjs} +5 -5
- package/{eds-card-generic.entry-Bn3saq5k.mjs → eds-card-generic.entry-Dtfs4XKl.mjs} +1 -1
- package/{eds-card-generic.entry-Ct8aLaT_.js → eds-card-generic.entry-w0E2hhjp.js} +1 -1
- package/{eds-card-project.entry-B7s198sC.js → eds-card-project.entry-Cek2GMTn.js} +1 -1
- package/{eds-card-project.entry-CkmokKaR.mjs → eds-card-project.entry-Cy_NC5av.mjs} +1 -1
- package/{eds-card-section.entry-DKP7IjIj.mjs → eds-card-section.entry-D1yKOTXz.mjs} +1 -1
- package/{eds-card-section.entry-CE7UQ8HN.js → eds-card-section.entry-DLE2WAV_.js} +1 -1
- package/{eds-card-tags.entry-wvkOqT1r.js → eds-card-tags.entry-CmRv-oB4.js} +1 -1
- package/{eds-card-tags.entry-BNqaohHu.mjs → eds-card-tags.entry-Q9xxbeAG.mjs} +1 -1
- package/{eds-card-tool.entry-Df_qlYY5.js → eds-card-tool.entry-DF_jWDUL.js} +1 -1
- package/{eds-card-tool.entry-CR4SuPPR.mjs → eds-card-tool.entry-Dgi1G1RH.mjs} +1 -1
- package/{eds-card-wrapper.entry-DwcKQUDS.js → eds-card-wrapper.entry-DZZOVhcJ.js} +1 -1
- package/{eds-card-wrapper.entry-CosNbMgP.mjs → eds-card-wrapper.entry-k-aNj4Ms.mjs} +1 -1
- package/{eds-code-block.entry-Bfp7Moc7.mjs → eds-code-block.entry-BjrDmUCm.mjs} +1 -1
- package/{eds-code-block.entry-D5kDIIPG.js → eds-code-block.entry-DoUacOW1.js} +1 -1
- package/{eds-cookies-preference.entry-DUwpfJG0.js → eds-cookies-preference.entry-B7gp0J-S.js} +1 -1
- package/{eds-cookies-preference.entry-ivi_kdZs.mjs → eds-cookies-preference.entry-DkA2HKmI.mjs} +2 -2
- package/eds-feedback.entry-C9Ir38bt.mjs +53 -0
- package/eds-feedback.entry-GNZz9ODR.js +1 -0
- package/{eds-frame.entry-BEG9Cq6f.mjs → eds-frame.entry-CcmLaVze.mjs} +9 -15
- package/eds-frame.entry-XyeUo6pB.js +1 -0
- package/{eds-icon-arrow-diagonal.entry-6WVlNQjt.mjs → eds-icon-arrow-diagonal.entry-B0dxbX_o.mjs} +1 -1
- package/{eds-icon-arrow-diagonal.entry-zBfSFnaZ.js → eds-icon-arrow-diagonal.entry-o5Ev_oO7.js} +1 -1
- package/{eds-icon-arrow-right.entry-B01PWxxn.js → eds-icon-arrow-right.entry-DUHmdP-V.js} +1 -1
- package/{eds-icon-arrow-right.entry-CPfwKb_P.mjs → eds-icon-arrow-right.entry-DpdjX5aS.mjs} +1 -1
- package/{eds-icon-bluesky.entry-DbVUYLJG.js → eds-icon-bluesky.entry-Bv0-EDnj.js} +1 -1
- package/eds-icon-bluesky.entry-DkSAjnck.mjs +13 -0
- package/eds-icon-bookmark.entry-Bjzq8uze.js +1 -0
- package/eds-icon-bookmark.entry-C_0B6YJU.mjs +13 -0
- package/{eds-icon-chevron-down.entry-YrhsZIQb.js → eds-icon-chevron-down.entry-BERHGaTB.js} +1 -1
- package/{eds-icon-chevron-down.entry-dCeiKlud.mjs → eds-icon-chevron-down.entry-DnKTBqKv.mjs} +1 -1
- package/{eds-icon-chevron-left.entry-CVk_b9kc.js → eds-icon-chevron-left.entry-Bo8LqkIz.js} +1 -1
- package/{eds-icon-chevron-left.entry-CudVsOqq.mjs → eds-icon-chevron-left.entry-DT2At_f6.mjs} +1 -1
- package/{eds-icon-chevron-right.entry-Dg5UFoCU.mjs → eds-icon-chevron-right.entry-BFoMlLTp.mjs} +1 -1
- package/{eds-icon-chevron-right.entry-r7aVtAwm.js → eds-icon-chevron-right.entry-DyqeLE1B.js} +1 -1
- package/{eds-icon-chevron-up.entry-C-WjO0ys.js → eds-icon-chevron-up.entry-Bpy8lbif.js} +1 -1
- package/{eds-icon-chevron-up.entry-CEfRA3Cn.mjs → eds-icon-chevron-up.entry-JSrFaEET.mjs} +1 -1
- package/eds-icon-close.entry-CzIoe2p3.mjs +13 -0
- package/{eds-icon-close.entry-eRRe-idl.js → eds-icon-close.entry-cabdCuVg.js} +1 -1
- package/{eds-icon-copy.entry-Bv6gVwBn.mjs → eds-icon-copy.entry-C08qTrZl.mjs} +2 -2
- package/{eds-icon-copy.entry-B41dL0Pk.js → eds-icon-copy.entry-CvpG2Kxo.js} +1 -1
- package/eds-icon-eu.entry-ChZ09s02.mjs +13 -0
- package/eds-icon-eu.entry-H2skG2J6.js +1 -0
- package/eds-icon-external.entry-DKbmbXLG.mjs +13 -0
- package/eds-icon-external.entry-DVlEoMZl.js +1 -0
- package/{eds-icon-facebook.entry-CxuQ9T-z.mjs → eds-icon-facebook.entry-4bvKyXXu.mjs} +2 -2
- package/{eds-icon-facebook.entry-tLxBj2-p.js → eds-icon-facebook.entry-COSHMM4W.js} +1 -1
- package/eds-icon-gitlab.entry-BXLfky5G.mjs +13 -0
- package/{eds-icon-gitlab.entry-Bz32Y093.js → eds-icon-gitlab.entry-D_zX1Jsy.js} +1 -1
- package/{eds-icon-linkedin.entry-BOJB8PtD.js → eds-icon-linkedin.entry-CjXcA0DQ.js} +1 -1
- package/{eds-icon-linkedin.entry-C-OLKK80.mjs → eds-icon-linkedin.entry-_3H4M1ch.mjs} +2 -2
- package/eds-icon-loader.entry-BA-W8oxC.js +1 -0
- package/eds-icon-loader.entry-Cp3B6C_B.mjs +13 -0
- package/eds-icon-mastodon.entry-Bmb_O0hs.mjs +13 -0
- package/{eds-icon-mastodon.entry-DYjzOc_S.js → eds-icon-mastodon.entry-DUFdG1dJ.js} +1 -1
- package/eds-icon-menu.entry-DOdmibhy.mjs +13 -0
- package/eds-icon-menu.entry-Qg4r_OkP.js +1 -0
- package/eds-icon-minus.entry-8htg5ASo.mjs +13 -0
- package/eds-icon-minus.entry-Diem-PL4.js +1 -0
- package/{eds-icon-more.entry-BdtfLgCV.js → eds-icon-more.entry-BY-mI4ec.js} +1 -1
- package/eds-icon-more.entry-DyWgD7vJ.mjs +13 -0
- package/eds-icon-paper.entry-BI3DMxCS.mjs +13 -0
- package/eds-icon-paper.entry-D2mmnsXf.js +1 -0
- package/eds-icon-plus.entry-B8KAaEGT.js +1 -0
- package/eds-icon-plus.entry-Ccr7jseH.mjs +13 -0
- package/eds-icon-portal.entry-BLhT9_Nz.js +1 -0
- package/eds-icon-portal.entry-D2iNYdZW.mjs +13 -0
- package/eds-icon-private.entry-CK2gzDym.mjs +13 -0
- package/eds-icon-private.entry-ToYtRpET.js +1 -0
- package/eds-icon-public.entry-BOnTLyd7.js +1 -0
- package/eds-icon-public.entry-N8tks7_E.mjs +13 -0
- package/{eds-icon-search.entry-Cw8zssoR.js → eds-icon-search.entry-C9tMq1XC.js} +1 -1
- package/{eds-icon-search.entry-CnqQ_vud.mjs → eds-icon-search.entry-DuG-zesK.mjs} +2 -2
- package/{eds-icon-star.entry-BqWtt_VJ.mjs → eds-icon-star.entry-B-PeifnZ.mjs} +2 -2
- package/{eds-icon-star.entry-DhcygAni.js → eds-icon-star.entry-CHoursjw.js} +1 -1
- package/eds-icon-success.entry-BJm--l5m.mjs +13 -0
- package/{eds-icon-success.entry-59uCWiA1.js → eds-icon-success.entry-ED6eDDgi.js} +1 -1
- package/{eds-icon-thumbs-down.entry-BOvmhFfL.mjs → eds-icon-thumbs-down.entry-BzEfZ1AX.mjs} +2 -2
- package/{eds-icon-thumbs-down.entry-BNUoStSy.js → eds-icon-thumbs-down.entry-zjkeVdJJ.js} +1 -1
- package/{eds-icon-thumbs-up.entry-Bn3MBFif.js → eds-icon-thumbs-up.entry-CZJlAqFh.js} +1 -1
- package/{eds-icon-thumbs-up.entry-B5dIuh3_.mjs → eds-icon-thumbs-up.entry-DutZ0Kki.mjs} +2 -2
- package/eds-icon-tutorial.entry-DRMLIdl4.mjs +13 -0
- package/eds-icon-tutorial.entry-D_9AQ-6-.js +1 -0
- package/eds-icon-twitter.entry-CJhiAxNu.mjs +13 -0
- package/{eds-icon-twitter.entry-CGsi8ynP.js → eds-icon-twitter.entry-DDsRqP6N.js} +1 -1
- package/eds-icon-unknown.entry-57uXdegM.mjs +13 -0
- package/eds-icon-unknown.entry-7Mmqc2BG.js +1 -0
- package/eds-icon-updown.entry-BwdgdGgR.mjs +13 -0
- package/eds-icon-updown.entry-b0BvWM4f.js +1 -0
- package/eds-icon-user.entry-BJ7Wi5JO.mjs +13 -0
- package/eds-icon-user.entry-czB7LMt8.js +1 -0
- package/eds-icon-youtube.entry-BWP1dBVD.mjs +13 -0
- package/eds-icon-youtube.entry-v007UjBQ.js +1 -0
- package/{eds-login_2.entry-Be8tUQNx.mjs → eds-login_2.entry-BfzeZBGw.mjs} +106 -93
- package/{eds-login_2.entry-CiL5geMY.js → eds-login_2.entry-DmBDAFIz.js} +3 -3
- package/eds-matomo-notice.entry-B-MlwGCp.mjs +90 -0
- package/eds-matomo-notice.entry-CCiq7z7U.js +1 -0
- package/eds-modal.entry-DU5qpx-i.js +1 -0
- package/eds-modal.entry-puAN0sn-.mjs +96 -0
- package/{eds-pagination_2.entry-BcBkkuEq.js → eds-pagination_2.entry-CuaStxZg.js} +1 -1
- package/{eds-pagination_2.entry-B2q_5PRD.mjs → eds-pagination_2.entry-DWzfLRgF.mjs} +8 -8
- package/{eds-progress-bar.entry-BWnPK-6o.mjs → eds-progress-bar.entry-BRTtAttw.mjs} +2 -2
- package/{eds-progress-bar.entry-DMTDcZv8.js → eds-progress-bar.entry-qScp3MQj.js} +1 -1
- package/{eds-rating.entry-CtRb0a5R.mjs → eds-rating.entry-CEI0zBir.mjs} +2 -2
- package/{eds-rating.entry-CPCGEHHj.js → eds-rating.entry-DOTYJZZ6.js} +1 -1
- package/{eds-section-core_2.entry-BrIavUCN.mjs → eds-section-core_2.entry-BZpOdGAA.mjs} +9 -9
- package/{eds-section-core_2.entry-rRmNlbQR.js → eds-section-core_2.entry-Cmly0OqW.js} +1 -1
- package/{eds-spinner.entry-BQ7NYZow.js → eds-spinner.entry-C_3hil-u.js} +1 -1
- package/{eds-spinner.entry-D58XgaXt.mjs → eds-spinner.entry-DLqey9r7.mjs} +2 -2
- package/{eds-switch.entry-CgstZWMb.mjs → eds-switch.entry-BPHya25S.mjs} +5 -5
- package/{eds-switch.entry-CAzboLuJ.js → eds-switch.entry-IoOUDh10.js} +1 -1
- package/{eds-tabs.entry-2CrdvmEM.mjs → eds-tabs.entry-DEOntaY1.mjs} +37 -19
- package/{eds-tabs.entry-CxValIYM.js → eds-tabs.entry-lqdai_rD.js} +37 -19
- package/{eds-timeline.entry-CFAb5Cd0.js → eds-timeline.entry-CC0zKwha.js} +37 -19
- package/{eds-timeline.entry-D9ZihmLu.mjs → eds-timeline.entry-c1YpsWVJ.mjs} +37 -19
- package/{eds-toast-manager.entry-mR3GXeEW.mjs → eds-toast-manager.entry-BvunvxZX.mjs} +6 -6
- package/{eds-toast-manager.entry-DNRGmKI4.js → eds-toast-manager.entry-DMZSCFoE.js} +1 -1
- package/{eds-toast.entry-ubt1S3Kw.mjs → eds-toast.entry-DW3toqwW.mjs} +1 -1
- package/{eds-toast.entry-BRfHKFao.js → eds-toast.entry-rudQ7nhp.js} +1 -1
- package/{eds-tooltip.entry-BS9OaOdx.js → eds-tooltip.entry-CcGgCRMO.js} +1 -1
- package/{eds-tooltip.entry-D0rqB_RZ.mjs → eds-tooltip.entry-CoHV78jm.mjs} +6 -6
- package/eds-trl.entry-CQOb5dk-.mjs +34 -0
- package/{eds-trl.entry-D_xUUWvL.js → eds-trl.entry-L0XqQYCq.js} +1 -1
- package/generated/components.d.ts +0 -2
- package/incorrect-use-of-colors.entry-C1QG9658.js +1 -0
- package/incorrect-use-of-colors.entry-C3Qt3gSE.mjs +42 -0
- package/index-cHrGUVDM.js +21 -0
- package/{index-DeCYK9qM.mjs → index-xVeSZU9j.mjs} +177 -143
- package/index.js +1 -1
- package/index.mjs +27 -29
- package/logo-space.entry-H3itdzkq.mjs +19 -0
- package/logo-space.entry-epl_-703.js +6 -0
- package/logo-variations-horizontal_2.entry-CKLOzzOx.mjs +29 -0
- package/logo-variations-horizontal_2.entry-k6KqYji6.js +7 -0
- package/{eds-logo-variations.entry-DGWNGIvb.js → logo-variations-tabs.entry-BpYl8Gpo.js} +1 -1
- package/{eds-logo-variations.entry-CBy11DlE.mjs → logo-variations-tabs.entry-Df5DuYk-.mjs} +4 -4
- package/logo-wrong-usage.entry-Bkg9gp3h.mjs +14 -0
- package/logo-wrong-usage.entry-DhlWm8es.js +1 -0
- package/minus-b30a7c71-BPAvqHzH.mjs +12 -0
- package/minus-b30a7c71-DqCTe6Qh.js +9 -0
- package/package.json +1 -1
- package/paper-8e74ea31-BvGrc1Vo.mjs +16 -0
- package/paper-8e74ea31-C4CV6tlB.js +13 -0
- package/plus-89c07be2-BTXnjg5K.js +10 -0
- package/plus-89c07be2-DyT9I4-L.mjs +13 -0
- package/portal-d6c8ce56-Cj61ldo8.mjs +19 -0
- package/portal-d6c8ce56-NpSrdNZ_.js +16 -0
- package/private-1c25ff8e-D3Fo36q6.js +23 -0
- package/private-1c25ff8e-Dz82_Xf8.mjs +26 -0
- package/public-d4d8c585-BJKDD5F6.mjs +17 -0
- package/public-d4d8c585-lV6QxdPw.js +14 -0
- package/{eds-svg-repository.entry-D1rRUteH.mjs → svg-repository.entry-C1TKYvU7.mjs} +89 -88
- package/{eds-svg-repository.entry-B3RrcJof.js → svg-repository.entry-DxVwTMCv.js} +12 -31
- package/{token-list_3.entry-uSQm6z8I.mjs → token-list_3.entry-CABw7-9O.mjs} +16 -16
- package/token-list_3.entry-CawIyAia.js +1 -0
- package/{token-ratios.entry-BiuicosE.mjs → token-ratios.entry-BGWJSHfY.mjs} +2 -2
- package/token-ratios.entry-B_FOHsNq.js +1 -0
- package/{token-typography.entry-sTlt7Bpz.mjs → token-typography.entry-BHvTpH4i.mjs} +4 -4
- package/{token-typography.entry-Dn6NRvAR.js → token-typography.entry-FXRD_KVv.js} +2 -2
- package/tutotial-150ee1fd-DFdyoHVA.mjs +28 -0
- package/tutotial-150ee1fd-DjN_JBL5.js +25 -0
- package/unknown-ed01a24c-B0AcMuip.js +20 -0
- package/unknown-ed01a24c-DonOUpIC.mjs +23 -0
- package/up-and-down-d747abee-CWoZjUyq.js +10 -0
- package/up-and-down-d747abee-D7g6H0T0.mjs +13 -0
- package/color-primary-palette_6.entry-8IScvoTJ.mjs +0 -300
- package/color-primary-palette_6.entry-8sRpfe4E.js +0 -1
- package/correct-use-of-colors.entry-CfU46fhX.js +0 -1
- package/correct-use-of-colors.entry-ClTcY5vo.mjs +0 -59
- package/eds-feedback.entry-Cii4Bgav.mjs +0 -53
- package/eds-feedback.entry-mS5rXykK.js +0 -1
- package/eds-form.entry-CNUo4guS.mjs +0 -226
- package/eds-form.entry-DmOYblLu.js +0 -1
- package/eds-frame.entry-MuWFMQ5l.js +0 -1
- package/eds-icon-bluesky.entry-DKFty2p_.mjs +0 -13
- package/eds-icon-close.entry-Cec0LlPI.mjs +0 -13
- package/eds-icon-eu.entry-CIYspbep.js +0 -1
- package/eds-icon-eu.entry-C_SYaSos.mjs +0 -13
- package/eds-icon-gitlab.entry-B4Y3IL_W.mjs +0 -13
- package/eds-icon-loader.entry-Cnugn2v_.mjs +0 -13
- package/eds-icon-loader.entry-OpxpC-qI.js +0 -1
- package/eds-icon-mastodon.entry-DfYxTk7y.mjs +0 -13
- package/eds-icon-menu.entry-4XLLYwtu.js +0 -1
- package/eds-icon-menu.entry-iM24FuKl.mjs +0 -13
- package/eds-icon-more.entry-BIN9jdzF.mjs +0 -13
- package/eds-icon-success.entry-C0jA8lzW.mjs +0 -13
- package/eds-icon-twitter.entry-CRA6F5rZ.mjs +0 -13
- package/eds-icon-user.entry-BQ64yR1z.js +0 -1
- package/eds-icon-user.entry-D-nrmq6-.mjs +0 -13
- package/eds-icon-youtube.entry-BCw69oaj.js +0 -1
- package/eds-icon-youtube.entry-DTLtxuVC.mjs +0 -13
- package/eds-input_7.entry-CSdmlGYi.mjs +0 -7971
- package/eds-input_7.entry-DdKDkmAq.js +0 -7766
- package/eds-modal.entry-B3qjw7GE.mjs +0 -96
- package/eds-modal.entry-KkENKOHe.js +0 -1
- package/eds-trl.entry-CwmhIRgh.mjs +0 -34
- package/incorrect-use-of-colors.entry-B5KDlGuR.mjs +0 -42
- package/incorrect-use-of-colors.entry-_H77f9zg.js +0 -1
- package/index-QKKBbj1_.js +0 -21
- package/logo-space.entry-CGNHFbPE.js +0 -1
- package/logo-space.entry-NVMguJha.mjs +0 -14
- package/logo-variations-horizontal_2.entry-CoHmkNBR.mjs +0 -29
- package/logo-variations-horizontal_2.entry-CykdymGd.js +0 -7
- package/logo-wrong-usage.entry-BozirNNs.mjs +0 -14
- package/logo-wrong-usage.entry-DCJHE7Y8.js +0 -1
- package/token-list_3.entry-D8dKORAJ.js +0 -1
- package/token-ratios.entry-CaKfU99x.js +0 -1
- package/token-spacing.entry-B9inIBOK.mjs +0 -12
- package/token-spacing.entry-BV0NaRVV.js +0 -1
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { r as X, c as J, h as U, H as se } from "./index-
|
|
1
|
+
import { r as X, c as J, h as U, H as se } from "./index-xVeSZU9j.mjs";
|
|
2
2
|
import { t as R } from "./toastManager-d9eee791-CEYNwx25.mjs";
|
|
3
|
-
function q(
|
|
3
|
+
function q(u) {
|
|
4
4
|
if (!(this instanceof q))
|
|
5
5
|
throw new Error("The 'Keycloak' constructor must be invoked with 'new'.");
|
|
6
|
-
if (typeof
|
|
6
|
+
if (typeof u != "string" && !O(u))
|
|
7
7
|
throw new Error("The 'Keycloak' constructor must be provided with a configuration object, or a URL to a JSON configuration file.");
|
|
8
|
-
if (O(
|
|
9
|
-
const r = "oidcProvider" in
|
|
8
|
+
if (O(u)) {
|
|
9
|
+
const r = "oidcProvider" in u ? ["clientId"] : ["url", "realm", "clientId"];
|
|
10
10
|
for (const t of r)
|
|
11
|
-
if (!
|
|
11
|
+
if (!u[t])
|
|
12
12
|
throw new Error(`The configuration object is missing the required '${t}' property.`);
|
|
13
13
|
}
|
|
14
|
-
var e = this, p, v = [],
|
|
14
|
+
var e = this, p, v = [], I, h = {
|
|
15
15
|
enable: !0,
|
|
16
16
|
callbackList: [],
|
|
17
17
|
interval: 5
|
|
18
18
|
};
|
|
19
19
|
e.didInitialize = !1;
|
|
20
|
-
var P = !0,
|
|
20
|
+
var P = !0, _ = W(console.info), M = W(console.warn);
|
|
21
21
|
globalThis.isSecureContext || M(
|
|
22
22
|
`[KEYCLOAK] Keycloak JS must be used in a 'secure context' to function properly as it relies on browser APIs that are otherwise not available.
|
|
23
23
|
Continuing to run your application insecurely will lead to unexpected behavior and breakage.
|
|
@@ -26,7 +26,7 @@ For more information see: https://developer.mozilla.org/en-US/docs/Web/Security/
|
|
|
26
26
|
), e.init = function(r = {}) {
|
|
27
27
|
if (e.didInitialize)
|
|
28
28
|
throw new Error("A 'Keycloak' instance can only be initialized once.");
|
|
29
|
-
e.didInitialize = !0, e.authenticated = !1,
|
|
29
|
+
e.didInitialize = !0, e.authenticated = !1, I = ie();
|
|
30
30
|
var t = ["default", "cordova", "cordova-native"];
|
|
31
31
|
if (t.indexOf(r.adapter) > -1 ? p = N(r.adapter) : typeof r.adapter == "object" ? p = r.adapter : window.Cordova || window.cordova ? p = N("cordova") : p = N(), typeof r.useNonce < "u" && (P = r.useNonce), typeof r.checkLoginIframe < "u" && (h.enable = r.checkLoginIframe), r.checkLoginIframeInterval && (h.interval = r.checkLoginIframeInterval), r.onLoad === "login-required" && (e.loginRequired = !0), r.responseMode)
|
|
32
32
|
if (r.responseMode === "query" || r.responseMode === "fragment")
|
|
@@ -64,19 +64,19 @@ For more information see: https://developer.mozilla.org/en-US/docs/Web/Security/
|
|
|
64
64
|
});
|
|
65
65
|
var a = te();
|
|
66
66
|
function c() {
|
|
67
|
-
var o = function(
|
|
68
|
-
|
|
67
|
+
var o = function(d) {
|
|
68
|
+
d || (f.prompt = "none"), r.locale && (f.locale = r.locale), e.login(f).then(function() {
|
|
69
69
|
i.setSuccess();
|
|
70
70
|
}).catch(function(m) {
|
|
71
71
|
i.setError(m);
|
|
72
72
|
});
|
|
73
73
|
}, l = async function() {
|
|
74
|
-
var
|
|
75
|
-
|
|
74
|
+
var d = document.createElement("iframe"), m = await e.createLoginUrl({ prompt: "none", redirectUri: e.silentCheckSsoRedirectUri });
|
|
75
|
+
d.setAttribute("src", m), d.setAttribute("sandbox", "allow-storage-access-by-user-activation allow-scripts allow-same-origin"), d.setAttribute("title", "keycloak-silent-check-sso"), d.style.display = "none", document.body.appendChild(d);
|
|
76
76
|
var w = function(S) {
|
|
77
|
-
if (!(S.origin !== window.location.origin ||
|
|
77
|
+
if (!(S.origin !== window.location.origin || d.contentWindow !== S.source)) {
|
|
78
78
|
var y = E(S.data);
|
|
79
|
-
T(y, i), document.body.removeChild(
|
|
79
|
+
T(y, i), document.body.removeChild(d), window.removeEventListener("message", w);
|
|
80
80
|
}
|
|
81
81
|
};
|
|
82
82
|
window.addEventListener("message", w);
|
|
@@ -84,10 +84,10 @@ For more information see: https://developer.mozilla.org/en-US/docs/Web/Security/
|
|
|
84
84
|
switch (r.onLoad) {
|
|
85
85
|
case "check-sso":
|
|
86
86
|
h.enable ? K().then(function() {
|
|
87
|
-
L().then(function(
|
|
88
|
-
|
|
89
|
-
}).catch(function(
|
|
90
|
-
i.setError(
|
|
87
|
+
L().then(function(d) {
|
|
88
|
+
d ? i.setSuccess() : e.silentCheckSsoRedirectUri ? l() : o(!1);
|
|
89
|
+
}).catch(function(d) {
|
|
90
|
+
i.setError(d);
|
|
91
91
|
});
|
|
92
92
|
}) : e.silentCheckSsoRedirectUri ? l() : o(!1);
|
|
93
93
|
break;
|
|
@@ -174,12 +174,12 @@ For more information see: https://developer.mozilla.org/en-US/docs/Web/Security/
|
|
|
174
174
|
}
|
|
175
175
|
if ((r && r.acrValues || e.acrValues) && (o += "&acr_values=" + encodeURIComponent(r.acrValues || e.acrValues)), e.pkceMethod)
|
|
176
176
|
try {
|
|
177
|
-
const f = $(96),
|
|
178
|
-
a.pkceCodeVerifier = f, o += "&code_challenge=" +
|
|
177
|
+
const f = $(96), d = await Z(e.pkceMethod, f);
|
|
178
|
+
a.pkceCodeVerifier = f, o += "&code_challenge=" + d, o += "&code_challenge_method=" + e.pkceMethod;
|
|
179
179
|
} catch (f) {
|
|
180
180
|
throw new Error("Failed to generate PKCE challenge.", { cause: f });
|
|
181
181
|
}
|
|
182
|
-
return
|
|
182
|
+
return I.add(a), o;
|
|
183
183
|
}, e.logout = function(r) {
|
|
184
184
|
return p.logout(r);
|
|
185
185
|
}, e.createLogoutUrl = function(r) {
|
|
@@ -222,7 +222,7 @@ For more information see: https://developer.mozilla.org/en-US/docs/Web/Security/
|
|
|
222
222
|
if (!e.tokenParsed || !e.refreshToken && e.flow != "implicit")
|
|
223
223
|
throw "Not authenticated";
|
|
224
224
|
if (e.timeSkew == null)
|
|
225
|
-
return
|
|
225
|
+
return _("[KEYCLOAK] Unable to determine if token is expired as timeskew is not set"), !0;
|
|
226
226
|
var t = e.tokenParsed.exp - Math.ceil((/* @__PURE__ */ new Date()).getTime() / 1e3) + e.timeSkew;
|
|
227
227
|
if (r) {
|
|
228
228
|
if (isNaN(r))
|
|
@@ -237,7 +237,7 @@ For more information see: https://developer.mozilla.org/en-US/docs/Web/Security/
|
|
|
237
237
|
r = r || 5;
|
|
238
238
|
var s = function() {
|
|
239
239
|
var a = !1;
|
|
240
|
-
if (r == -1 ? (a = !0,
|
|
240
|
+
if (r == -1 ? (a = !0, _("[KEYCLOAK] Refreshing token: forced refresh")) : (!e.tokenParsed || e.isTokenExpired(r)) && (a = !0, _("[KEYCLOAK] Refreshing token: token expired")), !a)
|
|
241
241
|
t.setSuccess(!1);
|
|
242
242
|
else {
|
|
243
243
|
var c = "grant_type=refresh_token&refresh_token=" + e.refreshToken, n = e.endpoints.token();
|
|
@@ -248,15 +248,15 @@ For more information see: https://developer.mozilla.org/en-US/docs/Web/Security/
|
|
|
248
248
|
o.onreadystatechange = function() {
|
|
249
249
|
if (o.readyState == 4)
|
|
250
250
|
if (o.status == 200) {
|
|
251
|
-
|
|
251
|
+
_("[KEYCLOAK] Token refreshed"), l = (l + (/* @__PURE__ */ new Date()).getTime()) / 2;
|
|
252
252
|
var f = JSON.parse(o.responseText);
|
|
253
253
|
C(f.access_token, f.refresh_token, f.id_token, l), e.onAuthRefreshSuccess && e.onAuthRefreshSuccess();
|
|
254
|
-
for (var
|
|
255
|
-
|
|
254
|
+
for (var d = v.pop(); d != null; d = v.pop())
|
|
255
|
+
d.setSuccess(!0);
|
|
256
256
|
} else {
|
|
257
257
|
M("[KEYCLOAK] Failed to refresh token"), o.status == 400 && e.clearToken(), e.onAuthRefreshError && e.onAuthRefreshError();
|
|
258
|
-
for (var
|
|
259
|
-
|
|
258
|
+
for (var d = v.pop(); d != null; d = v.pop())
|
|
259
|
+
d.setError("Failed to refresh token: An unexpected HTTP error occurred while attempting to refresh the token.");
|
|
260
260
|
}
|
|
261
261
|
}, o.send(c);
|
|
262
262
|
}
|
|
@@ -295,25 +295,25 @@ For more information see: https://developer.mozilla.org/en-US/docs/Web/Security/
|
|
|
295
295
|
else
|
|
296
296
|
t && t.setSuccess();
|
|
297
297
|
return;
|
|
298
|
-
} else e.flow != "standard" && (r.access_token || r.id_token) &&
|
|
298
|
+
} else e.flow != "standard" && (r.access_token || r.id_token) && d(r.access_token, null, r.id_token, !0);
|
|
299
299
|
if (e.flow != "implicit" && s) {
|
|
300
300
|
var o = "code=" + s + "&grant_type=authorization_code", l = e.endpoints.token(), f = new XMLHttpRequest();
|
|
301
301
|
f.open("POST", l, !0), f.setRequestHeader("Content-type", "application/x-www-form-urlencoded"), o += "&client_id=" + encodeURIComponent(e.clientId), o += "&redirect_uri=" + r.redirectUri, r.pkceCodeVerifier && (o += "&code_verifier=" + r.pkceCodeVerifier), f.withCredentials = !0, f.onreadystatechange = function() {
|
|
302
302
|
if (f.readyState == 4)
|
|
303
303
|
if (f.status == 200) {
|
|
304
304
|
var m = JSON.parse(f.responseText);
|
|
305
|
-
|
|
305
|
+
d(m.access_token, m.refresh_token, m.id_token, e.flow === "standard"), H();
|
|
306
306
|
} else
|
|
307
307
|
e.onAuthError && e.onAuthError(), t && t.setError();
|
|
308
308
|
}, f.send(o);
|
|
309
309
|
}
|
|
310
|
-
function
|
|
311
|
-
c = (c + (/* @__PURE__ */ new Date()).getTime()) / 2, C(m, w, S, c), P && e.idTokenParsed && e.idTokenParsed.nonce != r.storedNonce ? (
|
|
310
|
+
function d(m, w, S, y) {
|
|
311
|
+
c = (c + (/* @__PURE__ */ new Date()).getTime()) / 2, C(m, w, S, c), P && e.idTokenParsed && e.idTokenParsed.nonce != r.storedNonce ? (_("[KEYCLOAK] Invalid nonce, clearing token"), e.clearToken(), t && t.setError()) : y && (e.onAuthSuccess && e.onAuthSuccess(), t && t.setSuccess());
|
|
312
312
|
}
|
|
313
313
|
}
|
|
314
314
|
function te() {
|
|
315
315
|
var r = g(), t;
|
|
316
|
-
typeof
|
|
316
|
+
typeof u == "string" && (t = u);
|
|
317
317
|
function s(n) {
|
|
318
318
|
n ? e.endpoints = {
|
|
319
319
|
authorize: function() {
|
|
@@ -375,10 +375,10 @@ For more information see: https://developer.mozilla.org/en-US/docs/Web/Security/
|
|
|
375
375
|
r.setError();
|
|
376
376
|
}, i.send();
|
|
377
377
|
} else {
|
|
378
|
-
e.clientId =
|
|
379
|
-
var a =
|
|
378
|
+
e.clientId = u.clientId;
|
|
379
|
+
var a = u.oidcProvider;
|
|
380
380
|
if (!a)
|
|
381
|
-
e.authServerUrl =
|
|
381
|
+
e.authServerUrl = u.url, e.realm = u.realm, s(null), r.setSuccess();
|
|
382
382
|
else if (typeof a == "string") {
|
|
383
383
|
var c;
|
|
384
384
|
a.charAt(a.length - 1) == "/" ? c = a + ".well-known/openid-configuration" : c = a + "/.well-known/openid-configuration";
|
|
@@ -401,9 +401,9 @@ For more information see: https://developer.mozilla.org/en-US/docs/Web/Security/
|
|
|
401
401
|
}
|
|
402
402
|
function C(r, t, s, i) {
|
|
403
403
|
if (e.tokenTimeoutHandle && (clearTimeout(e.tokenTimeoutHandle), e.tokenTimeoutHandle = null), t ? (e.refreshToken = t, e.refreshTokenParsed = V(t)) : (delete e.refreshToken, delete e.refreshTokenParsed), s ? (e.idToken = s, e.idTokenParsed = V(s)) : (delete e.idToken, delete e.idTokenParsed), r) {
|
|
404
|
-
if (e.token = r, e.tokenParsed = V(r), e.sessionId = e.tokenParsed.sid, e.authenticated = !0, e.subject = e.tokenParsed.sub, e.realmAccess = e.tokenParsed.realm_access, e.resourceAccess = e.tokenParsed.resource_access, i && (e.timeSkew = Math.floor(i / 1e3) - e.tokenParsed.iat), e.timeSkew != null && (
|
|
404
|
+
if (e.token = r, e.tokenParsed = V(r), e.sessionId = e.tokenParsed.sid, e.authenticated = !0, e.subject = e.tokenParsed.sub, e.realmAccess = e.tokenParsed.realm_access, e.resourceAccess = e.tokenParsed.resource_access, i && (e.timeSkew = Math.floor(i / 1e3) - e.tokenParsed.iat), e.timeSkew != null && (_("[KEYCLOAK] Estimated time difference between browser and server is " + e.timeSkew + " seconds"), e.onTokenExpired)) {
|
|
405
405
|
var a = (e.tokenParsed.exp - (/* @__PURE__ */ new Date()).getTime() / 1e3 + e.timeSkew) * 1e3;
|
|
406
|
-
|
|
406
|
+
_("[KEYCLOAK] Token expires in " + Math.round(a / 1e3) + " s"), a <= 0 ? e.onTokenExpired() : e.tokenTimeoutHandle = setTimeout(e.onTokenExpired, a);
|
|
407
407
|
}
|
|
408
408
|
} else
|
|
409
409
|
delete e.token, delete e.tokenParsed, delete e.subject, delete e.realmAccess, delete e.resourceAccess, e.authenticated = !1;
|
|
@@ -416,7 +416,7 @@ For more information see: https://developer.mozilla.org/en-US/docs/Web/Security/
|
|
|
416
416
|
function E(r) {
|
|
417
417
|
var t = ne(r);
|
|
418
418
|
if (t) {
|
|
419
|
-
var s =
|
|
419
|
+
var s = I.get(t.state);
|
|
420
420
|
return s && (t.valid = !0, t.redirectUri = s.redirectUri, t.storedNonce = s.nonce, t.prompt = s.prompt, t.pkceCodeVerifier = s.pkceCodeVerifier, t.loginOptions = s.loginOptions), t;
|
|
421
421
|
}
|
|
422
422
|
}
|
|
@@ -554,9 +554,9 @@ For more information see: https://www.keycloak.org/securing-apps/javascript-adap
|
|
|
554
554
|
client_id: e.clientId,
|
|
555
555
|
post_logout_redirect_uri: p.redirectUri(n, !1)
|
|
556
556
|
};
|
|
557
|
-
for (const [
|
|
557
|
+
for (const [d, m] of Object.entries(f)) {
|
|
558
558
|
const w = document.createElement("input");
|
|
559
|
-
w.setAttribute("type", "hidden"), w.setAttribute("name",
|
|
559
|
+
w.setAttribute("type", "hidden"), w.setAttribute("name", d), w.setAttribute("value", m), l.appendChild(w);
|
|
560
560
|
}
|
|
561
561
|
document.body.appendChild(l), l.submit();
|
|
562
562
|
},
|
|
@@ -595,42 +595,42 @@ For more information see: https://www.keycloak.org/securing-apps/javascript-adap
|
|
|
595
595
|
};
|
|
596
596
|
return {
|
|
597
597
|
login: async function(n) {
|
|
598
|
-
var o = g(), l = a(n), f = await e.createLoginUrl(n),
|
|
599
|
-
w = !0,
|
|
598
|
+
var o = g(), l = a(n), f = await e.createLoginUrl(n), d = t(f, "_blank", l), m = !1, w = !1, S = function() {
|
|
599
|
+
w = !0, d.close();
|
|
600
600
|
};
|
|
601
|
-
return
|
|
601
|
+
return d.addEventListener("loadstart", function(y) {
|
|
602
602
|
if (y.url.indexOf(c()) == 0) {
|
|
603
603
|
var z = E(y.url);
|
|
604
604
|
T(z, o), S(), m = !0;
|
|
605
605
|
}
|
|
606
|
-
}),
|
|
606
|
+
}), d.addEventListener("loaderror", function(y) {
|
|
607
607
|
if (!m)
|
|
608
608
|
if (y.url.indexOf(c()) == 0) {
|
|
609
609
|
var z = E(y.url);
|
|
610
610
|
T(z, o), S(), m = !0;
|
|
611
611
|
} else
|
|
612
612
|
o.setError(), S();
|
|
613
|
-
}),
|
|
613
|
+
}), d.addEventListener("exit", function(y) {
|
|
614
614
|
w || o.setError({
|
|
615
615
|
reason: "closed_by_user"
|
|
616
616
|
});
|
|
617
617
|
}), o.promise;
|
|
618
618
|
},
|
|
619
619
|
logout: function(n) {
|
|
620
|
-
var o = g(), l = e.createLogoutUrl(n), f = t(l, "_blank", "location=no,hidden=yes,clearcache=yes"),
|
|
620
|
+
var o = g(), l = e.createLogoutUrl(n), f = t(l, "_blank", "location=no,hidden=yes,clearcache=yes"), d;
|
|
621
621
|
return f.addEventListener("loadstart", function(m) {
|
|
622
622
|
m.url.indexOf(c()) == 0 && f.close();
|
|
623
623
|
}), f.addEventListener("loaderror", function(m) {
|
|
624
|
-
m.url.indexOf(c()) == 0 || (
|
|
624
|
+
m.url.indexOf(c()) == 0 || (d = !0), f.close();
|
|
625
625
|
}), f.addEventListener("exit", function(m) {
|
|
626
|
-
|
|
626
|
+
d ? o.setError() : (e.clearToken(), o.setSuccess());
|
|
627
627
|
}), o.promise;
|
|
628
628
|
},
|
|
629
629
|
register: async function(n) {
|
|
630
|
-
var o = g(), l = await e.createRegisterUrl(), f = a(n),
|
|
631
|
-
return
|
|
630
|
+
var o = g(), l = await e.createRegisterUrl(), f = a(n), d = t(l, "_blank", f);
|
|
631
|
+
return d.addEventListener("loadstart", function(m) {
|
|
632
632
|
if (m.url.indexOf(c()) == 0) {
|
|
633
|
-
|
|
633
|
+
d.close();
|
|
634
634
|
var w = E(m.url);
|
|
635
635
|
T(w, o);
|
|
636
636
|
}
|
|
@@ -657,8 +657,8 @@ For more information see: https://www.keycloak.org/securing-apps/javascript-adap
|
|
|
657
657
|
var o = g(), l = await e.createLoginUrl(n);
|
|
658
658
|
return universalLinks.subscribe("keycloak", function(f) {
|
|
659
659
|
universalLinks.unsubscribe("keycloak"), window.cordova.plugins.browsertab.close();
|
|
660
|
-
var
|
|
661
|
-
T(
|
|
660
|
+
var d = E(f.url);
|
|
661
|
+
T(d, o);
|
|
662
662
|
}), window.cordova.plugins.browsertab.openUrl(l), o.promise;
|
|
663
663
|
},
|
|
664
664
|
logout: function(n) {
|
|
@@ -671,8 +671,8 @@ For more information see: https://www.keycloak.org/securing-apps/javascript-adap
|
|
|
671
671
|
var o = g(), l = await e.createRegisterUrl(n);
|
|
672
672
|
return universalLinks.subscribe("keycloak", function(f) {
|
|
673
673
|
universalLinks.unsubscribe("keycloak"), window.cordova.plugins.browsertab.close();
|
|
674
|
-
var
|
|
675
|
-
T(
|
|
674
|
+
var d = E(f.url);
|
|
675
|
+
T(d, o);
|
|
676
676
|
}), window.cordova.plugins.browsertab.openUrl(l), o.promise;
|
|
677
677
|
},
|
|
678
678
|
accountManagement: function() {
|
|
@@ -779,34 +779,34 @@ For more information see: https://www.keycloak.org/securing-apps/javascript-adap
|
|
|
779
779
|
};
|
|
780
780
|
}
|
|
781
781
|
}
|
|
782
|
-
function ce(
|
|
783
|
-
const e = String.fromCodePoint(...
|
|
782
|
+
function ce(u) {
|
|
783
|
+
const e = String.fromCodePoint(...u);
|
|
784
784
|
return btoa(e);
|
|
785
785
|
}
|
|
786
|
-
async function le(
|
|
787
|
-
const p = new TextEncoder().encode(
|
|
786
|
+
async function le(u) {
|
|
787
|
+
const p = new TextEncoder().encode(u);
|
|
788
788
|
if (typeof crypto > "u" || typeof crypto.subtle > "u")
|
|
789
789
|
throw new Error("Web Crypto API is not available.");
|
|
790
790
|
return await crypto.subtle.digest("SHA-256", p);
|
|
791
791
|
}
|
|
792
|
-
function V(
|
|
793
|
-
const [e, p] =
|
|
792
|
+
function V(u) {
|
|
793
|
+
const [e, p] = u.split(".");
|
|
794
794
|
if (typeof p != "string")
|
|
795
795
|
throw new Error("Unable to decode token, payload not found.");
|
|
796
796
|
let v;
|
|
797
797
|
try {
|
|
798
798
|
v = ue(p);
|
|
799
|
-
} catch (
|
|
800
|
-
throw new Error("Unable to decode token, payload is not a valid Base64URL value.", { cause:
|
|
799
|
+
} catch (I) {
|
|
800
|
+
throw new Error("Unable to decode token, payload is not a valid Base64URL value.", { cause: I });
|
|
801
801
|
}
|
|
802
802
|
try {
|
|
803
803
|
return JSON.parse(v);
|
|
804
|
-
} catch (
|
|
805
|
-
throw new Error("Unable to decode token, payload is not a valid JSON value.", { cause:
|
|
804
|
+
} catch (I) {
|
|
805
|
+
throw new Error("Unable to decode token, payload is not a valid JSON value.", { cause: I });
|
|
806
806
|
}
|
|
807
807
|
}
|
|
808
|
-
function ue(
|
|
809
|
-
let e =
|
|
808
|
+
function ue(u) {
|
|
809
|
+
let e = u.replaceAll("-", "+").replaceAll("_", "/");
|
|
810
810
|
switch (e.length % 4) {
|
|
811
811
|
case 0:
|
|
812
812
|
break;
|
|
@@ -825,21 +825,21 @@ function ue(d) {
|
|
|
825
825
|
return atob(e);
|
|
826
826
|
}
|
|
827
827
|
}
|
|
828
|
-
function de(
|
|
829
|
-
return decodeURIComponent(atob(
|
|
828
|
+
function de(u) {
|
|
829
|
+
return decodeURIComponent(atob(u).replace(/(.)/g, (e, p) => {
|
|
830
830
|
let v = p.charCodeAt(0).toString(16).toUpperCase();
|
|
831
831
|
return v.length < 2 && (v = "0" + v), "%" + v;
|
|
832
832
|
}));
|
|
833
833
|
}
|
|
834
|
-
function O(
|
|
835
|
-
return typeof
|
|
834
|
+
function O(u) {
|
|
835
|
+
return typeof u == "object" && u !== null;
|
|
836
836
|
}
|
|
837
837
|
let k = null, x = null;
|
|
838
|
-
function fe(
|
|
838
|
+
function fe(u, e = !0) {
|
|
839
839
|
return x ? (console.log("Keycloak already initialized, returning from cache"), x) : (k || (k = new q({
|
|
840
|
-
url:
|
|
841
|
-
realm:
|
|
842
|
-
clientId:
|
|
840
|
+
url: u.url,
|
|
841
|
+
realm: u.realm,
|
|
842
|
+
clientId: u.clientId
|
|
843
843
|
})), x = k.init({
|
|
844
844
|
onLoad: e ? "check-sso" : "login-required",
|
|
845
845
|
checkLoginIframe: !1
|
|
@@ -874,17 +874,17 @@ function me() {
|
|
|
874
874
|
function ke() {
|
|
875
875
|
return !!(k != null && k.authenticated);
|
|
876
876
|
}
|
|
877
|
-
async function ge(
|
|
877
|
+
async function ge(u) {
|
|
878
878
|
try {
|
|
879
|
-
const e = await fetch(
|
|
879
|
+
const e = await fetch(u, { method: "HEAD", mode: "no-cors" });
|
|
880
880
|
return e.ok || e.type === "opaque";
|
|
881
881
|
} catch {
|
|
882
882
|
return !1;
|
|
883
883
|
}
|
|
884
884
|
}
|
|
885
885
|
const Ue = class {
|
|
886
|
-
constructor(
|
|
887
|
-
X(this,
|
|
886
|
+
constructor(u) {
|
|
887
|
+
X(this, u), this.keycloak = J(this, "keycloak", 7), this.auth = J(this, "auth", 7), this.handleLogin = async () => {
|
|
888
888
|
if (!this.authenticated)
|
|
889
889
|
try {
|
|
890
890
|
await pe();
|
|
@@ -922,34 +922,42 @@ const Ue = class {
|
|
|
922
922
|
*/
|
|
923
923
|
async initAuth() {
|
|
924
924
|
try {
|
|
925
|
-
const
|
|
925
|
+
const u = await fe({
|
|
926
926
|
url: this.keycloakUrl,
|
|
927
927
|
realm: this.keycloakRealm,
|
|
928
928
|
clientId: this.keycloakClientId
|
|
929
929
|
}, !0);
|
|
930
930
|
this.keycloak.emit({
|
|
931
|
-
init:
|
|
931
|
+
init: u
|
|
932
932
|
}), ke() && (this.user = he(), this.authenticated = !0, this.auth.emit({
|
|
933
933
|
authenticated: this.authenticated,
|
|
934
934
|
user: this.user
|
|
935
935
|
}));
|
|
936
|
-
} catch (
|
|
937
|
-
R.show(
|
|
936
|
+
} catch (u) {
|
|
937
|
+
R.show(u.message, "error");
|
|
938
938
|
}
|
|
939
939
|
}
|
|
940
940
|
render() {
|
|
941
|
-
return U("div", { key: "
|
|
941
|
+
return U("div", { key: "ac10895096f36f2fb3a79622972d5a8c519685eb", class: "block" }, !this.authenticated && U("eds-button", { key: "55aab5ee63214d6a1ccdefc303273df99aa309cf", label: "Login", intent: "primary", "extra-class": "text-default", "aria-label": "Login", triggerClick: this.handleLogin.bind(this) }));
|
|
942
942
|
}
|
|
943
943
|
}, ve = ".splash-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999999;background-color:var(--grey-200);display:flex;flex-direction:column;align-items:center;justify-content:center}.logo-container{width:200px;height:200px;margin-bottom:1rem}.content-container{position:relative;width:5rem;height:5rem;display:flex;align-items:center;justify-content:center}", we = ve, ye = class {
|
|
944
|
-
constructor(
|
|
945
|
-
X(this,
|
|
944
|
+
constructor(u) {
|
|
945
|
+
X(this, u), this.splash = J(this, "splash", 7), this.inverse = !1, this.initPromise = void 0, this.isVisible = !0;
|
|
946
946
|
}
|
|
947
|
+
// When the component loads, check if there is a promise.
|
|
947
948
|
componentWillLoad() {
|
|
948
|
-
this.initPromise && this.initPromise
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
949
|
+
this.initPromise && this.handleInitPromise(this.initPromise);
|
|
950
|
+
}
|
|
951
|
+
// Watch for changes on initPromise.
|
|
952
|
+
async watchInitPromise(u) {
|
|
953
|
+
u && this.handleInitPromise(u);
|
|
954
|
+
}
|
|
955
|
+
async handleInitPromise(u) {
|
|
956
|
+
try {
|
|
957
|
+
await u, this.hideSplash();
|
|
958
|
+
} catch (e) {
|
|
959
|
+
this.splash.emit({ type: "error", message: e.message || "Unknown error" });
|
|
960
|
+
}
|
|
953
961
|
}
|
|
954
962
|
handleHideSplash() {
|
|
955
963
|
this.hideSplash();
|
|
@@ -960,6 +968,11 @@ const Ue = class {
|
|
|
960
968
|
render() {
|
|
961
969
|
return this.isVisible ? U(se, null, U("div", { class: "splash-overlay", style: { background: this.inverse ? "black" : "var(--grey-200)" } }, U("div", { class: "logo-container" }, this.inverse ? U("eds-logo", { orientation: "vertical", type: "color-white" }) : U("eds-logo", { orientation: "vertical", type: "color" })), U("div", { class: "content-container" }, U("eds-spinner", { size: "1rem", thickness: "3px", "border-color": "var(--grey-400)", "bottom-color": "var(--grey-900)", background: "none", fullscreen: !1 })))) : null;
|
|
962
970
|
}
|
|
971
|
+
static get watchers() {
|
|
972
|
+
return {
|
|
973
|
+
initPromise: ["watchInitPromise"]
|
|
974
|
+
};
|
|
975
|
+
}
|
|
963
976
|
};
|
|
964
977
|
ye.style = we;
|
|
965
978
|
export {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("./index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("./index-cHrGUVDM.js"),R=require("./toastManager-d9eee791-DvR_vUPI.js");function G(u){if(!(this instanceof G))throw new Error("The 'Keycloak' constructor must be invoked with 'new'.");if(typeof u!="string"&&!V(u))throw new Error("The 'Keycloak' constructor must be provided with a configuration object, or a URL to a JSON configuration file.");if(V(u)){const r="oidcProvider"in u?["clientId"]:["url","realm","clientId"];for(const t of r)if(!u[t])throw new Error(`The configuration object is missing the required '${t}' property.`)}var e=this,p,w=[],I,h={enable:!0,callbackList:[],interval:5};e.didInitialize=!1;var P=!0,_=q(console.info),M=q(console.warn);globalThis.isSecureContext||M(`[KEYCLOAK] Keycloak JS must be used in a 'secure context' to function properly as it relies on browser APIs that are otherwise not available.
|
|
2
2
|
Continuing to run your application insecurely will lead to unexpected behavior and breakage.
|
|
3
3
|
|
|
4
|
-
For more information see: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts`),e.init=function(r={}){if(e.didInitialize)throw new Error("A 'Keycloak' instance can only be initialized once.");e.didInitialize=!0,e.authenticated=!1,I=ae();var t=["default","cordova","cordova-native"];if(t.indexOf(r.adapter)>-1?p=N(r.adapter):typeof r.adapter=="object"?p=r.adapter:window.Cordova||window.cordova?p=N("cordova"):p=N(),typeof r.useNonce<"u"&&(P=r.useNonce),typeof r.checkLoginIframe<"u"&&(h.enable=r.checkLoginIframe),r.checkLoginIframeInterval&&(h.interval=r.checkLoginIframeInterval),r.onLoad==="login-required"&&(e.loginRequired=!0),r.responseMode)if(r.responseMode==="query"||r.responseMode==="fragment")e.responseMode=r.responseMode;else throw"Invalid value for responseMode";if(r.flow){switch(r.flow){case"standard":e.responseType="code";break;case"implicit":e.responseType="id_token token";break;case"hybrid":e.responseType="code id_token token";break;default:throw"Invalid value for flow"}e.flow=r.flow}if(r.timeSkew!=null&&(e.timeSkew=r.timeSkew),r.redirectUri&&(e.redirectUri=r.redirectUri),r.silentCheckSsoRedirectUri&&(e.silentCheckSsoRedirectUri=r.silentCheckSsoRedirectUri),typeof r.silentCheckSsoFallback=="boolean"?e.silentCheckSsoFallback=r.silentCheckSsoFallback:e.silentCheckSsoFallback=!0,typeof r.pkceMethod<"u"){if(r.pkceMethod!=="S256"&&r.pkceMethod!==!1)throw new TypeError(`Invalid value for pkceMethod', expected 'S256' or false but got ${r.pkceMethod}.`);e.pkceMethod=r.pkceMethod}else e.pkceMethod="S256";typeof r.enableLogging=="boolean"?e.enableLogging=r.enableLogging:e.enableLogging=!1,r.logoutMethod==="POST"?e.logoutMethod="POST":e.logoutMethod="GET",typeof r.scope=="string"&&(e.scope=r.scope),typeof r.acrValues=="string"&&(e.acrValues=r.acrValues),typeof r.messageReceiveTimeout=="number"&&r.messageReceiveTimeout>0?e.messageReceiveTimeout=r.messageReceiveTimeout:e.messageReceiveTimeout=1e4,e.responseMode||(e.responseMode="fragment"),e.responseType||(e.responseType="code",e.flow="standard");var s=g(),i=g();i.promise.then(function(){e.onReady&&e.onReady(e.authenticated),s.setSuccess(e.authenticated)}).catch(function(o){s.setError(o)});var a=re();function c(){var o=function(u){u||(f.prompt="none"),r.locale&&(f.locale=r.locale),e.login(f).then(function(){i.setSuccess()}).catch(function(m){i.setError(m)})},l=async function(){var u=document.createElement("iframe"),m=await e.createLoginUrl({prompt:"none",redirectUri:e.silentCheckSsoRedirectUri});u.setAttribute("src",m),u.setAttribute("sandbox","allow-storage-access-by-user-activation allow-scripts allow-same-origin"),u.setAttribute("title","keycloak-silent-check-sso"),u.style.display="none",document.body.appendChild(u);var y=function(U){if(!(U.origin!==window.location.origin||u.contentWindow!==U.source)){var b=E(U.data);T(b,i),document.body.removeChild(u),window.removeEventListener("message",y)}};window.addEventListener("message",y)},f={};switch(r.onLoad){case"check-sso":h.enable?K().then(function(){L().then(function(u){u?i.setSuccess():e.silentCheckSsoRedirectUri?l():o(!1)}).catch(function(u){i.setError(u)})}):e.silentCheckSsoRedirectUri?l():o(!1);break;case"login-required":o(!0);break;default:throw"Invalid value for onLoad"}}function n(){var o=E(window.location.href);if(o&&window.history.replaceState(window.history.state,null,o.newUrl),o&&o.valid)return K().then(function(){T(o,i)}).catch(function(l){i.setError(l)});r.token&&r.refreshToken?(C(r.token,r.refreshToken,r.idToken),h.enable?K().then(function(){L().then(function(l){l?(e.onAuthSuccess&&e.onAuthSuccess(),i.setSuccess(),H()):i.setSuccess()}).catch(function(l){i.setError(l)})}):e.updateToken(-1).then(function(){e.onAuthSuccess&&e.onAuthSuccess(),i.setSuccess()}).catch(function(l){e.onAuthError&&e.onAuthError(),r.onLoad?c():i.setError(l)})):r.onLoad?c():i.setSuccess()}return a.then(function(){oe().then(n).catch(function(o){s.setError(o)})}),a.catch(function(o){s.setError(o)}),s.promise},e.login=function(r){return p.login(r)};function X(r){if(typeof crypto>"u"||typeof crypto.getRandomValues>"u")throw new Error("Web Crypto API is not available.");return crypto.getRandomValues(new Uint8Array(r))}function B(r){return $(r,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")}function $(r,t){for(var s=X(r),i=new Array(r),a=0;a<r;a++)i[a]=t.charCodeAt(s[a]%t.length);return String.fromCharCode.apply(null,i)}async function Q(r,t){if(r!=="S256")throw new TypeError(`Invalid value for 'pkceMethod', expected 'S256' but got '${r}'.`);const s=new Uint8Array(await se(t));return ie(s).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}function Z(r){var t={id_token:{acr:r}};return JSON.stringify(t)}e.createLoginUrl=async function(r){var t=F(),s=F(),i=p.redirectUri(r),a={state:t,nonce:s,redirectUri:encodeURIComponent(i),loginOptions:r};r&&r.prompt&&(a.prompt=r.prompt);var c;r&&r.action=="register"?c=e.endpoints.register():c=e.endpoints.authorize();var n=r&&r.scope||e.scope;n?n.indexOf("openid")===-1&&(n="openid "+n):n="openid";var o=c+"?client_id="+encodeURIComponent(e.clientId)+"&redirect_uri="+encodeURIComponent(i)+"&state="+encodeURIComponent(t)+"&response_mode="+encodeURIComponent(e.responseMode)+"&response_type="+encodeURIComponent(e.responseType)+"&scope="+encodeURIComponent(n);if(P&&(o=o+"&nonce="+encodeURIComponent(s)),r&&r.prompt&&(o+="&prompt="+encodeURIComponent(r.prompt)),r&&typeof r.maxAge=="number"&&(o+="&max_age="+encodeURIComponent(r.maxAge)),r&&r.loginHint&&(o+="&login_hint="+encodeURIComponent(r.loginHint)),r&&r.idpHint&&(o+="&kc_idp_hint="+encodeURIComponent(r.idpHint)),r&&r.action&&r.action!="register"&&(o+="&kc_action="+encodeURIComponent(r.action)),r&&r.locale&&(o+="&ui_locales="+encodeURIComponent(r.locale)),r&&r.acr){var l=Z(r.acr);o+="&claims="+encodeURIComponent(l)}if((r&&r.acrValues||e.acrValues)&&(o+="&acr_values="+encodeURIComponent(r.acrValues||e.acrValues)),e.pkceMethod)try{const f=B(96),u=await Q(e.pkceMethod,f);a.pkceCodeVerifier=f,o+="&code_challenge="+u,o+="&code_challenge_method="+e.pkceMethod}catch(f){throw new Error("Failed to generate PKCE challenge.",{cause:f})}return I.add(a),o},e.logout=function(r){return p.logout(r)},e.createLogoutUrl=function(r){if(((r==null?void 0:r.logoutMethod)??e.logoutMethod)==="POST")return e.endpoints.logout();var s=e.endpoints.logout()+"?client_id="+encodeURIComponent(e.clientId)+"&post_logout_redirect_uri="+encodeURIComponent(p.redirectUri(r,!1));return e.idToken&&(s+="&id_token_hint="+encodeURIComponent(e.idToken)),s},e.register=function(r){return p.register(r)},e.createRegisterUrl=async function(r){return r||(r={}),r.action="register",await e.createLoginUrl(r)},e.createAccountUrl=function(r){var t=S(),s=void 0;return typeof t<"u"&&(s=t+"/account?referrer="+encodeURIComponent(e.clientId)+"&referrer_uri="+encodeURIComponent(p.redirectUri(r))),s},e.accountManagement=function(){return p.accountManagement()},e.hasRealmRole=function(r){var t=e.realmAccess;return!!t&&t.roles.indexOf(r)>=0},e.hasResourceRole=function(r,t){if(!e.resourceAccess)return!1;var s=e.resourceAccess[t||e.clientId];return!!s&&s.roles.indexOf(r)>=0},e.loadUserProfile=function(){var r=S()+"/account",t=new XMLHttpRequest;t.open("GET",r,!0),t.setRequestHeader("Accept","application/json"),t.setRequestHeader("Authorization","bearer "+e.token);var s=g();return t.onreadystatechange=function(){t.readyState==4&&(t.status==200?(e.profile=JSON.parse(t.responseText),s.setSuccess(e.profile)):s.setError())},t.send(),s.promise},e.loadUserInfo=function(){var r=e.endpoints.userinfo(),t=new XMLHttpRequest;t.open("GET",r,!0),t.setRequestHeader("Accept","application/json"),t.setRequestHeader("Authorization","bearer "+e.token);var s=g();return t.onreadystatechange=function(){t.readyState==4&&(t.status==200?(e.userInfo=JSON.parse(t.responseText),s.setSuccess(e.userInfo)):s.setError())},t.send(),s.promise},e.isTokenExpired=function(r){if(!e.tokenParsed||!e.refreshToken&&e.flow!="implicit")throw"Not authenticated";if(e.timeSkew==null)return _("[KEYCLOAK] Unable to determine if token is expired as timeskew is not set"),!0;var t=e.tokenParsed.exp-Math.ceil(new Date().getTime()/1e3)+e.timeSkew;if(r){if(isNaN(r))throw"Invalid minValidity";t-=r}return t<0},e.updateToken=function(r){var t=g();if(!e.refreshToken)return t.setError(),t.promise;r=r||5;var s=function(){var a=!1;if(r==-1?(a=!0,_("[KEYCLOAK] Refreshing token: forced refresh")):(!e.tokenParsed||e.isTokenExpired(r))&&(a=!0,_("[KEYCLOAK] Refreshing token: token expired")),!a)t.setSuccess(!1);else{var c="grant_type=refresh_token&refresh_token="+e.refreshToken,n=e.endpoints.token();if(w.push(t),w.length==1){var o=new XMLHttpRequest;o.open("POST",n,!0),o.setRequestHeader("Content-type","application/x-www-form-urlencoded"),o.withCredentials=!0,c+="&client_id="+encodeURIComponent(e.clientId);var l=new Date().getTime();o.onreadystatechange=function(){if(o.readyState==4)if(o.status==200){_("[KEYCLOAK] Token refreshed"),l=(l+new Date().getTime())/2;var f=JSON.parse(o.responseText);C(f.access_token,f.refresh_token,f.id_token,l),e.onAuthRefreshSuccess&&e.onAuthRefreshSuccess();for(var u=w.pop();u!=null;u=w.pop())u.setSuccess(!0)}else{M("[KEYCLOAK] Failed to refresh token"),o.status==400&&e.clearToken(),e.onAuthRefreshError&&e.onAuthRefreshError();for(var u=w.pop();u!=null;u=w.pop())u.setError("Failed to refresh token: An unexpected HTTP error occurred while attempting to refresh the token.")}},o.send(c)}}};if(h.enable){var i=L();i.then(function(){s()}).catch(function(a){t.setError(a)})}else s();return t.promise},e.clearToken=function(){e.token&&(C(null,null,null),e.onAuthLogout&&e.onAuthLogout(),e.loginRequired&&e.login())};function S(){if(typeof e.authServerUrl<"u")return e.authServerUrl.charAt(e.authServerUrl.length-1)=="/"?e.authServerUrl+"realms/"+encodeURIComponent(e.realm):e.authServerUrl+"/realms/"+encodeURIComponent(e.realm)}function ee(){return window.location.origin?window.location.origin:window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:"")}function T(r,t){var s=r.code,i=r.error,a=r.prompt,c=new Date().getTime();if(r.kc_action_status&&e.onActionUpdate&&e.onActionUpdate(r.kc_action_status,r.kc_action),i){if(a!="none")if(r.error_description&&r.error_description==="authentication_expired")e.login(r.loginOptions);else{var n={error:i,error_description:r.error_description};e.onAuthError&&e.onAuthError(n),t&&t.setError(n)}else t&&t.setSuccess();return}else e.flow!="standard"&&(r.access_token||r.id_token)&&u(r.access_token,null,r.id_token,!0);if(e.flow!="implicit"&&s){var o="code="+s+"&grant_type=authorization_code",l=e.endpoints.token(),f=new XMLHttpRequest;f.open("POST",l,!0),f.setRequestHeader("Content-type","application/x-www-form-urlencoded"),o+="&client_id="+encodeURIComponent(e.clientId),o+="&redirect_uri="+r.redirectUri,r.pkceCodeVerifier&&(o+="&code_verifier="+r.pkceCodeVerifier),f.withCredentials=!0,f.onreadystatechange=function(){if(f.readyState==4)if(f.status==200){var m=JSON.parse(f.responseText);u(m.access_token,m.refresh_token,m.id_token,e.flow==="standard"),H()}else e.onAuthError&&e.onAuthError(),t&&t.setError()},f.send(o)}function u(m,y,U,b){c=(c+new Date().getTime())/2,C(m,y,U,c),P&&e.idTokenParsed&&e.idTokenParsed.nonce!=r.storedNonce?(_("[KEYCLOAK] Invalid nonce, clearing token"),e.clearToken(),t&&t.setError()):b&&(e.onAuthSuccess&&e.onAuthSuccess(),t&&t.setSuccess())}}function re(){var r=g(),t;typeof d=="string"&&(t=d);function s(n){n?e.endpoints={authorize:function(){return n.authorization_endpoint},token:function(){return n.token_endpoint},logout:function(){if(!n.end_session_endpoint)throw"Not supported by the OIDC server";return n.end_session_endpoint},checkSessionIframe:function(){if(!n.check_session_iframe)throw"Not supported by the OIDC server";return n.check_session_iframe},register:function(){throw'Redirection to "Register user" page not supported in standard OIDC mode'},userinfo:function(){if(!n.userinfo_endpoint)throw"Not supported by the OIDC server";return n.userinfo_endpoint}}:e.endpoints={authorize:function(){return S()+"/protocol/openid-connect/auth"},token:function(){return S()+"/protocol/openid-connect/token"},logout:function(){return S()+"/protocol/openid-connect/logout"},checkSessionIframe:function(){return S()+"/protocol/openid-connect/login-status-iframe.html"},thirdPartyCookiesIframe:function(){return S()+"/protocol/openid-connect/3p-cookies/step1.html"},register:function(){return S()+"/protocol/openid-connect/registrations"},userinfo:function(){return S()+"/protocol/openid-connect/userinfo"}}}if(t){var i=new XMLHttpRequest;i.open("GET",t,!0),i.setRequestHeader("Accept","application/json"),i.onreadystatechange=function(){if(i.readyState==4)if(i.status==200||J(i)){var n=JSON.parse(i.responseText);e.authServerUrl=n["auth-server-url"],e.realm=n.realm,e.clientId=n.resource,s(null),r.setSuccess()}else r.setError()},i.send()}else{e.clientId=d.clientId;var a=d.oidcProvider;if(!a)e.authServerUrl=d.url,e.realm=d.realm,s(null),r.setSuccess();else if(typeof a=="string"){var c;a.charAt(a.length-1)=="/"?c=a+".well-known/openid-configuration":c=a+"/.well-known/openid-configuration";var i=new XMLHttpRequest;i.open("GET",c,!0),i.setRequestHeader("Accept","application/json"),i.onreadystatechange=function(){if(i.readyState==4)if(i.status==200||J(i)){var o=JSON.parse(i.responseText);s(o),r.setSuccess()}else r.setError()},i.send()}else s(a),r.setSuccess()}return r.promise}function J(r){return r.status==0&&r.responseText&&r.responseURL.startsWith("file:")}function C(r,t,s,i){if(e.tokenTimeoutHandle&&(clearTimeout(e.tokenTimeoutHandle),e.tokenTimeoutHandle=null),t?(e.refreshToken=t,e.refreshTokenParsed=O(t)):(delete e.refreshToken,delete e.refreshTokenParsed),s?(e.idToken=s,e.idTokenParsed=O(s)):(delete e.idToken,delete e.idTokenParsed),r){if(e.token=r,e.tokenParsed=O(r),e.sessionId=e.tokenParsed.sid,e.authenticated=!0,e.subject=e.tokenParsed.sub,e.realmAccess=e.tokenParsed.realm_access,e.resourceAccess=e.tokenParsed.resource_access,i&&(e.timeSkew=Math.floor(i/1e3)-e.tokenParsed.iat),e.timeSkew!=null&&(_("[KEYCLOAK] Estimated time difference between browser and server is "+e.timeSkew+" seconds"),e.onTokenExpired)){var a=(e.tokenParsed.exp-new Date().getTime()/1e3+e.timeSkew)*1e3;_("[KEYCLOAK] Token expires in "+Math.round(a/1e3)+" s"),a<=0?e.onTokenExpired():e.tokenTimeoutHandle=setTimeout(e.onTokenExpired,a)}}else delete e.token,delete e.tokenParsed,delete e.subject,delete e.realmAccess,delete e.resourceAccess,e.authenticated=!1}function F(){if(typeof crypto>"u"||typeof crypto.randomUUID>"u")throw new Error("Web Crypto API is not available.");return crypto.randomUUID()}function E(r){var t=te(r);if(t){var s=I.get(t.state);return s&&(t.valid=!0,t.redirectUri=s.redirectUri,t.storedNonce=s.nonce,t.prompt=s.prompt,t.pkceCodeVerifier=s.pkceCodeVerifier,t.loginOptions=s.loginOptions),t}}function te(r){var t;switch(e.flow){case"standard":t=["code","state","session_state","kc_action_status","kc_action","iss"];break;case"implicit":t=["access_token","token_type","id_token","state","session_state","expires_in","kc_action_status","kc_action","iss"];break;case"hybrid":t=["access_token","token_type","id_token","code","state","session_state","expires_in","kc_action_status","kc_action","iss"];break}t.push("error"),t.push("error_description"),t.push("error_uri");var s=r.indexOf("?"),i=r.indexOf("#"),a,c;if(e.responseMode==="query"&&s!==-1?(a=r.substring(0,s),c=Y(r.substring(s+1,i!==-1?i:r.length),t),c.paramsString!==""&&(a+="?"+c.paramsString),i!==-1&&(a+=r.substring(i))):e.responseMode==="fragment"&&i!==-1&&(a=r.substring(0,i),c=Y(r.substring(i+1),t),c.paramsString!==""&&(a+="#"+c.paramsString)),c&&c.oauthParams){if(e.flow==="standard"||e.flow==="hybrid"){if((c.oauthParams.code||c.oauthParams.error)&&c.oauthParams.state)return c.oauthParams.newUrl=a,c.oauthParams}else if(e.flow==="implicit"&&(c.oauthParams.access_token||c.oauthParams.error)&&c.oauthParams.state)return c.oauthParams.newUrl=a,c.oauthParams}}function Y(r,t){for(var s=r.split("&"),i={paramsString:"",oauthParams:{}},a=0;a<s.length;a++){var c=s[a].indexOf("="),n=s[a].slice(0,c);t.indexOf(n)!==-1?i.oauthParams[n]=s[a].slice(c+1):(i.paramsString!==""&&(i.paramsString+="&"),i.paramsString+=s[a])}return i}function g(){var r={setSuccess:function(t){r.resolve(t)},setError:function(t){r.reject(t)}};return r.promise=new Promise(function(t,s){r.resolve=t,r.reject=s}),r}function ne(r,t,s){var i=null,a=new Promise(function(c,n){i=setTimeout(function(){n({error:s})},t)});return Promise.race([r,a]).finally(function(){clearTimeout(i)})}function K(){var r=g();if(!h.enable||h.iframe)return r.setSuccess(),r.promise;var t=document.createElement("iframe");h.iframe=t,t.onload=function(){var a=e.endpoints.authorize();a.charAt(0)==="/"?h.iframeOrigin=ee():h.iframeOrigin=a.substring(0,a.indexOf("/",8)),r.setSuccess()};var s=e.endpoints.checkSessionIframe();t.setAttribute("src",s),t.setAttribute("sandbox","allow-storage-access-by-user-activation allow-scripts allow-same-origin"),t.setAttribute("title","keycloak-session-iframe"),t.style.display="none",document.body.appendChild(t);var i=function(a){if(!(a.origin!==h.iframeOrigin||h.iframe.contentWindow!==a.source)&&(a.data=="unchanged"||a.data=="changed"||a.data=="error")){a.data!="unchanged"&&e.clearToken();for(var c=h.callbackList.splice(0,h.callbackList.length),n=c.length-1;n>=0;--n){var o=c[n];a.data=="error"?o.setError():o.setSuccess(a.data=="unchanged")}}};return window.addEventListener("message",i,!1),r.promise}function H(){h.enable&&e.token&&setTimeout(function(){L().then(function(r){r&&H()})},h.interval*1e3)}function L(){var r=g();if(h.iframe&&h.iframeOrigin){var t=e.clientId+" "+(e.sessionId?e.sessionId:"");h.callbackList.push(r);var s=h.iframeOrigin;h.callbackList.length==1&&h.iframe.contentWindow.postMessage(t,s)}else r.setSuccess();return r.promise}function oe(){var r=g();if((h.enable||e.silentCheckSsoRedirectUri)&&typeof e.endpoints.thirdPartyCookiesIframe=="function"){var t=document.createElement("iframe");t.setAttribute("src",e.endpoints.thirdPartyCookiesIframe()),t.setAttribute("sandbox","allow-storage-access-by-user-activation allow-scripts allow-same-origin"),t.setAttribute("title","keycloak-3p-check-iframe"),t.style.display="none",document.body.appendChild(t);var s=function(i){t.contentWindow===i.source&&(i.data!=="supported"&&i.data!=="unsupported"||(i.data==="unsupported"&&(M(`[KEYCLOAK] Your browser is blocking access to 3rd-party cookies, this means:
|
|
4
|
+
For more information see: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts`),e.init=function(r={}){if(e.didInitialize)throw new Error("A 'Keycloak' instance can only be initialized once.");e.didInitialize=!0,e.authenticated=!1,I=ae();var t=["default","cordova","cordova-native"];if(t.indexOf(r.adapter)>-1?p=N(r.adapter):typeof r.adapter=="object"?p=r.adapter:window.Cordova||window.cordova?p=N("cordova"):p=N(),typeof r.useNonce<"u"&&(P=r.useNonce),typeof r.checkLoginIframe<"u"&&(h.enable=r.checkLoginIframe),r.checkLoginIframeInterval&&(h.interval=r.checkLoginIframeInterval),r.onLoad==="login-required"&&(e.loginRequired=!0),r.responseMode)if(r.responseMode==="query"||r.responseMode==="fragment")e.responseMode=r.responseMode;else throw"Invalid value for responseMode";if(r.flow){switch(r.flow){case"standard":e.responseType="code";break;case"implicit":e.responseType="id_token token";break;case"hybrid":e.responseType="code id_token token";break;default:throw"Invalid value for flow"}e.flow=r.flow}if(r.timeSkew!=null&&(e.timeSkew=r.timeSkew),r.redirectUri&&(e.redirectUri=r.redirectUri),r.silentCheckSsoRedirectUri&&(e.silentCheckSsoRedirectUri=r.silentCheckSsoRedirectUri),typeof r.silentCheckSsoFallback=="boolean"?e.silentCheckSsoFallback=r.silentCheckSsoFallback:e.silentCheckSsoFallback=!0,typeof r.pkceMethod<"u"){if(r.pkceMethod!=="S256"&&r.pkceMethod!==!1)throw new TypeError(`Invalid value for pkceMethod', expected 'S256' or false but got ${r.pkceMethod}.`);e.pkceMethod=r.pkceMethod}else e.pkceMethod="S256";typeof r.enableLogging=="boolean"?e.enableLogging=r.enableLogging:e.enableLogging=!1,r.logoutMethod==="POST"?e.logoutMethod="POST":e.logoutMethod="GET",typeof r.scope=="string"&&(e.scope=r.scope),typeof r.acrValues=="string"&&(e.acrValues=r.acrValues),typeof r.messageReceiveTimeout=="number"&&r.messageReceiveTimeout>0?e.messageReceiveTimeout=r.messageReceiveTimeout:e.messageReceiveTimeout=1e4,e.responseMode||(e.responseMode="fragment"),e.responseType||(e.responseType="code",e.flow="standard");var s=g(),i=g();i.promise.then(function(){e.onReady&&e.onReady(e.authenticated),s.setSuccess(e.authenticated)}).catch(function(o){s.setError(o)});var a=re();function c(){var o=function(d){d||(f.prompt="none"),r.locale&&(f.locale=r.locale),e.login(f).then(function(){i.setSuccess()}).catch(function(m){i.setError(m)})},l=async function(){var d=document.createElement("iframe"),m=await e.createLoginUrl({prompt:"none",redirectUri:e.silentCheckSsoRedirectUri});d.setAttribute("src",m),d.setAttribute("sandbox","allow-storage-access-by-user-activation allow-scripts allow-same-origin"),d.setAttribute("title","keycloak-silent-check-sso"),d.style.display="none",document.body.appendChild(d);var y=function(U){if(!(U.origin!==window.location.origin||d.contentWindow!==U.source)){var b=E(U.data);T(b,i),document.body.removeChild(d),window.removeEventListener("message",y)}};window.addEventListener("message",y)},f={};switch(r.onLoad){case"check-sso":h.enable?K().then(function(){L().then(function(d){d?i.setSuccess():e.silentCheckSsoRedirectUri?l():o(!1)}).catch(function(d){i.setError(d)})}):e.silentCheckSsoRedirectUri?l():o(!1);break;case"login-required":o(!0);break;default:throw"Invalid value for onLoad"}}function n(){var o=E(window.location.href);if(o&&window.history.replaceState(window.history.state,null,o.newUrl),o&&o.valid)return K().then(function(){T(o,i)}).catch(function(l){i.setError(l)});r.token&&r.refreshToken?(C(r.token,r.refreshToken,r.idToken),h.enable?K().then(function(){L().then(function(l){l?(e.onAuthSuccess&&e.onAuthSuccess(),i.setSuccess(),H()):i.setSuccess()}).catch(function(l){i.setError(l)})}):e.updateToken(-1).then(function(){e.onAuthSuccess&&e.onAuthSuccess(),i.setSuccess()}).catch(function(l){e.onAuthError&&e.onAuthError(),r.onLoad?c():i.setError(l)})):r.onLoad?c():i.setSuccess()}return a.then(function(){oe().then(n).catch(function(o){s.setError(o)})}),a.catch(function(o){s.setError(o)}),s.promise},e.login=function(r){return p.login(r)};function X(r){if(typeof crypto>"u"||typeof crypto.getRandomValues>"u")throw new Error("Web Crypto API is not available.");return crypto.getRandomValues(new Uint8Array(r))}function B(r){return $(r,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")}function $(r,t){for(var s=X(r),i=new Array(r),a=0;a<r;a++)i[a]=t.charCodeAt(s[a]%t.length);return String.fromCharCode.apply(null,i)}async function Q(r,t){if(r!=="S256")throw new TypeError(`Invalid value for 'pkceMethod', expected 'S256' but got '${r}'.`);const s=new Uint8Array(await se(t));return ie(s).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}function Z(r){var t={id_token:{acr:r}};return JSON.stringify(t)}e.createLoginUrl=async function(r){var t=F(),s=F(),i=p.redirectUri(r),a={state:t,nonce:s,redirectUri:encodeURIComponent(i),loginOptions:r};r&&r.prompt&&(a.prompt=r.prompt);var c;r&&r.action=="register"?c=e.endpoints.register():c=e.endpoints.authorize();var n=r&&r.scope||e.scope;n?n.indexOf("openid")===-1&&(n="openid "+n):n="openid";var o=c+"?client_id="+encodeURIComponent(e.clientId)+"&redirect_uri="+encodeURIComponent(i)+"&state="+encodeURIComponent(t)+"&response_mode="+encodeURIComponent(e.responseMode)+"&response_type="+encodeURIComponent(e.responseType)+"&scope="+encodeURIComponent(n);if(P&&(o=o+"&nonce="+encodeURIComponent(s)),r&&r.prompt&&(o+="&prompt="+encodeURIComponent(r.prompt)),r&&typeof r.maxAge=="number"&&(o+="&max_age="+encodeURIComponent(r.maxAge)),r&&r.loginHint&&(o+="&login_hint="+encodeURIComponent(r.loginHint)),r&&r.idpHint&&(o+="&kc_idp_hint="+encodeURIComponent(r.idpHint)),r&&r.action&&r.action!="register"&&(o+="&kc_action="+encodeURIComponent(r.action)),r&&r.locale&&(o+="&ui_locales="+encodeURIComponent(r.locale)),r&&r.acr){var l=Z(r.acr);o+="&claims="+encodeURIComponent(l)}if((r&&r.acrValues||e.acrValues)&&(o+="&acr_values="+encodeURIComponent(r.acrValues||e.acrValues)),e.pkceMethod)try{const f=B(96),d=await Q(e.pkceMethod,f);a.pkceCodeVerifier=f,o+="&code_challenge="+d,o+="&code_challenge_method="+e.pkceMethod}catch(f){throw new Error("Failed to generate PKCE challenge.",{cause:f})}return I.add(a),o},e.logout=function(r){return p.logout(r)},e.createLogoutUrl=function(r){if(((r==null?void 0:r.logoutMethod)??e.logoutMethod)==="POST")return e.endpoints.logout();var s=e.endpoints.logout()+"?client_id="+encodeURIComponent(e.clientId)+"&post_logout_redirect_uri="+encodeURIComponent(p.redirectUri(r,!1));return e.idToken&&(s+="&id_token_hint="+encodeURIComponent(e.idToken)),s},e.register=function(r){return p.register(r)},e.createRegisterUrl=async function(r){return r||(r={}),r.action="register",await e.createLoginUrl(r)},e.createAccountUrl=function(r){var t=S(),s=void 0;return typeof t<"u"&&(s=t+"/account?referrer="+encodeURIComponent(e.clientId)+"&referrer_uri="+encodeURIComponent(p.redirectUri(r))),s},e.accountManagement=function(){return p.accountManagement()},e.hasRealmRole=function(r){var t=e.realmAccess;return!!t&&t.roles.indexOf(r)>=0},e.hasResourceRole=function(r,t){if(!e.resourceAccess)return!1;var s=e.resourceAccess[t||e.clientId];return!!s&&s.roles.indexOf(r)>=0},e.loadUserProfile=function(){var r=S()+"/account",t=new XMLHttpRequest;t.open("GET",r,!0),t.setRequestHeader("Accept","application/json"),t.setRequestHeader("Authorization","bearer "+e.token);var s=g();return t.onreadystatechange=function(){t.readyState==4&&(t.status==200?(e.profile=JSON.parse(t.responseText),s.setSuccess(e.profile)):s.setError())},t.send(),s.promise},e.loadUserInfo=function(){var r=e.endpoints.userinfo(),t=new XMLHttpRequest;t.open("GET",r,!0),t.setRequestHeader("Accept","application/json"),t.setRequestHeader("Authorization","bearer "+e.token);var s=g();return t.onreadystatechange=function(){t.readyState==4&&(t.status==200?(e.userInfo=JSON.parse(t.responseText),s.setSuccess(e.userInfo)):s.setError())},t.send(),s.promise},e.isTokenExpired=function(r){if(!e.tokenParsed||!e.refreshToken&&e.flow!="implicit")throw"Not authenticated";if(e.timeSkew==null)return _("[KEYCLOAK] Unable to determine if token is expired as timeskew is not set"),!0;var t=e.tokenParsed.exp-Math.ceil(new Date().getTime()/1e3)+e.timeSkew;if(r){if(isNaN(r))throw"Invalid minValidity";t-=r}return t<0},e.updateToken=function(r){var t=g();if(!e.refreshToken)return t.setError(),t.promise;r=r||5;var s=function(){var a=!1;if(r==-1?(a=!0,_("[KEYCLOAK] Refreshing token: forced refresh")):(!e.tokenParsed||e.isTokenExpired(r))&&(a=!0,_("[KEYCLOAK] Refreshing token: token expired")),!a)t.setSuccess(!1);else{var c="grant_type=refresh_token&refresh_token="+e.refreshToken,n=e.endpoints.token();if(w.push(t),w.length==1){var o=new XMLHttpRequest;o.open("POST",n,!0),o.setRequestHeader("Content-type","application/x-www-form-urlencoded"),o.withCredentials=!0,c+="&client_id="+encodeURIComponent(e.clientId);var l=new Date().getTime();o.onreadystatechange=function(){if(o.readyState==4)if(o.status==200){_("[KEYCLOAK] Token refreshed"),l=(l+new Date().getTime())/2;var f=JSON.parse(o.responseText);C(f.access_token,f.refresh_token,f.id_token,l),e.onAuthRefreshSuccess&&e.onAuthRefreshSuccess();for(var d=w.pop();d!=null;d=w.pop())d.setSuccess(!0)}else{M("[KEYCLOAK] Failed to refresh token"),o.status==400&&e.clearToken(),e.onAuthRefreshError&&e.onAuthRefreshError();for(var d=w.pop();d!=null;d=w.pop())d.setError("Failed to refresh token: An unexpected HTTP error occurred while attempting to refresh the token.")}},o.send(c)}}};if(h.enable){var i=L();i.then(function(){s()}).catch(function(a){t.setError(a)})}else s();return t.promise},e.clearToken=function(){e.token&&(C(null,null,null),e.onAuthLogout&&e.onAuthLogout(),e.loginRequired&&e.login())};function S(){if(typeof e.authServerUrl<"u")return e.authServerUrl.charAt(e.authServerUrl.length-1)=="/"?e.authServerUrl+"realms/"+encodeURIComponent(e.realm):e.authServerUrl+"/realms/"+encodeURIComponent(e.realm)}function ee(){return window.location.origin?window.location.origin:window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:"")}function T(r,t){var s=r.code,i=r.error,a=r.prompt,c=new Date().getTime();if(r.kc_action_status&&e.onActionUpdate&&e.onActionUpdate(r.kc_action_status,r.kc_action),i){if(a!="none")if(r.error_description&&r.error_description==="authentication_expired")e.login(r.loginOptions);else{var n={error:i,error_description:r.error_description};e.onAuthError&&e.onAuthError(n),t&&t.setError(n)}else t&&t.setSuccess();return}else e.flow!="standard"&&(r.access_token||r.id_token)&&d(r.access_token,null,r.id_token,!0);if(e.flow!="implicit"&&s){var o="code="+s+"&grant_type=authorization_code",l=e.endpoints.token(),f=new XMLHttpRequest;f.open("POST",l,!0),f.setRequestHeader("Content-type","application/x-www-form-urlencoded"),o+="&client_id="+encodeURIComponent(e.clientId),o+="&redirect_uri="+r.redirectUri,r.pkceCodeVerifier&&(o+="&code_verifier="+r.pkceCodeVerifier),f.withCredentials=!0,f.onreadystatechange=function(){if(f.readyState==4)if(f.status==200){var m=JSON.parse(f.responseText);d(m.access_token,m.refresh_token,m.id_token,e.flow==="standard"),H()}else e.onAuthError&&e.onAuthError(),t&&t.setError()},f.send(o)}function d(m,y,U,b){c=(c+new Date().getTime())/2,C(m,y,U,c),P&&e.idTokenParsed&&e.idTokenParsed.nonce!=r.storedNonce?(_("[KEYCLOAK] Invalid nonce, clearing token"),e.clearToken(),t&&t.setError()):b&&(e.onAuthSuccess&&e.onAuthSuccess(),t&&t.setSuccess())}}function re(){var r=g(),t;typeof u=="string"&&(t=u);function s(n){n?e.endpoints={authorize:function(){return n.authorization_endpoint},token:function(){return n.token_endpoint},logout:function(){if(!n.end_session_endpoint)throw"Not supported by the OIDC server";return n.end_session_endpoint},checkSessionIframe:function(){if(!n.check_session_iframe)throw"Not supported by the OIDC server";return n.check_session_iframe},register:function(){throw'Redirection to "Register user" page not supported in standard OIDC mode'},userinfo:function(){if(!n.userinfo_endpoint)throw"Not supported by the OIDC server";return n.userinfo_endpoint}}:e.endpoints={authorize:function(){return S()+"/protocol/openid-connect/auth"},token:function(){return S()+"/protocol/openid-connect/token"},logout:function(){return S()+"/protocol/openid-connect/logout"},checkSessionIframe:function(){return S()+"/protocol/openid-connect/login-status-iframe.html"},thirdPartyCookiesIframe:function(){return S()+"/protocol/openid-connect/3p-cookies/step1.html"},register:function(){return S()+"/protocol/openid-connect/registrations"},userinfo:function(){return S()+"/protocol/openid-connect/userinfo"}}}if(t){var i=new XMLHttpRequest;i.open("GET",t,!0),i.setRequestHeader("Accept","application/json"),i.onreadystatechange=function(){if(i.readyState==4)if(i.status==200||J(i)){var n=JSON.parse(i.responseText);e.authServerUrl=n["auth-server-url"],e.realm=n.realm,e.clientId=n.resource,s(null),r.setSuccess()}else r.setError()},i.send()}else{e.clientId=u.clientId;var a=u.oidcProvider;if(!a)e.authServerUrl=u.url,e.realm=u.realm,s(null),r.setSuccess();else if(typeof a=="string"){var c;a.charAt(a.length-1)=="/"?c=a+".well-known/openid-configuration":c=a+"/.well-known/openid-configuration";var i=new XMLHttpRequest;i.open("GET",c,!0),i.setRequestHeader("Accept","application/json"),i.onreadystatechange=function(){if(i.readyState==4)if(i.status==200||J(i)){var o=JSON.parse(i.responseText);s(o),r.setSuccess()}else r.setError()},i.send()}else s(a),r.setSuccess()}return r.promise}function J(r){return r.status==0&&r.responseText&&r.responseURL.startsWith("file:")}function C(r,t,s,i){if(e.tokenTimeoutHandle&&(clearTimeout(e.tokenTimeoutHandle),e.tokenTimeoutHandle=null),t?(e.refreshToken=t,e.refreshTokenParsed=O(t)):(delete e.refreshToken,delete e.refreshTokenParsed),s?(e.idToken=s,e.idTokenParsed=O(s)):(delete e.idToken,delete e.idTokenParsed),r){if(e.token=r,e.tokenParsed=O(r),e.sessionId=e.tokenParsed.sid,e.authenticated=!0,e.subject=e.tokenParsed.sub,e.realmAccess=e.tokenParsed.realm_access,e.resourceAccess=e.tokenParsed.resource_access,i&&(e.timeSkew=Math.floor(i/1e3)-e.tokenParsed.iat),e.timeSkew!=null&&(_("[KEYCLOAK] Estimated time difference between browser and server is "+e.timeSkew+" seconds"),e.onTokenExpired)){var a=(e.tokenParsed.exp-new Date().getTime()/1e3+e.timeSkew)*1e3;_("[KEYCLOAK] Token expires in "+Math.round(a/1e3)+" s"),a<=0?e.onTokenExpired():e.tokenTimeoutHandle=setTimeout(e.onTokenExpired,a)}}else delete e.token,delete e.tokenParsed,delete e.subject,delete e.realmAccess,delete e.resourceAccess,e.authenticated=!1}function F(){if(typeof crypto>"u"||typeof crypto.randomUUID>"u")throw new Error("Web Crypto API is not available.");return crypto.randomUUID()}function E(r){var t=te(r);if(t){var s=I.get(t.state);return s&&(t.valid=!0,t.redirectUri=s.redirectUri,t.storedNonce=s.nonce,t.prompt=s.prompt,t.pkceCodeVerifier=s.pkceCodeVerifier,t.loginOptions=s.loginOptions),t}}function te(r){var t;switch(e.flow){case"standard":t=["code","state","session_state","kc_action_status","kc_action","iss"];break;case"implicit":t=["access_token","token_type","id_token","state","session_state","expires_in","kc_action_status","kc_action","iss"];break;case"hybrid":t=["access_token","token_type","id_token","code","state","session_state","expires_in","kc_action_status","kc_action","iss"];break}t.push("error"),t.push("error_description"),t.push("error_uri");var s=r.indexOf("?"),i=r.indexOf("#"),a,c;if(e.responseMode==="query"&&s!==-1?(a=r.substring(0,s),c=Y(r.substring(s+1,i!==-1?i:r.length),t),c.paramsString!==""&&(a+="?"+c.paramsString),i!==-1&&(a+=r.substring(i))):e.responseMode==="fragment"&&i!==-1&&(a=r.substring(0,i),c=Y(r.substring(i+1),t),c.paramsString!==""&&(a+="#"+c.paramsString)),c&&c.oauthParams){if(e.flow==="standard"||e.flow==="hybrid"){if((c.oauthParams.code||c.oauthParams.error)&&c.oauthParams.state)return c.oauthParams.newUrl=a,c.oauthParams}else if(e.flow==="implicit"&&(c.oauthParams.access_token||c.oauthParams.error)&&c.oauthParams.state)return c.oauthParams.newUrl=a,c.oauthParams}}function Y(r,t){for(var s=r.split("&"),i={paramsString:"",oauthParams:{}},a=0;a<s.length;a++){var c=s[a].indexOf("="),n=s[a].slice(0,c);t.indexOf(n)!==-1?i.oauthParams[n]=s[a].slice(c+1):(i.paramsString!==""&&(i.paramsString+="&"),i.paramsString+=s[a])}return i}function g(){var r={setSuccess:function(t){r.resolve(t)},setError:function(t){r.reject(t)}};return r.promise=new Promise(function(t,s){r.resolve=t,r.reject=s}),r}function ne(r,t,s){var i=null,a=new Promise(function(c,n){i=setTimeout(function(){n({error:s})},t)});return Promise.race([r,a]).finally(function(){clearTimeout(i)})}function K(){var r=g();if(!h.enable||h.iframe)return r.setSuccess(),r.promise;var t=document.createElement("iframe");h.iframe=t,t.onload=function(){var a=e.endpoints.authorize();a.charAt(0)==="/"?h.iframeOrigin=ee():h.iframeOrigin=a.substring(0,a.indexOf("/",8)),r.setSuccess()};var s=e.endpoints.checkSessionIframe();t.setAttribute("src",s),t.setAttribute("sandbox","allow-storage-access-by-user-activation allow-scripts allow-same-origin"),t.setAttribute("title","keycloak-session-iframe"),t.style.display="none",document.body.appendChild(t);var i=function(a){if(!(a.origin!==h.iframeOrigin||h.iframe.contentWindow!==a.source)&&(a.data=="unchanged"||a.data=="changed"||a.data=="error")){a.data!="unchanged"&&e.clearToken();for(var c=h.callbackList.splice(0,h.callbackList.length),n=c.length-1;n>=0;--n){var o=c[n];a.data=="error"?o.setError():o.setSuccess(a.data=="unchanged")}}};return window.addEventListener("message",i,!1),r.promise}function H(){h.enable&&e.token&&setTimeout(function(){L().then(function(r){r&&H()})},h.interval*1e3)}function L(){var r=g();if(h.iframe&&h.iframeOrigin){var t=e.clientId+" "+(e.sessionId?e.sessionId:"");h.callbackList.push(r);var s=h.iframeOrigin;h.callbackList.length==1&&h.iframe.contentWindow.postMessage(t,s)}else r.setSuccess();return r.promise}function oe(){var r=g();if((h.enable||e.silentCheckSsoRedirectUri)&&typeof e.endpoints.thirdPartyCookiesIframe=="function"){var t=document.createElement("iframe");t.setAttribute("src",e.endpoints.thirdPartyCookiesIframe()),t.setAttribute("sandbox","allow-storage-access-by-user-activation allow-scripts allow-same-origin"),t.setAttribute("title","keycloak-3p-check-iframe"),t.style.display="none",document.body.appendChild(t);var s=function(i){t.contentWindow===i.source&&(i.data!=="supported"&&i.data!=="unsupported"||(i.data==="unsupported"&&(M(`[KEYCLOAK] Your browser is blocking access to 3rd-party cookies, this means:
|
|
5
5
|
|
|
6
6
|
- It is not possible to retrieve tokens without redirecting to the Keycloak server (a.k.a. no support for silent authentication).
|
|
7
7
|
- It is not possible to automatically detect changes to the session status (such as the user logging out in another tab).
|
|
8
8
|
|
|
9
|
-
For more information see: https://www.keycloak.org/securing-apps/javascript-adapter#_modern_browsers`),h.enable=!1,e.silentCheckSsoFallback&&(e.silentCheckSsoRedirectUri=!1)),document.body.removeChild(t),window.removeEventListener("message",s),r.setSuccess()))};window.addEventListener("message",s,!1)}else r.setSuccess();return ne(r.promise,e.messageReceiveTimeout,"Timeout when waiting for 3rd party check iframe message.")}function N(r){if(!r||r=="default")return{login:async function(n){return window.location.assign(await e.createLoginUrl(n)),g().promise},logout:async function(n){if(((n==null?void 0:n.logoutMethod)??e.logoutMethod)==="GET"){window.location.replace(e.createLogoutUrl(n));return}const l=document.createElement("form");l.setAttribute("method","POST"),l.setAttribute("action",e.createLogoutUrl(n)),l.style.display="none";const f={id_token_hint:e.idToken,client_id:e.clientId,post_logout_redirect_uri:p.redirectUri(n,!1)};for(const[u,m]of Object.entries(f)){const y=document.createElement("input");y.setAttribute("type","hidden"),y.setAttribute("name",u),y.setAttribute("value",m),l.appendChild(y)}document.body.appendChild(l),l.submit()},register:async function(n){return window.location.assign(await e.createRegisterUrl(n)),g().promise},accountManagement:function(){var n=e.createAccountUrl();if(typeof n<"u")window.location.href=n;else throw"Not supported by the OIDC server";return g().promise},redirectUri:function(n,o){return n&&n.redirectUri?n.redirectUri:e.redirectUri?e.redirectUri:location.href}};if(r=="cordova"){h.enable=!1;var t=function(n,o,l){return window.cordova&&window.cordova.InAppBrowser?window.cordova.InAppBrowser.open(n,o,l):window.open(n,o,l)},s=function(n){return n&&n.cordovaOptions?Object.keys(n.cordovaOptions).reduce(function(o,l){return o[l]=n.cordovaOptions[l],o},{}):{}},i=function(n){return Object.keys(n).reduce(function(o,l){return o.push(l+"="+n[l]),o},[]).join(",")},a=function(n){var o=s(n);return o.location="no",n&&n.prompt=="none"&&(o.hidden="yes"),i(o)},c=function(){return e.redirectUri||"http://localhost"};return{login:async function(n){var o=g(),l=a(n),f=await e.createLoginUrl(n),u=t(f,"_blank",l),m=!1,y=!1,U=function(){y=!0,u.close()};return u.addEventListener("loadstart",function(b){if(b.url.indexOf(c())==0){var z=E(b.url);T(z,o),U(),m=!0}}),u.addEventListener("loaderror",function(b){if(!m)if(b.url.indexOf(c())==0){var z=E(b.url);T(z,o),U(),m=!0}else o.setError(),U()}),u.addEventListener("exit",function(b){y||o.setError({reason:"closed_by_user"})}),o.promise},logout:function(n){var o=g(),l=e.createLogoutUrl(n),f=t(l,"_blank","location=no,hidden=yes,clearcache=yes"),u;return f.addEventListener("loadstart",function(m){m.url.indexOf(c())==0&&f.close()}),f.addEventListener("loaderror",function(m){m.url.indexOf(c())==0||(u=!0),f.close()}),f.addEventListener("exit",function(m){u?o.setError():(e.clearToken(),o.setSuccess())}),o.promise},register:async function(n){var o=g(),l=await e.createRegisterUrl(),f=a(n),u=t(l,"_blank",f);return u.addEventListener("loadstart",function(m){if(m.url.indexOf(c())==0){u.close();var y=E(m.url);T(y,o)}}),o.promise},accountManagement:function(){var n=e.createAccountUrl();if(typeof n<"u"){var o=t(n,"_blank","location=no");o.addEventListener("loadstart",function(l){l.url.indexOf(c())==0&&o.close()})}else throw"Not supported by the OIDC server"},redirectUri:function(n){return c()}}}if(r=="cordova-native")return h.enable=!1,{login:async function(n){var o=g(),l=await e.createLoginUrl(n);return universalLinks.subscribe("keycloak",function(f){universalLinks.unsubscribe("keycloak"),window.cordova.plugins.browsertab.close();var u=E(f.url);T(u,o)}),window.cordova.plugins.browsertab.openUrl(l),o.promise},logout:function(n){var o=g(),l=e.createLogoutUrl(n);return universalLinks.subscribe("keycloak",function(f){universalLinks.unsubscribe("keycloak"),window.cordova.plugins.browsertab.close(),e.clearToken(),o.setSuccess()}),window.cordova.plugins.browsertab.openUrl(l),o.promise},register:async function(n){var o=g(),l=await e.createRegisterUrl(n);return universalLinks.subscribe("keycloak",function(f){universalLinks.unsubscribe("keycloak"),window.cordova.plugins.browsertab.close();var u=E(f.url);T(u,o)}),window.cordova.plugins.browsertab.openUrl(l),o.promise},accountManagement:function(){var n=e.createAccountUrl();if(typeof n<"u")window.cordova.plugins.browsertab.openUrl(n);else throw"Not supported by the OIDC server"},redirectUri:function(n){return n&&n.redirectUri?n.redirectUri:e.redirectUri?e.redirectUri:"http://localhost"}};throw"invalid adapter type: "+r}const A="kc-callback-";var D=function(){if(!(this instanceof D))return new D;localStorage.setItem("kc-test","test"),localStorage.removeItem("kc-test");var r=this;function t(){const c=Date.now();for(const[n,o]of i()){const l=a(o);(l===null||l<c)&&localStorage.removeItem(n)}}function s(){for(const[c]of i())localStorage.removeItem(c)}function i(){return Object.entries(localStorage).filter(([c])=>c.startsWith(A))}function a(c){let n;try{n=JSON.parse(c)}catch{return null}return V(n)&&"expires"in n&&typeof n.expires=="number"?n.expires:null}r.get=function(c){if(c){var n=A+c,o=localStorage.getItem(n);return o&&(localStorage.removeItem(n),o=JSON.parse(o)),t(),o}},r.add=function(c){t();const n=A+c.state,o=JSON.stringify({...c,expires:Date.now()+60*60*1e3});try{localStorage.setItem(n,o)}catch{s(),localStorage.setItem(n,o)}}},j=function(){if(!(this instanceof j))return new j;var r=this;r.get=function(a){if(a){var c=s(A+a);if(i(A+a,"",t(-100)),c)return JSON.parse(c)}},r.add=function(a){i(A+a.state,JSON.stringify(a),t(60))},r.removeItem=function(a){i(a,"",t(-100))};var t=function(a){var c=new Date;return c.setTime(c.getTime()+a*60*1e3),c},s=function(a){for(var c=a+"=",n=document.cookie.split(";"),o=0;o<n.length;o++){for(var l=n[o];l.charAt(0)==" ";)l=l.substring(1);if(l.indexOf(c)==0)return l.substring(c.length,l.length)}return""},i=function(a,c,n){var o=a+"="+c+"; expires="+n.toUTCString()+"; ";document.cookie=o}};function ae(){try{return new D}catch{}return new j}function q(r){return function(){e.enableLogging&&r.apply(console,Array.prototype.slice.call(arguments))}}}function ie(d){const e=String.fromCodePoint(...d);return btoa(e)}async function se(d){const p=new TextEncoder().encode(d);if(typeof crypto>"u"||typeof crypto.subtle>"u")throw new Error("Web Crypto API is not available.");return await crypto.subtle.digest("SHA-256",p)}function O(d){const[e,p]=d.split(".");if(typeof p!="string")throw new Error("Unable to decode token, payload not found.");let w;try{w=ce(p)}catch(I){throw new Error("Unable to decode token, payload is not a valid Base64URL value.",{cause:I})}try{return JSON.parse(w)}catch(I){throw new Error("Unable to decode token, payload is not a valid JSON value.",{cause:I})}}function ce(d){let e=d.replaceAll("-","+").replaceAll("_","/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw new Error("Input is not of the correct length.")}try{return le(e)}catch{return atob(e)}}function le(d){return decodeURIComponent(atob(d).replace(/(.)/g,(e,p)=>{let w=p.charCodeAt(0).toString(16).toUpperCase();return w.length<2&&(w="0"+w),"%"+w}))}function V(d){return typeof d=="object"&&d!==null}let k=null,x=null;function ue(d,e=!0){return x?(console.log("Keycloak already initialized, returning from cache"),x):(k||(k=new G({url:d.url,realm:d.realm,clientId:d.clientId})),x=k.init({onLoad:e?"check-sso":"login-required",checkLoginIframe:!1}).then(p=>p).catch(p=>(console.error("Failed to initialize Keycloak:",p),!1)),x)}function de(){return k!=null&&k.authenticated&&(k!=null&&k.idTokenParsed)?{fullname:k.idTokenParsed.name,email:k.idTokenParsed.email,lastname:k.idTokenParsed.family_name,firstname:k.idTokenParsed.given_name,username:k.idTokenParsed.preferred_username,background:"grey",token:k.token,sub:k.idTokenParsed.sub}:{}}function fe(){if(k)k.login();else throw new Error("Keycloak is not initialized.")}function he(){if(k)k.logout();else throw new Error("Keycloak is not initialized.")}function pe(){return!!(k!=null&&k.authenticated)}async function me(d){try{const e=await fetch(d,{method:"HEAD",mode:"no-cors"});return e.ok||e.type==="opaque"}catch{return!1}}const ke=class{constructor(d){v.registerInstance(this,d),this.keycloak=v.createEvent(this,"keycloak",7),this.auth=v.createEvent(this,"auth",7),this.handleLogin=async()=>{if(!this.authenticated)try{await fe()}catch(e){R.toast.show(e.message,"error")}},this.handleLogout=async()=>{try{await he()}catch(e){R.toast.show(e.message,"error")}this.authenticated=!1,this.user=null},this.keycloakUrl=void 0,this.keycloakRealm=void 0,this.keycloakClientId=void 0,this.authenticated=!1,this.user=null,this.serverAvailable=!1}async componentWillLoad(){if(!this.keycloakUrl||!this.keycloakRealm||!this.keycloakClientId){console.error("Keycloak configuration props are missing.");return}if(this.serverAvailable=await me(`${this.keycloakUrl}/realms/${this.keycloakRealm}`),!this.serverAvailable){R.toast.show("Keycloak server is unavailable.","error");return}await this.initAuth()}async initAuth(){try{const d=await ue({url:this.keycloakUrl,realm:this.keycloakRealm,clientId:this.keycloakClientId},!0);this.keycloak.emit({init:d}),pe()&&(this.user=de(),this.authenticated=!0,this.auth.emit({authenticated:this.authenticated,user:this.user}))}catch(d){R.toast.show(d.message,"error")}}render(){return v.h("div",{key:"dace7b16af2f945e4981c9ef139f4c2ae94e130c",class:"block"},!this.authenticated&&v.h("eds-button",{key:"a8d0bd545e8ae4a159b5977d50d05ae27dec7df3",label:"Login",intent:"primary","extra-class":"text-default","aria-label":"Login",triggerClick:this.handleLogin.bind(this)}))}},ge=".splash-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999999;background-color:var(--grey-200);display:flex;flex-direction:column;align-items:center;justify-content:center}.logo-container{width:200px;height:200px;margin-bottom:1rem}.content-container{position:relative;width:5rem;height:5rem;display:flex;align-items:center;justify-content:center}",ve=ge,W=class{constructor(d){v.registerInstance(this,d),this.splash=v.createEvent(this,"splash",7),this.inverse=!1,this.initPromise=void 0,this.isVisible=!0}componentWillLoad(){this.initPromise&&this.initPromise.then(()=>{console.log("Promises resolved"),this.hideSplash()}).catch(d=>{console.error("Initialization error:",d),this.splash.emit({type:"error",message:d.message||"Unknown error"})})}handleHideSplash(){this.hideSplash()}hideSplash(){this.isVisible=!1,this.splash.emit({type:"hidden",message:"Splash screen hidden successfully"})}render(){return this.isVisible?v.h(v.Host,null,v.h("div",{class:"splash-overlay",style:{background:this.inverse?"black":"var(--grey-200)"}},v.h("div",{class:"logo-container"},this.inverse?v.h("eds-logo",{orientation:"vertical",type:"color-white"}):v.h("eds-logo",{orientation:"vertical",type:"color"})),v.h("div",{class:"content-container"},v.h("eds-spinner",{size:"1rem",thickness:"3px","border-color":"var(--grey-400)","bottom-color":"var(--grey-900)",background:"none",fullscreen:!1})))):null}};W.style=ve;exports.eds_login=ke;exports.eds_splash_screen=W;
|
|
9
|
+
For more information see: https://www.keycloak.org/securing-apps/javascript-adapter#_modern_browsers`),h.enable=!1,e.silentCheckSsoFallback&&(e.silentCheckSsoRedirectUri=!1)),document.body.removeChild(t),window.removeEventListener("message",s),r.setSuccess()))};window.addEventListener("message",s,!1)}else r.setSuccess();return ne(r.promise,e.messageReceiveTimeout,"Timeout when waiting for 3rd party check iframe message.")}function N(r){if(!r||r=="default")return{login:async function(n){return window.location.assign(await e.createLoginUrl(n)),g().promise},logout:async function(n){if(((n==null?void 0:n.logoutMethod)??e.logoutMethod)==="GET"){window.location.replace(e.createLogoutUrl(n));return}const l=document.createElement("form");l.setAttribute("method","POST"),l.setAttribute("action",e.createLogoutUrl(n)),l.style.display="none";const f={id_token_hint:e.idToken,client_id:e.clientId,post_logout_redirect_uri:p.redirectUri(n,!1)};for(const[d,m]of Object.entries(f)){const y=document.createElement("input");y.setAttribute("type","hidden"),y.setAttribute("name",d),y.setAttribute("value",m),l.appendChild(y)}document.body.appendChild(l),l.submit()},register:async function(n){return window.location.assign(await e.createRegisterUrl(n)),g().promise},accountManagement:function(){var n=e.createAccountUrl();if(typeof n<"u")window.location.href=n;else throw"Not supported by the OIDC server";return g().promise},redirectUri:function(n,o){return n&&n.redirectUri?n.redirectUri:e.redirectUri?e.redirectUri:location.href}};if(r=="cordova"){h.enable=!1;var t=function(n,o,l){return window.cordova&&window.cordova.InAppBrowser?window.cordova.InAppBrowser.open(n,o,l):window.open(n,o,l)},s=function(n){return n&&n.cordovaOptions?Object.keys(n.cordovaOptions).reduce(function(o,l){return o[l]=n.cordovaOptions[l],o},{}):{}},i=function(n){return Object.keys(n).reduce(function(o,l){return o.push(l+"="+n[l]),o},[]).join(",")},a=function(n){var o=s(n);return o.location="no",n&&n.prompt=="none"&&(o.hidden="yes"),i(o)},c=function(){return e.redirectUri||"http://localhost"};return{login:async function(n){var o=g(),l=a(n),f=await e.createLoginUrl(n),d=t(f,"_blank",l),m=!1,y=!1,U=function(){y=!0,d.close()};return d.addEventListener("loadstart",function(b){if(b.url.indexOf(c())==0){var z=E(b.url);T(z,o),U(),m=!0}}),d.addEventListener("loaderror",function(b){if(!m)if(b.url.indexOf(c())==0){var z=E(b.url);T(z,o),U(),m=!0}else o.setError(),U()}),d.addEventListener("exit",function(b){y||o.setError({reason:"closed_by_user"})}),o.promise},logout:function(n){var o=g(),l=e.createLogoutUrl(n),f=t(l,"_blank","location=no,hidden=yes,clearcache=yes"),d;return f.addEventListener("loadstart",function(m){m.url.indexOf(c())==0&&f.close()}),f.addEventListener("loaderror",function(m){m.url.indexOf(c())==0||(d=!0),f.close()}),f.addEventListener("exit",function(m){d?o.setError():(e.clearToken(),o.setSuccess())}),o.promise},register:async function(n){var o=g(),l=await e.createRegisterUrl(),f=a(n),d=t(l,"_blank",f);return d.addEventListener("loadstart",function(m){if(m.url.indexOf(c())==0){d.close();var y=E(m.url);T(y,o)}}),o.promise},accountManagement:function(){var n=e.createAccountUrl();if(typeof n<"u"){var o=t(n,"_blank","location=no");o.addEventListener("loadstart",function(l){l.url.indexOf(c())==0&&o.close()})}else throw"Not supported by the OIDC server"},redirectUri:function(n){return c()}}}if(r=="cordova-native")return h.enable=!1,{login:async function(n){var o=g(),l=await e.createLoginUrl(n);return universalLinks.subscribe("keycloak",function(f){universalLinks.unsubscribe("keycloak"),window.cordova.plugins.browsertab.close();var d=E(f.url);T(d,o)}),window.cordova.plugins.browsertab.openUrl(l),o.promise},logout:function(n){var o=g(),l=e.createLogoutUrl(n);return universalLinks.subscribe("keycloak",function(f){universalLinks.unsubscribe("keycloak"),window.cordova.plugins.browsertab.close(),e.clearToken(),o.setSuccess()}),window.cordova.plugins.browsertab.openUrl(l),o.promise},register:async function(n){var o=g(),l=await e.createRegisterUrl(n);return universalLinks.subscribe("keycloak",function(f){universalLinks.unsubscribe("keycloak"),window.cordova.plugins.browsertab.close();var d=E(f.url);T(d,o)}),window.cordova.plugins.browsertab.openUrl(l),o.promise},accountManagement:function(){var n=e.createAccountUrl();if(typeof n<"u")window.cordova.plugins.browsertab.openUrl(n);else throw"Not supported by the OIDC server"},redirectUri:function(n){return n&&n.redirectUri?n.redirectUri:e.redirectUri?e.redirectUri:"http://localhost"}};throw"invalid adapter type: "+r}const A="kc-callback-";var D=function(){if(!(this instanceof D))return new D;localStorage.setItem("kc-test","test"),localStorage.removeItem("kc-test");var r=this;function t(){const c=Date.now();for(const[n,o]of i()){const l=a(o);(l===null||l<c)&&localStorage.removeItem(n)}}function s(){for(const[c]of i())localStorage.removeItem(c)}function i(){return Object.entries(localStorage).filter(([c])=>c.startsWith(A))}function a(c){let n;try{n=JSON.parse(c)}catch{return null}return V(n)&&"expires"in n&&typeof n.expires=="number"?n.expires:null}r.get=function(c){if(c){var n=A+c,o=localStorage.getItem(n);return o&&(localStorage.removeItem(n),o=JSON.parse(o)),t(),o}},r.add=function(c){t();const n=A+c.state,o=JSON.stringify({...c,expires:Date.now()+60*60*1e3});try{localStorage.setItem(n,o)}catch{s(),localStorage.setItem(n,o)}}},j=function(){if(!(this instanceof j))return new j;var r=this;r.get=function(a){if(a){var c=s(A+a);if(i(A+a,"",t(-100)),c)return JSON.parse(c)}},r.add=function(a){i(A+a.state,JSON.stringify(a),t(60))},r.removeItem=function(a){i(a,"",t(-100))};var t=function(a){var c=new Date;return c.setTime(c.getTime()+a*60*1e3),c},s=function(a){for(var c=a+"=",n=document.cookie.split(";"),o=0;o<n.length;o++){for(var l=n[o];l.charAt(0)==" ";)l=l.substring(1);if(l.indexOf(c)==0)return l.substring(c.length,l.length)}return""},i=function(a,c,n){var o=a+"="+c+"; expires="+n.toUTCString()+"; ";document.cookie=o}};function ae(){try{return new D}catch{}return new j}function q(r){return function(){e.enableLogging&&r.apply(console,Array.prototype.slice.call(arguments))}}}function ie(u){const e=String.fromCodePoint(...u);return btoa(e)}async function se(u){const p=new TextEncoder().encode(u);if(typeof crypto>"u"||typeof crypto.subtle>"u")throw new Error("Web Crypto API is not available.");return await crypto.subtle.digest("SHA-256",p)}function O(u){const[e,p]=u.split(".");if(typeof p!="string")throw new Error("Unable to decode token, payload not found.");let w;try{w=ce(p)}catch(I){throw new Error("Unable to decode token, payload is not a valid Base64URL value.",{cause:I})}try{return JSON.parse(w)}catch(I){throw new Error("Unable to decode token, payload is not a valid JSON value.",{cause:I})}}function ce(u){let e=u.replaceAll("-","+").replaceAll("_","/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw new Error("Input is not of the correct length.")}try{return le(e)}catch{return atob(e)}}function le(u){return decodeURIComponent(atob(u).replace(/(.)/g,(e,p)=>{let w=p.charCodeAt(0).toString(16).toUpperCase();return w.length<2&&(w="0"+w),"%"+w}))}function V(u){return typeof u=="object"&&u!==null}let k=null,x=null;function ue(u,e=!0){return x?(console.log("Keycloak already initialized, returning from cache"),x):(k||(k=new G({url:u.url,realm:u.realm,clientId:u.clientId})),x=k.init({onLoad:e?"check-sso":"login-required",checkLoginIframe:!1}).then(p=>p).catch(p=>(console.error("Failed to initialize Keycloak:",p),!1)),x)}function de(){return k!=null&&k.authenticated&&(k!=null&&k.idTokenParsed)?{fullname:k.idTokenParsed.name,email:k.idTokenParsed.email,lastname:k.idTokenParsed.family_name,firstname:k.idTokenParsed.given_name,username:k.idTokenParsed.preferred_username,background:"grey",token:k.token,sub:k.idTokenParsed.sub}:{}}function fe(){if(k)k.login();else throw new Error("Keycloak is not initialized.")}function he(){if(k)k.logout();else throw new Error("Keycloak is not initialized.")}function pe(){return!!(k!=null&&k.authenticated)}async function me(u){try{const e=await fetch(u,{method:"HEAD",mode:"no-cors"});return e.ok||e.type==="opaque"}catch{return!1}}const ke=class{constructor(u){v.registerInstance(this,u),this.keycloak=v.createEvent(this,"keycloak",7),this.auth=v.createEvent(this,"auth",7),this.handleLogin=async()=>{if(!this.authenticated)try{await fe()}catch(e){R.toast.show(e.message,"error")}},this.handleLogout=async()=>{try{await he()}catch(e){R.toast.show(e.message,"error")}this.authenticated=!1,this.user=null},this.keycloakUrl=void 0,this.keycloakRealm=void 0,this.keycloakClientId=void 0,this.authenticated=!1,this.user=null,this.serverAvailable=!1}async componentWillLoad(){if(!this.keycloakUrl||!this.keycloakRealm||!this.keycloakClientId){console.error("Keycloak configuration props are missing.");return}if(this.serverAvailable=await me(`${this.keycloakUrl}/realms/${this.keycloakRealm}`),!this.serverAvailable){R.toast.show("Keycloak server is unavailable.","error");return}await this.initAuth()}async initAuth(){try{const u=await ue({url:this.keycloakUrl,realm:this.keycloakRealm,clientId:this.keycloakClientId},!0);this.keycloak.emit({init:u}),pe()&&(this.user=de(),this.authenticated=!0,this.auth.emit({authenticated:this.authenticated,user:this.user}))}catch(u){R.toast.show(u.message,"error")}}render(){return v.h("div",{key:"ac10895096f36f2fb3a79622972d5a8c519685eb",class:"block"},!this.authenticated&&v.h("eds-button",{key:"55aab5ee63214d6a1ccdefc303273df99aa309cf",label:"Login",intent:"primary","extra-class":"text-default","aria-label":"Login",triggerClick:this.handleLogin.bind(this)}))}},ge=".splash-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999999;background-color:var(--grey-200);display:flex;flex-direction:column;align-items:center;justify-content:center}.logo-container{width:200px;height:200px;margin-bottom:1rem}.content-container{position:relative;width:5rem;height:5rem;display:flex;align-items:center;justify-content:center}",ve=ge,W=class{constructor(u){v.registerInstance(this,u),this.splash=v.createEvent(this,"splash",7),this.inverse=!1,this.initPromise=void 0,this.isVisible=!0}componentWillLoad(){this.initPromise&&this.handleInitPromise(this.initPromise)}async watchInitPromise(u){u&&this.handleInitPromise(u)}async handleInitPromise(u){try{await u,this.hideSplash()}catch(e){this.splash.emit({type:"error",message:e.message||"Unknown error"})}}handleHideSplash(){this.hideSplash()}hideSplash(){this.isVisible=!1,this.splash.emit({type:"hidden",message:"Splash screen hidden successfully"})}render(){return this.isVisible?v.h(v.Host,null,v.h("div",{class:"splash-overlay",style:{background:this.inverse?"black":"var(--grey-200)"}},v.h("div",{class:"logo-container"},this.inverse?v.h("eds-logo",{orientation:"vertical",type:"color-white"}):v.h("eds-logo",{orientation:"vertical",type:"color"})),v.h("div",{class:"content-container"},v.h("eds-spinner",{size:"1rem",thickness:"3px","border-color":"var(--grey-400)","bottom-color":"var(--grey-900)",background:"none",fullscreen:!1})))):null}static get watchers(){return{initPromise:["watchInitPromise"]}}};W.style=ve;exports.eds_login=ke;exports.eds_splash_screen=W;
|