@abtnode/blocklet-services 1.16.34-beta-20241212-152152-0b8d4bb3 → 1.16.34-beta-20241214-102147-410be539
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/api/index.js +3 -6
- package/api/libs/connect/session.js +3 -0
- package/api/libs/jwt.js +17 -2
- package/api/middlewares/proxy-to-daemon.js +19 -12
- package/api/routes/env.js +1 -0
- package/api/services/auth/connect/invite.js +2 -0
- package/api/services/auth/connect/issue-passport.js +2 -0
- package/api/services/auth/connect/receive-transfer-app-owner.js +1 -0
- package/api/services/auth/connect/verify-destroy.js +112 -0
- package/api/services/auth/connect/verify-elevated.js +96 -0
- package/api/services/auth/index.js +4 -0
- package/api/services/studio/index.js +10 -0
- package/api/util/attach-shared-utils.js +1 -1
- package/dist/assets/{Add-C-MUV7pC.js → Add-B3HyHVtM.js} +1 -1
- package/dist/assets/{Alert-DbN0O0aN.js → Alert-BZsa7bfc.js} +1 -1
- package/dist/assets/{ArrowDropDown-BD-n5g-y.js → ArrowDropDown-CWmGDz8N.js} +1 -1
- package/dist/assets/Autocomplete-B_v4MmH9.js +1 -0
- package/dist/assets/{Avatar-BbstlMJY.js → Avatar-HEUcnEtX.js} +1 -1
- package/dist/assets/{ButtonGroup-YqMGRNaj.js → ButtonGroup-PQ_PkB6m.js} +1 -1
- package/dist/assets/{CSSTransition-CXxbf41Q.js → CSSTransition-TDy8w3WY.js} +1 -1
- package/dist/assets/{CheckCircle-C-J8R9KR.js → CheckCircle-DOCEgyT0.js} +1 -1
- package/dist/assets/{ChevronLeft-dqkQph81.js → ChevronLeft-SFcH5vl6.js} +1 -1
- package/dist/assets/{ChevronRight-B2k9Gvlw.js → ChevronRight-Dvxy4T9U.js} +1 -1
- package/dist/assets/Clear-Ch-uEC-w.js +1 -0
- package/dist/assets/{Delete-DOl4nPF3.js → Delete-CcyPbNyf.js} +1 -1
- package/dist/assets/{DeleteOutline-DYH6KsRs.js → DeleteOutline-B9ZfxIRA.js} +1 -1
- package/dist/assets/DialogContentText-DCnpPqHv.js +1 -0
- package/dist/assets/DialogTitle-CX4cvOk0.js +1 -0
- package/dist/assets/{Done-DEI256sV.js → Done-CfZqxitA.js} +1 -1
- package/dist/assets/{Download-B7Y03H7t.js → Download-BFWJCBB8.js} +1 -1
- package/dist/assets/{EditIcon-WRiAz_Ii.js → EditIcon-DNaLymXS.js} +1 -1
- package/dist/assets/{Error-BqDO0zZY.js → Error-BdnfHrUX.js} +1 -1
- package/dist/assets/{ExpandMore-BO8jF1bn.js → ExpandMore-DA8Sn2_n.js} +1 -1
- package/dist/assets/FormControl-CM7jdcik.js +1 -0
- package/dist/assets/FormControlLabel-Cipo0pK9.js +1 -0
- package/dist/assets/FormGroup-DmfCMPMS.js +1 -0
- package/dist/assets/{Google-D_mc2y32.js → Google-BJuaWa9v.js} +1 -1
- package/dist/assets/{Grid-tsC4khHx.js → Grid-CoWPn88b.js} +1 -1
- package/dist/assets/{HelpOutline-BoXfs1w7.js → HelpOutline-BLqCylfM.js} +1 -1
- package/dist/assets/{Hidden-ipoc6BxF.js → Hidden-BwfHTnYp.js} +1 -1
- package/dist/assets/{InfoOutlined-BxU1CEPg.js → InfoOutlined-CGB23H0o.js} +1 -1
- package/dist/assets/InputAdornment-l4hLGyx4.js +1 -0
- package/dist/assets/{LastPage--sm4pHpX.js → LastPage-BHrK-cLk.js} +1 -1
- package/dist/assets/{Launch-6LXlwp2H.js → Launch-DEmczOPJ.js} +1 -1
- package/dist/assets/{LaunchOutlined-B6l7-o_Y.js → LaunchOutlined-CAHo3VOk.js} +1 -1
- package/dist/assets/Link-B6ysFdMX.js +1 -0
- package/dist/assets/{ListItemButton-YchFGwTe.js → ListItemButton-B1OWxnBV.js} +1 -1
- package/dist/assets/{ListSubheader-CKfDOFlq.js → ListSubheader-pUobARf7.js} +1 -1
- package/dist/assets/{LoadingButton-C4TIaNaq.js → LoadingButton-DG2r6d7f.js} +1 -1
- package/dist/assets/{LockIcon-DtPBoSNv.js → LockIcon-BRQqJ557.js} +1 -1
- package/dist/assets/{Loop-BmB9k803.js → Loop-Cuw7KT5w.js} +1 -1
- package/dist/assets/{MarkEmailRead-D59Dom04.js → MarkEmailRead-C--1q4xK.js} +1 -1
- package/dist/assets/{Menu-CasLu-ky.js → Menu-CkQpad2d.js} +1 -1
- package/dist/assets/{MoreHoriz-B5aoiijW.js → MoreHoriz-BKTzsCTZ.js} +1 -1
- package/dist/assets/{MoreVert-C9UJnjfF.js → MoreVert-10_PTroK.js} +1 -1
- package/dist/assets/{OpenInNew-YMhtYwHE.js → OpenInNew-Bq4wVVSa.js} +1 -1
- package/dist/assets/OutlinedInput-CEhVWPRi.js +2 -0
- package/dist/assets/{Pagination-Df9SRmt8.js → Pagination-BEqA_-kn.js} +1 -1
- package/dist/assets/{PlayArrow-BEtJ369o.js → PlayArrow-BIVbzBbT.js} +1 -1
- package/dist/assets/{QuestionMarkCircle-CuvZsXbn.js → QuestionMarkCircle-U5AYINmw.js} +1 -1
- package/dist/assets/{RadioGroup-CGMGVlf2.js → RadioGroup-CdcEvXbb.js} +1 -1
- package/dist/assets/{Search-CKwfa740.js → Search-BAkyJLzf.js} +1 -1
- package/dist/assets/Select-BtQONHC5.js +1 -0
- package/dist/assets/{ServerLogo-BAQKQJ7V.js → ServerLogo-DgH3ECXb.js} +1 -1
- package/dist/assets/{Skeleton-D0-q_hvU.js → Skeleton-CGO11W5Q.js} +5 -5
- package/dist/assets/{Stack-BO9M0PIW.js → Stack-COUrUgv1.js} +1 -1
- package/dist/assets/{Stepper-RItm9i-D.js → Stepper-mqXb5jVu.js} +1 -1
- package/dist/assets/TextField-uoLan4-D.js +1 -0
- package/dist/assets/{Toolbar-DYiylaGG.js → Toolbar-C5iQWYfr.js} +1 -1
- package/dist/assets/ViewColumn-go0xuyyo.js +1 -0
- package/dist/assets/{ViewList-BaL8evRq.js → ViewList-BM5p31ao.js} +1 -1
- package/dist/assets/_createAggregator-BSUdgXdA.js +1 -0
- package/dist/assets/access-control-D5pU0ds5.js +13 -0
- package/dist/assets/{actions-CchlEsiO.js → actions-DVGs71CV.js} +1 -1
- package/dist/assets/{add-component-core-oabwwAHL.js → add-component-core-BduE5Qc5.js} +2 -2
- package/dist/assets/add-resource-DrKVNKDf.js +1 -0
- package/dist/assets/{addon-k5gcfsfJ.js → addon-DO7ZVcZQ.js} +1 -1
- package/dist/assets/{analytics-9EII-v2b.js → analytics-BlFdI6AL.js} +8 -8
- package/dist/assets/api-D7TuGL10.js +1 -0
- package/dist/assets/ar-BAnh0kq-.js +1 -0
- package/dist/assets/ar-vUARlc-K.js +1 -0
- package/dist/assets/audit-logs-Bap9qCVc.js +58 -0
- package/dist/assets/{base32-Cog_VZ0k.js → base32-Bix9mNu5.js} +1 -1
- package/dist/assets/branding-CFILog-5.js +40 -0
- package/dist/assets/{bundle-avatar-C-1ahBAR.js → bundle-avatar-CY31_Buy.js} +1 -1
- package/dist/assets/{button-CSzyfzmK.js → button-BOPbs6R8.js} +1 -1
- package/dist/assets/{click-to-copy-BBLmW78J.js → click-to-copy-B-IagKFx.js} +1 -1
- package/dist/assets/{complete-BRGGVyCs.js → complete-Cfrn5deV.js} +2 -2
- package/dist/assets/{component-BOFPPqD8.js → component-DU2DN-Ae.js} +6 -6
- package/dist/assets/{config-iLqs6SqP.js → config-NA3UDutD.js} +1 -1
- package/dist/assets/{config-BuQgZfpX.js → config-U-e-_0Po.js} +2 -2
- package/dist/assets/{config-navigation-C5_bJU0f.js → config-navigation-DWYUEAmI.js} +6 -6
- package/dist/assets/{config-space-C56d0lRU.js → config-space-D-wNk3O8.js} +1 -1
- package/dist/assets/confirm-DoFYzLCD.js +7 -0
- package/dist/assets/{connect-o-hOItU0.js → connect-BPP1EQ9m.js} +1 -1
- package/dist/assets/{connect-DOaWC9ft.js → connect-COnC7LGD.js} +2 -2
- package/dist/assets/{connect-to-CUmo43dQ.js → connect-to-CRjtxtZD.js} +1 -1
- package/dist/assets/{content-layout-Coi8AV4p.js → content-layout-C6ss1seH.js} +1 -1
- package/dist/assets/{dashboard-CazjqRmG.js → dashboard-B29PgJdK.js} +9 -9
- package/dist/assets/de-CYAy3iib.js +1 -0
- package/dist/assets/de-DBLZOTm4.js +1 -0
- package/dist/assets/{deprecate-B2OaYvW_.js → deprecate-Bfb8FxlF.js} +1 -1
- package/dist/assets/{did-address-CqYEOOvT.js → did-address-W2D5q_Ko.js} +1 -1
- package/dist/assets/domain-8A-Bb5Vf.js +9 -0
- package/dist/assets/domain-list-BlN3UnU5.js +15 -0
- package/dist/assets/{email-DD_llVWt.js → email-D0cGXehh.js} +3 -3
- package/dist/assets/emotion-cache.browser.esm-BJd0i6wh.js +1 -0
- package/dist/assets/es-Bi-IB68O.js +1 -0
- package/dist/assets/es-Bn01DRSJ.js +1 -0
- package/dist/assets/exchange-passport-Cs6bUD__.js +1 -0
- package/dist/assets/{fallback-CVomANXA.js → fallback-bURgS5BO.js} +1 -1
- package/dist/assets/{form-text-input-dBeTAT7j.js → form-text-input-BnwSHGUa.js} +2 -2
- package/dist/assets/{format-error-CXOPpcrE.js → format-error-qE4eWtuQ.js} +1 -1
- package/dist/assets/fr-D3J0B-tk.js +1 -0
- package/dist/assets/fr-DXAbgUPh.js +1 -0
- package/dist/assets/{fuel-CDp9ZffP.js → fuel-DYICJXZO.js} +1 -1
- package/dist/assets/{fullpage-CWXnpLtu.js → fullpage-DW3LgEki.js} +1 -1
- package/dist/assets/{get-safe-url-B3_JzMvg.js → get-safe-url-Dhzrk6uX.js} +1 -1
- package/dist/assets/{get-safe-url-DLq03enx.js → get-safe-url-S1qu_6Pw.js} +1 -1
- package/dist/assets/hi-DdEYPkL3.js +1 -0
- package/dist/assets/hi-Dz19or1H.js +1 -0
- package/dist/assets/{home-CSMD2Z1d.js → home-BGgkEeoN.js} +1 -1
- package/dist/assets/id-BadnMPq_.js +1 -0
- package/dist/assets/id-C6kfQsmT.js +1 -0
- package/dist/assets/{iframe-DCD_qn_b.js → iframe-B0Y5VZT4.js} +1 -1
- package/dist/assets/index-B-MTGmhc.js +1 -0
- package/dist/assets/{index-BbwkcNKT.js → index-B0-yJewg.js} +1 -1
- package/dist/assets/{index-DEcPGLHC.js → index-BB9Y-7kV.js} +1 -1
- package/dist/assets/{index-CS43LeKQ.js → index-BHshGDF7.js} +1 -1
- package/dist/assets/index-BIkp0K96.js +1 -0
- package/dist/assets/{index-C03QRPVb.js → index-BO68mfyE.js} +10 -10
- package/dist/assets/{index-BLKPMstc.js → index-BbrXjipI.js} +7 -7
- package/dist/assets/{index-CMGrAADS.js → index-Bc-_Zi-W.js} +1 -1
- package/dist/assets/index-BcaoZxjZ.js +4 -0
- package/dist/assets/{index-Ci5RfQ59.js → index-C895TQLf.js} +1 -1
- package/dist/assets/{index-MlLLj7ox.js → index-CC_Na8qQ.js} +1 -1
- package/dist/assets/{index-DbAVBGvq.js → index-CFEPx64F.js} +2 -2
- package/dist/assets/{index-CxwdZ5FQ.js → index-CoHkYVDV.js} +1 -1
- package/dist/assets/{index-BkwS3xmJ.js → index-Cou7Kk3U.js} +8 -8
- package/dist/assets/{index-BJPpUK5T.js → index-Cr-DtddY.js} +19 -16
- package/dist/assets/{index-CgETkxdp.js → index-CsT7LyYB.js} +1 -1
- package/dist/assets/{index-CGNW_HS5.js → index-D6cqf8kl.js} +4 -4
- package/dist/assets/{index-unKKAfCB.js → index-D9YGgNqL.js} +16 -16
- package/dist/assets/{index-B2QN3yxT.js → index-DEbd0oB1.js} +7 -7
- package/dist/assets/{index-C7otKf8F.js → index-DFFp-KRY.js} +21 -21
- package/dist/assets/{index-DsAOaF68.js → index-DHZKtNfH.js} +1 -1
- package/dist/assets/{index-2Q0z0xFE.js → index-DIA_1V2x.js} +1 -1
- package/dist/assets/{index-ClKfKXJz.js → index-DOeAD_2U.js} +1 -1
- package/dist/assets/{index-B-5mC5YF.js → index-DZyED7ak.js} +1 -1
- package/dist/assets/{index-BAC0visH.js → index-DnPEQyT1.js} +1 -1
- package/dist/assets/{index-DQSbUwd9.js → index-Dw86ejmG.js} +1 -1
- package/dist/assets/{index-C2ynZPOY.js → index-FARJ4CmG.js} +8 -8
- package/dist/assets/{index-DIA9qwvc.js → index-JdqBLsAB.js} +3 -3
- package/dist/assets/index-PVmgaFUO.js +1 -0
- package/dist/assets/{index-DnlBG2uS.js → index-Tj_mFIuY.js} +1 -1
- package/dist/assets/{index-DvbaB47F.js → index-WfneHrey.js} +1 -1
- package/dist/assets/index-lNA9IIbJ.js +291 -0
- package/dist/assets/{index-BWCk5LbW.js → index-xBWtFaIB.js} +2 -2
- package/dist/assets/{invitation-8Vja2ez-.js → invitation-Ck3CoF-t.js} +3 -3
- package/dist/assets/invite-7JOTBO2A.js +5 -0
- package/dist/assets/{isEmail-B6BHZ8TX.js → isEmail-D7Asw66k.js} +1 -1
- package/dist/assets/{issue-passport-D8pAGg2V.js → issue-passport-ChsyPFyk.js} +1 -1
- package/dist/assets/{item-rGVvbhmE.js → item-BdtfgvBs.js} +1 -1
- package/dist/assets/ja-CkktdjqD.js +1 -0
- package/dist/assets/ja-DN837plG.js +1 -0
- package/dist/assets/{jss-plugin-props-sort.esm-BqC3mtsa.js → jss-plugin-props-sort.esm-CF1jS-lO.js} +6 -6
- package/dist/assets/ko-BRLl3b0u.js +1 -0
- package/dist/assets/ko-LU148n3o.js +1 -0
- package/dist/assets/{launch-result-message-fLJdiQ4t.js → launch-result-message-CwmmWOMW.js} +1 -1
- package/dist/assets/{layout-Df9B9CD5.js → layout-Bd6DoZoy.js} +1 -1
- package/dist/assets/{list-header-8wYyLFjq.js → list-header-9IJv-iSy.js} +1 -1
- package/dist/assets/localization-oV3Kd_0i.js +1 -0
- package/dist/assets/{log-CXrE-Pqc.js → log-DaESFbKs.js} +6 -6
- package/dist/assets/login-Dtc3ECZp.js +1 -0
- package/dist/assets/{login-oauth-callback-CgPqb7Lq.js → login-oauth-callback-BJeHAJ7q.js} +1 -1
- package/dist/assets/logo-uploader-BEVNghGE.js +133 -0
- package/dist/assets/{lost-passport-Bh8A1qX6.js → lost-passport-DwGf8Vlp.js} +4 -4
- package/dist/assets/{lottie-react.esm-BSqfmkGG.js → lottie-react.esm-HgyZYlNO.js} +1 -1
- package/dist/assets/notifications-VFqCsgh4.js +65 -0
- package/dist/assets/{open-window-ByvPY_IP.js → open-window-BBejx2wW.js} +1 -1
- package/dist/assets/overview-Cons5CpM.js +12 -0
- package/dist/assets/{page-header-9hNVxRoa.js → page-header-BdOgOkhG.js} +1 -1
- package/dist/assets/{permission-CaRXgle6.js → permission-CJORGapO.js} +1 -1
- package/dist/assets/{preferences-CUsklTmz.js → preferences-CRGFiW-F.js} +1 -1
- package/dist/assets/pt-CSZkEO8C.js +1 -0
- package/dist/assets/pt-CVEpS0WJ.js +1 -0
- package/dist/assets/publish-resource-BPdKmDbw.js +1 -0
- package/dist/assets/{raf-schd.esm-Bnef47nT.js → raf-schd.esm-DO2B_266.js} +1 -1
- package/dist/assets/{react-beautiful-dnd.esm-CpS0-Aqe.js → react-beautiful-dnd.esm-B0qpoL0v.js} +4 -4
- package/dist/assets/refType-Cwb4Ewjt.js +1 -0
- package/dist/assets/{resource-dialog-CWTUaf-O.js → resource-dialog-CurFbneU.js} +11 -11
- package/dist/assets/ru-CPz1NiGU.js +1 -0
- package/dist/assets/ru-Kbn-Tcut.js +1 -0
- package/dist/assets/sdk-BogUA5D6.js +1 -0
- package/dist/assets/{selector-Bgtpcya_.js → selector-Du8tTgLg.js} +2 -2
- package/dist/assets/session-DWy9sT95.js +1 -0
- package/dist/assets/setup-B69qnB1H.js +19 -0
- package/dist/assets/{shorten-label-DtvVN3_a.js → shorten-label-Ba3qRY3O.js} +1 -1
- package/dist/assets/simple-select-NSslFRey.js +1 -0
- package/dist/assets/{slicedToArray-gtBWtJl8.js → slicedToArray-DnG70Erc.js} +1 -1
- package/dist/assets/{start-C4tmiEBt.js → start-DT8p2NnP.js} +1 -1
- package/dist/assets/{step-actions-Bbj9n3cG.js → step-actions-CgCj26Nh.js} +1 -1
- package/dist/assets/{studio-GA30qFJk.js → studio-gA9FVtOC.js} +1 -1
- package/dist/assets/{switch-control-86ykn9ge.js → switch-control-BN9OkP3V.js} +1 -1
- package/dist/assets/th-DN9Th20c.js +1 -0
- package/dist/assets/th-TeCEZBAH.js +1 -0
- package/dist/assets/{toUpper--yB2KjPh.js → toUpper-D-4kyCa2.js} +1 -1
- package/dist/assets/transfer-C3U-vABy.js +16 -0
- package/dist/assets/{trim-08Op5xjY.js → trim-CRA-BoWh.js} +1 -1
- package/dist/assets/{uniqBy-DFF7Lt_J.js → uniqBy-CwChXxd0.js} +1 -1
- package/dist/assets/{unsubscribe-Dy2MxVJy.js → unsubscribe-DWlDXPkd.js} +1 -1
- package/dist/assets/{url-join-fD9yT9x3.js → url-join-D30P1Ce3.js} +1 -1
- package/dist/assets/use-mobile-BD_FZ6Ra.js +1 -0
- package/dist/assets/use-mobile-BhHTlekD.js +1 -0
- package/dist/assets/{useAsync-Co-ihL9T.js → useAsync-nyVjdCwh.js} +1 -1
- package/dist/assets/{useFormControl-Ef5WMbDC.js → useFormControl-ByXcqYyU.js} +1 -1
- package/dist/assets/{useLocalStorage-DElqf361.js → useLocalStorage-BcwZPfXB.js} +1 -1
- package/dist/assets/{useSetState-CuEGVXqh.js → useSetState-S0BEkJD4.js} +1 -1
- package/dist/assets/useSlot-DcqlBn33.js +1 -0
- package/dist/assets/{useSlotProps-CP7QQ02c.js → useSlotProps-D-blxf7S.js} +1 -1
- package/dist/assets/{useThemeProps-55Y0sL0H.js → useThemeProps-DJJBFim4.js} +1 -1
- package/dist/assets/{user-center-PWXrG48O.js → user-center-DPbvIPzU.js} +1 -1
- package/dist/assets/{user-sessions-CbhSRGeB.js → user-sessions-B2B9euhY.js} +1 -1
- package/dist/assets/{util-D3UE9Z7D.js → util-DWRxZQGf.js} +1 -1
- package/dist/assets/utils-iop7lDec.js +1 -0
- package/dist/assets/vi-ChReTICx.js +1 -0
- package/dist/assets/vi-DJT1ejL2.js +1 -0
- package/dist/assets/wrap-locale-I1B3o83L.js +1 -0
- package/dist/assets/zh-BTeqEH4T.js +1 -0
- package/dist/assets/zh-DAHbwHB9.js +2 -0
- package/dist/assets/zh-tw-BTKhoiaD.js +1 -0
- package/dist/assets/zh-tw-CJBhIBvB.js +1 -0
- package/dist/index.html +1 -1
- package/dist/service-worker.js +1 -1
- package/package.json +27 -27
- package/dist/assets/Autocomplete-xp0cyiCL.js +0 -1
- package/dist/assets/DialogContentText-COq3rw-i.js +0 -1
- package/dist/assets/FormControl-BsxgOlTX.js +0 -1
- package/dist/assets/FormControlLabel-Dgpj-XRb.js +0 -1
- package/dist/assets/FormGroup-b58twP-q.js +0 -1
- package/dist/assets/InputAdornment-BiYr4cW6.js +0 -1
- package/dist/assets/Link-fX4KUiej.js +0 -1
- package/dist/assets/Select-B3cdfIzb.js +0 -2
- package/dist/assets/TextField-BWghiml0.js +0 -1
- package/dist/assets/ViewColumn-Bz1lupxM.js +0 -1
- package/dist/assets/_createAggregator-aO50YhXH.js +0 -1
- package/dist/assets/access-control-DplRO33H.js +0 -13
- package/dist/assets/add-resource-Pr1QILYG.js +0 -1
- package/dist/assets/api-BKvFaP38.js +0 -1
- package/dist/assets/ar-B3QGVHSJ.js +0 -1
- package/dist/assets/ar-C077vlSK.js +0 -1
- package/dist/assets/audit-logs-BRW30t3L.js +0 -58
- package/dist/assets/branding-CJWvfGxB.js +0 -37
- package/dist/assets/confirm-DGKnhqaC.js +0 -7
- package/dist/assets/de-3qFVPzmX.js +0 -1
- package/dist/assets/de-CuczgAA8.js +0 -1
- package/dist/assets/domain-BjG22k3m.js +0 -9
- package/dist/assets/domain-list-IwhSKnxn.js +0 -15
- package/dist/assets/emotion-cache.browser.esm-CuIm0Hab.js +0 -1
- package/dist/assets/es-D938HYco.js +0 -1
- package/dist/assets/es-DmfpsaZ4.js +0 -1
- package/dist/assets/exchange-passport-Bj5rusMj.js +0 -1
- package/dist/assets/fr-BUgkJkru.js +0 -1
- package/dist/assets/fr-BdiBXaSB.js +0 -1
- package/dist/assets/hi-BkZt_7Gb.js +0 -1
- package/dist/assets/hi-CLGvJ0VO.js +0 -1
- package/dist/assets/id-Cg1I2efN.js +0 -1
- package/dist/assets/id-CoJHfLJv.js +0 -1
- package/dist/assets/index-Bw4jUIg2.js +0 -4
- package/dist/assets/index-C2TlC4O6.js +0 -1
- package/dist/assets/index-D7VlJHOF.js +0 -1
- package/dist/assets/index-DOuTbUzq.js +0 -1
- package/dist/assets/index-UA6q4JVO.js +0 -291
- package/dist/assets/invite-CagtO6bL.js +0 -5
- package/dist/assets/ja-BfQ6NQ1Q.js +0 -1
- package/dist/assets/ja-DgVJN0fA.js +0 -1
- package/dist/assets/ko-CXw5-Tyj.js +0 -1
- package/dist/assets/ko-OirMS2DQ.js +0 -1
- package/dist/assets/localization-BSqs41PK.js +0 -1
- package/dist/assets/login-wunPRpnb.js +0 -1
- package/dist/assets/logo-uploader-DESUa9bt.js +0 -133
- package/dist/assets/notifications-0BDelSaD.js +0 -65
- package/dist/assets/overview-NyLZyTzQ.js +0 -12
- package/dist/assets/pt-C5FGXBS-.js +0 -1
- package/dist/assets/pt-DFNHF52P.js +0 -1
- package/dist/assets/publish-resource-7Yi_94S6.js +0 -1
- package/dist/assets/redux-CluOqhW1.js +0 -1
- package/dist/assets/refType-BNRJ1Xey.js +0 -1
- package/dist/assets/ru-D1ipkx7j.js +0 -1
- package/dist/assets/ru-Dk6dsYPJ.js +0 -1
- package/dist/assets/sdk-DNBFu3Vd.js +0 -1
- package/dist/assets/session-SThzCGTr.js +0 -1
- package/dist/assets/setup-CWvIujH2.js +0 -19
- package/dist/assets/simple-select-DE145g5Z.js +0 -1
- package/dist/assets/th-Bq0BOWuO.js +0 -1
- package/dist/assets/th-K6XbH1UY.js +0 -1
- package/dist/assets/transfer-BqyfwC5R.js +0 -16
- package/dist/assets/use-mobile-Bdr2kObC.js +0 -1
- package/dist/assets/use-mobile-BjsDuAgv.js +0 -1
- package/dist/assets/useSlot-C9LBI1FF.js +0 -1
- package/dist/assets/vi-CgCRvPul.js +0 -1
- package/dist/assets/vi-w34NOSIe.js +0 -1
- package/dist/assets/wrap-locale-CuTZ5aof.js +0 -1
- package/dist/assets/zh-C8AwRuvb.js +0 -2
- package/dist/assets/zh-EJ-gpgMc.js +0 -1
- package/dist/assets/zh-tw-BvZpzT6d.js +0 -1
- package/dist/assets/zh-tw-OB9rgk8B.js +0 -1
package/api/index.js
CHANGED
|
@@ -228,6 +228,7 @@ module.exports = function createServer(node, serverOptions = {}) {
|
|
|
228
228
|
eventHub.on(EVENTS.NODE_UPDATED, () => {
|
|
229
229
|
logger.info('node update', { pid: process.pid });
|
|
230
230
|
cache.del(cache.keyFns.node());
|
|
231
|
+
proxyToDaemon.clearCache();
|
|
231
232
|
});
|
|
232
233
|
eventHub.on(TeamEvents.userPermissionUpdated, ({ teamDid, user } = {}) => {
|
|
233
234
|
logger.info('user permission updated', { teamDid, userDid: user?.did });
|
|
@@ -439,7 +440,7 @@ module.exports = function createServer(node, serverOptions = {}) {
|
|
|
439
440
|
checkMemberPermission(req, res, next);
|
|
440
441
|
}
|
|
441
442
|
},
|
|
442
|
-
proxyToDaemon({ proxy,
|
|
443
|
+
proxyToDaemon({ proxy, node })
|
|
443
444
|
);
|
|
444
445
|
});
|
|
445
446
|
|
|
@@ -451,11 +452,7 @@ module.exports = function createServer(node, serverOptions = {}) {
|
|
|
451
452
|
// media 相关处理代理到 daemon 中进行处理
|
|
452
453
|
'/api/media/upload/**',
|
|
453
454
|
].forEach((pathname) => {
|
|
454
|
-
server.use(
|
|
455
|
-
`${WELLKNOWN_SERVICE_PATH_PREFIX}${pathname}`,
|
|
456
|
-
checkMemberPermission,
|
|
457
|
-
proxyToDaemon({ proxy, ...options })
|
|
458
|
-
);
|
|
455
|
+
server.use(`${WELLKNOWN_SERVICE_PATH_PREFIX}${pathname}`, checkMemberPermission, proxyToDaemon({ proxy, node }));
|
|
459
456
|
});
|
|
460
457
|
|
|
461
458
|
// API: dns resolver
|
|
@@ -10,6 +10,7 @@ const {
|
|
|
10
10
|
getPassportStatusEndpoint,
|
|
11
11
|
getApplicationInfo,
|
|
12
12
|
verifyNFT,
|
|
13
|
+
canSessionBeElevated,
|
|
13
14
|
} = require('@abtnode/auth/lib/auth');
|
|
14
15
|
const {
|
|
15
16
|
NODE_SERVICES,
|
|
@@ -599,6 +600,7 @@ module.exports = {
|
|
|
599
600
|
walletOS,
|
|
600
601
|
emailVerified: updatedUser.emailVerified,
|
|
601
602
|
phoneVerified: updatedUser.phoneVerified,
|
|
603
|
+
elevated: canSessionBeElevated(role, await request.getNodeInfo()),
|
|
602
604
|
},
|
|
603
605
|
{ ...sessionConfig, didConnectVersion: getDidConnectVersion(request) }
|
|
604
606
|
);
|
|
@@ -968,6 +970,7 @@ module.exports = {
|
|
|
968
970
|
walletOS: request.context.didwallet.os,
|
|
969
971
|
emailVerified: user.emailVerified,
|
|
970
972
|
phoneVerified: user.phoneVerified,
|
|
973
|
+
elevated: canSessionBeElevated(role, await request.getNodeInfo()),
|
|
971
974
|
},
|
|
972
975
|
{ ...sessionConfig, didConnectVersion: getDidConnectVersion(request) }
|
|
973
976
|
);
|
package/api/libs/jwt.js
CHANGED
|
@@ -30,6 +30,7 @@ const initJwt = (node, options) => {
|
|
|
30
30
|
walletOS,
|
|
31
31
|
emailVerified = false,
|
|
32
32
|
phoneVerified = false,
|
|
33
|
+
elevated = false,
|
|
33
34
|
}
|
|
34
35
|
) =>
|
|
35
36
|
createAuthToken({
|
|
@@ -43,6 +44,7 @@ const initJwt = (node, options) => {
|
|
|
43
44
|
provider,
|
|
44
45
|
walletOS,
|
|
45
46
|
kyc: encodeKycStatus(emailVerified, phoneVerified),
|
|
47
|
+
elevated,
|
|
46
48
|
});
|
|
47
49
|
|
|
48
50
|
const verifySessionToken = (token, secret, { checkFromDb, teamDid, checkToken } = {}) =>
|
|
@@ -61,7 +63,16 @@ const initJwt = (node, options) => {
|
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
65
|
|
|
64
|
-
const {
|
|
66
|
+
const {
|
|
67
|
+
did,
|
|
68
|
+
role,
|
|
69
|
+
passport,
|
|
70
|
+
fullName,
|
|
71
|
+
provider = LOGIN_PROVIDER.WALLET,
|
|
72
|
+
walletOS,
|
|
73
|
+
kyc = 0,
|
|
74
|
+
elevated = false,
|
|
75
|
+
} = decoded;
|
|
65
76
|
let user;
|
|
66
77
|
if (!did) {
|
|
67
78
|
return reject(new Error('Invalid jwt token: invalid did'));
|
|
@@ -95,8 +106,12 @@ const initJwt = (node, options) => {
|
|
|
95
106
|
user.provider = provider;
|
|
96
107
|
user.walletOS = walletOS;
|
|
97
108
|
user.kyc = encodeKycStatus(user.emailVerified, user.phoneVerified);
|
|
109
|
+
user.elevated = elevated;
|
|
98
110
|
} else {
|
|
99
|
-
user = Object.assign(
|
|
111
|
+
user = Object.assign(
|
|
112
|
+
{ did, role, passport, fullName, provider, walletOS, kyc, elevated },
|
|
113
|
+
decodeKycStatus(kyc)
|
|
114
|
+
);
|
|
100
115
|
}
|
|
101
116
|
|
|
102
117
|
return resolve(user);
|
|
@@ -6,16 +6,16 @@ const md5 = require('@abtnode/util/lib/md5');
|
|
|
6
6
|
const { AUTH_CERT_TYPE, WELLKNOWN_SERVICE_PATH_PREFIX } = require('@abtnode/constant');
|
|
7
7
|
const { BLOCKLET_TENANT_MODES } = require('@blocklet/constant');
|
|
8
8
|
|
|
9
|
-
const cacheKey = (userDid, appPid, tenantMode) => md5(`${userDid}:${appPid}:${tenantMode}`);
|
|
9
|
+
const cacheKey = (userDid, elevated, appPid, tenantMode) => md5(`${userDid}:${elevated}:${appPid}:${tenantMode}`);
|
|
10
10
|
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
});
|
|
11
|
+
const cache = new LRU({
|
|
12
|
+
max: 200,
|
|
13
|
+
maxAge: 60 * 60 * 1000, // cache for 1 hour
|
|
14
|
+
});
|
|
16
15
|
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
const proxyToDaemon = ({ proxy, node }) => {
|
|
17
|
+
const getToken = async (did, tenantMode, user) => {
|
|
18
|
+
const key = cacheKey(user.did, user.elevated ? 1 : 0, did, tenantMode);
|
|
19
19
|
const cacheToken = cache.get(key);
|
|
20
20
|
if (cacheToken) {
|
|
21
21
|
return cacheToken;
|
|
@@ -28,9 +28,11 @@ const proxyToDaemon = ({ proxy, sessionSecret }) => {
|
|
|
28
28
|
role: user.role,
|
|
29
29
|
tenantMode,
|
|
30
30
|
blockletDid: did,
|
|
31
|
+
elevated: user.elevated,
|
|
32
|
+
kyc: user.kyc,
|
|
31
33
|
},
|
|
32
|
-
|
|
33
|
-
{ expiresIn: '
|
|
34
|
+
await node.getSessionSecret(),
|
|
35
|
+
{ expiresIn: '1h' }
|
|
34
36
|
);
|
|
35
37
|
|
|
36
38
|
cache.set(key, token);
|
|
@@ -38,12 +40,16 @@ const proxyToDaemon = ({ proxy, sessionSecret }) => {
|
|
|
38
40
|
return token;
|
|
39
41
|
};
|
|
40
42
|
|
|
41
|
-
return (req, res) => {
|
|
43
|
+
return async (req, res) => {
|
|
42
44
|
req.url = (req.originalUrl || '/').replace(WELLKNOWN_SERVICE_PATH_PREFIX, '');
|
|
43
45
|
// did returned ty req.getBlockletDid() is blocklet.meta.did
|
|
44
46
|
// the blocklet.meta.did is always the same as appPid in structV2 application
|
|
45
47
|
const did = req.getBlockletDid();
|
|
46
|
-
const token = getToken(
|
|
48
|
+
const token = await getToken(
|
|
49
|
+
did,
|
|
50
|
+
req.tenantMode || BLOCKLET_TENANT_MODES.SINGLE,
|
|
51
|
+
pick(req.user, ['did', 'role', 'elevated', 'kyc'])
|
|
52
|
+
);
|
|
47
53
|
|
|
48
54
|
req.headers.source = 'blocklet-service';
|
|
49
55
|
req.headers.authorization = `Bearer ${token}`;
|
|
@@ -54,3 +60,4 @@ const proxyToDaemon = ({ proxy, sessionSecret }) => {
|
|
|
54
60
|
};
|
|
55
61
|
|
|
56
62
|
module.exports = proxyToDaemon;
|
|
63
|
+
module.exports.clearCache = () => cache.clear();
|
package/api/routes/env.js
CHANGED
|
@@ -44,6 +44,7 @@ module.exports = {
|
|
|
44
44
|
serverEndpoint: "${serverEndpoint}",
|
|
45
45
|
serverVersion: "${info.version}",
|
|
46
46
|
mode: "${info.mode}",
|
|
47
|
+
enableSessionHardening: ${info.enableSessionHardening || false},
|
|
47
48
|
ownerNft: ${JSON.stringify(info.ownerNft || '')},
|
|
48
49
|
launcher: ${JSON.stringify(info.launcher || '')}
|
|
49
50
|
}`);
|
|
@@ -5,6 +5,7 @@ const {
|
|
|
5
5
|
messages,
|
|
6
6
|
checkWalletVersion,
|
|
7
7
|
beforeInvitationRequest,
|
|
8
|
+
canSessionBeElevated,
|
|
8
9
|
} = require('@abtnode/auth/lib/auth');
|
|
9
10
|
const { getSourceAppPid } = require('@blocklet/sdk/lib/util/login');
|
|
10
11
|
const { WELLKNOWN_SERVICE_PATH_PREFIX } = require('@abtnode/constant');
|
|
@@ -114,6 +115,7 @@ module.exports = function createRoutes(node, authenticator, createSessionToken)
|
|
|
114
115
|
walletOS,
|
|
115
116
|
emailVerified: !!user?.emailVerified,
|
|
116
117
|
phoneVerified: !!user?.phoneVerified,
|
|
118
|
+
elevated: canSessionBeElevated(role, nodeInfo),
|
|
117
119
|
},
|
|
118
120
|
{ ...sessionConfig, didConnectVersion: getDidConnectVersion(req) }
|
|
119
121
|
);
|
|
@@ -4,6 +4,7 @@ const {
|
|
|
4
4
|
handleIssuePassportResponse,
|
|
5
5
|
checkWalletVersion,
|
|
6
6
|
beforeIssuePassportRequest,
|
|
7
|
+
canSessionBeElevated,
|
|
7
8
|
} = require('@abtnode/auth/lib/auth');
|
|
8
9
|
const { getSourceAppPid } = require('@blocklet/sdk/lib/util/login');
|
|
9
10
|
const { WELLKNOWN_SERVICE_PATH_PREFIX } = require('@abtnode/constant');
|
|
@@ -127,6 +128,7 @@ module.exports = function createRoutes(node, authenticator, createSessionToken)
|
|
|
127
128
|
walletOS,
|
|
128
129
|
emailVerified: !!user?.emailVerified,
|
|
129
130
|
phoneVerified: !!user?.phoneVerified,
|
|
131
|
+
elevated: canSessionBeElevated(role, nodeInfo),
|
|
130
132
|
},
|
|
131
133
|
{ ...sessionConfig, didConnectVersion: getDidConnectVersion(req) }
|
|
132
134
|
);
|
|
@@ -389,6 +389,7 @@ module.exports = function createRoutes(node, _, createSessionToken) {
|
|
|
389
389
|
walletOS,
|
|
390
390
|
emailVerified: !!user?.emailVerified,
|
|
391
391
|
phoneVerified: !!user?.phoneVerified,
|
|
392
|
+
elevated: true,
|
|
392
393
|
},
|
|
393
394
|
{ ...sessionConfig, didConnectVersion: getDidConnectVersion(req) }
|
|
394
395
|
);
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
const { messages } = require('@abtnode/auth/lib/auth');
|
|
2
|
+
const { authenticateByVc, getVerifyAccessClaims } = require('@abtnode/auth/lib/server');
|
|
3
|
+
const { ROLES, MFA_PROTECTED_METHODS } = require('@abtnode/constant');
|
|
4
|
+
const { getSourceAppPid } = require('@blocklet/sdk/lib/util/login');
|
|
5
|
+
const { fromBase64 } = require('@ocap/util');
|
|
6
|
+
const { LOGIN_PROVIDER } = require('@blocklet/constant');
|
|
7
|
+
|
|
8
|
+
const logger = require('../../../libs/logger')();
|
|
9
|
+
const { createTokenFn, getDidConnectVersion } = require('../../../util');
|
|
10
|
+
const { PASSPORT_VC_TYPES } = require('../../../libs/auth/utils');
|
|
11
|
+
const { getTrustedIssuers } = require('../../../util/blocklet-utils');
|
|
12
|
+
|
|
13
|
+
const ALLOWED_ROLES = [ROLES.OWNER, ROLES.ADMIN, ROLES.MEMBER];
|
|
14
|
+
|
|
15
|
+
// eslint-disable-next-line no-unused-vars
|
|
16
|
+
module.exports = function createRoutes(node, authenticator, createSessionToken) {
|
|
17
|
+
return {
|
|
18
|
+
action: 'verify-destroy',
|
|
19
|
+
onConnect: async ({ request, userDid, extraParams: { locale, payload, roles } }) => {
|
|
20
|
+
const blocklet = await request.getBlocklet();
|
|
21
|
+
const user = await node.getUser({ teamDid: blocklet.appPid, user: { did: userDid } });
|
|
22
|
+
if (!user) {
|
|
23
|
+
throw new Error(messages.notAllowed[locale]);
|
|
24
|
+
}
|
|
25
|
+
if (!user.approved) {
|
|
26
|
+
throw new Error(messages.notAuthorized[locale]);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// ensure payload is valid
|
|
30
|
+
const parsed = JSON.parse(fromBase64(payload).toString());
|
|
31
|
+
if (!MFA_PROTECTED_METHODS.includes(parsed.action)) {
|
|
32
|
+
throw new Error(messages.notAllowed[locale]);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// ensure roles are valid
|
|
36
|
+
const expected = roles
|
|
37
|
+
.split(',')
|
|
38
|
+
.map((x) => x.trim())
|
|
39
|
+
.filter(Boolean);
|
|
40
|
+
if (expected.some((x) => !ALLOWED_ROLES.includes(x))) {
|
|
41
|
+
throw new Error(messages.notAllowed[locale]);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const sourceAppPid = getSourceAppPid(request);
|
|
45
|
+
return {
|
|
46
|
+
verifiableCredential: getVerifyAccessClaims({
|
|
47
|
+
node,
|
|
48
|
+
passports: user.passports,
|
|
49
|
+
roles: expected,
|
|
50
|
+
types: PASSPORT_VC_TYPES,
|
|
51
|
+
source: 'blocklet',
|
|
52
|
+
trustedIssuers: await getTrustedIssuers(blocklet, { sourceAppPid }),
|
|
53
|
+
}),
|
|
54
|
+
};
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
onAuth: async ({ request, claims, challenge, userDid, updateSession, extraParams }) => {
|
|
58
|
+
const { locale, payload } = extraParams;
|
|
59
|
+
const sourceAppPid = getSourceAppPid(request);
|
|
60
|
+
const [blocklet, blockletInfo, info] = await Promise.all([
|
|
61
|
+
request.getBlocklet(),
|
|
62
|
+
request.getBlockletInfo(),
|
|
63
|
+
node.getNodeInfo(),
|
|
64
|
+
]);
|
|
65
|
+
|
|
66
|
+
const { role, user, passport } = await authenticateByVc({
|
|
67
|
+
node,
|
|
68
|
+
locale,
|
|
69
|
+
teamDid: blocklet.appPid,
|
|
70
|
+
userDid,
|
|
71
|
+
claims,
|
|
72
|
+
challenge,
|
|
73
|
+
types: PASSPORT_VC_TYPES,
|
|
74
|
+
trustedIssuers: await getTrustedIssuers(blocklet, { sourceAppPid }),
|
|
75
|
+
});
|
|
76
|
+
if (!ALLOWED_ROLES.includes(role)) {
|
|
77
|
+
throw new Error(messages.notAllowed[locale]);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const parsed = JSON.parse(fromBase64(payload).toString());
|
|
81
|
+
const session = await node.startSession({ data: { ...parsed, type: 'destroy', operator: userDid } });
|
|
82
|
+
|
|
83
|
+
logger.info('DestroySession.start', { sessionId: session.id, parsed, userDid, role });
|
|
84
|
+
|
|
85
|
+
const updates = { destroySessionId: session.id };
|
|
86
|
+
if (info.enableSessionHardening) {
|
|
87
|
+
const createToken = createTokenFn(createSessionToken);
|
|
88
|
+
const sessionConfig = blocklet.settings?.session || {};
|
|
89
|
+
|
|
90
|
+
const { sessionToken, refreshToken } = createToken(
|
|
91
|
+
userDid,
|
|
92
|
+
{
|
|
93
|
+
secret: blockletInfo.secret,
|
|
94
|
+
passport,
|
|
95
|
+
role,
|
|
96
|
+
fullName: user.fullName,
|
|
97
|
+
provider: LOGIN_PROVIDER.WALLET,
|
|
98
|
+
walletOS: request.context.didwallet.os,
|
|
99
|
+
emailVerified: user.emailVerified,
|
|
100
|
+
phoneVerified: user.phoneVerified,
|
|
101
|
+
elevated: true,
|
|
102
|
+
},
|
|
103
|
+
{ ...sessionConfig, didConnectVersion: getDidConnectVersion(request) }
|
|
104
|
+
);
|
|
105
|
+
updates.sessionToken = sessionToken;
|
|
106
|
+
updates.refreshToken = refreshToken;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
await updateSession(updates, true);
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
const { messages, canSessionBeElevated } = require('@abtnode/auth/lib/auth');
|
|
2
|
+
const { authenticateByVc, getVerifyAccessClaims } = require('@abtnode/auth/lib/server');
|
|
3
|
+
const { ROLES } = require('@abtnode/constant');
|
|
4
|
+
const { LOGIN_PROVIDER } = require('@blocklet/constant');
|
|
5
|
+
const { getSourceAppPid } = require('@blocklet/sdk/lib/util/login');
|
|
6
|
+
|
|
7
|
+
const { createTokenFn, getDidConnectVersion } = require('../../../util');
|
|
8
|
+
const { PASSPORT_VC_TYPES } = require('../../../libs/auth/utils');
|
|
9
|
+
const { getTrustedIssuers } = require('../../../util/blocklet-utils');
|
|
10
|
+
|
|
11
|
+
const allowedRoles = [ROLES.OWNER, ROLES.ADMIN, ROLES.MEMBER];
|
|
12
|
+
|
|
13
|
+
// eslint-disable-next-line no-unused-vars
|
|
14
|
+
module.exports = function createRoutes(node, authenticator, createSessionToken) {
|
|
15
|
+
return {
|
|
16
|
+
action: 'verify-elevated',
|
|
17
|
+
onConnect: async ({ request, userDid, extraParams: { locale, connectedDid } }) => {
|
|
18
|
+
if (userDid && connectedDid && userDid !== connectedDid) {
|
|
19
|
+
throw new Error(messages.userMismatch[locale]);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const [blocklet, info] = await Promise.all([request.getBlocklet(), node.getNodeInfo()]);
|
|
23
|
+
if (!info.enableSessionHardening) {
|
|
24
|
+
throw new Error(messages.notEnabled[locale]);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const user = await node.getUser({ teamDid: blocklet.appPid, user: { did: userDid } });
|
|
28
|
+
if (!user) {
|
|
29
|
+
throw new Error(messages.notAllowed[locale]);
|
|
30
|
+
}
|
|
31
|
+
if (!user.approved) {
|
|
32
|
+
throw new Error(messages.notAuthorized[locale]);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const sourceAppPid = getSourceAppPid(request);
|
|
36
|
+
return {
|
|
37
|
+
verifiableCredential: getVerifyAccessClaims({
|
|
38
|
+
node,
|
|
39
|
+
passports: user.passports,
|
|
40
|
+
roles: allowedRoles,
|
|
41
|
+
types: PASSPORT_VC_TYPES,
|
|
42
|
+
source: 'blocklet',
|
|
43
|
+
trustedIssuers: await getTrustedIssuers(blocklet, { sourceAppPid }),
|
|
44
|
+
}),
|
|
45
|
+
};
|
|
46
|
+
},
|
|
47
|
+
|
|
48
|
+
onAuth: async ({ request, claims, challenge, userDid, updateSession, extraParams }) => {
|
|
49
|
+
const { locale } = extraParams;
|
|
50
|
+
const sourceAppPid = getSourceAppPid(request);
|
|
51
|
+
const [blocklet, blockletInfo, info] = await Promise.all([
|
|
52
|
+
request.getBlocklet(),
|
|
53
|
+
request.getBlockletInfo(),
|
|
54
|
+
node.getNodeInfo(),
|
|
55
|
+
]);
|
|
56
|
+
if (!info.enableSessionHardening) {
|
|
57
|
+
throw new Error(messages.notEnabled[locale]);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const { role, user, passport } = await authenticateByVc({
|
|
61
|
+
node,
|
|
62
|
+
locale,
|
|
63
|
+
teamDid: blocklet.appPid,
|
|
64
|
+
userDid,
|
|
65
|
+
claims,
|
|
66
|
+
challenge,
|
|
67
|
+
types: PASSPORT_VC_TYPES,
|
|
68
|
+
trustedIssuers: await getTrustedIssuers(blocklet, { sourceAppPid }),
|
|
69
|
+
});
|
|
70
|
+
if (!allowedRoles.includes(role)) {
|
|
71
|
+
throw new Error(messages.notAllowed[locale]);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const createToken = createTokenFn(createSessionToken);
|
|
75
|
+
const sessionConfig = blocklet.settings?.session || {};
|
|
76
|
+
|
|
77
|
+
const { sessionToken, refreshToken } = createToken(
|
|
78
|
+
userDid,
|
|
79
|
+
{
|
|
80
|
+
secret: blockletInfo.secret,
|
|
81
|
+
passport,
|
|
82
|
+
role,
|
|
83
|
+
fullName: user.fullName,
|
|
84
|
+
provider: LOGIN_PROVIDER.WALLET,
|
|
85
|
+
walletOS: request.context.didwallet.os,
|
|
86
|
+
emailVerified: user.emailVerified,
|
|
87
|
+
phoneVerified: user.phoneVerified,
|
|
88
|
+
elevated: canSessionBeElevated(role, info),
|
|
89
|
+
},
|
|
90
|
+
{ ...sessionConfig, didConnectVersion: getDidConnectVersion(request) }
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
await updateSession({ sessionToken, refreshToken }, true);
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
};
|
|
@@ -32,6 +32,8 @@ const createMigrateToStructV2Routes = require('./connect/migrate-app-to-struct-v
|
|
|
32
32
|
const createTransferAppOwnerRoutes = require('./connect/transfer-app-owner');
|
|
33
33
|
const createIssueKycAuth = require('./connect/issue-kyc');
|
|
34
34
|
const createUpdateKycAuth = require('./connect/update-kyc');
|
|
35
|
+
const createVerifyElevatedAuth = require('./connect/verify-elevated');
|
|
36
|
+
const createVerifyDestroyAuth = require('./connect/verify-destroy');
|
|
35
37
|
const createReceiveTransferAppOwnerRoutes = require('./connect/receive-transfer-app-owner');
|
|
36
38
|
const createSessionRoutes = require('./session');
|
|
37
39
|
const createPassportRoutes = require('./passport');
|
|
@@ -240,6 +242,8 @@ const init = ({ node, options }) => {
|
|
|
240
242
|
handler.attach(Object.assign({ app }, createCheckHasProjectIdAuth(node, options, createSessionToken)));
|
|
241
243
|
handler.attach(Object.assign({ app }, createIssueKycAuth(node, authenticator, createSessionToken)));
|
|
242
244
|
handler.attach(Object.assign({ app }, createUpdateKycAuth(node, authenticator, createSessionToken)));
|
|
245
|
+
handler.attach(Object.assign({ app }, createVerifyElevatedAuth(node, authenticator, createSessionToken)));
|
|
246
|
+
handler.attach(Object.assign({ app }, createVerifyDestroyAuth(node, authenticator, createSessionToken)));
|
|
243
247
|
});
|
|
244
248
|
};
|
|
245
249
|
|
|
@@ -174,6 +174,7 @@ module.exports = {
|
|
|
174
174
|
title: req.meta.title,
|
|
175
175
|
description: req.meta.description,
|
|
176
176
|
screenshots: req.meta.screenshots,
|
|
177
|
+
videos: req.meta.videos,
|
|
177
178
|
logo: req.meta.logo,
|
|
178
179
|
});
|
|
179
180
|
});
|
|
@@ -195,6 +196,7 @@ module.exports = {
|
|
|
195
196
|
if (fs.existsSync(screenshotFile)) {
|
|
196
197
|
fs.unlinkSync(screenshotFile);
|
|
197
198
|
req.meta.screenshots = req.meta.screenshots.filter((x) => x !== req.params.filename);
|
|
199
|
+
req.meta.videos = req.meta.videos.filter((x) => x.screenshot !== req.params.filename);
|
|
198
200
|
yaml.update(path.join(req.component.deployedFrom, BLOCKLET_META_FILE), req.meta);
|
|
199
201
|
return res.json({ success: true });
|
|
200
202
|
}
|
|
@@ -203,6 +205,14 @@ module.exports = {
|
|
|
203
205
|
});
|
|
204
206
|
app.use(`${screenshotUrl}/upload`, ensureComponent, getUploader(BLOCKLET_SCREENSHOTS_DIR).handle);
|
|
205
207
|
|
|
208
|
+
// video uploading
|
|
209
|
+
const videoUrl = `${WELLKNOWN_SERVICE_PATH_PREFIX}/api/studio/videos`;
|
|
210
|
+
app.post(videoUrl, nocache(), ensureComponent, (req, res) => {
|
|
211
|
+
req.meta.videos = req.body.videos;
|
|
212
|
+
yaml.update(path.join(req.component.deployedFrom, BLOCKLET_META_FILE), req.meta, { fix: false });
|
|
213
|
+
return res.json({ success: true });
|
|
214
|
+
});
|
|
215
|
+
|
|
206
216
|
app.get(`${WELLKNOWN_SERVICE_PATH_PREFIX}/hosted/form-builder`, getIndexSender(builderPath));
|
|
207
217
|
app.use(`${WELLKNOWN_SERVICE_PATH_PREFIX}/hosted/form-builder`, serveStatic(builderPath, staticOptions));
|
|
208
218
|
|
|
@@ -182,7 +182,7 @@ module.exports = ({ node, req, options }) => {
|
|
|
182
182
|
await req.ensureUser({ token });
|
|
183
183
|
|
|
184
184
|
if (req.user) {
|
|
185
|
-
res.cookie('login_token', token, { maxAge:
|
|
185
|
+
res.cookie('login_token', token, { maxAge: 60 * 60 * 1000 });
|
|
186
186
|
}
|
|
187
187
|
};
|
|
188
188
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a2 as a,a3 as r,j as t}from"./index-DFFp-KRY.js";var e={},u=r;Object.defineProperty(e,"__esModule",{value:!0});var d=e.default=void 0,v=u(a()),o=t;d=e.default=(0,v.default)((0,o.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z"}),"Add");export{d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{aK as w,aL as T,az as c,j as e,aM as d,ao as H,aN as g,cj as y,ck as I,aQ as n,r as _,aO as U,aP as F,aI as V,aS as Z,aT as D}from"./index-DFFp-KRY.js";import{u as M}from"./useSlot-DcqlBn33.js";function K(o){return T("MuiAlert",o)}const S=w("MuiAlert",["root","action","icon","message","filled","colorSuccess","colorInfo","colorWarning","colorError","filledSuccess","filledInfo","filledWarning","filledError","outlined","outlinedSuccess","outlinedInfo","outlinedWarning","outlinedError","standard","standardSuccess","standardInfo","standardWarning","standardError"]),Q=c(e.jsx("path",{d:"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z"}),"SuccessOutlined"),q=c(e.jsx("path",{d:"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"}),"ReportProblemOutlined"),G=c(e.jsx("path",{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"ErrorOutline"),J=c(e.jsx("path",{d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"}),"InfoOutlined"),X=c(e.jsx("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close"),Y=["action","children","className","closeText","color","components","componentsProps","icon","iconMapping","onClose","role","severity","slotProps","slots","variant"],oo=o=>{const{variant:s,color:r,severity:t,classes:l}=o,u={root:["root",`color${g(r||t)}`,`${s}${g(r||t)}`,`${s}`],icon:["icon"],message:["message"],action:["action"]};return D(u,K,l)},to=d(H,{name:"MuiAlert",slot:"Root",overridesResolver:(o,s)=>{const{ownerState:r}=o;return[s.root,s[r.variant],s[`${r.variant}${g(r.color||r.severity)}`]]}})(({theme:o})=>{const s=o.palette.mode==="light"?y:I,r=o.palette.mode==="light"?I:y;return n({},o.typography.body2,{backgroundColor:"transparent",display:"flex",padding:"6px 16px",variants:[...Object.entries(o.palette).filter(([,t])=>t.main&&t.light).map(([t])=>({props:{colorSeverity:t,variant:"standard"},style:{color:o.vars?o.vars.palette.Alert[`${t}Color`]:s(o.palette[t].light,.6),backgroundColor:o.vars?o.vars.palette.Alert[`${t}StandardBg`]:r(o.palette[t].light,.9),[`& .${S.icon}`]:o.vars?{color:o.vars.palette.Alert[`${t}IconColor`]}:{color:o.palette[t].main}}})),...Object.entries(o.palette).filter(([,t])=>t.main&&t.light).map(([t])=>({props:{colorSeverity:t,variant:"outlined"},style:{color:o.vars?o.vars.palette.Alert[`${t}Color`]:s(o.palette[t].light,.6),border:`1px solid ${(o.vars||o).palette[t].light}`,[`& .${S.icon}`]:o.vars?{color:o.vars.palette.Alert[`${t}IconColor`]}:{color:o.palette[t].main}}})),...Object.entries(o.palette).filter(([,t])=>t.main&&t.dark).map(([t])=>({props:{colorSeverity:t,variant:"filled"},style:n({fontWeight:o.typography.fontWeightMedium},o.vars?{color:o.vars.palette.Alert[`${t}FilledColor`],backgroundColor:o.vars.palette.Alert[`${t}FilledBg`]}:{backgroundColor:o.palette.mode==="dark"?o.palette[t].dark:o.palette[t].main,color:o.palette.getContrastText(o.palette[t].main)})}))]})}),so=d("div",{name:"MuiAlert",slot:"Icon",overridesResolver:(o,s)=>s.icon})({marginRight:12,padding:"7px 0",display:"flex",fontSize:22,opacity:.9}),eo=d("div",{name:"MuiAlert",slot:"Message",overridesResolver:(o,s)=>s.message})({padding:"8px 0",minWidth:0,overflow:"auto"}),j=d("div",{name:"MuiAlert",slot:"Action",overridesResolver:(o,s)=>s.action})({display:"flex",alignItems:"flex-start",padding:"4px 0 0 16px",marginLeft:"auto",marginRight:-8}),z={success:e.jsx(Q,{fontSize:"inherit"}),warning:e.jsx(q,{fontSize:"inherit"}),error:e.jsx(G,{fontSize:"inherit"}),info:e.jsx(J,{fontSize:"inherit"})},no=_.forwardRef(function(s,r){const t=U({props:s,name:"MuiAlert"}),{action:l,children:u,className:$,closeText:v="Close",color:f,components:x={},componentsProps:L={},icon:C,iconMapping:P=z,onClose:A,role:b="alert",severity:p="success",slotProps:h={},slots:O={},variant:R="standard"}=t,k=F(t,Y),a=n({},t,{color:f,severity:p,variant:R,colorSeverity:f||p}),i=oo(a),m={slots:n({closeButton:x.CloseButton,closeIcon:x.CloseIcon},O),slotProps:n({},L,h)},[B,E]=M("closeButton",{elementType:V,externalForwardedProps:m,ownerState:a}),[N,W]=M("closeIcon",{elementType:X,externalForwardedProps:m,ownerState:a});return e.jsxs(to,n({role:b,elevation:0,ownerState:a,className:Z(i.root,$),ref:r},k,{children:[C!==!1?e.jsx(so,{ownerState:a,className:i.icon,children:C||P[p]||z[p]}):null,e.jsx(eo,{ownerState:a,className:i.message,children:u}),l!=null?e.jsx(j,{ownerState:a,className:i.action,children:l}):null,l==null&&A?e.jsx(j,{ownerState:a,className:i.action,children:e.jsx(B,n({size:"small","aria-label":v,title:v,color:"inherit",onClick:A},E,{children:e.jsx(N,n({fontSize:"small"},W))}))}):null]}))});export{no as A,X as C};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a2 as r,a3 as a,j as t}from"./index-DFFp-KRY.js";var e={},o=a;Object.defineProperty(e,"__esModule",{value:!0});var u=e.default=void 0,i=o(r()),p=t;u=e.default=(0,i.default)((0,p.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");export{u as d};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{dc as Pt,r as O,db as ot,c$ as je,fD as Ct,aQ as I,aK as $t,aL as yt,aM as H,aN as mt,aI as xt,br as It,ao as Ot,cq as nt,aO as vt,j as x,aP as Be,cn as At,bk as Lt,aS as ye,aT as St}from"./index-DFFp-KRY.js";import{i as rt,f as de,A as Tt}from"./Select-BtQONHC5.js";import{i as oe,o as dt}from"./OutlinedInput-CEhVWPRi.js";import{C as Rt}from"./Alert-BZsa7bfc.js";import{L as kt}from"./ListSubheader-pUobARf7.js";import{u as wt}from"./useLocalStorage-BcwZPfXB.js";function ft(n){return typeof n.normalize<"u"?n.normalize("NFD").replace(/[\u0300-\u036f]/g,""):n}function Dt(n={}){const{ignoreAccents:a=!0,ignoreCase:g=!0,limit:A,matchFrom:z="any",stringify:N,trim:T=!1}=n;return(b,{inputValue:J,getOptionLabel:G})=>{let R=T?J.trim():J;g&&(R=R.toLowerCase()),a&&(R=ft(R));const X=R?b.filter(fe=>{let k=(N||G)(fe);return g&&(k=k.toLowerCase()),a&&(k=ft(k)),z==="start"?k.indexOf(R)===0:k.indexOf(R)>-1}):b;return typeof A=="number"?X.slice(0,A):X}}function We(n,a){for(let g=0;g<n.length;g+=1)if(a(n[g]))return g;return-1}const Nt=Dt(),gt=5,Mt=n=>{var a;return n.current!==null&&((a=n.current.parentElement)==null?void 0:a.contains(document.activeElement))},Et=[];function Ft(n){const{unstable_isActiveElementInListbox:a=Mt,unstable_classNamePrefix:g="Mui",autoComplete:A=!1,autoHighlight:z=!1,autoSelect:N=!1,blurOnSelect:T=!1,clearOnBlur:b=!n.freeSolo,clearOnEscape:J=!1,componentName:G="useAutocomplete",defaultValue:R=n.multiple?Et:null,disableClearable:X=!1,disableCloseOnSelect:fe=!1,disabled:k,disabledItemsFocusable:Ue=!1,disableListWrap:Ge=!1,filterOptions:at=Nt,filterSelectedOptions:ge=!1,freeSolo:K=!1,getOptionDisabled:j,getOptionKey:Ke,getOptionLabel:ve=t=>{var e;return(e=t.label)!=null?e:t},groupBy:be,handleHomeEndKeys:q=!n.freeSolo,id:lt,includeInputInList:qe=!1,inputValue:Ae,isOptionEqualToValue:ne=(t,e)=>t===e,multiple:c=!1,onChange:he,onClose:Le,onHighlightChange:Se,onInputChange:B,onOpen:Te,open:st,openOnFocus:it=!1,options:me,readOnly:Y=!1,selectOnFocus:xe=!n.freeSolo,value:Re}=n,L=Pt(lt);let $=ve;$=t=>{const e=ve(t);return typeof e!="string"?String(e):e};const Ie=O.useRef(!1),ke=O.useRef(!0),h=O.useRef(null),S=O.useRef(null),[re,Qe]=O.useState(null),[y,Oe]=O.useState(-1),we=z?0:-1,P=O.useRef(we),[l,pt]=ot({controlled:Re,default:R,name:G}),[p,W]=ot({controlled:Ae,default:"",name:G,state:"inputValue"}),[ae,De]=O.useState(!1),Z=O.useCallback((t,e)=>{if(!(c?l.length<e.length:e!==null)&&!b)return;let o;if(c)o="";else if(e==null)o="";else{const s=$(e);o=typeof s=="string"?s:""}p!==o&&(W(o),B&&B(t,o,"reset"))},[$,p,c,B,W,b,l]),[Q,Ne]=ot({controlled:st,default:!1,name:G,state:"open"}),[Je,Me]=O.useState(!0),Ee=!c&&l!=null&&p===$(l),v=Q&&!Y,d=v?at(me.filter(t=>!(ge&&(c?l:[l]).some(e=>e!==null&&ne(t,e)))),{inputValue:Ee&&Je?"":p,getOptionLabel:$}):[],M=wt({filteredOptions:d,value:l,inputValue:p});O.useEffect(()=>{const t=l!==M.value;ae&&!t||K&&!t||Z(null,l)},[l,Z,ae,M.value,K]);const Pe=Q&&d.length>0&&!Y,le=je(t=>{t===-1?h.current.focus():re.querySelector(`[data-tag-index="${t}"]`).focus()});O.useEffect(()=>{c&&y>l.length-1&&(Oe(-1),le(-1))},[l,c,y,le]);function se(t,e){if(!S.current||t<0||t>=d.length)return-1;let r=t;for(;;){const o=S.current.querySelector(`[data-option-index="${r}"]`),s=Ue?!1:!o||o.disabled||o.getAttribute("aria-disabled")==="true";if(o&&o.hasAttribute("tabindex")&&!s)return r;if(e==="next"?r=(r+1)%d.length:r=(r-1+d.length)%d.length,r===t)return-1}}const V=je(({event:t,index:e,reason:r="auto"})=>{if(P.current=e,e===-1?h.current.removeAttribute("aria-activedescendant"):h.current.setAttribute("aria-activedescendant",`${L}-option-${e}`),Se&&Se(t,e===-1?null:d[e],r),!S.current)return;const o=S.current.querySelector(`[role="option"].${g}-focused`);o&&(o.classList.remove(`${g}-focused`),o.classList.remove(`${g}-focusVisible`));let s=S.current;if(S.current.getAttribute("role")!=="listbox"&&(s=S.current.parentElement.querySelector('[role="listbox"]')),!s)return;if(e===-1){s.scrollTop=0;return}const u=S.current.querySelector(`[data-option-index="${e}"]`);if(u&&(u.classList.add(`${g}-focused`),r==="keyboard"&&u.classList.add(`${g}-focusVisible`),s.scrollHeight>s.clientHeight&&r!=="mouse"&&r!=="touch")){const f=u,D=s.clientHeight+s.scrollTop,_e=f.offsetTop+f.offsetHeight;_e>D?s.scrollTop=_e-s.clientHeight:f.offsetTop-f.offsetHeight*(be?1.3:0)<s.scrollTop&&(s.scrollTop=f.offsetTop-f.offsetHeight*(be?1.3:0))}}),E=je(({event:t,diff:e,direction:r="next",reason:o="auto"})=>{if(!v)return;const u=se((()=>{const f=d.length-1;if(e==="reset")return we;if(e==="start")return 0;if(e==="end")return f;const D=P.current+e;return D<0?D===-1&&qe?-1:Ge&&P.current!==-1||Math.abs(e)>1?0:f:D>f?D===f+1&&qe?-1:Ge||Math.abs(e)>1?f:0:D})(),r);if(V({index:u,reason:o,event:t}),A&&e!=="reset")if(u===-1)h.current.value=p;else{const f=$(d[u]);h.current.value=f,f.toLowerCase().indexOf(p.toLowerCase())===0&&p.length>0&&h.current.setSelectionRange(p.length,f.length)}}),ie=()=>{const t=(e,r)=>{const o=e?$(e):"",s=r?$(r):"";return o===s};if(P.current!==-1&&M.filteredOptions&&M.filteredOptions.length!==d.length&&M.inputValue===p&&(c?l.length===M.value.length&&M.value.every((e,r)=>$(l[r])===$(e)):t(M.value,l))){const e=M.filteredOptions[P.current];if(e)return We(d,r=>$(r)===$(e))}return-1},Ce=O.useCallback(()=>{if(!v)return;const t=ie();if(t!==-1){P.current=t;return}const e=c?l[0]:l;if(d.length===0||e==null){E({diff:"reset"});return}if(S.current){if(e!=null){const r=d[P.current];if(c&&r&&We(l,s=>ne(r,s))!==-1)return;const o=We(d,s=>ne(s,e));o===-1?E({diff:"reset"}):V({index:o});return}if(P.current>=d.length-1){V({index:d.length-1});return}V({index:P.current})}},[d.length,c?!1:l,ge,E,V,v,p,c]),Xe=je(t=>{Ct(S,t),t&&Ce()});O.useEffect(()=>{Ce()},[Ce]);const w=t=>{Q||(Ne(!0),Me(!0),Te&&Te(t))},U=(t,e)=>{Q&&(Ne(!1),Le&&Le(t,e))},_=(t,e,r,o)=>{if(c){if(l.length===e.length&&l.every((s,u)=>s===e[u]))return}else if(l===e)return;he&&he(t,e,r,o),pt(e)},pe=O.useRef(!1),ee=(t,e,r="selectOption",o="options")=>{let s=r,u=e;if(c){u=Array.isArray(l)?l.slice():[];const f=We(u,D=>ne(e,D));f===-1?u.push(e):o!=="freeSolo"&&(u.splice(f,1),s="removeOption")}Z(t,u),_(t,u,s,{option:e}),!fe&&(!t||!t.ctrlKey&&!t.metaKey)&&U(t,s),(T===!0||T==="touch"&&pe.current||T==="mouse"&&!pe.current)&&h.current.blur()};function Fe(t,e){if(t===-1)return-1;let r=t;for(;;){if(e==="next"&&r===l.length||e==="previous"&&r===-1)return-1;const o=re.querySelector(`[data-tag-index="${r}"]`);if(!o||!o.hasAttribute("tabindex")||o.disabled||o.getAttribute("aria-disabled")==="true")r+=e==="next"?1:-1;else return r}}const He=(t,e)=>{if(!c)return;p===""&&U(t,"toggleInput");let r=y;y===-1?p===""&&e==="previous"&&(r=l.length-1):(r+=e==="next"?1:-1,r<0&&(r=0),r===l.length&&(r=-1)),r=Fe(r,e),Oe(r),le(r)},ze=t=>{Ie.current=!0,W(""),B&&B(t,"","clear"),_(t,c?[]:null,"clear")},Ye=t=>e=>{if(t.onKeyDown&&t.onKeyDown(e),!e.defaultMuiPrevented&&(y!==-1&&["ArrowLeft","ArrowRight"].indexOf(e.key)===-1&&(Oe(-1),le(-1)),e.which!==229))switch(e.key){case"Home":v&&q&&(e.preventDefault(),E({diff:"start",direction:"next",reason:"keyboard",event:e}));break;case"End":v&&q&&(e.preventDefault(),E({diff:"end",direction:"previous",reason:"keyboard",event:e}));break;case"PageUp":e.preventDefault(),E({diff:-gt,direction:"previous",reason:"keyboard",event:e}),w(e);break;case"PageDown":e.preventDefault(),E({diff:gt,direction:"next",reason:"keyboard",event:e}),w(e);break;case"ArrowDown":e.preventDefault(),E({diff:1,direction:"next",reason:"keyboard",event:e}),w(e);break;case"ArrowUp":e.preventDefault(),E({diff:-1,direction:"previous",reason:"keyboard",event:e}),w(e);break;case"ArrowLeft":He(e,"previous");break;case"ArrowRight":He(e,"next");break;case"Enter":if(P.current!==-1&&v){const r=d[P.current],o=j?j(r):!1;if(e.preventDefault(),o)return;ee(e,r,"selectOption"),A&&h.current.setSelectionRange(h.current.value.length,h.current.value.length)}else K&&p!==""&&Ee===!1&&(c&&e.preventDefault(),ee(e,p,"createOption","freeSolo"));break;case"Escape":v?(e.preventDefault(),e.stopPropagation(),U(e,"escape")):J&&(p!==""||c&&l.length>0)&&(e.preventDefault(),e.stopPropagation(),ze(e));break;case"Backspace":if(c&&!Y&&p===""&&l.length>0){const r=y===-1?l.length-1:y,o=l.slice();o.splice(r,1),_(e,o,"removeOption",{option:l[r]})}break;case"Delete":if(c&&!Y&&p===""&&l.length>0&&y!==-1){const r=y,o=l.slice();o.splice(r,1),_(e,o,"removeOption",{option:l[r]})}break}},ut=t=>{De(!0),it&&!Ie.current&&w(t)},ue=t=>{if(a(S)){h.current.focus();return}De(!1),ke.current=!0,Ie.current=!1,N&&P.current!==-1&&v?ee(t,d[P.current],"blur"):N&&K&&p!==""?ee(t,p,"blur","freeSolo"):b&&Z(t,l),U(t,"blur")},C=t=>{const e=t.target.value;p!==e&&(W(e),Me(!1),B&&B(t,e,"input")),e===""?!X&&!c&&_(t,null,"clear"):w(t)},m=t=>{const e=Number(t.currentTarget.getAttribute("data-option-index"));P.current!==e&&V({event:t,index:e,reason:"mouse"})},F=t=>{V({event:t,index:Number(t.currentTarget.getAttribute("data-option-index")),reason:"touch"}),pe.current=!0},ct=t=>{const e=Number(t.currentTarget.getAttribute("data-option-index"));ee(t,d[e],"selectOption"),pe.current=!1},Ze=t=>e=>{const r=l.slice();r.splice(t,1),_(e,r,"removeOption",{option:l[t]})},et=t=>{Q?U(t,"toggleInput"):w(t)},tt=t=>{t.currentTarget.contains(t.target)&&t.target.getAttribute("id")!==L&&t.preventDefault()},Ve=t=>{t.currentTarget.contains(t.target)&&(h.current.focus(),xe&&ke.current&&h.current.selectionEnd-h.current.selectionStart===0&&h.current.select(),ke.current=!1)},$e=t=>{!k&&(p===""||!Q)&&et(t)};let te=K&&p.length>0;te=te||(c?l.length>0:l!==null);let ce=d;return be&&(ce=d.reduce((t,e,r)=>{const o=be(e);return t.length>0&&t[t.length-1].group===o?t[t.length-1].options.push(e):t.push({key:r,index:r,group:o,options:[e]}),t},[])),k&&ae&&ue(),{getRootProps:(t={})=>I({"aria-owns":Pe?`${L}-listbox`:null},t,{onKeyDown:Ye(t),onMouseDown:tt,onClick:Ve}),getInputLabelProps:()=>({id:`${L}-label`,htmlFor:L}),getInputProps:()=>({id:L,value:p,onBlur:ue,onFocus:ut,onChange:C,onMouseDown:$e,"aria-activedescendant":v?"":null,"aria-autocomplete":A?"both":"list","aria-controls":Pe?`${L}-listbox`:void 0,"aria-expanded":Pe,autoComplete:"off",ref:h,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:k}),getClearProps:()=>({tabIndex:-1,type:"button",onClick:ze}),getPopupIndicatorProps:()=>({tabIndex:-1,type:"button",onClick:et}),getTagProps:({index:t})=>I({key:t,"data-tag-index":t,tabIndex:-1},!Y&&{onDelete:Ze(t)}),getListboxProps:()=>({role:"listbox",id:`${L}-listbox`,"aria-labelledby":`${L}-label`,ref:Xe,onMouseDown:t=>{t.preventDefault()}}),getOptionProps:({index:t,option:e})=>{var r;const o=(c?l:[l]).some(u=>u!=null&&ne(e,u)),s=j?j(e):!1;return{key:(r=Ke==null?void 0:Ke(e))!=null?r:$(e),tabIndex:-1,role:"option",id:`${L}-option-${t}`,onMouseMove:m,onClick:ct,onTouchStart:F,"data-option-index":t,"aria-disabled":s,"aria-selected":o}},id:L,inputValue:p,value:l,dirty:te,expanded:v&&re,popupOpen:v,focused:ae||y!==-1,anchorEl:re,setAnchorEl:Qe,focusedTag:y,groupedOptions:ce}}function Ht(n){return yt("MuiAutocomplete",n)}const i=$t("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]);var bt,ht;const zt=["autoComplete","autoHighlight","autoSelect","blurOnSelect","ChipProps","className","clearIcon","clearOnBlur","clearOnEscape","clearText","closeText","componentsProps","defaultValue","disableClearable","disableCloseOnSelect","disabled","disabledItemsFocusable","disableListWrap","disablePortal","filterOptions","filterSelectedOptions","forcePopupIcon","freeSolo","fullWidth","getLimitTagsText","getOptionDisabled","getOptionKey","getOptionLabel","isOptionEqualToValue","groupBy","handleHomeEndKeys","id","includeInputInList","inputValue","limitTags","ListboxComponent","ListboxProps","loading","loadingText","multiple","noOptionsText","onChange","onClose","onHighlightChange","onInputChange","onOpen","open","openOnFocus","openText","options","PaperComponent","PopperComponent","popupIcon","readOnly","renderGroup","renderInput","renderOption","renderTags","selectOnFocus","size","slotProps","value"],Vt=["ref"],_t=["key"],jt=["key"],Bt=n=>{const{classes:a,disablePortal:g,expanded:A,focused:z,fullWidth:N,hasClearIcon:T,hasPopupIcon:b,inputFocused:J,popupOpen:G,size:R}=n,X={root:["root",A&&"expanded",z&&"focused",N&&"fullWidth",T&&"hasClearIcon",b&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",J&&"inputFocused"],tag:["tag",`tagSize${mt(R)}`],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",G&&"popupIndicatorOpen"],popper:["popper",g&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return St(X,Ht,a)},Wt=H("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(n,a)=>{const{ownerState:g}=n,{fullWidth:A,hasClearIcon:z,hasPopupIcon:N,inputFocused:T,size:b}=g;return[{[`& .${i.tag}`]:a.tag},{[`& .${i.tag}`]:a[`tagSize${mt(b)}`]},{[`& .${i.inputRoot}`]:a.inputRoot},{[`& .${i.input}`]:a.input},{[`& .${i.input}`]:T&&a.inputFocused},a.root,A&&a.fullWidth,N&&a.hasPopupIcon,z&&a.hasClearIcon]}})({[`&.${i.focused} .${i.clearIndicator}`]:{visibility:"visible"},"@media (pointer: fine)":{[`&:hover .${i.clearIndicator}`]:{visibility:"visible"}},[`& .${i.tag}`]:{margin:3,maxWidth:"calc(100% - 6px)"},[`& .${i.inputRoot}`]:{[`.${i.hasPopupIcon}&, .${i.hasClearIcon}&`]:{paddingRight:30},[`.${i.hasPopupIcon}.${i.hasClearIcon}&`]:{paddingRight:56},[`& .${i.input}`]:{width:0,minWidth:30}},[`& .${rt.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},[`& .${rt.root}.${oe.sizeSmall}`]:{[`& .${rt.input}`]:{padding:"2px 4px 3px 0"}},[`& .${dt.root}`]:{padding:9,[`.${i.hasPopupIcon}&, .${i.hasClearIcon}&`]:{paddingRight:39},[`.${i.hasPopupIcon}.${i.hasClearIcon}&`]:{paddingRight:65},[`& .${i.input}`]:{padding:"7.5px 4px 7.5px 5px"},[`& .${i.endAdornment}`]:{right:9}},[`& .${dt.root}.${oe.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${i.input}`]:{padding:"2.5px 4px 2.5px 8px"}},[`& .${de.root}`]:{paddingTop:19,paddingLeft:8,[`.${i.hasPopupIcon}&, .${i.hasClearIcon}&`]:{paddingRight:39},[`.${i.hasPopupIcon}.${i.hasClearIcon}&`]:{paddingRight:65},[`& .${de.input}`]:{padding:"7px 4px"},[`& .${i.endAdornment}`]:{right:9}},[`& .${de.root}.${oe.sizeSmall}`]:{paddingBottom:1,[`& .${de.input}`]:{padding:"2.5px 4px"}},[`& .${oe.hiddenLabel}`]:{paddingTop:8},[`& .${de.root}.${oe.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${i.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${de.root}.${oe.hiddenLabel}.${oe.sizeSmall}`]:{[`& .${i.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${i.input}`]:{flexGrow:1,textOverflow:"ellipsis",opacity:0},variants:[{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{[`& .${i.tag}`]:{margin:2,maxWidth:"calc(100% - 4px)"}}},{props:{inputFocused:!0},style:{[`& .${i.input}`]:{opacity:1}}},{props:{multiple:!0},style:{[`& .${i.inputRoot}`]:{flexWrap:"wrap"}}}]}),Ut=H("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:(n,a)=>a.endAdornment})({position:"absolute",right:0,top:"50%",transform:"translate(0, -50%)"}),Gt=H(xt,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:(n,a)=>a.clearIndicator})({marginRight:-2,padding:4,visibility:"hidden"}),Kt=H(xt,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:({ownerState:n},a)=>I({},a.popupIndicator,n.popupOpen&&a.popupIndicatorOpen)})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:"rotate(180deg)"}}]}),qt=H(It,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(n,a)=>{const{ownerState:g}=n;return[{[`& .${i.option}`]:a.option},a.popper,g.disablePortal&&a.popperDisablePortal]}})(({theme:n})=>({zIndex:(n.vars||n).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:"absolute"}}]})),Qt=H(Ot,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:(n,a)=>a.paper})(({theme:n})=>I({},n.typography.body1,{overflow:"auto"})),Jt=H("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:(n,a)=>a.loading})(({theme:n})=>({color:(n.vars||n).palette.text.secondary,padding:"14px 16px"})),Xt=H("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:(n,a)=>a.noOptions})(({theme:n})=>({color:(n.vars||n).palette.text.secondary,padding:"14px 16px"})),Yt=H("div",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:(n,a)=>a.listbox})(({theme:n})=>({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative",[`& .${i.option}`]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[n.breakpoints.up("sm")]:{minHeight:"auto"},[`&.${i.focused}`]:{backgroundColor:(n.vars||n).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(n.vars||n).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${i.focusVisible}`]:{backgroundColor:(n.vars||n).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:n.vars?`rgba(${n.vars.palette.primary.mainChannel} / ${n.vars.palette.action.selectedOpacity})`:nt(n.palette.primary.main,n.palette.action.selectedOpacity),[`&.${i.focused}`]:{backgroundColor:n.vars?`rgba(${n.vars.palette.primary.mainChannel} / calc(${n.vars.palette.action.selectedOpacity} + ${n.vars.palette.action.hoverOpacity}))`:nt(n.palette.primary.main,n.palette.action.selectedOpacity+n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(n.vars||n).palette.action.selected}},[`&.${i.focusVisible}`]:{backgroundColor:n.vars?`rgba(${n.vars.palette.primary.mainChannel} / calc(${n.vars.palette.action.selectedOpacity} + ${n.vars.palette.action.focusOpacity}))`:nt(n.palette.primary.main,n.palette.action.selectedOpacity+n.palette.action.focusOpacity)}}}})),Zt=H(kt,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:(n,a)=>a.groupLabel})(({theme:n})=>({backgroundColor:(n.vars||n).palette.background.paper,top:-8})),eo=H("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:(n,a)=>a.groupUl})({padding:0,[`& .${i.option}`]:{paddingLeft:24}}),so=O.forwardRef(function(a,g){var A,z,N,T;const b=vt({props:a,name:"MuiAutocomplete"}),{autoComplete:J=!1,autoHighlight:G=!1,autoSelect:R=!1,blurOnSelect:X=!1,ChipProps:fe,className:k,clearIcon:Ue=bt||(bt=x.jsx(Rt,{fontSize:"small"})),clearOnBlur:Ge=!b.freeSolo,clearOnEscape:at=!1,clearText:ge="Clear",closeText:K="Close",componentsProps:j={},defaultValue:Ke=b.multiple?[]:null,disableClearable:ve=!1,disableCloseOnSelect:be=!1,disabled:q=!1,disabledItemsFocusable:lt=!1,disableListWrap:qe=!1,disablePortal:Ae=!1,filterSelectedOptions:ne=!1,forcePopupIcon:c="auto",freeSolo:he=!1,fullWidth:Le=!1,getLimitTagsText:Se=o=>`+${o}`,getOptionLabel:B,groupBy:Te,handleHomeEndKeys:st=!b.freeSolo,includeInputInList:it=!1,limitTags:me=-1,ListboxComponent:Y="ul",ListboxProps:xe,loading:Re=!1,loadingText:L="Loading…",multiple:$=!1,noOptionsText:Ie="No options",openOnFocus:ke=!1,openText:h="Open",PaperComponent:S=Ot,PopperComponent:re=It,popupIcon:Qe=ht||(ht=x.jsx(Tt,{})),readOnly:y=!1,renderGroup:Oe,renderInput:we,renderOption:P,renderTags:l,selectOnFocus:pt=!b.freeSolo,size:p="medium",slotProps:W={}}=b,ae=Be(b,zt),{getRootProps:De,getInputProps:Z,getInputLabelProps:Q,getPopupIndicatorProps:Ne,getClearProps:Je,getTagProps:Me,getListboxProps:Ee,getOptionProps:v,value:d,dirty:M,expanded:Pe,id:le,popupOpen:se,focused:V,focusedTag:E,anchorEl:ie,setAnchorEl:Ce,inputValue:Xe,groupedOptions:w}=Ft(I({},b,{componentName:"Autocomplete"})),U=!ve&&!q&&M&&!y,_=(!he||c===!0)&&c!==!1,{onMouseDown:pe}=Z(),{ref:ee}=xe??{},Fe=Ee(),{ref:He}=Fe,ze=Be(Fe,Vt),Ye=At(He,ee),ue=B||(o=>{var s;return(s=o.label)!=null?s:o}),C=I({},b,{disablePortal:Ae,expanded:Pe,focused:V,fullWidth:Le,getOptionLabel:ue,hasClearIcon:U,hasPopupIcon:_,inputFocused:E===-1,popupOpen:se,size:p}),m=Bt(C);let F;if($&&d.length>0){const o=s=>I({className:m.tag,disabled:q},Me(s));l?F=l(d,o,C):F=d.map((s,u)=>{const f=o({index:u}),{key:D}=f,_e=Be(f,_t);return x.jsx(Lt,I({label:ue(s),size:p},_e,fe),D)})}if(me>-1&&Array.isArray(F)){const o=F.length-me;!V&&o>0&&(F=F.splice(0,me),F.push(x.jsx("span",{className:m.tag,children:Se(o)},F.length)))}const Ze=Oe||(o=>x.jsxs("li",{children:[x.jsx(Zt,{className:m.groupLabel,ownerState:C,component:"div",children:o.group}),x.jsx(eo,{className:m.groupUl,ownerState:C,children:o.children})]},o.key)),tt=P||((o,s)=>{const{key:u}=o,f=Be(o,jt);return x.jsx("li",I({},f,{children:ue(s)}),u)}),Ve=(o,s)=>{const u=v({option:o,index:s});return tt(I({},u,{className:m.option}),o,{selected:u["aria-selected"],index:s,inputValue:Xe},C)},$e=(A=W.clearIndicator)!=null?A:j.clearIndicator,te=(z=W.paper)!=null?z:j.paper,ce=(N=W.popper)!=null?N:j.popper,t=(T=W.popupIndicator)!=null?T:j.popupIndicator,e=o=>x.jsx(qt,I({as:re,disablePortal:Ae,style:{width:ie?ie.clientWidth:null},ownerState:C,role:"presentation",anchorEl:ie,open:se},ce,{className:ye(m.popper,ce==null?void 0:ce.className),children:x.jsx(Qt,I({ownerState:C,as:S},te,{className:ye(m.paper,te==null?void 0:te.className),children:o}))}));let r=null;return w.length>0?r=e(x.jsx(Yt,I({as:Y,className:m.listbox,ownerState:C},ze,xe,{ref:Ye,children:w.map((o,s)=>Te?Ze({key:o.key,group:o.group,children:o.options.map((u,f)=>Ve(u,o.index+f))}):Ve(o,s))}))):Re&&w.length===0?r=e(x.jsx(Jt,{className:m.loading,ownerState:C,children:L})):w.length===0&&!he&&!Re&&(r=e(x.jsx(Xt,{className:m.noOptions,ownerState:C,role:"presentation",onMouseDown:o=>{o.preventDefault()},children:Ie}))),x.jsxs(O.Fragment,{children:[x.jsx(Wt,I({ref:g,className:ye(m.root,k),ownerState:C},De(ae),{children:we({id:le,disabled:q,fullWidth:!0,size:p==="small"?"small":void 0,InputLabelProps:Q(),InputProps:I({ref:Ce,className:m.inputRoot,startAdornment:F,onClick:o=>{o.target===o.currentTarget&&pe(o)}},(U||_)&&{endAdornment:x.jsxs(Ut,{className:m.endAdornment,ownerState:C,children:[U?x.jsx(Gt,I({},Je(),{"aria-label":ge,title:ge,ownerState:C},$e,{className:ye(m.clearIndicator,$e==null?void 0:$e.className),children:Ue})):null,_?x.jsx(Kt,I({},Ne(),{disabled:q,"aria-label":se?K:h,title:se?K:h,ownerState:C},t,{className:ye(m.popupIndicator,t==null?void 0:t.className),children:Qe})):null]})}),inputProps:I({className:m.input,disabled:q,readOnly:y},Z())})})),ie?r:null]})});export{so as A,i as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{az as C,j as u,aL as I,aK as D,aM as m,aQ as l,r as g,aO as M,aP as F,aS as z,aT as N}from"./index-DFFp-KRY.js";import{u as L}from"./useSlot-DcqlBn33.js";const U=C(u.jsx("path",{d:"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"}),"Person");function E(a){return I("MuiAvatar",a)}D("MuiAvatar",["root","colorDefault","circular","rounded","square","img","fallback"]);const T=["alt","children","className","component","slots","slotProps","imgProps","sizes","src","srcSet","variant"],_=a=>{const{classes:o,variant:t,colorDefault:r}=a;return N({root:["root",t,r&&"colorDefault"],img:["img"],fallback:["fallback"]},E,o)},q=m("div",{name:"MuiAvatar",slot:"Root",overridesResolver:(a,o)=>{const{ownerState:t}=a;return[o.root,o[t.variant],t.colorDefault&&o.colorDefault]}})(({theme:a})=>({position:"relative",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,width:40,height:40,fontFamily:a.typography.fontFamily,fontSize:a.typography.pxToRem(20),lineHeight:1,borderRadius:"50%",overflow:"hidden",userSelect:"none",variants:[{props:{variant:"rounded"},style:{borderRadius:(a.vars||a).shape.borderRadius}},{props:{variant:"square"},style:{borderRadius:0}},{props:{colorDefault:!0},style:l({color:(a.vars||a).palette.background.default},a.vars?{backgroundColor:a.vars.palette.Avatar.defaultBg}:l({backgroundColor:a.palette.grey[400]},a.applyStyles("dark",{backgroundColor:a.palette.grey[600]})))}]})),B=m("img",{name:"MuiAvatar",slot:"Img",overridesResolver:(a,o)=>o.img})({width:"100%",height:"100%",textAlign:"center",objectFit:"cover",color:"transparent",textIndent:1e4}),H=m(U,{name:"MuiAvatar",slot:"Fallback",overridesResolver:(a,o)=>o.fallback})({width:"75%",height:"75%"});function K({crossOrigin:a,referrerPolicy:o,src:t,srcSet:r}){const[n,s]=g.useState(!1);return g.useEffect(()=>{if(!t&&!r)return;s(!1);let i=!0;const e=new Image;return e.onload=()=>{i&&s("loaded")},e.onerror=()=>{i&&s("error")},e.crossOrigin=a,e.referrerPolicy=o,e.src=t,r&&(e.srcset=r),()=>{i=!1}},[a,o,t,r]),n}const W=g.forwardRef(function(o,t){const r=M({props:o,name:"MuiAvatar"}),{alt:n,children:s,className:i,component:e="div",slots:h={},slotProps:A={},imgProps:y,sizes:P,src:p,srcSet:f,variant:k="circular"}=r,R=F(r,T);let c=null;const S=K(l({},y,{src:p,srcSet:f})),b=p||f,x=b&&S!=="error",d=l({},r,{colorDefault:!x,component:e,variant:k}),v=_(d),[j,w]=L("img",{className:v.img,elementType:B,externalForwardedProps:{slots:h,slotProps:{img:l({},y,A.img)}},additionalProps:{alt:n,src:p,srcSet:f,sizes:P},ownerState:d});return x?c=u.jsx(j,l({},w)):s||s===0?c=s:b&&n?c=n[0]:c=u.jsx(H,{ownerState:d,className:v.fallback}),u.jsx(q,l({as:e,ownerState:d,className:z(v.root,i),ref:t},R,{children:c}))});export{W as A};
|