@abtnode/blocklet-services 1.16.43-beta-20250420-132156-d732158a → 1.16.43-beta-20250424-125523-08a65a5c
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/routes/mcp.js +60 -26
- package/api/services/auth/connect/gen-access-key.js +9 -2
- package/api/services/auth/session.js +11 -5
- package/api/services/mcp/server.js +7 -6
- package/api/services/notification/queue.js +25 -4
- package/api/services/oauth/server.js +1 -1
- package/api/socket/channel/did.js +13 -7
- package/api/util/attach-shared-utils.js +6 -1
- package/dist/assets/{AdapterDayjs-Bq_2AanQ.js → AdapterDayjs-DT-SVlwP.js} +1 -1
- package/dist/assets/{ArrowDropDown-CnO3M65x.js → ArrowDropDown-D0s0w2rW.js} +1 -1
- package/dist/assets/{CheckCircle-vHBx3yBd.js → CheckCircle-BMPTHnwd.js} +1 -1
- package/dist/assets/{ChevronLeft-J2DjxamT.js → ChevronLeft-BV65HBup.js} +1 -1
- package/dist/assets/{ChevronRight-CbbryV_W.js → ChevronRight-CSrWhu1k.js} +1 -1
- package/dist/assets/{Community-eISlOOkV.js → Community-B6sqs6QK.js} +1 -1
- package/dist/assets/{DeleteOutline-D3rMfe5l.js → DeleteOutline-BwlJCwaD.js} +1 -1
- package/dist/assets/{Done-BKjm-wNl.js → Done-ClKUqna8.js} +1 -1
- package/dist/assets/{Download-dWBmoIIz.js → Download-DydXtD3g.js} +1 -1
- package/dist/assets/{Edit-BsIdXKZ9.js → Edit-Cydc64DB.js} +1 -1
- package/dist/assets/{EditIcon-CQgpOLLT.js → EditIcon-B3vzcBhw.js} +1 -1
- package/dist/assets/{Email-BWTg6iJI.js → Email-DscM5ZVr.js} +1 -1
- package/dist/assets/{Error-BhDI-TWw.js → Error-BUxloyCF.js} +1 -1
- package/dist/assets/{ExpandLess-ap4H2881.js → ExpandLess-D3psCjh2.js} +1 -1
- package/dist/assets/{Google-yY5m8tgo.js → Google-nw2S1BAe.js} +1 -1
- package/dist/assets/{Holiday-C3bRTVlx.js → Holiday-COvP72sQ.js} +1 -1
- package/dist/assets/{InfoOutlined-xdatqyfu.js → InfoOutlined-K2cm3ASV.js} +1 -1
- package/dist/assets/{Launch-C6_9RwNa.js → Launch-DSlNzUJo.js} +1 -1
- package/dist/assets/{LaunchOutlined-CG63jbPx.js → LaunchOutlined-DB41H1FZ.js} +1 -1
- package/dist/assets/{Location-C_mUMqZP.js → Location-DSdE-EW4.js} +1 -1
- package/dist/assets/{LockIcon-G8zLxYzV.js → LockIcon-Yic1ETPw.js} +1 -1
- package/dist/assets/{Meeting-vvmUKHs1.js → Meeting-DlfumstQ.js} +1 -1
- package/dist/assets/{MoreHoriz-ylsvAqcI.js → MoreHoriz-BWdkQIhx.js} +1 -1
- package/dist/assets/{OffSick-BTxtVws3.js → OffSick-CG2hJbSq.js} +1 -1
- package/dist/assets/{Phone-Cz_yY8ed.js → Phone-DkIl-1KJ.js} +1 -1
- package/dist/assets/{PlayArrow-B-b0Dvp8.js → PlayArrow-DfQEcw-G.js} +1 -1
- package/dist/assets/{QuestionMarkCircle-DeAbZuzW.js → QuestionMarkCircle-TVw9KuLr.js} +1 -1
- package/dist/assets/{ServerLogo-UZVUmHWK.js → ServerLogo-DQ3yw9lw.js} +1 -1
- package/dist/assets/{Timezone-5RxC7sK-.js → Timezone-B77bSXNW.js} +1 -1
- package/dist/assets/{TuneOutlined-DJ2Nw9gU.js → TuneOutlined-8KrrUCQF.js} +1 -1
- package/dist/assets/{ViewList-DYqpQSjn.js → ViewList-Bql1EC1c.js} +1 -1
- package/dist/assets/{WorkingRemotely-_QD8QN72.js → WorkingRemotely-DNUERtUR.js} +1 -1
- package/dist/assets/{access-control-DcIGjdcM.js → access-control-Bcd_n74E.js} +1 -1
- package/dist/assets/actions-f0wKxzR1.js +1 -0
- package/dist/assets/{add-component-core-BpT5fbHq.js → add-component-core-BUAlsG4_.js} +24 -24
- package/dist/assets/add-resource-Djfsmv61.js +1 -0
- package/dist/assets/{addon-DXuj5GtV.js → addon-BkBy38_b.js} +1 -1
- package/dist/assets/{advanced-CIJNFJAE.js → advanced-BPM38tnR.js} +1 -1
- package/dist/assets/api-BrU7j0QA.js +1 -0
- package/dist/assets/{appearance-CCLVRyLq.js → appearance-DUNDV_8X.js} +1 -1
- package/dist/assets/ar-BNaEJSr3.js +7 -0
- package/dist/assets/ar-wbCXBm9M.js +1 -0
- package/dist/assets/{audit-logs-brXiMrw_.js → audit-logs-ClIsZeWB.js} +3 -3
- package/dist/assets/authorize-Czqr5dx0.js +1 -0
- package/dist/assets/{base32-Dd6rPCV6.js → base32-CXHhcaAE.js} +1 -1
- package/dist/assets/{branding-31ZnkyoG.js → branding-CDVXldZI.js} +1 -1
- package/dist/assets/branding-Dr6iifVv.js +40 -0
- package/dist/assets/bundle-avatar-CXZCyfoQ.js +1 -0
- package/dist/assets/button-n0UOGLKx.js +1 -0
- package/dist/assets/click-to-copy-CYn1U-tf.js +1 -0
- package/dist/assets/cloneDeep-SfcdeqEN.js +1 -0
- package/dist/assets/{complete-Cpcoq6Ge.js → complete-C-F4GC22.js} +2 -2
- package/dist/assets/{component-Djsamap6.js → component-DsEe2qX3.js} +3 -3
- package/dist/assets/{config-BQ9p6EgE.js → config-A_My2cMO.js} +1 -1
- package/dist/assets/{config-BK2qWQnO.js → config-DYPbZpg_.js} +2 -2
- package/dist/assets/{config-navigation-D2PpiTzz.js → config-navigation-Bi-pxL5K.js} +6 -6
- package/dist/assets/{config-space-BFcXXNuJ.js → config-space-DVjhjgJC.js} +1 -1
- package/dist/assets/confirm-BshZuFnD.js +7 -0
- package/dist/assets/{connect-rWOVXBvz.js → connect-BPsVsyF2.js} +1 -1
- package/dist/assets/{connect-Bzett2rh.js → connect-DQxK32G8.js} +1 -1
- package/dist/assets/connect-to-DXXf0Nkb.js +1 -0
- package/dist/assets/{content-layout-Cg5RRv1R.js → content-layout-AHDEW7YQ.js} +1 -1
- package/dist/assets/dashboard-CCzZLCC4.js +280 -0
- package/dist/assets/de-8GAnQkrt.js +1 -0
- package/dist/assets/de-BsZVQmUM.js +7 -0
- package/dist/assets/delete-confirm-DuoSMgmG.js +1 -0
- package/dist/assets/{did-address-gmPYOGuy.js → did-address-Cg-ez88b.js} +1 -1
- package/dist/assets/domain-B57opALw.js +9 -0
- package/dist/assets/domain-action-card-DGNzWGpO.js +24 -0
- package/dist/assets/domains-DSFXU6AI.js +1 -0
- package/dist/assets/{dot-BBxUn__M.js → dot-tsWWWiOg.js} +2 -2
- package/dist/assets/{email-BAajjNQV.js → email-DWoydsl3.js} +3 -3
- package/dist/assets/{empty-spinner-yzHJfTIe.js → empty-spinner-D_1iEwTc.js} +1 -1
- package/dist/assets/es-DsjXdm2X.js +1 -0
- package/dist/assets/es-ntlJbt-a.js +7 -0
- package/dist/assets/{exchange-passport-EldPKAEU.js → exchange-passport-DysHnVpr.js} +1 -1
- package/dist/assets/{format-error-LAoTjvJe.js → format-error-BrmqJs5a.js} +1 -1
- package/dist/assets/fr-B-64BlVz.js +1 -0
- package/dist/assets/fr-Bv4B0MVB.js +7 -0
- package/dist/assets/{fuel-g6aTZdFA.js → fuel-TLPi2Hr-.js} +1 -1
- package/dist/assets/gen-access-key-D4caSeDS.js +2 -0
- package/dist/assets/{get-safe-url-BpQyWsMx.js → get-safe-url-Bz4L9R5-.js} +1 -1
- package/dist/assets/{get-safe-url-DGJYpGp-.js → get-safe-url-Dex6FTwp.js} +1 -1
- package/dist/assets/hi-CY-kyCxp.js +1 -0
- package/dist/assets/hi-DIf_hqVB.js +5 -0
- package/dist/assets/{home-DBeMBDeM.js → home-CBFACtB_.js} +1 -1
- package/dist/assets/id-BT_84X-S.js +1 -0
- package/dist/assets/id-DZBgOnwF.js +7 -0
- package/dist/assets/{iframe-DTWkOiY8.js → iframe-B4jzt2b3.js} +1 -1
- package/dist/assets/{index-B1r8E4TH.js → index-3r4UtN8A.js} +1 -1
- package/dist/assets/{index-C6wFIF6L.js → index-ARVZ7FJv.js} +2 -2
- package/dist/assets/index-B0-4M8vb.js +10 -0
- package/dist/assets/index-B1ljmpu4.css +1 -0
- package/dist/assets/{index-CgtY16Wm.js → index-BG5LYRZd.js} +1 -1
- package/dist/assets/index-BOEhBltr.js +113 -0
- package/dist/assets/{index-C8lvmI4i.js → index-BXkEM7e9.js} +1 -1
- package/dist/assets/{index-BjmnM2sd.js → index-Bdp7LpPc.js} +1 -1
- package/dist/assets/index-Birdle6P.js +224 -0
- package/dist/assets/{index-CEMXycV7.js → index-BowdADDJ.js} +1 -1
- package/dist/assets/{index-D7Oq5q89.js → index-BplAimRX.js} +4 -4
- package/dist/assets/{index-DhAVA9HZ.js → index-C3f1mXja.js} +3 -3
- package/dist/assets/{index-BkHi7e8i.js → index-CGe7n5Gc.js} +2 -2
- package/dist/assets/{index-pV_0wOyY.js → index-CPE8Apzb.js} +1 -1
- package/dist/assets/index-CSARD20E.js +346 -0
- package/dist/assets/index-CU8fxqsS.js +1 -0
- package/dist/assets/index-CVvs-hHV.js +708 -0
- package/dist/assets/{index-haYY8BAk.js → index-CYeIiQ6Q.js} +1 -1
- package/dist/assets/{index-B0Z8409R.js → index-Cks6t9cs.js} +1 -1
- package/dist/assets/index-DEAA6iri.js +92 -0
- package/dist/assets/index-DKq7-33g.js +55 -0
- package/dist/assets/{index-C9TPKuLt.js → index-DO1hKTlI.js} +1 -1
- package/dist/assets/{index-BfbxxLBr.js → index-DPpP2Hz6.js} +9 -9
- package/dist/assets/{index-tUQxVYYQ.js → index-DVQCgvFb.js} +1 -1
- package/dist/assets/{index-Xi3jaVFs.js → index-DomukIqT.js} +1 -1
- package/dist/assets/{index-Bh63LaOx.js → index-MbAvBCGD.js} +2 -2
- package/dist/assets/{index-KWGv7rf_.js → index-NRj7GpkA.js} +2 -2
- package/dist/assets/{index-kqlC8JFQ.js → index-YbJjfDTR.js} +1 -1
- package/dist/assets/{invitation-DnZ_Ex8p.js → invitation-7bE4cIXB.js} +5 -5
- package/dist/assets/invite-COQN-rNg.js +1 -0
- package/dist/assets/issue-passport-11S7tmQW.js +1 -0
- package/dist/assets/{item-VCJ7-Z3r.js → item-BeeQ2vgS.js} +2 -2
- package/dist/assets/ja-8jRYJGVw.js +7 -0
- package/dist/assets/ja-BMmtgJml.js +1 -0
- package/dist/assets/ko-C4pbuwv8.js +7 -0
- package/dist/assets/ko-ChmGYnnx.js +1 -0
- package/dist/assets/{landing-page-QhzHIr--.js → landing-page-DfhVYZ3b.js} +1 -1
- package/dist/assets/{launch-result-message-Ckk5lRW7.js → launch-result-message-CCo4xyOd.js} +1 -1
- package/dist/assets/{layout-0YBKzIlI.js → layout-DToDlHEw.js} +1 -1
- package/dist/assets/{list-Dw9DDKoC.js → list-ChvGKHw5.js} +9 -8
- package/dist/assets/{list-header-BYlc5SI1.js → list-header-C7I2nEkf.js} +1 -1
- package/dist/assets/localization-DfJCYesK.js +1 -0
- package/dist/assets/{log-BLTzXOlE.js → log-DwhNr5TA.js} +1 -1
- package/dist/assets/logger-DwVuCvCH.js +1 -0
- package/dist/assets/{login-tmff27IK.js → login-_FUfsuwA.js} +1 -1
- package/dist/assets/{login-oauth-callback-DnYvzeVx.js → login-oauth-callback-BfAWMSC0.js} +1 -1
- package/dist/assets/logo-uploader-CYJXgjdA.js +133 -0
- package/dist/assets/{lost-passport-DiKkPtUB.js → lost-passport-bl0QaFCp.js} +4 -4
- package/dist/assets/{lottie-react.esm-CPHH620R.js → lottie-react.esm-D2t-u0YU.js} +1 -1
- package/dist/assets/{lottie-web-B6s7dDoL.js → lottie-web-jYmAQWuC.js} +1 -1
- package/dist/assets/omit-bLid3PKQ.js +1 -0
- package/dist/assets/{open-window-DjL5TW3X.js → open-window-BTH_1q7i.js} +1 -1
- package/dist/assets/{overview-zOWtcWbm.js → overview-D4gQwSex.js} +2 -2
- package/dist/assets/{page-header-BhpaMk9g.js → page-header-DWEFpJCI.js} +1 -1
- package/dist/assets/{passport-item-Cxkhzo-W.js → passport-item-Z9x6DkU5.js} +1 -1
- package/dist/assets/{permission-_ttLx53e.js → permission-CDRSpazM.js} +1 -1
- package/dist/assets/preferences-Dck4NebC.js +1 -0
- package/dist/assets/profile-embed-CJdf2c_q.js +1 -0
- package/dist/assets/pt-CMeQ7KWn.js +5 -0
- package/dist/assets/pt-DjThuHre.js +1 -0
- package/dist/assets/publish-resource-CaRrvCS8.js +1 -0
- package/dist/assets/{raf-schd.esm-GV-XhwE0.js → raf-schd.esm-B3j6BePR.js} +1 -1
- package/dist/assets/{react-beautiful-dnd.esm-gUY08qHq.js → react-beautiful-dnd.esm-CP-WHcip.js} +1 -1
- package/dist/assets/{relative-time-DYjTOclf.js → relative-time-4f6xdgg-.js} +1 -1
- package/dist/assets/ru-8cWKcW3b.js +5 -0
- package/dist/assets/ru-CI1dkyMC.js +1 -0
- package/dist/assets/runtime-r0b7mSwp.js +1 -0
- package/dist/assets/sdk-fuEXLKzh.js +1 -0
- package/dist/assets/{security-BD2-azah.js → security-CLc8EI2b.js} +4 -4
- package/dist/assets/session-CmpGpqja.js +1 -0
- package/dist/assets/setup-C0tLi0hm.js +19 -0
- package/dist/assets/{shorten-label-8jfEkawx.js → shorten-label-CE57Fd6E.js} +1 -1
- package/dist/assets/{simple-select-CNZc1N7Q.js → simple-select-rdkVpCfB.js} +1 -1
- package/dist/assets/{slicedToArray-gyBkcGHe.js → slicedToArray-BBoi0da6.js} +1 -1
- package/dist/assets/{spaces-B_YG3iE7.js → spaces-Cf25Nw85.js} +1 -1
- package/dist/assets/{start-DIhK4VNY.js → start-CrRC75qe.js} +1 -1
- package/dist/assets/{status-CQCKGmiV.js → status-BSBLuo2u.js} +1 -1
- package/dist/assets/{step-actions-DGcZdY1e.js → step-actions-YXGJQMCB.js} +1 -1
- package/dist/assets/{studio-CC8lU96f.js → studio-wUJ0pUIv.js} +1 -1
- package/dist/assets/{switch-control-BWuo2NQH.js → switch-control-D0bd_WCg.js} +1 -1
- package/dist/assets/th-4Bnumejd.js +1 -0
- package/dist/assets/th-DYYGBboI.js +5 -0
- package/dist/assets/{traffic-BIz-TYy2.js → traffic-BhA3A82Z.js} +2 -2
- package/dist/assets/{transfer-OroSS_fF.js → transfer-BmP7JwN2.js} +1 -1
- package/dist/assets/{unsubscribe-cKpP6HeV.js → unsubscribe-zK0TSWH3.js} +1 -1
- package/dist/assets/{use-app-logo-C5KrAQp3.js → use-app-logo-DAnHvb1d.js} +1 -1
- package/dist/assets/{use-mobile-BbxjRR_q.js → use-mobile-CwehvZ0f.js} +1 -1
- package/dist/assets/{use-mobile-T-9_nK_m.js → use-mobile-KRs0Yv73.js} +1 -1
- package/dist/assets/{useAsync-B_98ShEr.js → useAsync-CGW40D2-.js} +1 -1
- package/dist/assets/{useLocalStorage-BTc2ONSy.js → useLocalStorage-CNdV3Qx_.js} +1 -1
- package/dist/assets/{useSetState-BL3ktMon.js → useSetState-CWq0AVWn.js} +1 -1
- package/dist/assets/user-center-CTXkd8hW.js +77 -0
- package/dist/assets/{util-DA84MxE0.js → util-C4Ha7L5d.js} +1 -1
- package/dist/assets/{util-Dvapjz4O.js → util-DrL3FFCf.js} +1 -1
- package/dist/assets/{vendor-arcblock-Dd-d3bxC.js → vendor-arcblock-JGYMkSwE.js} +300 -300
- package/dist/assets/{vendor-hooks-jg6xPUPF.js → vendor-hooks-DftG_2gV.js} +2 -2
- package/dist/assets/{vendor-mui-core-DiDsSLd-.js → vendor-mui-core-8zafwTFh.js} +24 -24
- package/dist/assets/{vendor-mui-x-mVhD3N7n.js → vendor-mui-x-Df6DxoLi.js} +1 -1
- package/dist/assets/{vendor-react-DoD83n6N.js → vendor-react-DEoibe3W.js} +1 -1
- package/dist/assets/vendor-utils-BNHJB5U7.js +208 -0
- package/dist/assets/vendor-ux-did-connect-D2f9rdKK.js +2265 -0
- package/dist/assets/vi-Bc6q0tph.js +1 -0
- package/dist/assets/vi-CfH0km8q.js +5 -0
- package/dist/assets/wrap-locale-5dMXj7tV.js +1 -0
- package/dist/assets/{zh-CY9wasmC.js → zh-DZlGQAU9.js} +1 -1
- package/dist/assets/zh-_GYrLCB8.js +1 -0
- package/dist/assets/zh-tw-Be5lgYGX.js +7 -0
- package/dist/assets/zh-tw-CLcDyLaC.js +1 -0
- package/dist/index.html +9 -8
- package/dist/service-worker.js +1 -1
- package/package.json +45 -44
- package/dist/assets/actions-54wIQrhQ.js +0 -1
- package/dist/assets/add-resource-BVgzn5lM.js +0 -1
- package/dist/assets/api-DwjKcjK8.js +0 -1
- package/dist/assets/ar-BUQWR0Zu.js +0 -1
- package/dist/assets/ar-DRtGxecv.js +0 -7
- package/dist/assets/authorize-DVVvHvmA.js +0 -1
- package/dist/assets/branding-CY0aknSo.js +0 -40
- package/dist/assets/bundle-avatar-BcZExfqu.js +0 -1
- package/dist/assets/button-Cfb46ee0.js +0 -1
- package/dist/assets/click-to-copy-D4Cmyemb.js +0 -1
- package/dist/assets/cloneDeep-DUYD8ZBI.js +0 -1
- package/dist/assets/confirm-Bi4_XwxH.js +0 -7
- package/dist/assets/connect-to-nP4HS-Z0.js +0 -1
- package/dist/assets/dashboard-27JnEnGY.js +0 -279
- package/dist/assets/de-BZDWXY3K.js +0 -7
- package/dist/assets/de-_X0eQXZu.js +0 -1
- package/dist/assets/delete-confirm-B2Ye1_SC.js +0 -1
- package/dist/assets/domain-5-nsJfDM.js +0 -9
- package/dist/assets/domain-action-card-DrjkSQwC.js +0 -25
- package/dist/assets/domains-CD91MGQk.js +0 -1
- package/dist/assets/es-kQ6jQG-H.js +0 -7
- package/dist/assets/es-yHIDSG5r.js +0 -1
- package/dist/assets/fr-Bf3jz4q5.js +0 -7
- package/dist/assets/fr-D6i3bCqR.js +0 -1
- package/dist/assets/gen-access-key-CXCl8SEM.js +0 -2
- package/dist/assets/hi-ChVLDWm_.js +0 -1
- package/dist/assets/hi-DPdbGXyy.js +0 -5
- package/dist/assets/id-BqmT-cL5.js +0 -7
- package/dist/assets/id-D6XXuY_a.js +0 -1
- package/dist/assets/index-B-h0rpyF.js +0 -10
- package/dist/assets/index-BGnWzg98.js +0 -92
- package/dist/assets/index-BY0gjHeR.js +0 -346
- package/dist/assets/index-BeXUaMlG.js +0 -55
- package/dist/assets/index-Ca99ESdg.js +0 -1
- package/dist/assets/index-Cg_v1vT_.js +0 -113
- package/dist/assets/index-lk2RMFv-.js +0 -224
- package/dist/assets/index-o53rWfYr.js +0 -113
- package/dist/assets/invite-BC0OYJxG.js +0 -1
- package/dist/assets/issue-passport-CD5ylk7Y.js +0 -1
- package/dist/assets/ja-CyUU4_H1.js +0 -7
- package/dist/assets/ja-DKZCt8Yp.js +0 -1
- package/dist/assets/ko-B0uE9AyQ.js +0 -1
- package/dist/assets/ko-DWTxutv1.js +0 -7
- package/dist/assets/localization-Bqeaav45.js +0 -1
- package/dist/assets/logger-DzZIANXq.js +0 -1
- package/dist/assets/logo-uploader-BKxncdN2.js +0 -133
- package/dist/assets/omit-B1LDXfkq.js +0 -1
- package/dist/assets/preferences-C0eu3vgg.js +0 -1
- package/dist/assets/profile-embed-DfDaKcjJ.js +0 -1
- package/dist/assets/pt-BcsDG9H6.js +0 -5
- package/dist/assets/pt-DCzE4kPq.js +0 -1
- package/dist/assets/publish-resource-BEIDgQwd.js +0 -1
- package/dist/assets/ru-B9yj9TuE.js +0 -1
- package/dist/assets/ru-BwH1q1F1.js +0 -5
- package/dist/assets/runtime-B8E7DTqn.js +0 -1
- package/dist/assets/sdk-K0wUtuBQ.js +0 -1
- package/dist/assets/session-BPop7wxF.js +0 -1
- package/dist/assets/setup-DW_rcwsG.js +0 -19
- package/dist/assets/th-CNztcQMJ.js +0 -5
- package/dist/assets/th-et0IV3ES.js +0 -1
- package/dist/assets/user-center-DGFt0-Nt.js +0 -77
- package/dist/assets/vendor-utils-DMClavLd.js +0 -11
- package/dist/assets/vendor-ux-did-connect-qEfzi7sf.js +0 -1832
- package/dist/assets/vi-Bpl5HEj4.js +0 -5
- package/dist/assets/vi-LBvVt_pj.js +0 -1
- package/dist/assets/wrap-locale-CyEJqSC4.js +0 -1
- package/dist/assets/zh-tw-D6qZTlL3.js +0 -7
- package/dist/assets/zh-tw-l3XXo5aT.js +0 -1
- package/dist/assets/zh-yJzqRkfw.js +0 -1
package/api/routes/mcp.js
CHANGED
|
@@ -4,16 +4,28 @@ const get = require('lodash/get');
|
|
|
4
4
|
const getBlockletInfo = require('@blocklet/meta/lib/info');
|
|
5
5
|
const { checkPublicAccess } = require('@blocklet/meta/lib/util');
|
|
6
6
|
// eslint-disable-next-line import/no-unresolved
|
|
7
|
-
const {
|
|
7
|
+
const { StreamableHTTPServerTransport } = require('@blocklet/mcp/server/streamableHttp.js');
|
|
8
8
|
|
|
9
9
|
const { initMcpServer } = require('../services/mcp/server');
|
|
10
10
|
const logger = require('../libs/logger')('mcp:server:routes');
|
|
11
11
|
|
|
12
12
|
const isMCPSupported = (b) => get(b.meta, 'capabilities.mcp', false);
|
|
13
13
|
|
|
14
|
+
const transport = new StreamableHTTPServerTransport({
|
|
15
|
+
sessionIdGenerator: undefined, // set to undefined for stateless servers
|
|
16
|
+
});
|
|
17
|
+
|
|
14
18
|
module.exports = {
|
|
15
19
|
init(server, node) {
|
|
16
20
|
const mcpServer = initMcpServer(node);
|
|
21
|
+
mcpServer
|
|
22
|
+
.connect(transport)
|
|
23
|
+
.then(() => {
|
|
24
|
+
logger.info('MCP server connected to streamableHttp transport');
|
|
25
|
+
})
|
|
26
|
+
.catch((err) => {
|
|
27
|
+
logger.error('Failed to connect MCP server to streamableHttp transport', err);
|
|
28
|
+
});
|
|
17
29
|
|
|
18
30
|
// Return all MCP servers
|
|
19
31
|
server.get(joinURL(WELLKNOWN_SERVICE_PATH_PREFIX, '/mcp/servers'), async (req, res) => {
|
|
@@ -30,7 +42,7 @@ module.exports = {
|
|
|
30
42
|
did: blocklet.appDid,
|
|
31
43
|
name: info.name,
|
|
32
44
|
description: info.description,
|
|
33
|
-
endpoint: joinURL(info.appUrl, WELLKNOWN_SERVICE_PATH_PREFIX, '/mcp
|
|
45
|
+
endpoint: joinURL(info.appUrl, WELLKNOWN_SERVICE_PATH_PREFIX, '/mcp'),
|
|
34
46
|
protected: !checkPublicAccess(securityConfig),
|
|
35
47
|
version: info.version,
|
|
36
48
|
logo: joinURL(baseUrl, '/logo'),
|
|
@@ -44,7 +56,7 @@ module.exports = {
|
|
|
44
56
|
did: `${blocklet.appDid}/${x.meta.did}`,
|
|
45
57
|
name: x.meta.title,
|
|
46
58
|
description: x.meta.description,
|
|
47
|
-
endpoint: joinURL(info.appUrl, x.mountPoint, '/mcp
|
|
59
|
+
endpoint: joinURL(info.appUrl, x.mountPoint, '/mcp'),
|
|
48
60
|
protected: !checkPublicAccess(securityConfig),
|
|
49
61
|
version: x.meta.version,
|
|
50
62
|
logo: joinURL(baseUrl, `/logo-bundle/${x.meta.did}?v=${info.version}`),
|
|
@@ -60,10 +72,7 @@ module.exports = {
|
|
|
60
72
|
});
|
|
61
73
|
|
|
62
74
|
// Serve Service MCP server
|
|
63
|
-
|
|
64
|
-
// to support multiple simultaneous connections we have a lookup object from sessionId to transport
|
|
65
|
-
const transports = {};
|
|
66
|
-
server.get(joinURL(WELLKNOWN_SERVICE_PATH_PREFIX, '/mcp/sse'), async (req, res) => {
|
|
75
|
+
server.get(joinURL(WELLKNOWN_SERVICE_PATH_PREFIX, '/mcp'), (req, res) => {
|
|
67
76
|
if (!req.user) {
|
|
68
77
|
res.status(401).json({ error: 'Unauthorized' });
|
|
69
78
|
return;
|
|
@@ -72,29 +81,54 @@ module.exports = {
|
|
|
72
81
|
// Set required headers for SSE
|
|
73
82
|
res.header('X-Accel-Buffering', 'no');
|
|
74
83
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
84
|
+
res.writeHead(405).end(
|
|
85
|
+
JSON.stringify({
|
|
86
|
+
jsonrpc: '2.0',
|
|
87
|
+
error: {
|
|
88
|
+
code: -32000,
|
|
89
|
+
message: 'Method not allowed.',
|
|
90
|
+
},
|
|
91
|
+
id: null,
|
|
92
|
+
})
|
|
93
|
+
);
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
server.delete(joinURL(WELLKNOWN_SERVICE_PATH_PREFIX, '/mcp'), (req, res) => {
|
|
97
|
+
res.writeHead(405).end(
|
|
98
|
+
JSON.stringify({
|
|
99
|
+
jsonrpc: '2.0',
|
|
100
|
+
error: {
|
|
101
|
+
code: -32000,
|
|
102
|
+
message: 'Method not allowed.',
|
|
103
|
+
},
|
|
104
|
+
id: null,
|
|
105
|
+
})
|
|
106
|
+
);
|
|
85
107
|
});
|
|
86
108
|
|
|
87
|
-
server.post(joinURL(WELLKNOWN_SERVICE_PATH_PREFIX, '/mcp
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
if (!transport) {
|
|
92
|
-
transport = new SSEServerTransport(joinURL(WELLKNOWN_SERVICE_PATH_PREFIX, '/mcp/messages'), res);
|
|
109
|
+
server.post(joinURL(WELLKNOWN_SERVICE_PATH_PREFIX, '/mcp'), async (req, res) => {
|
|
110
|
+
if (!req.user) {
|
|
111
|
+
res.status(401).json({ error: 'Unauthorized' });
|
|
112
|
+
return;
|
|
93
113
|
}
|
|
94
114
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
115
|
+
try {
|
|
116
|
+
logger.debug('received MCP request', { request: req.body });
|
|
117
|
+
req.auth = { extra: { user: req.user, blockletDid: req.getBlockletDid() } };
|
|
118
|
+
await transport.handleRequest(req, res, req.body);
|
|
119
|
+
} catch (error) {
|
|
120
|
+
logger.error('failed to handle MCP request', { request: req.body, error });
|
|
121
|
+
if (!res.headersSent) {
|
|
122
|
+
res.status(500).json({
|
|
123
|
+
jsonrpc: '2.0',
|
|
124
|
+
error: {
|
|
125
|
+
code: -32603,
|
|
126
|
+
message: 'Internal server error',
|
|
127
|
+
},
|
|
128
|
+
id: null,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
98
132
|
});
|
|
99
133
|
},
|
|
100
134
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const { getSourceAppPid } = require('@blocklet/sdk/lib/util/login');
|
|
2
2
|
const { messages } = require('@abtnode/auth/lib/auth');
|
|
3
3
|
const { authenticateByVc } = require('@abtnode/auth/lib/server');
|
|
4
|
-
const { PASSPORT_LOG_ACTION } = require('@abtnode/constant');
|
|
4
|
+
const { PASSPORT_LOG_ACTION, SERVER_ROLES } = require('@abtnode/constant');
|
|
5
5
|
const formatContext = require('@abtnode/util/lib/format-context');
|
|
6
6
|
|
|
7
7
|
const logger = require('../../../libs/logger')('blocklet-service:connect-cli');
|
|
@@ -60,7 +60,12 @@ module.exports = function createRoutes(node) {
|
|
|
60
60
|
const teamDid = blocklet.meta.did;
|
|
61
61
|
|
|
62
62
|
const { accessKeyId, accessKeySecret, expireAt } = await node.createAccessKey(
|
|
63
|
-
{
|
|
63
|
+
{
|
|
64
|
+
teamDid,
|
|
65
|
+
remark: extraParams.source,
|
|
66
|
+
createdVia: 'connect',
|
|
67
|
+
passport: SERVER_ROLES.CI,
|
|
68
|
+
},
|
|
64
69
|
{ user }
|
|
65
70
|
);
|
|
66
71
|
|
|
@@ -79,6 +84,8 @@ module.exports = function createRoutes(node) {
|
|
|
79
84
|
await updateSession(
|
|
80
85
|
{
|
|
81
86
|
config: {
|
|
87
|
+
developerEmail: user.email,
|
|
88
|
+
developerName: user.fullName,
|
|
82
89
|
developerDid: userDid,
|
|
83
90
|
accessKeyId,
|
|
84
91
|
accessKeySecret,
|
|
@@ -3,8 +3,11 @@ const { joinURL } = require('ufo');
|
|
|
3
3
|
const { getBlockletLanguages } = require('@blocklet/env/lib/util');
|
|
4
4
|
const pick = require('lodash/pick');
|
|
5
5
|
const omit = require('lodash/omit');
|
|
6
|
+
const omitBy = require('lodash/omitBy');
|
|
6
7
|
const merge = require('lodash/merge');
|
|
7
8
|
const isEqual = require('lodash/isEqual');
|
|
9
|
+
const isUndefined = require('lodash/isUndefined');
|
|
10
|
+
|
|
8
11
|
const { verify, decode } = require('@arcblock/jwt');
|
|
9
12
|
const {
|
|
10
13
|
WELLKNOWN_SERVICE_PATH_PREFIX,
|
|
@@ -76,7 +79,7 @@ const getUpdateUserSessionData = ({ req }) => {
|
|
|
76
79
|
if (!req.userSession.ua) {
|
|
77
80
|
result.ua = req.get('user-agent');
|
|
78
81
|
}
|
|
79
|
-
const deviceData = getDeviceData({ req });
|
|
82
|
+
const deviceData = omitBy(getDeviceData({ req }), isUndefined);
|
|
80
83
|
if (Object.keys(deviceData).length > 0 && !isEqual(req.userSession?.extra?.device, deviceData)) {
|
|
81
84
|
result.extra = {
|
|
82
85
|
...req.userSession?.extra,
|
|
@@ -303,9 +306,13 @@ module.exports = {
|
|
|
303
306
|
if (token) {
|
|
304
307
|
const teamDid = req.getBlockletDid();
|
|
305
308
|
const visitorId = req.get('x-blocklet-visitor-id');
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
+
const ua = req.get('user-agent');
|
|
310
|
+
// HACK: BlockletSDK 来的请求不需要检查 visitorId
|
|
311
|
+
if (!ua.includes('BlockletSDK/')) {
|
|
312
|
+
if (!visitorId) {
|
|
313
|
+
res.status(400).send(t('userSessionLogout', req.blockletLocale));
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
309
316
|
}
|
|
310
317
|
const { appPid = teamDid } = req.query;
|
|
311
318
|
await req.ensureUser({ token, visitorId, appPid });
|
|
@@ -369,7 +376,6 @@ module.exports = {
|
|
|
369
376
|
},
|
|
370
377
|
{ ...sessionConfig, didConnectVersion: getDidConnectVersion(req) }
|
|
371
378
|
);
|
|
372
|
-
const ua = req.get('user-agent');
|
|
373
379
|
const lastLoginIp = getRequestIP(req);
|
|
374
380
|
const deviceData = getDeviceData({ req });
|
|
375
381
|
const userSession = await node.upsertUserSession({
|
|
@@ -108,12 +108,13 @@ function checkPermissions(context, policy) {
|
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
function wrapToolHandler(handler, policy) {
|
|
111
|
-
return async (
|
|
112
|
-
const
|
|
111
|
+
return async (...input) => {
|
|
112
|
+
const extra = input[input.length - 1];
|
|
113
|
+
const hasPermission = await checkPermissions(extra.authInfo?.extra || {}, policy);
|
|
113
114
|
if (!hasPermission) {
|
|
114
115
|
throw new Error('Unauthorized');
|
|
115
116
|
}
|
|
116
|
-
return handler(
|
|
117
|
+
return handler(...input);
|
|
117
118
|
};
|
|
118
119
|
}
|
|
119
120
|
|
|
@@ -127,11 +128,11 @@ function initMcpServer(node) {
|
|
|
127
128
|
server,
|
|
128
129
|
wrapToolHandler(
|
|
129
130
|
async (extra) => {
|
|
130
|
-
if (!extra?.
|
|
131
|
+
if (!extra?.authInfo?.extra?.blockletDid) {
|
|
131
132
|
throw new Error('blockletDid is required');
|
|
132
133
|
}
|
|
133
134
|
|
|
134
|
-
const blocklet = await node.getBlocklet({ did: extra.
|
|
135
|
+
const blocklet = await node.getBlocklet({ did: extra.authInfo?.extra?.blockletDid, useCache: true });
|
|
135
136
|
if (!blocklet) {
|
|
136
137
|
throw new Error('blocklet not found');
|
|
137
138
|
}
|
|
@@ -140,7 +141,7 @@ function initMcpServer(node) {
|
|
|
140
141
|
},
|
|
141
142
|
{
|
|
142
143
|
allow: {
|
|
143
|
-
roles: ['owner', 'admin'],
|
|
144
|
+
roles: ['owner', 'admin', 'member'],
|
|
144
145
|
},
|
|
145
146
|
}
|
|
146
147
|
)
|
|
@@ -80,7 +80,7 @@ const init = ({ node, notificationService }) => {
|
|
|
80
80
|
pushOnly: job.pushOnly,
|
|
81
81
|
});
|
|
82
82
|
} catch (error) {
|
|
83
|
-
logger.error('Failed to send to app', { error });
|
|
83
|
+
logger.error('Failed to send to app', { notificationId: job.notification.id, error });
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
);
|
|
@@ -104,7 +104,7 @@ const init = ({ node, notificationService }) => {
|
|
|
104
104
|
pushOnly: job.pushOnly,
|
|
105
105
|
});
|
|
106
106
|
} catch (error) {
|
|
107
|
-
logger.error('Failed to send to push', { error });
|
|
107
|
+
logger.error('Failed to send to push', { notificationId: job.notification.id, error });
|
|
108
108
|
}
|
|
109
109
|
});
|
|
110
110
|
|
|
@@ -176,7 +176,7 @@ const init = ({ node, notificationService }) => {
|
|
|
176
176
|
pushOnly: input.pushOnly,
|
|
177
177
|
});
|
|
178
178
|
} catch (error) {
|
|
179
|
-
logger.error('Failed to send to email', { error });
|
|
179
|
+
logger.error('Failed to send to email', { notificationId: job.notificationId, error });
|
|
180
180
|
}
|
|
181
181
|
}
|
|
182
182
|
);
|
|
@@ -226,7 +226,7 @@ const init = ({ node, notificationService }) => {
|
|
|
226
226
|
pushOnly: input.pushOnly,
|
|
227
227
|
});
|
|
228
228
|
} catch (error) {
|
|
229
|
-
logger.error('Failed to send to webhook', { error });
|
|
229
|
+
logger.error('Failed to send to webhook', { url: job.url, notificationId: job.notification.id, error });
|
|
230
230
|
}
|
|
231
231
|
}
|
|
232
232
|
);
|
|
@@ -301,6 +301,10 @@ const init = ({ node, notificationService }) => {
|
|
|
301
301
|
fullName: userInfo.fullName,
|
|
302
302
|
};
|
|
303
303
|
// 这里可以根据 email 获取到需要发送的 userInfo 和 receivers
|
|
304
|
+
logger.info('Insert to email push queue', {
|
|
305
|
+
notificationId: notification.id,
|
|
306
|
+
receiver: receiverDid,
|
|
307
|
+
});
|
|
304
308
|
emailPushQueue.push({
|
|
305
309
|
job: {
|
|
306
310
|
email,
|
|
@@ -358,6 +362,11 @@ const init = ({ node, notificationService }) => {
|
|
|
358
362
|
if (webhookList.length > 0 && channels.includes(NOTIFICATION_SEND_CHANNEL.WEBHOOK)) {
|
|
359
363
|
for (const webhook of webhookList) {
|
|
360
364
|
const { url, type } = webhook;
|
|
365
|
+
logger.info('Insert to webhook push queue', {
|
|
366
|
+
notificationId: notification.id,
|
|
367
|
+
receiver: receiverDid,
|
|
368
|
+
url,
|
|
369
|
+
});
|
|
361
370
|
webhookQueue.push({
|
|
362
371
|
job: {
|
|
363
372
|
url,
|
|
@@ -415,6 +424,10 @@ const init = ({ node, notificationService }) => {
|
|
|
415
424
|
};
|
|
416
425
|
const pushEnabled = get(userInfo, 'extra.notifications.push', true);
|
|
417
426
|
if (pushEnabled && channels.includes(NOTIFICATION_SEND_CHANNEL.PUSH)) {
|
|
427
|
+
logger.info('Insert to push kit push queue', {
|
|
428
|
+
notificationId: notification.id,
|
|
429
|
+
receiver: receiverDid,
|
|
430
|
+
});
|
|
418
431
|
pushKitPushQueue.push({
|
|
419
432
|
notification,
|
|
420
433
|
sender,
|
|
@@ -452,6 +465,10 @@ const init = ({ node, notificationService }) => {
|
|
|
452
465
|
|
|
453
466
|
const walletEnabled = get(userInfo, 'extra.notifications.wallet', true);
|
|
454
467
|
if (walletEnabled && channels.includes(NOTIFICATION_SEND_CHANNEL.WALLET)) {
|
|
468
|
+
logger.info('Insert to wallet push queue', {
|
|
469
|
+
notificationId: notification.id,
|
|
470
|
+
receiver: receiverDid,
|
|
471
|
+
});
|
|
455
472
|
walletPushQueue.push({
|
|
456
473
|
notification,
|
|
457
474
|
sender,
|
|
@@ -534,6 +551,10 @@ const init = ({ node, notificationService }) => {
|
|
|
534
551
|
if (!job.pushOnly) {
|
|
535
552
|
// 如果添加失败,那么需要终止执行推送
|
|
536
553
|
await insertToNotificationReceiver(nodeInfo, userInfo, teamDid, notification.id, channels);
|
|
554
|
+
logger.info('notification receiver created successfully', {
|
|
555
|
+
notificationId: notification.id,
|
|
556
|
+
receiver,
|
|
557
|
+
});
|
|
537
558
|
// websocket 通知
|
|
538
559
|
const receiverDid = getWalletDid(userInfo) || userInfo.did;
|
|
539
560
|
try {
|
|
@@ -20,7 +20,7 @@ const createBlockletOAuthServerProvider = (node, options, blocklet, info) => {
|
|
|
20
20
|
const createToken = createTokenFn(createSessionToken);
|
|
21
21
|
// const hashToken = (token) => Hasher.SHA3.hash256(token);
|
|
22
22
|
const generateCode = (length = 16) => crypto.randomBytes(length).toString('hex').toUpperCase();
|
|
23
|
-
const generateTokens = async (client, userDid, scopes) => {
|
|
23
|
+
const generateTokens = async (client, userDid, scopes = ['profile:read']) => {
|
|
24
24
|
const user = await node.getUser({
|
|
25
25
|
teamDid: blocklet.appDid,
|
|
26
26
|
user: { did: userDid },
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
const {
|
|
1
|
+
const {
|
|
2
|
+
validateNotification,
|
|
3
|
+
validateMessage,
|
|
4
|
+
NOTIFICATION_TYPES,
|
|
5
|
+
} = require('@blocklet/sdk/lib/validators/notification');
|
|
2
6
|
const { Joi } = require('@arcblock/validator');
|
|
3
7
|
const {
|
|
4
8
|
NODE_MODES,
|
|
@@ -157,10 +161,12 @@ const sendToUserDid = async ({ sender, receiver: rawDid, notification, options,
|
|
|
157
161
|
notifications.map((_notification) => {
|
|
158
162
|
// 如果类型不存在或者是 notification 类型是才进行保存数据库,其他类型只需要通知到用户即可
|
|
159
163
|
// eg: type = 'passthrough', 'hi', 'connect', 'feed', 默认只需要通知 wallet
|
|
160
|
-
const pushOnly = _notification.type && _notification.type.toLowerCase() !==
|
|
164
|
+
const pushOnly = _notification.type && _notification.type.toLowerCase() !== NOTIFICATION_TYPES.NOTIFICATION;
|
|
161
165
|
|
|
162
166
|
// 如果是 passthrough hi connect, 只需要通知 wallet
|
|
163
|
-
const onlyWallet = [
|
|
167
|
+
const onlyWallet = [NOTIFICATION_TYPES.PASSTHROUGH, NOTIFICATION_TYPES.HI, NOTIFICATION_TYPES.CONNECT].includes(
|
|
168
|
+
_notification.type?.toLowerCase()
|
|
169
|
+
);
|
|
164
170
|
|
|
165
171
|
return node.createNotification({
|
|
166
172
|
teamDid,
|
|
@@ -440,10 +446,10 @@ const sendToMail = async ({ sender, receiver, notification, options, node, pushO
|
|
|
440
446
|
throw new Error('Invalid notification: 1 message each time');
|
|
441
447
|
}
|
|
442
448
|
|
|
443
|
-
if (!notification.title && notification.type
|
|
449
|
+
if (!notification.title && ![NOTIFICATION_TYPES.FEED, NOTIFICATION_TYPES.PASSTHROUGH].includes(notification.type)) {
|
|
444
450
|
throw new Error('Invalid notification: title empty');
|
|
445
451
|
}
|
|
446
|
-
if (!notification.body && notification.type
|
|
452
|
+
if (!notification.body && ![NOTIFICATION_TYPES.FEED, NOTIFICATION_TYPES.PASSTHROUGH].includes(notification.type)) {
|
|
447
453
|
throw new Error('Invalid notification: body empty');
|
|
448
454
|
}
|
|
449
455
|
|
|
@@ -514,10 +520,10 @@ const sendToPush = async ({ sender, receiver, notification, options, node, pushO
|
|
|
514
520
|
if (Array.isArray(notification)) {
|
|
515
521
|
throw new Error('Invalid notification: 1 message each time');
|
|
516
522
|
}
|
|
517
|
-
if (!notification.title && notification.type
|
|
523
|
+
if (!notification.title && ![NOTIFICATION_TYPES.FEED, NOTIFICATION_TYPES.PASSTHROUGH].includes(notification.type)) {
|
|
518
524
|
throw new Error('Invalid notification: title empty');
|
|
519
525
|
}
|
|
520
|
-
if (!notification.body && notification.type
|
|
526
|
+
if (!notification.body && ![NOTIFICATION_TYPES.FEED, NOTIFICATION_TYPES.PASSTHROUGH].includes(notification.type)) {
|
|
521
527
|
throw new Error('Invalid notification: body empty');
|
|
522
528
|
}
|
|
523
529
|
|
|
@@ -5,6 +5,7 @@ const pathToRegExp = require('path-to-regexp');
|
|
|
5
5
|
const { findComponentByIdV2, getMountPoints } = require('@blocklet/meta/lib/util');
|
|
6
6
|
const { getDefaultServiceConfig } = require('@blocklet/meta/lib/service');
|
|
7
7
|
const logger = require('@abtnode/logger')('@abtnode/blocklet-services:security');
|
|
8
|
+
const { authBySimpleAccessKey, isLoginToken, isAccessKey } = require('@abtnode/util/lib/auth-simple-access-key');
|
|
8
9
|
|
|
9
10
|
const cache = require('../cache');
|
|
10
11
|
const formatContext = require('./format-context');
|
|
@@ -159,7 +160,7 @@ module.exports = ({ node, req, options }) => {
|
|
|
159
160
|
*/
|
|
160
161
|
req.ensureUser = async ({ token, visitorId, appPid } = {}) => {
|
|
161
162
|
try {
|
|
162
|
-
if (token
|
|
163
|
+
if (isLoginToken(token)) {
|
|
163
164
|
const teamDid = req.getBlockletDid();
|
|
164
165
|
const { secret } = await req.getBlockletInfo();
|
|
165
166
|
const opt = {
|
|
@@ -191,6 +192,10 @@ module.exports = ({ node, req, options }) => {
|
|
|
191
192
|
}
|
|
192
193
|
}
|
|
193
194
|
req.user = user;
|
|
195
|
+
} else if (isAccessKey(token)) {
|
|
196
|
+
const teamDid = req.getBlockletDid();
|
|
197
|
+
const user = await authBySimpleAccessKey(token, node, teamDid);
|
|
198
|
+
req.user = user;
|
|
194
199
|
}
|
|
195
200
|
} catch (error) {
|
|
196
201
|
logger.error('Failed to ensureUser', {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{_ as dt}from"./vendor-mui-core-
|
|
1
|
+
import{_ as dt}from"./vendor-mui-core-8zafwTFh.js";import{a as f}from"./vendor-utils-BNHJB5U7.js";import{e as Q,g as R}from"./vendor-react-DEoibe3W.js";import{P as ft}from"./vendor-ux-did-connect-D2f9rdKK.js";import{b as ct}from"./vendor-mui-x-Df6DxoLi.js";var tt={exports:{}};(function(T,L){(function(l,c){T.exports=c()})(Q,function(){var l="week",c="year";return function(g,t,e){var s=t.prototype;s.week=function(i){if(i===void 0&&(i=null),i!==null)return this.add(7*(i-this.week()),"day");var o=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var n=e(this).startOf(c).add(1,c).date(o),d=e(this).endOf(l);if(n.isBefore(d))return 1}var m=e(this).startOf(c).date(o).startOf(l).subtract(1,"millisecond"),U=this.diff(m,l,!0);return U<0?e(this).startOf("week").week():Math.ceil(U)},s.weeks=function(i){return i===void 0&&(i=null),this.week(i)}}})})(tt);var lt=tt.exports;const mt=R(lt);var et={exports:{}};(function(T,L){(function(l,c){T.exports=c()})(Q,function(){var l={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},c=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,g=/\d/,t=/\d\d/,e=/\d\d?/,s=/\d*[^-_:/,()\s\d]+/,i={},o=function(r){return(r=+r)+(r>68?1900:2e3)},n=function(r){return function(a){this[r]=+a}},d=[/[+-]\d\d:?(\d\d)?|Z/,function(r){(this.zone||(this.zone={})).offset=function(a){if(!a||a==="Z")return 0;var h=a.match(/([+-]|\d\d)/g),u=60*h[1]+(+h[2]||0);return u===0?0:h[0]==="+"?-u:u}(r)}],m=function(r){var a=i[r];return a&&(a.indexOf?a:a.s.concat(a.f))},U=function(r,a){var h,u=i.meridiem;if(u){for(var D=1;D<=24;D+=1)if(r.indexOf(u(D,0,a))>-1){h=D>12;break}}else h=r===(a?"pm":"PM");return h},rt={A:[s,function(r){this.afternoon=U(r,!1)}],a:[s,function(r){this.afternoon=U(r,!0)}],Q:[g,function(r){this.month=3*(r-1)+1}],S:[g,function(r){this.milliseconds=100*+r}],SS:[t,function(r){this.milliseconds=10*+r}],SSS:[/\d{3}/,function(r){this.milliseconds=+r}],s:[e,n("seconds")],ss:[e,n("seconds")],m:[e,n("minutes")],mm:[e,n("minutes")],H:[e,n("hours")],h:[e,n("hours")],HH:[e,n("hours")],hh:[e,n("hours")],D:[e,n("day")],DD:[t,n("day")],Do:[s,function(r){var a=i.ordinal,h=r.match(/\d+/);if(this.day=h[0],a)for(var u=1;u<=31;u+=1)a(u).replace(/\[|\]/g,"")===r&&(this.day=u)}],w:[e,n("week")],ww:[t,n("week")],M:[e,n("month")],MM:[t,n("month")],MMM:[s,function(r){var a=m("months"),h=(m("monthsShort")||a.map(function(u){return u.slice(0,3)})).indexOf(r)+1;if(h<1)throw new Error;this.month=h%12||h}],MMMM:[s,function(r){var a=m("months").indexOf(r)+1;if(a<1)throw new Error;this.month=a%12||a}],Y:[/[+-]?\d+/,n("year")],YY:[t,function(r){this.year=o(r)}],YYYY:[/\d{4}/,n("year")],Z:d,ZZ:d};function nt(r){var a,h;a=r,h=i&&i.formats;for(var u=(r=a.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(b,k,p){var M=p&&p.toUpperCase();return k||h[p]||l[p]||h[M].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(x,j,z){return j||z.slice(1)})})).match(c),D=u.length,w=0;w<D;w+=1){var P=u[w],S=rt[P],Y=S&&S[0],O=S&&S[1];u[w]=O?{regex:Y,parser:O}:P.replace(/^\[|\]$/g,"")}return function(b){for(var k={},p=0,M=0;p<D;p+=1){var x=u[p];if(typeof x=="string")M+=x.length;else{var j=x.regex,z=x.parser,H=b.slice(M),A=j.exec(H)[0];z.call(k,A),b=b.replace(A,"")}}return function(C){var I=C.afternoon;if(I!==void 0){var y=C.hours;I?y<12&&(C.hours+=12):y===12&&(C.hours=0),delete C.afternoon}}(k),k}}return function(r,a,h){h.p.customParseFormat=!0,r&&r.parseTwoDigitYear&&(o=r.parseTwoDigitYear);var u=a.prototype,D=u.parse;u.parse=function(w){var P=w.date,S=w.utc,Y=w.args;this.$u=S;var O=Y[1];if(typeof O=="string"){var b=Y[2]===!0,k=Y[3]===!0,p=b||k,M=Y[2];k&&(M=Y[2]),i=this.$locale(),!b&&M&&(i=h.Ls[M]),this.$d=function(H,A,C,I){try{if(["x","X"].indexOf(A)>-1)return new Date((A==="X"?1e3:1)*H);var y=nt(A)(H),W=y.year,B=y.month,it=y.day,at=y.hours,ot=y.minutes,ht=y.seconds,ut=y.milliseconds,X=y.zone,q=y.week,$=new Date,N=it||(W||B?1:$.getDate()),Z=W||$.getFullYear(),F=0;W&&!B||(F=B>0?B-1:$.getMonth());var E,v=at||0,V=ot||0,J=ht||0,_=ut||0;return X?new Date(Date.UTC(Z,F,N,v,V,J,_+60*X.offset*1e3)):C?new Date(Date.UTC(Z,F,N,v,V,J,_)):(E=new Date(Z,F,N,v,V,J,_),q&&(E=I(E).week(q).toDate()),E)}catch{return new Date("")}}(P,O,S,h),this.init(),M&&M!==!0&&(this.$L=this.locale(M).$L),p&&P!=this.format(O)&&(this.$d=new Date("")),i={}}else if(O instanceof Array)for(var x=O.length,j=1;j<=x;j+=1){Y[1]=O[j-1];var z=h.apply(this,Y);if(z.isValid()){this.$d=z.$d,this.$L=z.$L,this.init();break}j===x&&(this.$d=new Date(""))}else D.call(this,w)}}})})(et);var yt=et.exports;const Mt=R(yt);var st={exports:{}};(function(T,L){(function(l,c){T.exports=c()})(Q,function(){return function(l,c,g){c.prototype.isBetween=function(t,e,s,i){var o=g(t),n=g(e),d=(i=i||"()")[0]==="(",m=i[1]===")";return(d?this.isAfter(o,s):!this.isBefore(o,s))&&(m?this.isBefore(n,s):!this.isAfter(n,s))||(d?this.isBefore(o,s):!this.isAfter(o,s))&&(m?this.isAfter(n,s):!this.isBefore(n,s))}}})})(st);var pt=st.exports;const Tt=R(pt);f.extend(Mt);f.extend(ft);f.extend(Tt);const gt=ct(["Your locale has not been found.","Either the locale key is not a supported one. Locales supported by dayjs are available here: https://github.com/iamkun/dayjs/tree/dev/src/locale","Or you forget to import the locale from 'dayjs/locale/{localeUsed}'","fallback on English locale"]),Dt={YY:"year",YYYY:{sectionType:"year",contentType:"digit",maxLength:4},M:{sectionType:"month",contentType:"digit",maxLength:2},MM:"month",MMM:{sectionType:"month",contentType:"letter"},MMMM:{sectionType:"month",contentType:"letter"},D:{sectionType:"day",contentType:"digit",maxLength:2},DD:"day",Do:{sectionType:"day",contentType:"digit-with-letter"},d:{sectionType:"weekDay",contentType:"digit",maxLength:2},dd:{sectionType:"weekDay",contentType:"letter"},ddd:{sectionType:"weekDay",contentType:"letter"},dddd:{sectionType:"weekDay",contentType:"letter"},A:"meridiem",a:"meridiem",H:{sectionType:"hours",contentType:"digit",maxLength:2},HH:"hours",h:{sectionType:"hours",contentType:"digit",maxLength:2},hh:"hours",m:{sectionType:"minutes",contentType:"digit",maxLength:2},mm:"minutes",s:{sectionType:"seconds",contentType:"digit",maxLength:2},ss:"seconds"},wt={year:"YYYY",month:"MMMM",monthShort:"MMM",dayOfMonth:"D",weekday:"dddd",weekdayShort:"dd",hours24h:"HH",hours12h:"hh",meridiem:"A",minutes:"mm",seconds:"ss",fullDate:"ll",fullDateWithWeekday:"dddd, LL",keyboardDate:"L",shortDate:"MMM D",normalDate:"D MMMM",normalDateWithWeekday:"ddd, MMM D",monthAndYear:"MMMM YYYY",monthAndDate:"MMMM D",fullTime:"LT",fullTime12h:"hh:mm A",fullTime24h:"HH:mm",fullDateTime:"lll",fullDateTime12h:"ll hh:mm A",fullDateTime24h:"ll HH:mm",keyboardDateTime:"L LT",keyboardDateTime12h:"L hh:mm A",keyboardDateTime24h:"L HH:mm"},G=["Missing UTC plugin","To be able to use UTC or timezones, you have to enable the `utc` plugin","Find more information on https://mui.com/x/react-date-pickers/timezone/#day-js-and-utc"].join(`
|
|
2
2
|
`),K=["Missing timezone plugin","To be able to use timezones, you have to enable both the `utc` and the `timezone` plugin","Find more information on https://mui.com/x/react-date-pickers/timezone/#day-js-and-timezone"].join(`
|
|
3
3
|
`),Yt=(T,L)=>L?(...l)=>T(...l).locale(L):T;class bt{constructor({locale:L,formats:l,instance:c}={}){var g;this.isMUIAdapter=!0,this.isTimezoneCompatible=!0,this.lib="dayjs",this.rawDayJsInstance=void 0,this.dayjs=void 0,this.locale=void 0,this.formats=void 0,this.escapedCharacters={start:"[",end:"]"},this.formatTokenMap=Dt,this.setLocaleToValue=t=>{const e=this.getCurrentLocaleCode();return e===t.locale()?t:t.locale(e)},this.hasUTCPlugin=()=>typeof f.utc<"u",this.hasTimezonePlugin=()=>typeof f.tz<"u",this.isSame=(t,e,s)=>{const i=this.setTimezone(e,this.getTimezone(t));return t.format(s)===i.format(s)},this.cleanTimezone=t=>{switch(t){case"default":return;case"system":return f.tz.guess();default:return t}},this.createSystemDate=t=>{if(this.rawDayJsInstance)return this.rawDayJsInstance(t);if(this.hasUTCPlugin()&&this.hasTimezonePlugin()){const e=f.tz.guess();return e!=="UTC"?f.tz(t,e):f(t)}return f(t)},this.createUTCDate=t=>{if(!this.hasUTCPlugin())throw new Error(G);return f.utc(t)},this.createTZDate=(t,e)=>{if(!this.hasUTCPlugin())throw new Error(G);if(!this.hasTimezonePlugin())throw new Error(K);const s=t!==void 0&&!t.endsWith("Z");return f(t).tz(this.cleanTimezone(e),s)},this.getLocaleFormats=()=>{const t=f.Ls,e=this.locale||"en";let s=t[e];return s===void 0&&(gt(),s=t.en),s.formats},this.adjustOffset=t=>{if(!this.hasTimezonePlugin())return t;const e=this.getTimezone(t);if(e!=="UTC"){var s,i;const o=t.tz(this.cleanTimezone(e),!0);if(((s=o.$offset)!=null?s:0)===((i=t.$offset)!=null?i:0))return t;t.$offset=o.$offset}return t},this.date=t=>t===null?null:this.dayjs(t),this.dateWithTimezone=(t,e)=>{if(t===null)return null;let s;return e==="UTC"?s=this.createUTCDate(t):e==="system"||e==="default"&&!this.hasTimezonePlugin()?s=this.createSystemDate(t):s=this.createTZDate(t,e),this.locale===void 0?s:s.locale(this.locale)},this.getTimezone=t=>{if(this.hasTimezonePlugin()){var e;const s=(e=t.$x)==null?void 0:e.$timezone;if(s)return s}return this.hasUTCPlugin()&&t.isUTC()?"UTC":"system"},this.setTimezone=(t,e)=>{if(this.getTimezone(t)===e)return t;if(e==="UTC"){if(!this.hasUTCPlugin())throw new Error(G);return t.utc()}if(e==="system")return t.local();if(!this.hasTimezonePlugin()){if(e==="default")return t;throw new Error(K)}return f.tz(t,this.cleanTimezone(e))},this.toJsDate=t=>t.toDate(),this.parseISO=t=>this.dayjs(t),this.toISO=t=>t.toISOString(),this.parse=(t,e)=>t===""?null:this.dayjs(t,e,this.locale,!0),this.getCurrentLocaleCode=()=>this.locale||"en",this.is12HourCycleInCurrentLocale=()=>/A|a/.test(this.getLocaleFormats().LT||""),this.expandFormat=t=>{const e=this.getLocaleFormats(),s=i=>i.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(o,n,d)=>n||d.slice(1));return t.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(i,o,n)=>{const d=n&&n.toUpperCase();return o||e[n]||s(e[d])})},this.getFormatHelperText=t=>this.expandFormat(t).replace(/a/gi,"(a|p)m").toLocaleLowerCase(),this.isNull=t=>t===null,this.isValid=t=>this.dayjs(t).isValid(),this.format=(t,e)=>this.formatByString(t,this.formats[e]),this.formatByString=(t,e)=>this.dayjs(t).format(e),this.formatNumber=t=>t,this.getDiff=(t,e,s)=>t.diff(e,s),this.isEqual=(t,e)=>t===null&&e===null?!0:this.dayjs(t).toDate().getTime()===this.dayjs(e).toDate().getTime(),this.isSameYear=(t,e)=>this.isSame(t,e,"YYYY"),this.isSameMonth=(t,e)=>this.isSame(t,e,"YYYY-MM"),this.isSameDay=(t,e)=>this.isSame(t,e,"YYYY-MM-DD"),this.isSameHour=(t,e)=>t.isSame(e,"hour"),this.isAfter=(t,e)=>t>e,this.isAfterYear=(t,e)=>this.hasUTCPlugin()?!this.isSameYear(t,e)&&t.utc()>e.utc():t.isAfter(e,"year"),this.isAfterDay=(t,e)=>this.hasUTCPlugin()?!this.isSameDay(t,e)&&t.utc()>e.utc():t.isAfter(e,"day"),this.isBefore=(t,e)=>t<e,this.isBeforeYear=(t,e)=>this.hasUTCPlugin()?!this.isSameYear(t,e)&&t.utc()<e.utc():t.isBefore(e,"year"),this.isBeforeDay=(t,e)=>this.hasUTCPlugin()?!this.isSameDay(t,e)&&t.utc()<e.utc():t.isBefore(e,"day"),this.isWithinRange=(t,[e,s])=>t>=e&&t<=s,this.startOfYear=t=>this.adjustOffset(t.startOf("year")),this.startOfMonth=t=>this.adjustOffset(t.startOf("month")),this.startOfWeek=t=>this.adjustOffset(t.startOf("week")),this.startOfDay=t=>this.adjustOffset(t.startOf("day")),this.endOfYear=t=>this.adjustOffset(t.endOf("year")),this.endOfMonth=t=>this.adjustOffset(t.endOf("month")),this.endOfWeek=t=>this.adjustOffset(t.endOf("week")),this.endOfDay=t=>this.adjustOffset(t.endOf("day")),this.addYears=(t,e)=>this.adjustOffset(e<0?t.subtract(Math.abs(e),"year"):t.add(e,"year")),this.addMonths=(t,e)=>this.adjustOffset(e<0?t.subtract(Math.abs(e),"month"):t.add(e,"month")),this.addWeeks=(t,e)=>this.adjustOffset(e<0?t.subtract(Math.abs(e),"week"):t.add(e,"week")),this.addDays=(t,e)=>this.adjustOffset(e<0?t.subtract(Math.abs(e),"day"):t.add(e,"day")),this.addHours=(t,e)=>this.adjustOffset(e<0?t.subtract(Math.abs(e),"hour"):t.add(e,"hour")),this.addMinutes=(t,e)=>this.adjustOffset(e<0?t.subtract(Math.abs(e),"minute"):t.add(e,"minute")),this.addSeconds=(t,e)=>this.adjustOffset(e<0?t.subtract(Math.abs(e),"second"):t.add(e,"second")),this.getYear=t=>t.year(),this.getMonth=t=>t.month(),this.getDate=t=>t.date(),this.getHours=t=>t.hour(),this.getMinutes=t=>t.minute(),this.getSeconds=t=>t.second(),this.getMilliseconds=t=>t.millisecond(),this.setYear=(t,e)=>this.adjustOffset(t.set("year",e)),this.setMonth=(t,e)=>this.adjustOffset(t.set("month",e)),this.setDate=(t,e)=>this.adjustOffset(t.set("date",e)),this.setHours=(t,e)=>this.adjustOffset(t.set("hour",e)),this.setMinutes=(t,e)=>this.adjustOffset(t.set("minute",e)),this.setSeconds=(t,e)=>this.adjustOffset(t.set("second",e)),this.setMilliseconds=(t,e)=>this.adjustOffset(t.set("millisecond",e)),this.getDaysInMonth=t=>t.daysInMonth(),this.getNextMonth=t=>this.addMonths(t,1),this.getPreviousMonth=t=>this.addMonths(t,-1),this.getMonthArray=t=>{const s=[t.startOf("year")];for(;s.length<12;){const i=s[s.length-1];s.push(this.addMonths(i,1))}return s},this.mergeDateAndTime=(t,e)=>t.hour(e.hour()).minute(e.minute()).second(e.second()),this.getWeekdays=()=>{const t=this.dayjs().startOf("week");return[0,1,2,3,4,5,6].map(e=>this.formatByString(this.addDays(t,e),"dd"))},this.getWeekArray=t=>{const e=this.setLocaleToValue(t),s=e.startOf("month").startOf("week"),i=e.endOf("month").endOf("week");let o=0,n=s;const d=[];for(;n<i;){const m=Math.floor(o/7);d[m]=d[m]||[],d[m].push(n),n=this.addDays(n,1),o+=1}return d},this.getWeekNumber=t=>t.week(),this.getYearRange=(t,e)=>{const s=t.startOf("year"),i=e.endOf("year"),o=[];let n=s;for(;n<i;)o.push(n),n=this.addYears(n,1);return o},this.getMeridiemText=t=>t==="am"?"AM":"PM",this.rawDayJsInstance=c,this.dayjs=Yt((g=this.rawDayJsInstance)!=null?g:f,L),this.locale=L,this.formats=dt({},wt,l),f.extend(mt)}}export{bt as A};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a8 as e,j as t}from"./vendor-mui-core-
|
|
1
|
+
import{a8 as e,j as t}from"./vendor-mui-core-8zafwTFh.js";import{r as a}from"./vendor-ux-did-connect-D2f9rdKK.js";var r={},o=e;Object.defineProperty(r,"__esModule",{value:!0});var u=r.default=void 0,i=o(a()),p=t;u=r.default=(0,i.default)((0,p.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");export{u as d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a8 as r,j as t}from"./vendor-mui-core-
|
|
1
|
+
import{a8 as r,j as t}from"./vendor-mui-core-8zafwTFh.js";import{r as a}from"./vendor-ux-did-connect-D2f9rdKK.js";var e={},o=r;Object.defineProperty(e,"__esModule",{value:!0});var u=e.default=void 0,i=o(a()),l=t;u=e.default=(0,i.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{u as d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a8 as r,j as t}from"./vendor-mui-core-
|
|
1
|
+
import{a8 as r,j as t}from"./vendor-mui-core-8zafwTFh.js";import{r as a}from"./vendor-ux-did-connect-D2f9rdKK.js";var e={},o=r;Object.defineProperty(e,"__esModule",{value:!0});var u=e.default=void 0,f=o(a()),i=t;u=e.default=(0,f.default)((0,i.jsx)("path",{d:"M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z"}),"ChevronLeft");export{u as d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a8 as r,j as t}from"./vendor-mui-core-
|
|
1
|
+
import{a8 as r,j as t}from"./vendor-mui-core-8zafwTFh.js";import{r as a}from"./vendor-ux-did-connect-D2f9rdKK.js";var e={},o=r;Object.defineProperty(e,"__esModule",{value:!0});var u=e.default=void 0,i=o(a()),v=t;u=e.default=(0,i.default)((0,v.jsx)("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}),"ChevronRight");export{u as d};
|