@abtnode/blocklet-services 1.16.29-beta-112566d5 → 1.16.29-beta-1fedbcdd
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/libs/connect/session.js +79 -5
- package/api/routes/user.js +34 -0
- package/api/services/auth/connect/switch-profile.js +1 -0
- package/api/services/auth/session.js +2 -1
- package/api/state/profile.js +84 -0
- package/dist/assets/{Add-CY4Vajpf.js → Add-Dg3DoX9d.js} +1 -1
- package/dist/assets/{AddBox-DeNDC_On.js → AddBox-C17jvdJl.js} +1 -1
- package/dist/assets/{Alert-X8Tf_Ya2.js → Alert-BKFuUvWk.js} +1 -1
- package/dist/assets/{ArrowDropDown-B1ERiCZ6.js → ArrowDropDown-CGo5r4f4.js} +1 -1
- package/dist/assets/{Avatar-DzypDi2F.js → Avatar-edXR98OC.js} +1 -1
- package/dist/assets/{ButtonGroup-Yl1SMoBq.js → ButtonGroup-B-trlU8_.js} +1 -1
- package/dist/assets/{CheckCircle-lTVG_pn6.js → CheckCircle-B9xPPxo3.js} +1 -1
- package/dist/assets/{ChevronRight-yT0593W6.js → ChevronRight-C1KMBilZ.js} +1 -1
- package/dist/assets/{Close-DJPwlagN.js → Close-BdY5kwmO.js} +1 -1
- package/dist/assets/CloseOutlined-CsaZ3Bhr.js +1 -0
- package/dist/assets/{Delete-LnXfw8II.js → Delete-CCqIi_Sn.js} +1 -1
- package/dist/assets/{DeleteOutline-yfbdyPMw.js → DeleteOutline-1-_Aj4ZS.js} +1 -1
- package/dist/assets/{Done-CegxfXGS.js → Done-0Y69u3C8.js} +1 -1
- package/dist/assets/{Download-CbdL3-JP.js → Download-PkPWvb17.js} +1 -1
- package/dist/assets/{Edit-mj0warXM.js → Edit-BD3srxBB.js} +1 -1
- package/dist/assets/{EditIcon-BWMMTTyf.js → EditIcon-DrXWvR9n.js} +1 -1
- package/dist/assets/{Error-CnzO6x6f.js → Error-DLe_WPUY.js} +1 -1
- package/dist/assets/{ExpandMore-BoZqCbU8.js → ExpandMore-DBRGZIcO.js} +1 -1
- package/dist/assets/{FilterList-C75puMMo.js → FilterList-CloD2WPY.js} +4 -4
- package/dist/assets/{FormControl-02YkGBiU.js → FormControl-Bimse2fR.js} +1 -1
- package/dist/assets/{FormControlLabel-BZuIe-KU.js → FormControlLabel-DyDuxrZO.js} +1 -1
- package/dist/assets/{FormGroup-CUYWiNiM.js → FormGroup-B-B4SKep.js} +1 -1
- package/dist/assets/{Google-D6M8c4go.js → Google-CY6AY4mw.js} +3 -3
- package/dist/assets/{Hidden-BtwYfeyy.js → Hidden-BEdcEMkg.js} +1 -1
- package/dist/assets/{InfoOutlined-DzWheCe4.js → InfoOutlined-eJsNowz0.js} +1 -1
- package/dist/assets/{InputAdornment-B3Ml-Pew.js → InputAdornment-BzNkHkX2.js} +1 -1
- package/dist/assets/{InputLabel-D_H-0SoX.js → InputLabel-BYgiFQQ4.js} +1 -1
- package/dist/assets/{LastPage-D-3vv4wE.js → LastPage-nU32AGod.js} +1 -1
- package/dist/assets/{Launch-B0EjmiiU.js → Launch-CVtW962B.js} +1 -1
- package/dist/assets/{LaunchOutlined-sgP85ul9.js → LaunchOutlined-BJHsiaNO.js} +1 -1
- package/dist/assets/{Link-1nuQkwqf.js → Link-B7BIUmNC.js} +1 -1
- package/dist/assets/{ListItemText-Bn_r5n_z.js → ListItemText-DEJDVS_t.js} +1 -1
- package/dist/assets/{LoadingButton-D9fUIMmf.js → LoadingButton-BXi8UPz1.js} +1 -1
- package/dist/assets/{LockIcon-CkuBg3Hn.js → LockIcon-BU7rJFlH.js} +1 -1
- package/dist/assets/{Loop-CIkJKfB9.js → Loop-Dnr7WDDT.js} +1 -1
- package/dist/assets/{MoreVert-DhDSKiqk.js → MoreVert-bOSoaHD9.js} +1 -1
- package/dist/assets/{OpenInNew-DUIHrnXo.js → OpenInNew-CeiuaOcw.js} +1 -1
- package/dist/assets/{Pagination-BlS75-dT.js → Pagination-BYXcUJ0Y.js} +1 -1
- package/dist/assets/{PlayArrow-MoLzECrB.js → PlayArrow-D22-pmdQ.js} +1 -1
- package/dist/assets/{QuestionMarkCircle-D2W4KMR_.js → QuestionMarkCircle-Bdv9sXqB.js} +1 -1
- package/dist/assets/{RadioGroup-C3L5xJaa.js → RadioGroup-BCw6Zfps.js} +1 -1
- package/dist/assets/{Search-DTUqGlmf.js → Search-Csb9vzNF.js} +1 -1
- package/dist/assets/{Select-DCbRxmUU.js → Select-DZHh0qcc.js} +2 -2
- package/dist/assets/{ServerLogo-BhzjzHzD.js → ServerLogo-hhsJxrSy.js} +1 -1
- package/dist/assets/{Skeleton-5Ejh8uW9.js → Skeleton-CBS6UJ1y.js} +5 -5
- package/dist/assets/{Slider-Cl86dPUi.js → Slider-Bn8CJzD_.js} +1 -1
- package/dist/assets/{Stepper-BFMAEaBf.js → Stepper-YvlwhWMT.js} +1 -1
- package/dist/assets/{TextField-BHSEV3Ac.js → TextField-C2EqusxQ.js} +1 -1
- package/dist/assets/{Toolbar-D3YIXjSy.js → Toolbar-1na38RU0.js} +1 -1
- package/dist/assets/{ViewList-cURATctI.js → ViewList-DZhVIX3B.js} +1 -1
- package/dist/assets/{access-control-D8X_8z7A.js → access-control-oToCiriT.js} +1 -1
- package/dist/assets/{actions-CbsTrVFd.js → actions-BsNpmFMX.js} +1 -1
- package/dist/assets/{add-component-core-CATRvviC.js → add-component-core-D_rRE8CK.js} +20 -20
- package/dist/assets/add-resource-DFAzvQTL.js +1 -0
- package/dist/assets/{addon-D0jt9co0.js → addon-DduZXSOs.js} +1 -1
- package/dist/assets/{analytics-wO1onAqc.js → analytics-B3plQH2m.js} +9 -9
- package/dist/assets/api-D4UteNRP.js +1 -0
- package/dist/assets/audit-logs-Ck0tujOU.js +58 -0
- package/dist/assets/{blocklet-storage-Bbhcz6In.js → blocklet-storage-eoLG9vUP.js} +1 -1
- package/dist/assets/{button-DTeWpy9g.js → button-CRCGL4Id.js} +1 -1
- package/dist/assets/{click-to-copy-CaJFO5Kq.js → click-to-copy-B3viLuly.js} +1 -1
- package/dist/assets/{complete-3uapgH3n.js → complete-tyxHAm7X.js} +4 -4
- package/dist/assets/{component-BCvhjsjE.js → component-BN-TcZly.js} +1 -1
- package/dist/assets/{config-DJ2yOOMa.js → config-Dwya1hng.js} +1 -1
- package/dist/assets/{config-DRVy3XZK.js → config-bboKX4PL.js} +2 -2
- package/dist/assets/{config-navigation-DRALpukx.js → config-navigation-BUvcDr-d.js} +2 -2
- package/dist/assets/confirm-BeQH2PW_.js +7 -0
- package/dist/assets/{connect-BegmDQRh.js → connect-CsteDupB.js} +1 -1
- package/dist/assets/{connect-BSe0CQFh.js → connect-qbbg7j6s.js} +1 -1
- package/dist/assets/{connect-to-CsUlyY6l.js → connect-to-WCwN_o6a.js} +2 -2
- package/dist/assets/{content-layout-7iVGY_ud.js → content-layout-BiBqpOIx.js} +1 -1
- package/dist/assets/{dashboard-Dy_5eyk1.js → dashboard-BESqV0lJ.js} +7 -7
- package/dist/assets/{did-address-01PnQBPQ.js → did-address-BLs9qjOH.js} +1 -1
- package/dist/assets/{domain-BXr1Jxdg.js → domain-CZTJ6x7C.js} +1 -1
- package/dist/assets/{domain-list-DRd4BKdS.js → domain-list-yMmkUCiY.js} +2 -2
- package/dist/assets/{exchange-passport-DBlhf64U.js → exchange-passport-BAKKCu43.js} +1 -1
- package/dist/assets/{fallback-D4IbwHOh.js → fallback-Cki9LbOT.js} +1 -1
- package/dist/assets/{format-error-BLTYbOE0.js → format-error-BW7oqKtM.js} +1 -1
- package/dist/assets/{fuel-BFrr131p.js → fuel-DprFmFw0.js} +1 -1
- package/dist/assets/{fullpage-o_U-2IGS.js → fullpage-BnC_qi6s.js} +1 -1
- package/dist/assets/{home--rxR-cTY.js → home-VW-_y_8Y.js} +1 -1
- package/dist/assets/{iframe-DAPuN1dW.js → iframe-BRjbQULJ.js} +1 -1
- package/dist/assets/{index-DHRl1pLr.js → index-4aHMCCMH.js} +1 -1
- package/dist/assets/index-B97Tcj5g.js +16 -0
- package/dist/assets/{index-CzsxjdeJ.js → index-BBHPANaX.js} +1 -1
- package/dist/assets/{index-NKypbT5t.js → index-BZ_V6MTf.js} +5 -5
- package/dist/assets/{index-CHegi_Ee.js → index-BbITgIqZ.js} +1 -1
- package/dist/assets/{index-CbcN4v3T.js → index-BisCsEXx.js} +1 -1
- package/dist/assets/{index-DZWxxu-P.js → index-Bk0-omMC.js} +7 -7
- package/dist/assets/index-BmSBAMPa.js +11 -0
- package/dist/assets/{index-Bs7XqsZf.js → index-C--nJJiQ.js} +1 -1
- package/dist/assets/{index-7PLdtDxY.js → index-C-wak9uz.js} +1 -1
- package/dist/assets/{index-Dvf9hLBW.js → index-C1CvBHUy.js} +6 -6
- package/dist/assets/{index-DW7MULcX.js → index-C4-vb4tY.js} +1 -1
- package/dist/assets/{index-B_Mn_6jy.js → index-C6FVTOmg.js} +1 -1
- package/dist/assets/{index-BB-3C_7E.js → index-C6vkhDVz.js} +1 -1
- package/dist/assets/index-CB3E1NbM.js +54 -0
- package/dist/assets/index-CpCiL9fl.js +4 -0
- package/dist/assets/{index-Bf4S7Fg9.js → index-Cx_jKiM6.js} +1 -1
- package/dist/assets/{index-BCLn-9S9.js → index-D2l2mL0e.js} +1 -1
- package/dist/assets/{index-Cd20iNJ4.js → index-D76ppsWe.js} +18 -18
- package/dist/assets/{index-Diwtza0T.js → index-D8o-H0QH.js} +12 -12
- package/dist/assets/{index-B0KUbTqG.js → index-D9dlgRXn.js} +1 -1
- package/dist/assets/{index-CmmFWW8f.js → index-D9rzOuU2.js} +1 -1
- package/dist/assets/{index-1I7IXhML.js → index-DPgaGICn.js} +1 -1
- package/dist/assets/{index-l8yj4zzE.js → index-DaKubzJ8.js} +1 -1
- package/dist/assets/{index-Cf2_yBdK.js → index-EUCEjnDW.js} +1 -1
- package/dist/assets/{index-CyUODU0b.js → index-RXo2Xo1d.js} +1 -1
- package/dist/assets/{index-ClrMer_1.js → index-ZcMyyZfi.js} +1 -1
- package/dist/assets/index-iUyg8ocp.js +1 -0
- package/dist/assets/{index-BrXFspW6.js → index-izdM8tLU.js} +1 -1
- package/dist/assets/index-rOCWxcf-.js +1 -0
- package/dist/assets/{index-BRzBZXpP.js → index-t-A94JfS.js} +4 -4
- package/dist/assets/{index-CptRhWH5.js → index-vgfQK3J_.js} +61 -30
- package/dist/assets/{index-CZq1iuqc.js → index-ylwMh6tu.js} +196 -196
- package/dist/assets/{index.es-DIBj3Jq4.js → index.es-BdoZt3gl.js} +2 -2
- package/dist/assets/{index.esm-N7xOi6VN.js → index.esm-BZdq_xYs.js} +1 -1
- package/dist/assets/info-outline-rounded-B7pckXfF.js +1 -0
- package/dist/assets/{invitation-Hu8jHCIo.js → invitation-Dkv3jgdr.js} +1 -1
- package/dist/assets/{invite-tCvD1Emp.js → invite-CiL7XQ0_.js} +1 -1
- package/dist/assets/{issue-passport-BQo4G1nz.js → issue-passport-x1Sz90ds.js} +1 -1
- package/dist/assets/{item-DbGtGKeZ.js → item-CCNOnvVg.js} +1 -1
- package/dist/assets/{jss-plugin-props-sort.esm-DvQhW7jP.js → jss-plugin-props-sort.esm-CHeIoYvY.js} +1 -1
- package/dist/assets/{launch-result-message-Bur7t6_c.js → launch-result-message-DP7zyXX0.js} +1 -1
- package/dist/assets/{layout-B0uAwIQe.js → layout-CjjE8stJ.js} +1 -1
- package/dist/assets/{list-header-DFekr1NL.js → list-header-aqH-97l-.js} +1 -1
- package/dist/assets/localization-CgQBvb94.js +1 -0
- package/dist/assets/{log-CjsiT4t8.js → log-Bskl-_PT.js} +1 -1
- package/dist/assets/{login-1J5BbYVV.js → login-WFpgiNQn.js} +1 -1
- package/dist/assets/{login-oauth-callback-Blrq-pTH.js → login-oauth-callback-CwLD7UGz.js} +1 -1
- package/dist/assets/logo-uploader-By8vYJcc.js +122 -0
- package/dist/assets/{lost-passport-B-xv32w5.js → lost-passport-B39d4lzc.js} +3 -3
- package/dist/assets/{lottie-DHZm2Pp-.js → lottie-DTAkt9rG.js} +1 -1
- package/dist/assets/notifications-rIQeNRyH.js +62 -0
- package/dist/assets/{open-window-C6VjWW94.js → open-window-DKgXXbA_.js} +1 -1
- package/dist/assets/overview-DhaBkhW5.js +12 -0
- package/dist/assets/{page-header-Doy1SeXs.js → page-header-b-7Z5M1p.js} +1 -1
- package/dist/assets/{permission-BWAp0U1U.js → permission-CjXdPWLm.js} +1 -1
- package/dist/assets/{preferences-C-rgtZ7Y.js → preferences-DFFLelLq.js} +1 -1
- package/dist/assets/publish-resource-DG_q9nHi.js +1 -0
- package/dist/assets/react-hphslfgR.js +379 -0
- package/dist/assets/{redux-DJ4kW5cs.js → redux-D2MFeV97.js} +1 -1
- package/dist/assets/resource-dialog-CYsYDVd4.js +57 -0
- package/dist/assets/{selector-CoXEpXpq.js → selector-CyKqMls1.js} +3 -3
- package/dist/assets/session-BKSBv0mj.js +1 -0
- package/dist/assets/setup-Cvqq22Cb.js +14 -0
- package/dist/assets/{shorten-label-FpBR8oOW.js → shorten-label-B181R4sg.js} +1 -1
- package/dist/assets/{slicedToArray-D6tWlK6Z.js → slicedToArray-sFUDNoi3.js} +2 -2
- package/dist/assets/{spaces-Dxw-EmTw.js → spaces-C-O11DZB.js} +1 -1
- package/dist/assets/{start-D1WI9rVf.js → start-sbA77GB8.js} +1 -1
- package/dist/assets/{step-actions-D3Bgjg32.js → step-actions-C_aJ5g2U.js} +1 -1
- package/dist/assets/{studio-SFi0TZqU.js → studio-0-zx3Gfg.js} +1 -1
- package/dist/assets/{switch-control-D_6oISXT.js → switch-control-LFie4T6d.js} +1 -1
- package/dist/assets/{toUpper-DA5F5eP3.js → toUpper-DwJS99Kw.js} +1 -1
- package/dist/assets/{transfer-YRbXZ2oQ.js → transfer-DemzpgEv.js} +1 -1
- package/dist/assets/{uniqBy-moVi8I9O.js → uniqBy-CurK-eE8.js} +1 -1
- package/dist/assets/{unsubscribe-B-8N_G1A.js → unsubscribe-BRq8BRma.js} +1 -1
- package/dist/assets/{url-join-BUXfHAG-.js → url-join-CYx28Lgt.js} +1 -1
- package/dist/assets/use-blocklet-info-for-connect-did-spaces-BVTgf2Uo.js +1 -0
- package/dist/assets/{use-mobile-C_ONEjf6.js → use-mobile-UW34SxaH.js} +1 -1
- package/dist/assets/{useAsync-BLjRrBya.js → useAsync-kH9wVwIf.js} +1 -1
- package/dist/assets/{useFormControl-BrCPFkZH.js → useFormControl-Bc6GRxco.js} +1 -1
- package/dist/assets/{useLocalStorage-DrhIkVxO.js → useLocalStorage-kWHhpCBz.js} +1 -1
- package/dist/assets/{useSetState-CbQrbQss.js → useSetState-7SNjdxq8.js} +1 -1
- package/dist/assets/{useSlot-BSk477LF.js → useSlot-BMo33AcK.js} +1 -1
- package/dist/assets/user-center-BtPuulHQ.js +1 -0
- package/dist/assets/{util-Do8cOsC3.js → util-BKi99Ui9.js} +1 -1
- package/dist/assets/{wrap-locale-D6fNmzs0.js → wrap-locale-BGOpNp8r.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/service-worker.js +1 -1
- package/package.json +27 -26
- package/dist/assets/CloseOutlined-D1ZA66gd.js +0 -1
- package/dist/assets/add-resource-B0nzFGxn.js +0 -1
- package/dist/assets/api-BFSOae_v.js +0 -1
- package/dist/assets/audit-logs-DDUnfrlt.js +0 -58
- package/dist/assets/confirm-BzNK2mDA.js +0 -7
- package/dist/assets/index-CLFX4mT1.js +0 -11
- package/dist/assets/index-Cy3QGaUZ.js +0 -54
- package/dist/assets/index-K7xQGL1m.js +0 -16
- package/dist/assets/index-Wy8tXmp4.js +0 -4
- package/dist/assets/localization-Dyeek5nb.js +0 -1
- package/dist/assets/logo-uploader-KJa3kg20.js +0 -122
- package/dist/assets/notifications-D9-n_25q.js +0 -62
- package/dist/assets/overview-DkYsGUOj.js +0 -12
- package/dist/assets/publish-resource-C5iQ3qEW.js +0 -1
- package/dist/assets/react-CT3HMgMp.js +0 -56
- package/dist/assets/resource-dialog-Dyf09u0L.js +0 -57
- package/dist/assets/session-Ci3gpI0a.js +0 -1
- package/dist/assets/setup-D47fcxKa.js +0 -14
- package/dist/assets/use-blocklet-info-for-connect-did-spaces-DhpD5O4W.js +0 -1
- package/dist/assets/user-center-BYfQOHt3.js +0 -1
- package/dist/assets/user-sessions-CAX_hHjv.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{f as B,j as a,B as m,A as q,a as R,T as S,bc as G,M as L,g as H,u as J,bL as Y,h as E,O as K,b as O,bE as k,bB as Q,dM as U}from"./index-CZq1iuqc.js";import{D as X}from"./index-B_Mn_6jy.js";import{U as T,d as F}from"./resource-dialog-Dyf09u0L.js";class Z extends Error{constructor(n){super(),this.name="AbortError",this.message=n}}const N=e=>globalThis.DOMException===void 0?new Z(e):new DOMException(e),M=e=>{const n=e.reason===void 0?N("This operation was aborted."):e.reason;return n instanceof Error?n:N(n)};async function ee(e,n,{concurrency:s=Number.POSITIVE_INFINITY,stopOnError:i=!0,signal:u}={}){return new Promise((w,C)=>{if(e[Symbol.iterator]===void 0&&e[Symbol.asyncIterator]===void 0)throw new TypeError(`Expected \`input\` to be either an \`Iterable\` or \`AsyncIterable\`, got (${typeof e})`);if(typeof n!="function")throw new TypeError("Mapper function is required");if(!((Number.isSafeInteger(s)||s===Number.POSITIVE_INFINITY)&&s>=1))throw new TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${s}\` (${typeof s})`);const r=[],A=[],g=new Map;let c=!1,x=!1,v=!1,y=0,b=0;const D=e[Symbol.iterator]===void 0?e[Symbol.asyncIterator]():e[Symbol.iterator](),h=t=>{c=!0,x=!0,C(t)};u&&(u.aborted&&h(M(u)),u.addEventListener("abort",()=>{h(M(u))}));const I=async()=>{if(x)return;const t=await D.next(),o=b;if(b++,t.done){if(v=!0,y===0&&!x){if(!i&&A.length>0){h(new AggregateError(A));return}if(x=!0,g.size===0){w(r);return}const l=[];for(const[d,p]of r.entries())g.get(d)!==z&&l.push(p);w(l)}return}y++,(async()=>{try{const l=await t.value;if(x)return;const d=await n(l,o);d===z&&g.set(o,d),r[o]=d,y--,await I()}catch(l){if(i)h(l);else{A.push(l),y--;try{await I()}catch(d){h(d)}}}})()};(async()=>{for(let t=0;t<s;t++){try{await I()}catch(o){h(o);break}if(v||c)break}})()})}const z=Symbol("skip");async function te(e,n){return ee(e,s=>s(),n)}function oe({user:e,sessionUser:n}){const s=B(()=>{var i;return(i=(e==null?void 0:e.passports)||[])==null?void 0:i.find(u=>u.name===n.role)},[e==null?void 0:e.passports,n==null?void 0:n.role]);return a.jsxs(m,{sx:{display:"flex",alignItems:"center",gap:1},children:[a.jsx(q,{size:40,variant:"circle",shape:"circle",src:n.avatar,did:n.did,sx:{flexShrink:0}}),a.jsxs(m,{sx:{flex:1,overflow:"hidden"},children:[a.jsxs(m,{sx:{display:"flex",alignItems:"center",gap:1},children:[a.jsx(R,{title:n.fullName,children:a.jsx(S,{sx:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",flex:1},children:n.fullName})}),a.jsx(G,{label:(s==null?void 0:s.title)||(s==null?void 0:s.name)||"Guest",size:"small",variant:"outlined",sx:{flexShrink:0,fontWeight:"bold",fontSize:"12px",color:L.textBase,borderColor:L.strokeBorderStrong,backgroundColor:"transparent",textTransform:"capitalize",pr:.5,pl:0,height:"auto"}})]}),a.jsx(R,{title:n.email,children:a.jsx(S,{variant:"body2",color:"grey",sx:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:n.email})})]})]})}const ne={zh:{confirm:"确认",cancel:"取消",visitorId:"设备标识",deviceType:"设备类型",platform:"操作系统",walletOS:"钱包类型",role:"角色",fullname:"姓名",email:"邮箱",avatar:"头像",user:"用户",createdAt:"首次活动时间",updatedAt:"最近活动时间",lastLoginIp:"最近活动地址",actions:"操作",logoutAll:"注销所有会话",logoutAllTips:"不会注销当前会话",logout:"注销",currentSession:"当前会话",unknown:"未知",expired:"已过期",remove:"删除",logoutThisSession:"注销指定会话",logoutThisSessionConfirm:"确定要注销此会话吗?",logoutAllSession:"注销所有会话",logoutAllSessionConfirm:"确定要注销所有会话吗?"},en:{confirm:"Confirm",cancel:"Cancel",visitorId:"Device ID",deviceType:"Device Type",platform:"Platform",walletOS:"Wallet OS",role:"Role",fullname:"Fullname",email:"Email",avatar:"Avatar",user:"User",createdAt:"First Active Time",updatedAt:"Last Active Time",actions:"Actions",lastLoginIp:"Last Login IP",logoutAll:"Logout all",logoutAllTips:"Will not logout current session",logout:"Logout",currentSession:"Current Session",unknown:"Unknown",expired:"Expired",remove:"Remove",logoutThisSession:"Logout this session",logoutThisSessionConfirm:"Are you sure to logout this session?",logoutAllSession:"Logout all sessions",logoutAllSessionConfirm:"Are you sure to logout all sessions?"}},V="Reserved IP",P="ip-region-cache";async function re(e){const n=`https://ipapi.co/${e}/json/`,i=await(await fetch(n)).json();let u="";return i.error?i.reserved&&(u=V):u=[i.country_name,i.region,i.city].filter(Boolean).join("/"),u}async function se(e){const n=`https://api.ip.sb/geoip/${e}`,i=await(await fetch(n)).json();let u="";return i.error?i.reserved&&(u=V):u=[i.country,i.region,i.city].filter(Boolean).join("/"),u}async function ie(e){let n="",s={};try{const i=localStorage.getItem(P);i&&(s=JSON.parse(i))}catch{s={}}if(s[e])n=s[e];else{try{n=await se(e)}catch{console.warn("Fail to get ip region from ip.sb")}if(!n)try{n=await re(e)}catch{console.warn("Fail to get ip region from ip-api.co")}}if(n){const i=Object.keys(s);i.length>100&&delete s[i[0]],s[e]&&delete s[e],s[e]=n,localStorage.setItem(P,JSON.stringify(s))}return n}async function ae(e){return Promise.all(e.map(n=>ie(n)))}const W=e=>new T(e,{browser:[[/(ArcWallet)\/([\w\.]+)/i],[T.BROWSER.NAME,T.BROWSER.VERSION]]}).getResult();function de({user:e,showAction:n=!0,showUser:s=!0}){const i=H(),{locale:u}=J(),{confirmApi:w,confirmHolder:C}=Y(),r=E((t,o={})=>Q(ne,t,u,"en",o)),A=E(async()=>{let t=e==null?void 0:e.userSessions;t||(t=await F.userSession.getUserSessions({did:e.did}));try{const l=t==null?void 0:t.map((f,j)=>[j,f.lastLoginIp]).filter(f=>!!f[1]),d=l==null?void 0:l.map(f=>f[1]),p=await ae(d);for(let f=0;f<p.length;f++){const j=p[f],_=l[f],$=t[_[0]];$.ipRegion=j}}catch(l){console.warn("Failed to convert ip to region"),console.error(l)}const o=new Date().getTime();return U(t,l=>l.visitorId===i?-1:o-new Date(l.updatedAt).getTime())}),g=K(A),c=B(()=>g.data||[],[g.data]),x=B(()=>c.reduce((t,o)=>(t[o.lastLoginIp]=o.ipRegion,t),{}),[c]),v=E(({visitorId:t})=>{w.open({title:r("logoutThisSession"),content:r("logoutThisSessionConfirm"),confirmButtonText:r("confirm"),cancelButtonText:r("cancel"),onConfirm:async()=>{await F.user.logout({visitorId:t}),g.refresh(),w.close()}})}),y=B(()=>c.filter(o=>o.visitorId!==i),[c]),b=E(()=>{w.open({title:r("logoutAllSession"),content:r("logoutAllSessionConfirm"),confirmButtonText:r("confirm"),cancelButtonText:r("cancel"),onConfirm:async()=>{const t=y.map(o=>()=>F.user.logout({visitorId:o.visitorId}));await te(t,{concurrency:3,stopOnError:!1}),g.refresh(),w.close()}})}),D=[];n&&D.push(a.jsx(R,{title:r("logoutAllTips"),children:a.jsx(O,{sx:{ml:.5},size:"small",variant:"contained",color:"error",onClick:b,disabled:y.length===0,children:r("logoutAll")})},"logoutAll"));const h=B(()=>({search:!1,sort:!1,download:!1,filter:!1,print:!1,expandableRowsOnClick:!1,searchDebounceTime:600}),[]),I=[{label:r("platform"),name:"platform",options:{customBodyRenderLite:t=>{var d,p;const o=c[t],l=W(o.ua);return a.jsx(m,{children:[(d=l.os)==null?void 0:d.name,(p=l.os)==null?void 0:p.version].filter(Boolean).join("/")||r("unknown")})}}},{label:r("deviceType"),name:"deviceType",options:{customBodyRenderLite:t=>{var d,p;const o=c[t],l=W(o.ua);return a.jsx(m,{children:[(d=l.browser)==null?void 0:d.name,(p=l.browser)==null?void 0:p.version].filter(Boolean).join("/")||r("unknown")})}}},{label:r("walletOS"),name:"walletOS",options:{customBodyRenderLite:t=>{var l;const o=c[t];return a.jsx(m,{children:((l=o.extra)==null?void 0:l.walletOS)||r("unknown")})}}},s&&{label:r("user"),name:"user",options:{customBodyRenderLite:t=>{const o=c[t];return a.jsx(m,{sx:{minWidth:150,maxWidth:250},children:a.jsx(oe,{sessionUser:o.user,user:e})})}}},{label:r("createdAt"),name:"createdAt",options:{customBodyRenderLite:t=>{const o=c[t];return o.createdAt?a.jsx(k,{value:o.createdAt,relativeRange:3*86400*1e3,locale:u}):r("unknown")}}},{label:r("updatedAt"),name:"updatedAt",options:{customBodyRenderLite:t=>{const o=c[t];return o.status==="expired"?r("expired"):a.jsx(k,{value:o.updatedAt,relativeRange:3*86400*1e3,locale:u})}}},{label:r("lastLoginIp"),name:"lastLoginIp",options:{customBodyRenderLite:t=>{const o=c[t];return a.jsx(m,{children:x[o.lastLoginIp]?a.jsxs(a.Fragment,{children:[a.jsx(S,{variant:"body2",children:x[o.lastLoginIp]}),a.jsx(S,{variant:"body2",color:"grey",children:o.lastLoginIp||r("unknown")})]}):a.jsx(S,{children:o.lastLoginIp||r("unknown")})})}}},n&&{label:r("actions"),name:"actions",options:{customBodyRenderLite:t=>{const o=c[t];return a.jsx(m,{children:a.jsx(O,{sx:{whiteSpace:"nowrap",fontSize:"12px",px:1},disabled:i===o.visitorId,variant:"outlined",size:"small",color:"error",onClick:()=>v({visitorId:o.visitorId}),children:o.status==="expired"?r("remove"):i===o.visitorId?r("currentSession"):r("logout")})})}}}].filter(Boolean);return a.jsxs(m,{sx:{".MuiTableCell-head":{whiteSpace:"nowrap",fontWeight:"bold"}},children:[C,a.jsx(X,{locale:u,data:c,columns:I,customButtons:D,options:h,loading:g.loading})]})}export{de as U};
|