@abtnode/blocklet-services 1.16.29-next-680cf137 → 1.16.30-beta-00e8bdd1
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 +20 -4
- package/api/libs/connect/session.js +5 -4
- package/api/libs/env.js +2 -0
- package/api/routes/federated.js +2 -1
- package/api/routes/oauth.js +3 -2
- package/api/routes/openembed.js +164 -0
- package/api/routes/user-session.js +3 -2
- package/api/routes/user.js +5 -4
- package/api/services/auth/connect/invite.js +2 -1
- package/api/services/auth/connect/issue-passport.js +2 -1
- package/api/services/auth/connect/receive-transfer-app-owner.js +3 -2
- package/api/services/auth/connect/setup.js +3 -2
- package/api/services/auth/session.js +2 -1
- package/api/services/static.js +5 -6
- package/api/util/federated.js +2 -2
- package/dist/assets/{Add-DUVzKYFm.js → Add-BN237Fn5.js} +1 -1
- package/dist/assets/{AddBox-CT33z_Zw.js → AddBox-3LaPVxwU.js} +1 -1
- package/dist/assets/Alert-D6ASJuaD.js +1 -0
- package/dist/assets/{ArrowDropDown-D8Cz7Mn2.js → ArrowDropDown-BHT7uJ-_.js} +1 -1
- package/dist/assets/Avatar-CaF_-TIa.js +1 -0
- package/dist/assets/{ButtonGroup-D4mZO4Fl.js → ButtonGroup-BJxGB-mf.js} +1 -1
- package/dist/assets/{CheckCircle-Ocnhk6Zm.js → CheckCircle-CczUamTZ.js} +1 -1
- package/dist/assets/{ChevronRight-DTp0tWJx.js → ChevronRight-Cg14uJfK.js} +1 -1
- package/dist/assets/{Close-Dv0WBlnZ.js → Close-x7Tkk0S3.js} +1 -1
- package/dist/assets/CloseOutlined-QOb8qkQe.js +1 -0
- package/dist/assets/{Delete-DVuHYKCF.js → Delete-C6X9S_ep.js} +1 -1
- package/dist/assets/{DeleteOutline-Djc7fx6t.js → DeleteOutline-DPoIruJ5.js} +1 -1
- package/dist/assets/{Done-hVgZPg46.js → Done-CoG4jV3h.js} +1 -1
- package/dist/assets/{Download-CaohbVSv.js → Download-CgS76hkn.js} +1 -1
- package/dist/assets/{Edit-B6Q6agid.js → Edit-CuIVEZdJ.js} +1 -1
- package/dist/assets/{EditIcon-CoTYxPVa.js → EditIcon-Ca6HYpZk.js} +1 -1
- package/dist/assets/{Error-DPX7wzQI.js → Error-DPYTfE3e.js} +1 -1
- package/dist/assets/{ExpandMore-Dlsr2tPH.js → ExpandMore-D04IjVlX.js} +1 -1
- package/dist/assets/FilterList-DUOw_RoL.js +26 -0
- package/dist/assets/FormControl-Bh9aSU12.js +1 -0
- package/dist/assets/{FormControlLabel-C0hZddbx.js → FormControlLabel-BpMix3qK.js} +1 -1
- package/dist/assets/FormGroup-BfB-iN7c.js +1 -0
- package/dist/assets/{Google-BlxdY2rj.js → Google-DIEocVvQ.js} +4 -4
- package/dist/assets/{Hidden-B431iBU_.js → Hidden-BLcFQ9WU.js} +1 -1
- package/dist/assets/{InfoOutlined-v3x0TY6V.js → InfoOutlined-C5vT7BTM.js} +1 -1
- package/dist/assets/InputAdornment-4EnHL3SV.js +1 -0
- package/dist/assets/{InputLabel-B1CW0pkO.js → InputLabel-BY35PBOn.js} +1 -1
- package/dist/assets/{LastPage-C4NAdMRF.js → LastPage-DSqwop6h.js} +1 -1
- package/dist/assets/{Launch-ByMOsCzr.js → Launch-BYwPKhG2.js} +1 -1
- package/dist/assets/{LaunchOutlined-D4Flylz3.js → LaunchOutlined-DkrAS-ts.js} +1 -1
- package/dist/assets/{Link-C3mczvyl.js → Link-CHkL2_F8.js} +1 -1
- package/dist/assets/{ListItemText-CgBEGXWT.js → ListItemText-TxfvzIQH.js} +1 -1
- package/dist/assets/LoadingButton-_EYRn4Wx.js +1 -0
- package/dist/assets/{LockIcon-sRezRxDg.js → LockIcon-Bz8VQwMT.js} +1 -1
- package/dist/assets/{Loop-B8_3BEHM.js → Loop-D0mtfhOu.js} +1 -1
- package/dist/assets/{MoreVert-a-kv_ER7.js → MoreVert-xcNzKdjG.js} +1 -1
- package/dist/assets/{OpenInNew-CzbN8XuL.js → OpenInNew-DLQ33Rpf.js} +1 -1
- package/dist/assets/{Pagination-DFx6ff11.js → Pagination-IIYxtOn3.js} +2 -2
- package/dist/assets/PlayArrow-BdFq1DDL.js +1 -0
- package/dist/assets/{QuestionMarkCircle-B_rw-f43.js → QuestionMarkCircle-BfRCnC--.js} +1 -1
- package/dist/assets/{RadioGroup-BfWqVp9t.js → RadioGroup-sdHfzBzc.js} +1 -1
- package/dist/assets/{Search-M7JhBg8T.js → Search-Dg-t_NHQ.js} +1 -1
- package/dist/assets/Select-0bmPPjw1.js +2 -0
- package/dist/assets/{ServerLogo-CmEIITqo.js → ServerLogo-CXDpSA8g.js} +1 -1
- package/dist/assets/{Skeleton-DSmw4PBH.js → Skeleton-DuHnu_TW.js} +4 -4
- package/dist/assets/Slider-DaijA7CN.js +1 -0
- package/dist/assets/{Stepper-LW_MLyom.js → Stepper-QmSO1CtE.js} +1 -1
- package/dist/assets/{TextField-tzVHCyGP.js → TextField-BBIigLRk.js} +1 -1
- package/dist/assets/{Toolbar-DJupn0f9.js → Toolbar-DT4-YRKk.js} +1 -1
- package/dist/assets/{ViewList-C1U7sxhd.js → ViewList-BU2uRr73.js} +1 -1
- package/dist/assets/access-control-C4ERDDDO.js +13 -0
- package/dist/assets/{actions-BVhLyZpR.js → actions-Ds_jVVND.js} +1 -1
- package/dist/assets/add-component-core-CCOhSWQB.js +979 -0
- package/dist/assets/add-resource-Do98YBVD.js +1 -0
- package/dist/assets/{addon-B0cj0mfg.js → addon-BcSb2Zzp.js} +1 -1
- package/dist/assets/{analytics-Ct3JnUhl.js → analytics-Ce187M51.js} +8 -8
- package/dist/assets/api-CWevC1Kw.js +1 -0
- package/dist/assets/ar-CYspPmSu.js +1 -0
- package/dist/assets/audit-logs-LoED-8gk.js +58 -0
- package/dist/assets/{button-BTJqPnHF.js → button-Dfb9hD8n.js} +1 -1
- package/dist/assets/{click-to-copy-eJ8KblZ5.js → click-to-copy-D62iwIju.js} +1 -1
- package/dist/assets/{complete-C1e5FlMJ.js → complete-CRtPvgDa.js} +4 -4
- package/dist/assets/{component-BacRXbI5.js → component-BS6BClYg.js} +48 -48
- package/dist/assets/{config-BKEljyRy.js → config-2JcKGcTt.js} +2 -2
- package/dist/assets/{config-7HPh0OPK.js → config-DRlEBb7g.js} +1 -1
- package/dist/assets/{config-navigation-9PNvdTi2.js → config-navigation-BecqFtHY.js} +2 -2
- package/dist/assets/confirm-DK53kjF4.js +7 -0
- package/dist/assets/{connect-C-nA2wuT.js → connect-BSc706Qe.js} +1 -1
- package/dist/assets/{connect-Cis6vi3E.js → connect-CmVMyWtw.js} +1 -1
- package/dist/assets/{connect-to-CmyzTb62.js → connect-to-B7lXTaqa.js} +2 -2
- package/dist/assets/{content-layout-DimpCafz.js → content-layout-fifpb2hF.js} +1 -1
- package/dist/assets/dashboard-zGeemO7s.js +165 -0
- package/dist/assets/de-DIG5UukX.js +1 -0
- package/dist/assets/{did-address-2bWEhCPb.js → did-address-CuLpyDcV.js} +1 -1
- package/dist/assets/domain-Eb-kKi8N.js +9 -0
- package/dist/assets/{domain-list-SF-C3yfn.js → domain-list-B2eOAUf9.js} +2 -2
- package/dist/assets/es-iIE-oygq.js +1 -0
- package/dist/assets/exchange-passport-D5yUNMgm.js +1 -0
- package/dist/assets/{fallback-26RC6JHo.js → fallback-DnwN40Eu.js} +1 -1
- package/dist/assets/format-error-eqRBGF1p.js +2 -0
- package/dist/assets/fr-D8XyKysR.js +1 -0
- package/dist/assets/fuel-DL8WMBx8.js +32 -0
- package/dist/assets/{fullpage-Cjsv3Wf9.js → fullpage-4QhjDOeH.js} +1 -1
- package/dist/assets/hi-C12r029w.js +1 -0
- package/dist/assets/{home-C5blY9H6.js → home-BWibX2vn.js} +1 -1
- package/dist/assets/id-BM1nX889.js +1 -0
- package/dist/assets/{iframe-B-dRGYkN.js → iframe-BmoLkGVE.js} +1 -1
- package/dist/assets/{index-BDw9WR4Y.js → index-AiTSrLp-.js} +1 -1
- package/dist/assets/{index-B0FNhvZR.js → index-BEHMH1Pr.js} +1 -1
- package/dist/assets/{index-24yb3A6v.js → index-BLek-3-t.js} +12 -12
- package/dist/assets/{index-CIjX7CkA.js → index-BN8ZIYdG.js} +1 -1
- package/dist/assets/{index-Cj8_nBBf.js → index-BU0saRrz.js} +7 -7
- package/dist/assets/{index-BhroV0sn.js → index-Bg9DIh8M.js} +1 -1
- package/dist/assets/{index-CEIhpkQ8.js → index-Bhy-Ufb6.js} +1 -1
- package/dist/assets/{index-BnDpXkQD.js → index-Bp8EriMk.js} +1 -1
- package/dist/assets/{index-JXy24O4H.js → index-BykkL-cr.js} +1 -1
- package/dist/assets/{index-CBouf4h_.js → index-C7BxfHre.js} +1 -1
- package/dist/assets/index-CCgZIcqf.js +16 -0
- package/dist/assets/index-CJ9qEL1_.js +262 -0
- package/dist/assets/{index-XJYhE0w4.js → index-CKBTEFra.js} +1 -1
- package/dist/assets/index-CQ5dtdkj.js +1290 -0
- package/dist/assets/{index-CEzHaZQX.js → index-CTW4nb9G.js} +26 -61
- package/dist/assets/{index-BRh4m4iG.js → index-CekjYFHx.js} +1 -1
- package/dist/assets/index-CoBC9oVU.js +54 -0
- package/dist/assets/{index-D03FwDOh.js → index-CuX6Kr95.js} +1 -1
- package/dist/assets/{index-Hr_Wbh6L.js → index-Cxiv-wGv.js} +1 -1
- package/dist/assets/{index-B-WWT0RB.js → index-D0sxPxR3.js} +1 -1
- package/dist/assets/{index-Cs_U4e7a.js → index-DIJWsYQq.js} +1 -1
- package/dist/assets/index-Dbbnbznm.js +1 -0
- package/dist/assets/index-DdoI0wbz.js +1 -0
- package/dist/assets/index-DkVlOvts.js +11 -0
- package/dist/assets/{index-p63x9Zq5.js → index-DpuZJtBf.js} +4 -4
- package/dist/assets/index-DuOVToRf.js +1 -0
- package/dist/assets/{index-CrOnhTCB.js → index-FHIuVSDt.js} +1 -1
- package/dist/assets/index-QDFDl478.js +288 -0
- package/dist/assets/index-QU1KoDg_.js +4 -0
- package/dist/assets/{index-DTwcC2c1.js → index-UZz8l3in.js} +8 -8
- package/dist/assets/index-dIqjPoOB.js +222 -0
- package/dist/assets/{index-BvABiWhK.js → index-iEN5H5Ls.js} +1 -1
- package/dist/assets/{index.es-CM1Yp6_h.js → index.es-BJiRNQw2.js} +2 -2
- package/dist/assets/index.esm-DCtFyquI.js +1 -0
- package/dist/assets/{invitation-DrXYTbOJ.js → invitation-CWO1OGzi.js} +8 -8
- package/dist/assets/invite-BybXZqJ_.js +10 -0
- package/dist/assets/issue-passport-_8jsDZ5J.js +1 -0
- package/dist/assets/{item-CADE3Q1i.js → item-_msBYiLo.js} +1 -1
- package/dist/assets/ja-D8yfIRFO.js +1 -0
- package/dist/assets/{jss-plugin-props-sort.esm-BLFIN_3Q.js → jss-plugin-props-sort.esm-CuwRRnMZ.js} +1 -1
- package/dist/assets/ko-BYDKCXC0.js +1 -0
- package/dist/assets/{launch-result-message-ePDZL2vD.js → launch-result-message-nnQ4Z0fd.js} +1 -1
- package/dist/assets/{layout-FpvhR73S.js → layout-0mxgsXb8.js} +1 -1
- package/dist/assets/{list-header-DXsvXmu-.js → list-header-CbhWtFvh.js} +1 -1
- package/dist/assets/localization-Ck45g-8d.js +1 -0
- package/dist/assets/{log-BRlbvBGI.js → log-ydyp6rKH.js} +8 -8
- package/dist/assets/{login-CWtJouqB.js → login-CgXrWK_2.js} +1 -1
- package/dist/assets/{login-oauth-callback-BZ0EO56v.js → login-oauth-callback-B-Y4WGSI.js} +1 -1
- package/dist/assets/logo-uploader-B0LO5vvb.js +122 -0
- package/dist/assets/{lost-passport-YsMU9JSe.js → lost-passport-BhsqypQO.js} +3 -3
- package/dist/assets/{lottie-BoxmSqiv.js → lottie-DadbWVpc.js} +1 -1
- package/dist/assets/notifications-DuPGt4pQ.js +62 -0
- package/dist/assets/{open-window-CocULKZD.js → open-window-CrkLeex9.js} +1 -1
- package/dist/assets/overview-Y5W0VfGN.js +12 -0
- package/dist/assets/{page-header-DHrt0NLM.js → page-header-CSU48K3Q.js} +1 -1
- package/dist/assets/{permission-DC5jJJsJ.js → permission-BNHM2xAP.js} +1 -1
- package/dist/assets/{preferences-CeJNU9ax.js → preferences-Ccc7r_v8.js} +1 -1
- package/dist/assets/pt-B9DRiZEN.js +1 -0
- package/dist/assets/publish-resource-BfHdYGQt.js +1 -0
- package/dist/assets/react-Z_lC3NCb.js +56 -0
- package/dist/assets/{redux-BxhlcuLd.js → redux-Nz09j_eP.js} +1 -1
- package/dist/assets/resource-dialog-TfZOe9lD.js +57 -0
- package/dist/assets/ru-CUxGgO8D.js +1 -0
- package/dist/assets/sdk-DtesNhKW.js +1 -0
- package/dist/assets/{selector-Bgt80Coe.js → selector-Bbx9AGcC.js} +3 -3
- package/dist/assets/session-CPBKqm92.js +1 -0
- package/dist/assets/{setup-DQJXHOhw.js → setup-ClQU62xP.js} +3 -3
- package/dist/assets/{shorten-label-Cykg6Lz7.js → shorten-label-BlugIeNc.js} +1 -1
- package/dist/assets/{slicedToArray-BZ87qXGO.js → slicedToArray-BDmAXaQb.js} +2 -2
- package/dist/assets/{spaces-fGVCv7ID.js → spaces-0FuTU5il.js} +1 -1
- package/dist/assets/{start-DHS9hXkS.js → start-BF5svAaM.js} +2 -2
- package/dist/assets/{step-actions-O0ph47PU.js → step-actions-RI-mCX0p.js} +1 -1
- package/dist/assets/{studio-DVDs4sAk.js → studio-Bjf7gAq8.js} +1 -1
- package/dist/assets/{switch-control-PRHugKgV.js → switch-control-C1_R7-zR.js} +1 -1
- package/dist/assets/th-D6abaOt7.js +1 -0
- package/dist/assets/{toUpper-BfLoBzn-.js → toUpper-uyyCk01r.js} +1 -1
- package/dist/assets/{transfer-NH0JDMM6.js → transfer-DkniK5Ag.js} +2 -2
- package/dist/assets/{uniqBy-5dSXPjpT.js → uniqBy-nqPJ5tkT.js} +1 -1
- package/dist/assets/unsubscribe-BAK1nb4o.js +1 -0
- package/dist/assets/{url-join-slhKS0RS.js → url-join-xP4FWyyN.js} +1 -1
- package/dist/assets/use-blocklet-info-for-connect-did-spaces-ChbGnu2B.js +1 -0
- package/dist/assets/{use-mobile-D7_VFCeM.js → use-mobile-BOCpywmu.js} +1 -1
- package/dist/assets/{useAsync-xzt4qFZd.js → useAsync-D7PX5RWx.js} +1 -1
- package/dist/assets/{useFormControl-DzLIycge.js → useFormControl-B5XnXwzO.js} +1 -1
- package/dist/assets/{useLocalStorage-C42lOP94.js → useLocalStorage-t8zs4VAz.js} +1 -1
- package/dist/assets/{useSetState-Cg2fSW48.js → useSetState-Br77TPgt.js} +1 -1
- package/dist/assets/useSlot-CeeEaDXE.js +1 -0
- package/dist/assets/useSlotProps-CSBBXTuv.js +1 -0
- package/dist/assets/useThemeProps-Bp8oreMA.js +1 -0
- package/dist/assets/{user-center-BPr1Hwe7.js → user-center-CvySLBqs.js} +1 -1
- package/dist/assets/user-sessions-B1MeydkJ.js +1 -0
- package/dist/assets/{util-DEsBTM-7.js → util-BWib46eW.js} +1 -1
- package/dist/assets/vi-BsX5AAJJ.js +1 -0
- package/dist/assets/wrap-locale-WOY0-059.js +1 -0
- package/dist/assets/{zh-DMGrvlv0.js → zh-CIqkKG4c.js} +1 -1
- package/dist/assets/zh-tw-D7VeUoit.js +1 -0
- package/dist/index.html +1 -1
- package/dist/service-worker.js +1 -1
- package/package.json +37 -37
- package/dist/assets/Alert-bNqYhcqn.js +0 -1
- package/dist/assets/Avatar-BOUPLUwk.js +0 -1
- package/dist/assets/CloseOutlined-D-KrmlLZ.js +0 -1
- package/dist/assets/FilterList-CxPULTD0.js +0 -26
- package/dist/assets/FormControl-DS4KaFHq.js +0 -1
- package/dist/assets/FormGroup-C3fjarrl.js +0 -1
- package/dist/assets/InputAdornment-DobS7Kox.js +0 -1
- package/dist/assets/LoadingButton-Dlsz1Ms3.js +0 -1
- package/dist/assets/PlayArrow-aNY7jbBC.js +0 -1
- package/dist/assets/Select-D9POEHyN.js +0 -2
- package/dist/assets/Slider-DwSRUy4d.js +0 -1
- package/dist/assets/access-control-DOWWWYql.js +0 -13
- package/dist/assets/add-component-core-DDx1WDjh.js +0 -952
- package/dist/assets/add-resource-CBt30k1E.js +0 -1
- package/dist/assets/api-CkjkeCdA.js +0 -1
- package/dist/assets/ar-DAUz5_Ej.js +0 -1
- package/dist/assets/audit-logs-CfrqWHnt.js +0 -58
- package/dist/assets/blocklet-storage-DHTHeqHC.js +0 -1
- package/dist/assets/confirm-BUGn-2W8.js +0 -7
- package/dist/assets/dashboard--jZHvPJB.js +0 -165
- package/dist/assets/de-JXmbvsP-.js +0 -1
- package/dist/assets/domain-C7z_PdCP.js +0 -9
- package/dist/assets/es-D_uIRKnu.js +0 -1
- package/dist/assets/exchange-passport-bFf5UOyl.js +0 -1
- package/dist/assets/format-error-HsQXURX_.js +0 -2
- package/dist/assets/fr-BocLckhV.js +0 -1
- package/dist/assets/fuel-BTmuGQUQ.js +0 -32
- package/dist/assets/hi-Bn38t0nX.js +0 -1
- package/dist/assets/id-DuC9mOr4.js +0 -1
- package/dist/assets/index-B0pqmro3.js +0 -1
- package/dist/assets/index-Bo6_cvnJ.js +0 -4
- package/dist/assets/index-C8pZezDf.js +0 -11
- package/dist/assets/index-C97B1afx.js +0 -288
- package/dist/assets/index-CM5JeGjL.js +0 -54
- package/dist/assets/index-DATcoDW2.js +0 -222
- package/dist/assets/index-DhM5yf8I.js +0 -1
- package/dist/assets/index-DuTXpR60.js +0 -1
- package/dist/assets/index-DzOteYvH.js +0 -1
- package/dist/assets/index-IcQQOgM-.js +0 -1290
- package/dist/assets/index-UfxSCCrt.js +0 -16
- package/dist/assets/index-lx_CUTL7.js +0 -262
- package/dist/assets/index.esm-ChzwWoAD.js +0 -1
- package/dist/assets/info-outline-rounded-DSoVZkGR.js +0 -1
- package/dist/assets/invite-DuTRLxo9.js +0 -10
- package/dist/assets/issue-passport-BlE3WUbc.js +0 -1
- package/dist/assets/ja-B2J7-ZGM.js +0 -1
- package/dist/assets/ko-TAMb2jXz.js +0 -1
- package/dist/assets/localization-SCjgzakh.js +0 -1
- package/dist/assets/logo-uploader-CmT8ckaw.js +0 -122
- package/dist/assets/notifications-W8YDjym1.js +0 -62
- package/dist/assets/overview-DFBre46m.js +0 -12
- package/dist/assets/pt-DAmg1w9n.js +0 -1
- package/dist/assets/publish-resource-Bv1oefVi.js +0 -1
- package/dist/assets/react-Bq9Lc-LH.js +0 -379
- package/dist/assets/resource-dialog-DFiUROrY.js +0 -57
- package/dist/assets/ru-BqJl8PYs.js +0 -1
- package/dist/assets/session-CxUjHNzI.js +0 -1
- package/dist/assets/th-CGcwcZWK.js +0 -1
- package/dist/assets/unsubscribe-DHLJvqL7.js +0 -1
- package/dist/assets/use-blocklet-info-for-connect-did-spaces-CGcx0VhM.js +0 -1
- package/dist/assets/useSlot-D6gCQKPz.js +0 -1
- package/dist/assets/vi-lYszmNr_.js +0 -1
- package/dist/assets/wrap-locale-HDcgra7k.js +0 -1
- package/dist/assets/zh-tw-BkGc-T4k.js +0 -1
package/api/index.js
CHANGED
|
@@ -16,7 +16,13 @@ const {
|
|
|
16
16
|
EVENTS,
|
|
17
17
|
MAX_UPLOAD_FILE_SIZE,
|
|
18
18
|
} = require('@abtnode/constant');
|
|
19
|
-
const {
|
|
19
|
+
const {
|
|
20
|
+
BlockletEvents,
|
|
21
|
+
BlockletInternalEvents,
|
|
22
|
+
TeamEvents,
|
|
23
|
+
BLOCKLET_TENANT_MODES,
|
|
24
|
+
RESOURCE_PATTERN,
|
|
25
|
+
} = require('@blocklet/constant');
|
|
20
26
|
const { getAppOgCacheDir } = require('@abtnode/util/lib/blocklet');
|
|
21
27
|
const normalizePathPrefix = require('@abtnode/util/lib/normalize-path-prefix');
|
|
22
28
|
const createInvite = require('@abtnode/auth/lib/invitation');
|
|
@@ -29,7 +35,7 @@ const { getAccessLogStream } = require('./libs/logger');
|
|
|
29
35
|
require('./libs/fetch');
|
|
30
36
|
const cache = require('./cache');
|
|
31
37
|
const { ensureProxyUrl } = require('./util');
|
|
32
|
-
const { isProduction, isE2E } = require('./libs/env');
|
|
38
|
+
const { isProduction, isE2E, isFeDev } = require('./libs/env');
|
|
33
39
|
const states = require('./state/index');
|
|
34
40
|
|
|
35
41
|
const { init: initNotification } = require('./services/notification');
|
|
@@ -52,6 +58,7 @@ const createConnectSessionRoutes = require('./routes/connect/session');
|
|
|
52
58
|
const createDnsResolver = require('./routes/dns-resolver');
|
|
53
59
|
const createOpenAPIRoutes = require('./routes/openapi');
|
|
54
60
|
const createOpenComponentRoutes = require('./routes/opencomponent');
|
|
61
|
+
const createOpenEmbedRoutes = require('./routes/openembed');
|
|
55
62
|
const checkRunning = require('./middlewares/check-running');
|
|
56
63
|
const { checkMemberPermission, checkGuestPermission } = require('./middlewares/check-permission');
|
|
57
64
|
const checkBlocklet = require('./middlewares/check-blocklet');
|
|
@@ -285,6 +292,7 @@ module.exports = function createServer(node, serverOptions = {}) {
|
|
|
285
292
|
// openapi & opencomponent
|
|
286
293
|
createOpenAPIRoutes.init(server, node, options);
|
|
287
294
|
createOpenComponentRoutes.init(server, node, options);
|
|
295
|
+
createOpenEmbedRoutes.init(server, node, options);
|
|
288
296
|
|
|
289
297
|
// API: auth
|
|
290
298
|
createOAuthRoutes.init(server, node, options);
|
|
@@ -343,8 +351,16 @@ module.exports = function createServer(node, serverOptions = {}) {
|
|
|
343
351
|
});
|
|
344
352
|
|
|
345
353
|
// Web Page
|
|
346
|
-
server.get(`${WELLKNOWN_SERVICE_PATH_PREFIX}/**`, (req, res) => {
|
|
347
|
-
|
|
354
|
+
server.get(`${WELLKNOWN_SERVICE_PATH_PREFIX}/**`, (req, res, next) => {
|
|
355
|
+
if (isFeDev) {
|
|
356
|
+
return res.sendWebPage();
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
if (!RESOURCE_PATTERN.test(req.path) && req.accepts('html')) {
|
|
360
|
+
return res.sendWebPage();
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
return next();
|
|
348
364
|
});
|
|
349
365
|
|
|
350
366
|
server.use(checkBlocklet);
|
|
@@ -48,6 +48,7 @@ const {
|
|
|
48
48
|
} = require('@blocklet/meta/lib/util');
|
|
49
49
|
const { getSourceAppPid, getLoginProvider } = require('@blocklet/sdk/lib/util/login');
|
|
50
50
|
const { getDidSpacesInfoByClaims, silentAuthorizationInConnect } = require('@abtnode/auth/lib/util/spaces');
|
|
51
|
+
const getRequestIP = require('@abtnode/util/lib/get-request-ip');
|
|
51
52
|
|
|
52
53
|
const uniq = require('lodash/uniq');
|
|
53
54
|
const semver = require('semver');
|
|
@@ -520,7 +521,7 @@ module.exports = {
|
|
|
520
521
|
locale,
|
|
521
522
|
passport,
|
|
522
523
|
sourceAppPid,
|
|
523
|
-
lastLoginIp: request
|
|
524
|
+
lastLoginIp: getRequestIP(request),
|
|
524
525
|
connectedAccount: [connectAccount, connectedNft],
|
|
525
526
|
...pick(profile, ['fullName', 'email', 'avatar', 'url']),
|
|
526
527
|
},
|
|
@@ -550,7 +551,7 @@ module.exports = {
|
|
|
550
551
|
locale,
|
|
551
552
|
passport,
|
|
552
553
|
sourceAppPid,
|
|
553
|
-
lastLoginIp: request
|
|
554
|
+
lastLoginIp: getRequestIP(request),
|
|
554
555
|
connectedAccount: [connectAccount, connectedNft],
|
|
555
556
|
},
|
|
556
557
|
});
|
|
@@ -570,7 +571,7 @@ module.exports = {
|
|
|
570
571
|
node
|
|
571
572
|
);
|
|
572
573
|
}
|
|
573
|
-
const lastLoginIp = request
|
|
574
|
+
const lastLoginIp = getRequestIP(request);
|
|
574
575
|
const walletDeviceMessageToken = request.get('wallet-device-message-token');
|
|
575
576
|
const walletDeviceId = request.get('wallet-device-id');
|
|
576
577
|
const ua = request.get('user-agent');
|
|
@@ -1184,7 +1185,7 @@ module.exports = {
|
|
|
1184
1185
|
did: oauthUser.did,
|
|
1185
1186
|
pk: oauthUser.pk,
|
|
1186
1187
|
...mergeProfile,
|
|
1187
|
-
lastLoginIp: request
|
|
1188
|
+
lastLoginIp: getRequestIP(request),
|
|
1188
1189
|
connectedAccounts: [connectedAccount],
|
|
1189
1190
|
passports: mergePassport,
|
|
1190
1191
|
},
|
package/api/libs/env.js
CHANGED
package/api/routes/federated.js
CHANGED
|
@@ -10,6 +10,7 @@ const { joinURL } = require('ufo');
|
|
|
10
10
|
const cors = require('cors');
|
|
11
11
|
const { LOGIN_PROVIDER } = require('@blocklet/constant');
|
|
12
12
|
const { getAvatarByUrl, extractUserAvatar } = require('@abtnode/util/lib/user');
|
|
13
|
+
const getRequestIP = require('@abtnode/util/lib/get-request-ip');
|
|
13
14
|
const { getApplicationInfo } = require('@abtnode/auth/lib/auth');
|
|
14
15
|
const pick = require('lodash/pick');
|
|
15
16
|
const defaults = require('lodash/defaults');
|
|
@@ -560,7 +561,7 @@ module.exports = {
|
|
|
560
561
|
});
|
|
561
562
|
|
|
562
563
|
const user = pick(currentUser, ['did', 'pk', 'fullName', 'locale']);
|
|
563
|
-
user.lastLoginIp = req
|
|
564
|
+
user.lastLoginIp = getRequestIP(req);
|
|
564
565
|
|
|
565
566
|
if (currentUser.email) {
|
|
566
567
|
user.email = currentUser.email;
|
package/api/routes/oauth.js
CHANGED
|
@@ -14,6 +14,7 @@ const { joinURL } = require('ufo');
|
|
|
14
14
|
const { getWalletDid, getConnectedAccounts, getSourceProvider } = require('@blocklet/meta/lib/did-utils');
|
|
15
15
|
const formatContext = require('@abtnode/util/lib/format-context');
|
|
16
16
|
const createTranslator = require('@abtnode/util/lib/translate');
|
|
17
|
+
const getRequestIP = require('@abtnode/util/lib/get-request-ip');
|
|
17
18
|
const { LOGIN_PROVIDER } = require('@blocklet/constant');
|
|
18
19
|
const { withHttps, withTrailingSlash } = require('ufo');
|
|
19
20
|
|
|
@@ -186,7 +187,7 @@ async function login(req, node, options) {
|
|
|
186
187
|
const { dataDir } = await getApplicationInfo({ node, nodeInfo, teamDid });
|
|
187
188
|
const [invitedUserOnly] = await isInvitedUserOnly(config, node, teamDid);
|
|
188
189
|
|
|
189
|
-
const lastLoginIp = req
|
|
190
|
+
const lastLoginIp = getRequestIP(req);
|
|
190
191
|
let passport = { name: 'Guest', role: 'guest' };
|
|
191
192
|
let currentUser = await federatedUtil.getUserWithinFederated(
|
|
192
193
|
{ sourceAppPid, teamDid, userDid, userPk },
|
|
@@ -481,7 +482,7 @@ async function invite(req, node, options) {
|
|
|
481
482
|
});
|
|
482
483
|
}
|
|
483
484
|
}
|
|
484
|
-
const lastLoginIp = req
|
|
485
|
+
const lastLoginIp = getRequestIP(req);
|
|
485
486
|
const ua = req.get('user-agent');
|
|
486
487
|
const walletDeviceMessageToken = req.get('wallet-device-message-token');
|
|
487
488
|
const walletDeviceId = req.get('wallet-device-id');
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
const { WELLKNOWN_SERVICE_PATH_PREFIX } = require('@abtnode/constant');
|
|
2
|
+
const { BLOCKLET_OPENEMBED_PREFIX } = require('@blocklet/constant');
|
|
3
|
+
const pMap = require('p-map');
|
|
4
|
+
const YAML = require('yaml');
|
|
5
|
+
const { joinURL, withQuery } = require('ufo');
|
|
6
|
+
const { fromAppDid } = require('@arcblock/did-ext');
|
|
7
|
+
const { types } = require('@ocap/mcrypto');
|
|
8
|
+
const { hasStartEngine } = require('@blocklet/meta/lib/util');
|
|
9
|
+
|
|
10
|
+
const { api } = require('../libs/api');
|
|
11
|
+
|
|
12
|
+
async function getComponentOpenEmbedData(component, { generateDid }) {
|
|
13
|
+
const port = component?.ports?.BLOCKLET_PORT || component?.environmentObj?.BLOCKLET_PORT;
|
|
14
|
+
// NOTICE: 此处更倾向于使用本地地址,这也能达到更快的速度
|
|
15
|
+
const url = joinURL(`http://127.0.0.1:${port}`, BLOCKLET_OPENEMBED_PREFIX);
|
|
16
|
+
try {
|
|
17
|
+
// eslint-disable-next-line prefer-const
|
|
18
|
+
let { data: result, headers } = await api.get(url);
|
|
19
|
+
if (!headers?.['x-blocklet-openembed']) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
try {
|
|
24
|
+
if (typeof result === 'string') {
|
|
25
|
+
result = JSON.parse(result);
|
|
26
|
+
}
|
|
27
|
+
} catch (err) {
|
|
28
|
+
console.error('openembed.json parse error', err);
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const { mountPoint } = component;
|
|
33
|
+
const { title, description, did } = component?.meta || {};
|
|
34
|
+
|
|
35
|
+
// // 将当前的分组到 component 相关的 tag 中
|
|
36
|
+
result.tags = [{ name: title, description }];
|
|
37
|
+
|
|
38
|
+
const mergedPrefixEmbeds = {};
|
|
39
|
+
Object.keys(result.embeds).forEach((pathname) => {
|
|
40
|
+
const mergedPathname = joinURL(mountPoint, pathname);
|
|
41
|
+
const pathItem = result.embeds[pathname];
|
|
42
|
+
pathItem.tags = [title];
|
|
43
|
+
const itemWallet = generateDid(JSON.stringify(['openembed', did, pathname]));
|
|
44
|
+
pathItem['x-meta'] = {
|
|
45
|
+
id: itemWallet.address,
|
|
46
|
+
did,
|
|
47
|
+
path: pathname,
|
|
48
|
+
};
|
|
49
|
+
mergedPrefixEmbeds[mergedPathname] = pathItem;
|
|
50
|
+
});
|
|
51
|
+
result.embeds = mergedPrefixEmbeds;
|
|
52
|
+
return result;
|
|
53
|
+
} catch (err) {
|
|
54
|
+
console.error('openembed.json fetch error', err);
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
async function mergeOpenEmbed(dataList, { blocklet, node }) {
|
|
60
|
+
const { title, description, version } = blocklet.meta || {};
|
|
61
|
+
const filteredDataList = dataList.filter(Boolean);
|
|
62
|
+
const embeds = {};
|
|
63
|
+
const tags = [];
|
|
64
|
+
const owner = blocklet?.settings?.owner;
|
|
65
|
+
let contact;
|
|
66
|
+
if (owner?.did) {
|
|
67
|
+
try {
|
|
68
|
+
const user = await node.getUser({ teamDid: blocklet.meta.did, user: { did: owner.did } });
|
|
69
|
+
if (user) {
|
|
70
|
+
contact = {
|
|
71
|
+
email: user.email,
|
|
72
|
+
name: user.fullName,
|
|
73
|
+
url: withQuery(joinURL(WELLKNOWN_SERVICE_PATH_PREFIX, 'user'), {
|
|
74
|
+
did: owner.did,
|
|
75
|
+
}),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
} catch {
|
|
79
|
+
console.error('Failed to get owner info');
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
filteredDataList.forEach((x) => {
|
|
83
|
+
tags.push(...x.tags);
|
|
84
|
+
Object.keys(x.embeds).forEach((pathItem) => {
|
|
85
|
+
const embedItem = x.embeds[pathItem];
|
|
86
|
+
if (embedItem) {
|
|
87
|
+
embeds[pathItem] = embedItem;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
return {
|
|
92
|
+
openembed: '0.1.0',
|
|
93
|
+
info: {
|
|
94
|
+
title,
|
|
95
|
+
description,
|
|
96
|
+
contact,
|
|
97
|
+
version,
|
|
98
|
+
},
|
|
99
|
+
tags,
|
|
100
|
+
embeds,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
async function generateOpenEmbedData({ blocklet, did, generateDid, node }) {
|
|
105
|
+
const blockletCompontList = blocklet?.children || [];
|
|
106
|
+
const appUrl = blocklet?.environmentObj?.BLOCKLET_APP_URL;
|
|
107
|
+
const healthCheckUrl = joinURL(appUrl, '.well-known/service/health');
|
|
108
|
+
const { data: healthCheckData } = await api.get(healthCheckUrl);
|
|
109
|
+
const runningCompontList = blockletCompontList.filter((x) => {
|
|
110
|
+
const status = healthCheckData.components?.[x.meta.did];
|
|
111
|
+
return hasStartEngine(x?.meta) && status?.running === true;
|
|
112
|
+
});
|
|
113
|
+
// 单个 component
|
|
114
|
+
if (did) {
|
|
115
|
+
const findComponent = runningCompontList.find((component) => component?.meta?.did === did);
|
|
116
|
+
if (findComponent) {
|
|
117
|
+
const result = getComponentOpenEmbedData(findComponent, { baseUrl: appUrl, generateDid });
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
// 多个 component 组合
|
|
123
|
+
const componentListData = await pMap(
|
|
124
|
+
runningCompontList,
|
|
125
|
+
(x) => getComponentOpenEmbedData(x, { baseUrl: appUrl, generateDid }),
|
|
126
|
+
{
|
|
127
|
+
concurrency: 3,
|
|
128
|
+
}
|
|
129
|
+
);
|
|
130
|
+
const result = await mergeOpenEmbed(componentListData, { blocklet, node });
|
|
131
|
+
return result;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
module.exports = {
|
|
135
|
+
// eslint-disable-next-line no-unused-vars
|
|
136
|
+
init(app, node, options) {
|
|
137
|
+
app.get(`${WELLKNOWN_SERVICE_PATH_PREFIX}/openembed.yaml`, async (req, res) => {
|
|
138
|
+
const { did } = req.query;
|
|
139
|
+
const blocklet = await req.getBlocklet({ useCache: false });
|
|
140
|
+
const { permanentWallet } = await req.getBlockletInfo();
|
|
141
|
+
const rootSk = permanentWallet.secretKey;
|
|
142
|
+
function generateDid(didPath) {
|
|
143
|
+
return fromAppDid(didPath, rootSk, types.RoleType.ROLE_ASSET);
|
|
144
|
+
}
|
|
145
|
+
const data = await generateOpenEmbedData({ blocklet, did, generateDid, node });
|
|
146
|
+
const ymlData = YAML.stringify(data);
|
|
147
|
+
res.setHeader('Content-Disposition', 'attachment; filename="openembed.yml"');
|
|
148
|
+
res.status(200).send(ymlData);
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
app.get(`${WELLKNOWN_SERVICE_PATH_PREFIX}/openembed.json`, async (req, res) => {
|
|
152
|
+
const { did } = req.query;
|
|
153
|
+
const blocklet = await req.getBlocklet({ useCache: false });
|
|
154
|
+
const { permanentWallet } = await req.getBlockletInfo();
|
|
155
|
+
const rootSk = permanentWallet.secretKey;
|
|
156
|
+
function generateDid(didPath) {
|
|
157
|
+
return fromAppDid(didPath, rootSk, types.RoleType.ROLE_ASSET);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
const data = await generateOpenEmbedData({ blocklet, did, generateDid, node });
|
|
161
|
+
res.status(200).json(data);
|
|
162
|
+
});
|
|
163
|
+
},
|
|
164
|
+
};
|
|
@@ -8,6 +8,7 @@ const sortBy = require('lodash/sortBy');
|
|
|
8
8
|
const omit = require('lodash/omit');
|
|
9
9
|
const pLimit = require('p-limit');
|
|
10
10
|
const { getSourceProvider } = require('@blocklet/meta/lib/did-utils');
|
|
11
|
+
const getRequestIP = require('@abtnode/util/lib/get-request-ip');
|
|
11
12
|
|
|
12
13
|
const logger = require('../libs/logger')('blocklet-services:user-session');
|
|
13
14
|
const ensureBlocklet = require('../middlewares/ensure-blocklet');
|
|
@@ -132,7 +133,7 @@ module.exports = {
|
|
|
132
133
|
|
|
133
134
|
const memberSite = federated.sites.find((item) => item.appPid === appPid);
|
|
134
135
|
const postUser = pick(user, ['did', 'pk', 'fullName', 'locale']);
|
|
135
|
-
postUser.lastLoginAt = req
|
|
136
|
+
postUser.lastLoginAt = getRequestIP(req);
|
|
136
137
|
|
|
137
138
|
if (user.email) {
|
|
138
139
|
postUser.email = user.email;
|
|
@@ -194,7 +195,7 @@ module.exports = {
|
|
|
194
195
|
);
|
|
195
196
|
}
|
|
196
197
|
|
|
197
|
-
const lastLoginIp = req
|
|
198
|
+
const lastLoginIp = getRequestIP(req);
|
|
198
199
|
const ua = req.get('user-agent');
|
|
199
200
|
const walletDeviceMessageToken = req.get('wallet-device-message-token');
|
|
200
201
|
const walletDeviceId = req.get('wallet-device-id');
|
package/api/routes/user.js
CHANGED
|
@@ -15,6 +15,7 @@ const { verify, decode } = require('@arcblock/jwt');
|
|
|
15
15
|
const { getWallet } = require('@blocklet/meta/lib/did-utils');
|
|
16
16
|
const { Joi } = require('@arcblock/validator');
|
|
17
17
|
const { parse } = require('@abtnode/core/lib/util/ua');
|
|
18
|
+
const getRequestIP = require('@abtnode/util/lib/get-request-ip');
|
|
18
19
|
|
|
19
20
|
const { isInvitedUserOnly, createTokenFn, getDidConnectVersion } = require('../util');
|
|
20
21
|
const initJwt = require('../libs/jwt');
|
|
@@ -155,7 +156,7 @@ async function loginWallet(
|
|
|
155
156
|
profile = await composeProfileData({ avatar, email, fullName }, { node, req, teamDid, isCreate: true });
|
|
156
157
|
}
|
|
157
158
|
|
|
158
|
-
const lastLoginIp = req
|
|
159
|
+
const lastLoginIp = getRequestIP(req);
|
|
159
160
|
const loginParams = {
|
|
160
161
|
teamDid,
|
|
161
162
|
user: {
|
|
@@ -217,7 +218,7 @@ async function loginOAuth(
|
|
|
217
218
|
profile = await composeProfileData({ avatar, email, fullName }, { node, req, teamDid, isCreate: true });
|
|
218
219
|
}
|
|
219
220
|
|
|
220
|
-
const lastLoginIp = req
|
|
221
|
+
const lastLoginIp = getRequestIP(req);
|
|
221
222
|
|
|
222
223
|
const loginParams = {
|
|
223
224
|
teamDid,
|
|
@@ -304,7 +305,7 @@ async function login(req, node, options) {
|
|
|
304
305
|
},
|
|
305
306
|
{ ...sessionConfig, didConnectVersion: getDidConnectVersion(req) }
|
|
306
307
|
);
|
|
307
|
-
const lastLoginIp = req
|
|
308
|
+
const lastLoginIp = getRequestIP(req);
|
|
308
309
|
const ua = req.get('user-agent');
|
|
309
310
|
const walletDeviceMessageToken = req.get('wallet-device-message-token');
|
|
310
311
|
const walletDeviceId = req.get('wallet-device-id');
|
|
@@ -491,7 +492,7 @@ module.exports = {
|
|
|
491
492
|
passport = { name: 'Guest', role: 'guest' };
|
|
492
493
|
}
|
|
493
494
|
|
|
494
|
-
const lastLoginIp = req
|
|
495
|
+
const lastLoginIp = getRequestIP(req);
|
|
495
496
|
const loginedUser = await node.loginUser({
|
|
496
497
|
teamDid,
|
|
497
498
|
user: {
|
|
@@ -10,6 +10,7 @@ const {
|
|
|
10
10
|
const { getSourceAppPid } = require('@blocklet/sdk/lib/util/login');
|
|
11
11
|
const { NODE_SERVICES, WELLKNOWN_SERVICE_PATH_PREFIX } = require('@abtnode/constant');
|
|
12
12
|
const { LOGIN_PROVIDER } = require('@blocklet/constant');
|
|
13
|
+
const getRequestIP = require('@abtnode/util/lib/get-request-ip');
|
|
13
14
|
|
|
14
15
|
const { createTokenFn, getDidConnectVersion } = require('../../../util');
|
|
15
16
|
const { getUserWithinFederated } = require('../../../util/federated');
|
|
@@ -101,7 +102,7 @@ module.exports = function createRoutes(node, authenticator, createSessionToken)
|
|
|
101
102
|
{ ...sessionConfig, didConnectVersion: getDidConnectVersion(req) }
|
|
102
103
|
);
|
|
103
104
|
|
|
104
|
-
const lastLoginIp = req
|
|
105
|
+
const lastLoginIp = getRequestIP(req);
|
|
105
106
|
const ua = req.get('user-agent');
|
|
106
107
|
const walletDeviceMessageToken = req.get('wallet-device-message-token');
|
|
107
108
|
const walletDeviceId = req.get('wallet-device-id');
|
|
@@ -8,6 +8,7 @@ const {
|
|
|
8
8
|
const { getSourceAppPid } = require('@blocklet/sdk/lib/util/login');
|
|
9
9
|
const { WELLKNOWN_SERVICE_PATH_PREFIX } = require('@abtnode/constant');
|
|
10
10
|
const { LOGIN_PROVIDER } = require('@blocklet/constant');
|
|
11
|
+
const getRequestIP = require('@abtnode/util/lib/get-request-ip');
|
|
11
12
|
|
|
12
13
|
const { createTokenFn, getDidConnectVersion } = require('../../../util');
|
|
13
14
|
|
|
@@ -44,7 +45,7 @@ module.exports = function createRoutes(node, authenticator, createSessionToken)
|
|
|
44
45
|
const statusEndpointBaseUrl = joinURL(baseUrl, WELLKNOWN_SERVICE_PATH_PREFIX);
|
|
45
46
|
const endpoint = baseUrl;
|
|
46
47
|
const walletOS = req.context?.didwallet?.os;
|
|
47
|
-
const lastLoginIp = req
|
|
48
|
+
const lastLoginIp = getRequestIP(req);
|
|
48
49
|
const ua = req.get('user-agent');
|
|
49
50
|
const walletDeviceMessageToken = req.get('wallet-device-message-token');
|
|
50
51
|
const walletDeviceId = req.get('wallet-device-id');
|
|
@@ -15,6 +15,7 @@ const {
|
|
|
15
15
|
getRoleFromLocalPassport,
|
|
16
16
|
} = require('@abtnode/auth/lib/passport');
|
|
17
17
|
const getBlockletWallet = require('@blocklet/meta/lib/wallet');
|
|
18
|
+
const getRequestIP = require('@abtnode/util/lib/get-request-ip');
|
|
18
19
|
const { getBlockletChainInfo, isInProgress } = require('@blocklet/meta/lib/util');
|
|
19
20
|
const { ROLES } = require('@abtnode/constant');
|
|
20
21
|
const { LOGIN_PROVIDER } = require('@blocklet/constant');
|
|
@@ -249,7 +250,7 @@ module.exports = function createRoutes(node, _, createSessionToken) {
|
|
|
249
250
|
teamDid: appPid,
|
|
250
251
|
user: {
|
|
251
252
|
did: user.did,
|
|
252
|
-
lastLoginIp:
|
|
253
|
+
lastLoginIp: getRequestIP(req),
|
|
253
254
|
passports: [passport],
|
|
254
255
|
connectedAccounts: [
|
|
255
256
|
{
|
|
@@ -281,7 +282,7 @@ module.exports = function createRoutes(node, _, createSessionToken) {
|
|
|
281
282
|
pk: userPk,
|
|
282
283
|
locale,
|
|
283
284
|
passport,
|
|
284
|
-
lastLoginIp:
|
|
285
|
+
lastLoginIp: getRequestIP(req),
|
|
285
286
|
connectedAccount: {
|
|
286
287
|
provider: LOGIN_PROVIDER.WALLET,
|
|
287
288
|
did: userDid,
|
|
@@ -5,6 +5,7 @@ const { extractUserAvatar } = require('@abtnode/util/lib/user');
|
|
|
5
5
|
const formatContext = require('@abtnode/util/lib/format-context');
|
|
6
6
|
const verifySignature = require('@abtnode/auth/lib/util/verify-signature');
|
|
7
7
|
const { LOGIN_PROVIDER } = require('@blocklet/constant');
|
|
8
|
+
const getRequestIP = require('@abtnode/util/lib/get-request-ip');
|
|
8
9
|
|
|
9
10
|
const logger = require('../../../libs/logger')('setup');
|
|
10
11
|
|
|
@@ -67,7 +68,7 @@ module.exports = function createRoutes(node, _authenticator, createSessionToken)
|
|
|
67
68
|
pk: userPk,
|
|
68
69
|
approved: true,
|
|
69
70
|
lastLoginAt: new Date().toISOString(),
|
|
70
|
-
lastLoginIp:
|
|
71
|
+
lastLoginIp: getRequestIP(req),
|
|
71
72
|
extra: {
|
|
72
73
|
baseUrl,
|
|
73
74
|
},
|
|
@@ -87,7 +88,7 @@ module.exports = function createRoutes(node, _authenticator, createSessionToken)
|
|
|
87
88
|
did: userDid,
|
|
88
89
|
pk: userPk,
|
|
89
90
|
locale,
|
|
90
|
-
lastLoginIp:
|
|
91
|
+
lastLoginIp: getRequestIP(req),
|
|
91
92
|
extra: {
|
|
92
93
|
baseUrl,
|
|
93
94
|
},
|
|
@@ -11,6 +11,7 @@ const {
|
|
|
11
11
|
PASSPORT_STATUS,
|
|
12
12
|
} = require('@abtnode/constant');
|
|
13
13
|
const { LOGIN_PROVIDER } = require('@blocklet/constant');
|
|
14
|
+
const getRequestIP = require('@abtnode/util/lib/get-request-ip');
|
|
14
15
|
|
|
15
16
|
const isUrl = require('is-url');
|
|
16
17
|
const { PREFIXES } = require('../../util/constants');
|
|
@@ -214,7 +215,7 @@ module.exports = {
|
|
|
214
215
|
{ ...sessionConfig, didConnectVersion: getDidConnectVersion(req) }
|
|
215
216
|
);
|
|
216
217
|
const ua = req.get('user-agent');
|
|
217
|
-
const lastLoginIp = req
|
|
218
|
+
const lastLoginIp = getRequestIP(req);
|
|
218
219
|
const walletDeviceMessageToken = req.get('wallet-device-message-token');
|
|
219
220
|
const walletDeviceId = req.get('wallet-device-id');
|
|
220
221
|
const userSession = await node.upsertUserSession({
|
package/api/services/static.js
CHANGED
|
@@ -3,15 +3,14 @@ const path = require('path');
|
|
|
3
3
|
const serveStatic = require('serve-static');
|
|
4
4
|
|
|
5
5
|
const { WELLKNOWN_SERVICE_PATH_PREFIX } = require('@abtnode/constant');
|
|
6
|
-
|
|
7
|
-
const isFeDevelopment = process.env.ABT_NODE_SERVICE_FE_PORT;
|
|
6
|
+
const { isFeDev } = require('../libs/env');
|
|
8
7
|
|
|
9
8
|
const distDir = path.resolve(__dirname, '../../dist');
|
|
10
9
|
const devDir = path.resolve(__dirname, '../../public');
|
|
11
10
|
|
|
12
11
|
const attachUtils = ({ req, res, proxy }) => {
|
|
13
12
|
res.sendWebPage = () => {
|
|
14
|
-
if (
|
|
13
|
+
if (isFeDev) {
|
|
15
14
|
proxy.safeWeb(req, res, {
|
|
16
15
|
target: `http://127.0.0.1:${process.env.ABT_NODE_SERVICE_FE_PORT}`,
|
|
17
16
|
});
|
|
@@ -24,7 +23,7 @@ const attachUtils = ({ req, res, proxy }) => {
|
|
|
24
23
|
};
|
|
25
24
|
|
|
26
25
|
res.sendStaticFile = (file, sendOptions) => {
|
|
27
|
-
if (
|
|
26
|
+
if (isFeDev) {
|
|
28
27
|
res.sendFile(path.join(devDir, file), sendOptions);
|
|
29
28
|
} else {
|
|
30
29
|
res.sendFile(path.join(distDir, file), sendOptions);
|
|
@@ -38,7 +37,7 @@ const attachStaticResources = ({ app, proxy, extraResources = [] }) => {
|
|
|
38
37
|
app.use(x.prefix, serveStatic(x.dir, { index: false, maxAge: 0 }));
|
|
39
38
|
});
|
|
40
39
|
|
|
41
|
-
if (
|
|
40
|
+
if (isFeDev) {
|
|
42
41
|
app.use('/static', (req, res) => {
|
|
43
42
|
proxy.safeWeb(req, res, {
|
|
44
43
|
target: `http://127.0.0.1:${process.env.ABT_NODE_SERVICE_FE_PORT}/static`,
|
|
@@ -53,7 +52,7 @@ const attachStaticResources = ({ app, proxy, extraResources = [] }) => {
|
|
|
53
52
|
};
|
|
54
53
|
|
|
55
54
|
const attachDevProxy = ({ wsRouter, proxy }) => {
|
|
56
|
-
if (
|
|
55
|
+
if (isFeDev) {
|
|
57
56
|
['/sockjs-node', '/ws'].forEach((prefix) => {
|
|
58
57
|
wsRouter.use(prefix, (req, socket, head) => {
|
|
59
58
|
const target = 'http://127.0.0.1:3040';
|
package/api/util/federated.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
const { joinURL } = require('ufo');
|
|
2
2
|
const { WELLKNOWN_SERVICE_PATH_PREFIX } = require('@abtnode/constant');
|
|
3
3
|
const pick = require('lodash/pick');
|
|
4
|
-
const get = require('lodash/get');
|
|
5
4
|
const { signV2 } = require('@arcblock/jwt');
|
|
6
5
|
const {
|
|
7
6
|
shouldSyncFederated,
|
|
@@ -9,6 +8,7 @@ const {
|
|
|
9
8
|
getUserAvatarUrl,
|
|
10
9
|
getFederatedMaster,
|
|
11
10
|
} = require('@abtnode/auth/lib/util/federated');
|
|
11
|
+
const getRequestIP = require('@abtnode/util/lib/get-request-ip');
|
|
12
12
|
|
|
13
13
|
const { api } = require('../libs/api');
|
|
14
14
|
const { getDidConnectVersion } = require('./index');
|
|
@@ -63,7 +63,7 @@ async function loginByMember({ blockletInfo, blocklet, request, user, passport }
|
|
|
63
63
|
const walletOS = request.context.didwallet.os;
|
|
64
64
|
const { permanentWallet } = blockletInfo;
|
|
65
65
|
const postUser = pick(user, ['did', 'pk', 'fullName', 'locale']);
|
|
66
|
-
postUser.lastLoginAt =
|
|
66
|
+
postUser.lastLoginAt = getRequestIP(request);
|
|
67
67
|
|
|
68
68
|
if (user.email) {
|
|
69
69
|
postUser.email = user.email;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{X as r,Y as t,j as a}from"./index-
|
|
1
|
+
import{X as r,Y as t,j as a}from"./index-CQ5dtdkj.js";var e={},u=t;Object.defineProperty(e,"__esModule",{value:!0});var d=e.default=void 0,v=u(r()),o=a;d=e.default=(0,v.default)((0,o.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z"}),"Add");export{d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{X as r,Y as a,j as t}from"./index-
|
|
1
|
+
import{X as r,Y as a,j as t}from"./index-CQ5dtdkj.js";var e={},o=a;Object.defineProperty(e,"__esModule",{value:!0});var u=e.default=void 0,v=o(r()),d=t;u=e.default=(0,v.default)((0,d.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4z"}),"AddBox");export{e as A,u as d};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{aA as w,aB as H,ao as c,j as e,aC as d,ae as T,aD as g,c9 as m,ca as I,aG as n,r as _,aE as F,aF as U,ay as V,aI as D,aJ as Z}from"./index-CQ5dtdkj.js";import{u as M}from"./useSlot-CeeEaDXE.js";function G(t){return H("MuiAlert",t)}const J=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"]),S=J,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"),K=c(e.jsx("path",{d:"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"}),"ReportProblemOutlined"),Q=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"),X=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"),Y=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"),tt=["action","children","className","closeText","color","components","componentsProps","icon","iconMapping","onClose","role","severity","slotProps","slots","variant"],ot=t=>{const{variant:s,color:r,severity:o,classes:l}=t,u={root:["root",`color${g(r||o)}`,`${s}${g(r||o)}`,`${s}`],icon:["icon"],message:["message"],action:["action"]};return Z(u,G,l)},st=d(T,{name:"MuiAlert",slot:"Root",overridesResolver:(t,s)=>{const{ownerState:r}=t;return[s.root,s[r.variant],s[`${r.variant}${g(r.color||r.severity)}`]]}})(({theme:t})=>{const s=t.palette.mode==="light"?m:I,r=t.palette.mode==="light"?I:m;return n({},t.typography.body2,{backgroundColor:"transparent",display:"flex",padding:"6px 16px",variants:[...Object.entries(t.palette).filter(([,o])=>o.main&&o.light).map(([o])=>({props:{colorSeverity:o,variant:"standard"},style:{color:t.vars?t.vars.palette.Alert[`${o}Color`]:s(t.palette[o].light,.6),backgroundColor:t.vars?t.vars.palette.Alert[`${o}StandardBg`]:r(t.palette[o].light,.9),[`& .${S.icon}`]:t.vars?{color:t.vars.palette.Alert[`${o}IconColor`]}:{color:t.palette[o].main}}})),...Object.entries(t.palette).filter(([,o])=>o.main&&o.light).map(([o])=>({props:{colorSeverity:o,variant:"outlined"},style:{color:t.vars?t.vars.palette.Alert[`${o}Color`]:s(t.palette[o].light,.6),border:`1px solid ${(t.vars||t).palette[o].light}`,[`& .${S.icon}`]:t.vars?{color:t.vars.palette.Alert[`${o}IconColor`]}:{color:t.palette[o].main}}})),...Object.entries(t.palette).filter(([,o])=>o.main&&o.dark).map(([o])=>({props:{colorSeverity:o,variant:"filled"},style:n({fontWeight:t.typography.fontWeightMedium},t.vars?{color:t.vars.palette.Alert[`${o}FilledColor`],backgroundColor:t.vars.palette.Alert[`${o}FilledBg`]}:{backgroundColor:t.palette.mode==="dark"?t.palette[o].dark:t.palette[o].main,color:t.palette.getContrastText(t.palette[o].main)})}))]})}),et=d("div",{name:"MuiAlert",slot:"Icon",overridesResolver:(t,s)=>s.icon})({marginRight:12,padding:"7px 0",display:"flex",fontSize:22,opacity:.9}),rt=d("div",{name:"MuiAlert",slot:"Message",overridesResolver:(t,s)=>s.message})({padding:"8px 0",minWidth:0,overflow:"auto"}),j=d("div",{name:"MuiAlert",slot:"Action",overridesResolver:(t,s)=>s.action})({display:"flex",alignItems:"flex-start",padding:"4px 0 0 16px",marginLeft:"auto",marginRight:-8}),$={success:e.jsx(q,{fontSize:"inherit"}),warning:e.jsx(K,{fontSize:"inherit"}),error:e.jsx(Q,{fontSize:"inherit"}),info:e.jsx(X,{fontSize:"inherit"})},at=_.forwardRef(function(s,r){const o=F({props:s,name:"MuiAlert"}),{action:l,children:u,className:z,closeText:v="Close",color:f,components:C={},componentsProps:L={},icon:x,iconMapping:b=$,onClose:A,role:h="alert",severity:p="success",slotProps:P={},slots:R={},variant:O="standard"}=o,k=U(o,tt),a=n({},o,{color:f,severity:p,variant:O,colorSeverity:f||p}),i=ot(a),y={slots:n({closeButton:C.CloseButton,closeIcon:C.CloseIcon},R),slotProps:n({},L,P)},[B,E]=M("closeButton",{elementType:V,externalForwardedProps:y,ownerState:a}),[W,N]=M("closeIcon",{elementType:Y,externalForwardedProps:y,ownerState:a});return e.jsxs(st,n({role:h,elevation:0,ownerState:a,className:D(i.root,z),ref:r},k,{children:[x!==!1?e.jsx(et,{ownerState:a,className:i.icon,children:x||b[p]||$[p]}):null,e.jsx(rt,{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(W,n({fontSize:"small"},N))}))}):null]}))}),it=at;export{it as A,Y as C};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{X as r,Y as t,j as a}from"./index-
|
|
1
|
+
import{X as r,Y as t,j as a}from"./index-CQ5dtdkj.js";var e={},o=t;Object.defineProperty(e,"__esModule",{value:!0});var u=e.default=void 0,i=o(r()),p=a;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{ao as j,j as u,aB as w,aA as D,aC as m,aG as l,r as g,aE as F,aF as M,aI as N,aJ as z}from"./index-CQ5dtdkj.js";import{u as E}from"./useSlot-CeeEaDXE.js";const U=j(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 L(a){return w("MuiAvatar",a)}D("MuiAvatar",["root","colorDefault","circular","rounded","square","img","fallback"]);const _=["alt","children","className","component","slots","slotProps","imgProps","sizes","src","srcSet","variant"],q=a=>{const{classes:o,variant:t,colorDefault:r}=a;return z({root:["root",t,r&&"colorDefault"],img:["img"],fallback:["fallback"]},L,o)},B=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]})))}]})),T=m("img",{name:"MuiAvatar",slot:"Img",overridesResolver:(a,o)=>o.img})({width:"100%",height:"100%",textAlign:"center",objectFit:"cover",color:"transparent",textIndent:1e4}),G=m(U,{name:"MuiAvatar",slot:"Fallback",overridesResolver:(a,o)=>o.fallback})({width:"75%",height:"75%"});function H({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 J=g.forwardRef(function(o,t){const r=F({props:o,name:"MuiAvatar"}),{alt:n,children:s,className:i,component:e="div",slots:A={},slotProps:h={},imgProps:y,sizes:k,src:p,srcSet:f,variant:P="circular"}=r,R=M(r,_);let c=null;const C=H(l({},y,{src:p,srcSet:f})),b=p||f,x=b&&C!=="error",d=l({},r,{colorDefault:!x,component:e,variant:P}),v=q(d),[I,S]=E("img",{className:v.img,elementType:T,externalForwardedProps:{slots:A,slotProps:{img:l({},y,h.img)}},additionalProps:{alt:n,src:p,srcSet:f,sizes:k},ownerState:d});return x?c=u.jsx(I,l({},S)):s||s===0?c=s:b&&n?c=n[0]:c=u.jsx(G,{ownerState:d,className:v.fallback}),u.jsx(B,l({as:e,ownerState:d,className:N(v.root,i),ref:t},R,{children:c}))}),K=J;export{K as A};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as g,
|
|
1
|
+
import{r as g,aA as V,aB as j,aC as M,aG as n,cg as N,aE as O,aF as y,j as R,cV as F,cW as H,aI as U,aD as a,aJ as _}from"./index-CQ5dtdkj.js";function k(t){return g.Children.toArray(t).filter(o=>g.isValidElement(o))}function D(t){return j("MuiButtonGroup",t)}const i=V("MuiButtonGroup",["root","contained","outlined","text","disableElevation","disabled","firstButton","fullWidth","vertical","grouped","groupedHorizontal","groupedVertical","groupedText","groupedTextHorizontal","groupedTextVertical","groupedTextPrimary","groupedTextSecondary","groupedOutlined","groupedOutlinedHorizontal","groupedOutlinedVertical","groupedOutlinedPrimary","groupedOutlinedSecondary","groupedContained","groupedContainedHorizontal","groupedContainedVertical","groupedContainedPrimary","groupedContainedSecondary","lastButton","middleButton"]),A=["children","className","color","component","disabled","disableElevation","disableFocusRipple","disableRipple","fullWidth","orientation","size","variant"],I=(t,o)=>{const{ownerState:r}=t;return[{[`& .${i.grouped}`]:o.grouped},{[`& .${i.grouped}`]:o[`grouped${a(r.orientation)}`]},{[`& .${i.grouped}`]:o[`grouped${a(r.variant)}`]},{[`& .${i.grouped}`]:o[`grouped${a(r.variant)}${a(r.orientation)}`]},{[`& .${i.grouped}`]:o[`grouped${a(r.variant)}${a(r.color)}`]},{[`& .${i.firstButton}`]:o.firstButton},{[`& .${i.lastButton}`]:o.lastButton},{[`& .${i.middleButton}`]:o.middleButton},o.root,o[r.variant],r.disableElevation===!0&&o.disableElevation,r.fullWidth&&o.fullWidth,r.orientation==="vertical"&&o.vertical]},J=t=>{const{classes:o,color:r,disabled:s,disableElevation:v,fullWidth:b,orientation:d,variant:l}=t,u={root:["root",l,d==="vertical"&&"vertical",b&&"fullWidth",v&&"disableElevation"],grouped:["grouped",`grouped${a(d)}`,`grouped${a(l)}`,`grouped${a(l)}${a(d)}`,`grouped${a(l)}${a(r)}`,s&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]};return _(u,D,o)},q=M("div",{name:"MuiButtonGroup",slot:"Root",overridesResolver:I})(({theme:t,ownerState:o})=>n({display:"inline-flex",borderRadius:(t.vars||t).shape.borderRadius},o.variant==="contained"&&{boxShadow:(t.vars||t).shadows[2]},o.disableElevation&&{boxShadow:"none"},o.fullWidth&&{width:"100%"},o.orientation==="vertical"&&{flexDirection:"column"},{[`& .${i.grouped}`]:n({minWidth:40,"&:hover":n({},o.variant==="contained"&&{boxShadow:"none"})},o.variant==="contained"&&{boxShadow:"none"}),[`& .${i.firstButton},& .${i.middleButton}`]:n({},o.orientation==="horizontal"&&{borderTopRightRadius:0,borderBottomRightRadius:0},o.orientation==="vertical"&&{borderBottomRightRadius:0,borderBottomLeftRadius:0},o.variant==="text"&&o.orientation==="horizontal"&&{borderRight:t.vars?`1px solid rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:`1px solid ${t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"}`,[`&.${i.disabled}`]:{borderRight:`1px solid ${(t.vars||t).palette.action.disabled}`}},o.variant==="text"&&o.orientation==="vertical"&&{borderBottom:t.vars?`1px solid rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:`1px solid ${t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"}`,[`&.${i.disabled}`]:{borderBottom:`1px solid ${(t.vars||t).palette.action.disabled}`}},o.variant==="text"&&o.color!=="inherit"&&{borderColor:t.vars?`rgba(${t.vars.palette[o.color].mainChannel} / 0.5)`:N(t.palette[o.color].main,.5)},o.variant==="outlined"&&o.orientation==="horizontal"&&{borderRightColor:"transparent"},o.variant==="outlined"&&o.orientation==="vertical"&&{borderBottomColor:"transparent"},o.variant==="contained"&&o.orientation==="horizontal"&&{borderRight:`1px solid ${(t.vars||t).palette.grey[400]}`,[`&.${i.disabled}`]:{borderRight:`1px solid ${(t.vars||t).palette.action.disabled}`}},o.variant==="contained"&&o.orientation==="vertical"&&{borderBottom:`1px solid ${(t.vars||t).palette.grey[400]}`,[`&.${i.disabled}`]:{borderBottom:`1px solid ${(t.vars||t).palette.action.disabled}`}},o.variant==="contained"&&o.color!=="inherit"&&{borderColor:(t.vars||t).palette[o.color].dark},{"&:hover":n({},o.variant==="outlined"&&o.orientation==="horizontal"&&{borderRightColor:"currentColor"},o.variant==="outlined"&&o.orientation==="vertical"&&{borderBottomColor:"currentColor"})}),[`& .${i.lastButton},& .${i.middleButton}`]:n({},o.orientation==="horizontal"&&{borderTopLeftRadius:0,borderBottomLeftRadius:0},o.orientation==="vertical"&&{borderTopRightRadius:0,borderTopLeftRadius:0},o.variant==="outlined"&&o.orientation==="horizontal"&&{marginLeft:-1},o.variant==="outlined"&&o.orientation==="vertical"&&{marginTop:-1})})),K=g.forwardRef(function(o,r){const s=O({props:o,name:"MuiButtonGroup"}),{children:v,className:b,color:d="primary",component:l="div",disabled:u=!1,disableElevation:B=!1,disableFocusRipple:$=!1,disableRipple:f=!1,fullWidth:x=!1,orientation:E="horizontal",size:h="medium",variant:C="outlined"}=s,W=y(s,A),m=n({},s,{color:d,component:l,disabled:u,disableElevation:B,disableFocusRipple:$,disableRipple:f,fullWidth:x,orientation:E,size:h,variant:C}),e=J(m),T=g.useMemo(()=>({className:e.grouped,color:d,disabled:u,disableElevation:B,disableFocusRipple:$,disableRipple:f,fullWidth:x,size:h,variant:C}),[d,u,B,$,f,x,h,C,e.grouped]),z=k(v),P=z.length,L=c=>{const p=c===0,G=c===P-1;return p&&G?"":p?e.firstButton:G?e.lastButton:e.middleButton};return R.jsx(q,n({as:l,role:"group",className:U(e.root,b),ref:r,ownerState:m},W,{children:R.jsx(F.Provider,{value:T,children:z.map((c,p)=>R.jsx(H.Provider,{value:L(p),children:c},p))})}))}),X=K;export{X as B,k as g};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{X as r,Y as t,j as a}from"./index-
|
|
1
|
+
import{X as r,Y as t,j as a}from"./index-CQ5dtdkj.js";var e={},u=t;Object.defineProperty(e,"__esModule",{value:!0});var i=e.default=void 0,o=u(r()),l=a;i=e.default=(0,o.default)((0,l.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8z"}),"CheckCircle");export{i as d};
|