@abtnode/blocklet-services 1.16.32-beta-4d47ae7f → 1.16.32-beta-0593a408
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 +9 -8
- package/api/libs/auth/index.js +2 -0
- package/api/libs/auth/utils.js +4 -1
- package/api/libs/connect/session.js +86 -97
- package/api/libs/connect/v1.js +2 -10
- package/api/libs/email.js +1 -1
- package/api/libs/jwt.js +17 -3
- package/api/libs/kyc.js +213 -0
- package/api/routes/federated.js +37 -4
- package/api/routes/oauth.js +65 -7
- package/api/routes/openapi.js +12 -21
- package/api/routes/opencomponent.js +12 -19
- package/api/routes/openembed.js +15 -26
- package/api/routes/user-session.js +2 -0
- package/api/routes/user.js +17 -2
- package/api/services/analytics/index.js +21 -24
- package/api/services/auth/connect/invite.js +38 -24
- package/api/services/auth/connect/issue-kyc.js +58 -0
- package/api/services/auth/connect/login.js +1 -0
- package/api/services/auth/connect/update-kyc.js +82 -0
- package/api/services/auth/index.js +34 -10
- package/api/services/auth/passport.js +11 -14
- package/api/services/auth/session.js +196 -197
- package/api/services/kyc/index.js +92 -0
- package/api/services/notification/index.js +6 -16
- package/api/services/relay/index.js +3 -7
- package/api/services/studio/index.js +62 -65
- package/api/socket/channel/did.js +1 -0
- package/api/util/get-static-service-config.js +2 -10
- package/dist/assets/{Add-D8_0U-mi.js → Add-BXK5RFEZ.js} +1 -1
- package/dist/assets/Alert-CeGhMuEg.js +1 -0
- package/dist/assets/{ArrowDropDown-exkF-BIK.js → ArrowDropDown-JIsmOdUp.js} +1 -1
- package/dist/assets/Avatar-DlL4WPrD.js +1 -0
- package/dist/assets/{ButtonGroup-CTrZ2Hyv.js → ButtonGroup-ailEu1Nr.js} +1 -1
- package/dist/assets/{CheckCircle-BNxyw6NJ.js → CheckCircle-CEIChsEH.js} +1 -1
- package/dist/assets/ChevronLeft-D_bQ82yy.js +1 -0
- package/dist/assets/{ChevronRight-DBpo88DV.js → ChevronRight-BGd4BknI.js} +1 -1
- package/dist/assets/{Close-DgxsFA7q.js → Close-uLBCA-jx.js} +1 -1
- package/dist/assets/{CloseOutlined-CN4iKY7n.js → CloseOutlined-IVnREWlC.js} +1 -1
- package/dist/assets/{Delete-BaSq9RZZ.js → Delete-BVwa0m1R.js} +1 -1
- package/dist/assets/{DeleteOutline-Du2BPdlg.js → DeleteOutline-CZQhsml4.js} +1 -1
- package/dist/assets/DialogContentText-ClisAi23.js +1 -0
- package/dist/assets/{Done-BG-Fw8ts.js → Done-Dsagjn-5.js} +1 -1
- package/dist/assets/{Download-C1y29u9K.js → Download-BONj8GVi.js} +1 -1
- package/dist/assets/{Edit-u2-N8rQN.js → Edit-uwWLILxD.js} +1 -1
- package/dist/assets/{EditIcon-B2Y7T-CN.js → EditIcon-Ccz9ZvCO.js} +1 -1
- package/dist/assets/{Error-B1K0WhCp.js → Error-Cpv-DWNH.js} +1 -1
- package/dist/assets/{ExpandMore-DBQIHjkB.js → ExpandMore-DUJJgQvW.js} +1 -1
- package/dist/assets/FormControl-DFtCJG5u.js +1 -0
- package/dist/assets/FormControlLabel-DXsQRQXS.js +1 -0
- package/dist/assets/FormGroup-BYqGm4p-.js +1 -0
- package/dist/assets/{Google-CvB2nYH_.js → Google-_v-FGHrH.js} +1 -1
- package/dist/assets/{Hidden-DJwWGZh0.js → Hidden-qI_JwCnJ.js} +1 -1
- package/dist/assets/{InfoOutlined-BIY-Lnxg.js → InfoOutlined-ph3gfjxo.js} +1 -1
- package/dist/assets/{InputAdornment-VVruavKc.js → InputAdornment-ooDD0p7-.js} +1 -1
- package/dist/assets/{InputLabel-3M9sMlBq.js → InputLabel-BvnZs665.js} +1 -1
- package/dist/assets/{LastPage-CBInTPpp.js → LastPage-Cyi1MuLL.js} +1 -1
- package/dist/assets/{Launch-Dhq-grBI.js → Launch-DuItzynA.js} +1 -1
- package/dist/assets/{LaunchOutlined-DnkKRXxH.js → LaunchOutlined-D-2u70Um.js} +1 -1
- package/dist/assets/{Link-Cpnh7s1v.js → Link-Bi0x7esG.js} +1 -1
- package/dist/assets/{ListItemText-CHjUage1.js → ListItemText-5Rgq6wEi.js} +1 -1
- package/dist/assets/{LoadingButton-C47nsxMx.js → LoadingButton-D5Z3wmwU.js} +1 -1
- package/dist/assets/{LockIcon-CoUaWmH-.js → LockIcon-m3nszp09.js} +1 -1
- package/dist/assets/{Loop-CbcENVkw.js → Loop-DxSgdtYO.js} +1 -1
- package/dist/assets/{MoreHoriz-B4gnOmnB.js → MoreHoriz-BhT61kh5.js} +1 -1
- package/dist/assets/{MoreVert-CBWkVJTE.js → MoreVert-BZrKRQjN.js} +1 -1
- package/dist/assets/{OpenInNew-svkkbJCn.js → OpenInNew-BmjNdWrg.js} +1 -1
- package/dist/assets/{Pagination-BBwBFjSJ.js → Pagination-BuAgd0Fq.js} +2 -2
- package/dist/assets/{PlayArrow-D-mvqfoj.js → PlayArrow-duerFb9i.js} +1 -1
- package/dist/assets/{QuestionMarkCircle-Duxt-AlB.js → QuestionMarkCircle-e6Dqgeid.js} +1 -1
- package/dist/assets/{RadioGroup-C4DI71vM.js → RadioGroup-hK79XBIl.js} +1 -1
- package/dist/assets/{Search-BOxcXluh.js → Search-BMPJQuLV.js} +1 -1
- package/dist/assets/{Select-drnrjZt8.js → Select-BeArBHJP.js} +2 -2
- package/dist/assets/{ServerLogo-CxVp5JLf.js → ServerLogo-BNlEHeUQ.js} +1 -1
- package/dist/assets/{Skeleton-YurB3EC5.js → Skeleton-D5U61zVB.js} +4 -4
- package/dist/assets/{Slider-BX1l_Lvj.js → Slider-DTLSNhz0.js} +1 -1
- package/dist/assets/Stack-CZh-rd3Z.js +1 -0
- package/dist/assets/{Stepper-UV_DHoEg.js → Stepper-DRS0AaL5.js} +1 -1
- package/dist/assets/TextField-qwbmqJ_2.js +1 -0
- package/dist/assets/Toolbar-vbF-NV4R.js +1 -0
- package/dist/assets/ViewColumn-C39IjII_.js +1 -0
- package/dist/assets/{ViewList-Bwkry3LO.js → ViewList-D9Rx7CG7.js} +1 -1
- package/dist/assets/access-control-CZ2vCfvl.js +13 -0
- package/dist/assets/{actions-5mXSkQB4.js → actions-bp0tIFPr.js} +1 -1
- package/dist/assets/{add-component-core-DFH5qH7x.js → add-component-core-C1Hjv9Mu.js} +61 -61
- package/dist/assets/add-resource-ClftlsDn.js +1 -0
- package/dist/assets/{addon-CUxwPHa_.js → addon-CR-5t9SG.js} +1 -1
- package/dist/assets/{analytics-B29460Yu.js → analytics-DtV5hN-G.js} +7 -7
- package/dist/assets/api-BdPs8cnO.js +1 -0
- package/dist/assets/ar-BywPGmOa.js +1 -0
- package/dist/assets/ar-cd9W8CrI.js +1 -0
- package/dist/assets/audit-logs-CLta2fsb.js +58 -0
- package/dist/assets/{button-BqgSoT0h.js → button-C_Ohwi26.js} +1 -1
- package/dist/assets/{click-to-copy-CM2U6JEg.js → click-to-copy-DdG-v5Xf.js} +1 -1
- package/dist/assets/{complete-DaiPBjLS.js → complete-d1ZMK4NF.js} +1 -1
- package/dist/assets/component-C3cEDupm.js +768 -0
- package/dist/assets/{config-CxG4Kz4G.js → config-CoCmaQP0.js} +2 -2
- package/dist/assets/{config-BygYwcXq.js → config-Dx0nfjiu.js} +1 -1
- package/dist/assets/{config-navigation-Rsc7sQGs.js → config-navigation-WnNuhnxu.js} +2 -2
- package/dist/assets/confirm-BY-9Ale6.js +7 -0
- package/dist/assets/{connect-26mFy5d9.js → connect-DDUiaDOH.js} +1 -1
- package/dist/assets/{connect-B87FT6ev.js → connect-eNCvhZ4O.js} +1 -1
- package/dist/assets/connect-to-CTihUmuN.js +54 -0
- package/dist/assets/{content-layout-B7X0Mv3n.js → content-layout-DYHA2DoT.js} +1 -1
- package/dist/assets/{dashboard-BrV_SESr.js → dashboard-C8VgUavf.js} +4 -4
- package/dist/assets/de-DS4XAN75.js +1 -0
- package/dist/assets/{de-9vHBMa7b.js → de-qs3PjT55.js} +1 -1
- package/dist/assets/{did-address-BWnma-3-.js → did-address-Bye61gv9.js} +1 -1
- package/dist/assets/domain-JYDawt5A.js +9 -0
- package/dist/assets/{domain-list-wgNQeEgv.js → domain-list-1LRFMuDN.js} +2 -2
- package/dist/assets/email-THIe3MUl.js +9 -0
- package/dist/assets/es-DXb9xB6c.js +1 -0
- package/dist/assets/es-XT3Dd0hc.js +1 -0
- package/dist/assets/{exchange-passport-BZ8Q-G3h.js → exchange-passport-CvhlZqQF.js} +1 -1
- package/dist/assets/{fallback-C5E1lZAR.js → fallback-0bWgPkSN.js} +1 -1
- package/dist/assets/format-error-BOfFwKPG.js +2 -0
- package/dist/assets/fr-C5TQA9s1.js +1 -0
- package/dist/assets/{fr-C5fh5fdm.js → fr-CMgZc3LR.js} +1 -1
- package/dist/assets/{fuel-XF4sXoDA.js → fuel-CfBzTTU6.js} +1 -1
- package/dist/assets/{fullpage-BOyZgu9A.js → fullpage-ChxIZLoV.js} +1 -1
- package/dist/assets/hi-C_Mli2FO.js +1 -0
- package/dist/assets/hi-Ch52Lky6.js +1 -0
- package/dist/assets/{home-Dajv5NTd.js → home-DNnK3U-z.js} +1 -1
- package/dist/assets/id-BkncNzMh.js +1 -0
- package/dist/assets/id-_x67Rh2B.js +1 -0
- package/dist/assets/{iframe-CmugPIuF.js → iframe-BuZAORHf.js} +1 -1
- package/dist/assets/{index-Cixwi4BX.js → index--PkoOt7s.js} +1 -1
- package/dist/assets/{index-Dcphtm5y.js → index--Zmo4lNz.js} +1 -1
- package/dist/assets/{index-BiafpQ0u.js → index-52sgx-HD.js} +40 -40
- package/dist/assets/{index-BtQK2llU.js → index-B-Fz2GNJ.js} +2 -2
- package/dist/assets/{index-D0ZBFe_v.js → index-BElhBMsQ.js} +12 -12
- package/dist/assets/{index-BtQOF6n3.js → index-BM94YLjm.js} +1 -1
- package/dist/assets/{index-BrcKk7u6.js → index-BML-rKDv.js} +1 -1
- package/dist/assets/index-BVQpPnuL.js +262 -0
- package/dist/assets/{index-CTFB4nHV.js → index-Be2wLDD2.js} +3 -3
- package/dist/assets/{index-BisUmH-h.js → index-BlaHh4Bq.js} +1 -1
- package/dist/assets/{index-DHNVLiI8.js → index-BmJ_HmLz.js} +1 -1
- package/dist/assets/{index-BvZ1bsPZ.js → index-BmTem0RD.js} +5 -5
- package/dist/assets/{index-DPyKucXe.js → index-BqbUZVee.js} +1 -1
- package/dist/assets/{index-p81jbN_h.js → index-C0fRQdXZ.js} +1 -1
- package/dist/assets/index-C2qWDMpv.js +126 -0
- package/dist/assets/{index-TlMkikTm.js → index-C5cJ2AYH.js} +1 -1
- package/dist/assets/{index-CFmNTsQh.js → index-CMg55b21.js} +1 -1
- package/dist/assets/{index-UKHQeYs5.js → index-CeNlYeEB.js} +1 -1
- package/dist/assets/{index-D5lkEFWM.js → index-CmriykVM.js} +1 -1
- package/dist/assets/{index-Ca5y7O4k.js → index-CsqAQtnh.js} +12 -12
- package/dist/assets/{index-C2sin8wt.js → index-CuDHF3xN.js} +1 -1
- package/dist/assets/index-D0TT-qXy.js +329 -0
- package/dist/assets/index-D3wlHMtS.js +4 -0
- package/dist/assets/{index-BK4259Qj.js → index-DCx94jgM.js} +1 -1
- package/dist/assets/{index-DCkU-F0r.js → index-DCyB2kx5.js} +1 -1
- package/dist/assets/{index-CrurRDDC.js → index-DMGDz3J5.js} +1 -1
- package/dist/assets/{index-C0qYe9TG.js → index-Dg3ZdGFC.js} +1 -1
- package/dist/assets/index-Dn3O_6kH.js +68 -0
- package/dist/assets/{index-BRJLJSjg.js → index-DnNh-evc.js} +2 -2
- package/dist/assets/{index-hv_yaUi2.js → index-DyEaiz-D.js} +4 -4
- package/dist/assets/{index-DfZjT3WA.js → index-fpoxcuML.js} +212 -121
- package/dist/assets/{index.es-w-0rtBPs.js → index.es-BXRXZClL.js} +1 -1
- package/dist/assets/index.esm-BPFo6X8Z.js +1 -0
- package/dist/assets/{invitation-KAlNPJe6.js → invitation-D1Wp3bRP.js} +1 -1
- package/dist/assets/{invite-C_RF0Rm2.js → invite-YMYQJqN-.js} +1 -1
- package/dist/assets/{issue-passport-DM7CKvcB.js → issue-passport-BGReKwsC.js} +1 -1
- package/dist/assets/item-BXQ3arsv.js +1 -0
- package/dist/assets/ja-BemsOTjE.js +1 -0
- package/dist/assets/ja-j9_7sWtG.js +1 -0
- package/dist/assets/{jss-plugin-props-sort.esm-BzROyw1n.js → jss-plugin-props-sort.esm-C9YatkDP.js} +1 -1
- package/dist/assets/ko-BcDVaiV3.js +1 -0
- package/dist/assets/ko-CqkhhVdi.js +1 -0
- package/dist/assets/{launch-result-message-CIfX9Pg1.js → launch-result-message-BerDxO98.js} +1 -1
- package/dist/assets/{layout-Bb2LZLxa.js → layout-D4J5Y79b.js} +2 -2
- package/dist/assets/{list-header-BDhQIu5L.js → list-header-Be3w9ZWF.js} +1 -1
- package/dist/assets/localization-C6Hais-M.js +1 -0
- package/dist/assets/{log-o0iKO5dx.js → log-CQOOprUt.js} +1 -1
- package/dist/assets/{login-B9UvusG-.js → login-BE50q_9g.js} +1 -1
- package/dist/assets/{login-oauth-callback-cZ3oa4a_.js → login-oauth-callback-BPCfA25m.js} +1 -1
- package/dist/assets/logo-uploader-BQq1Bvz4.js +122 -0
- package/dist/assets/lost-passport-CqiiJzdw.js +168 -0
- package/dist/assets/{lottie-DsjCdNh-.js → lottie-8CewroZu.js} +1 -1
- package/dist/assets/notifications-hFiNE8Kp.js +62 -0
- package/dist/assets/{open-window-B5RcEIrm.js → open-window-DZuQsoOo.js} +1 -1
- package/dist/assets/overview-eXanKabi.js +12 -0
- package/dist/assets/{page-header-BvuGyCDw.js → page-header-D6emPvgS.js} +1 -1
- package/dist/assets/{permission-BuA9Zt4q.js → permission-CV9At0xV.js} +1 -1
- package/dist/assets/{preferences-BzcjmMUC.js → preferences-GIta-dYt.js} +1 -1
- package/dist/assets/pt-DZmF_qcN.js +1 -0
- package/dist/assets/pt-NjuvVfFo.js +1 -0
- package/dist/assets/publish-resource-E3qK4Lfb.js +1 -0
- package/dist/assets/react-BnX7dsCg.js +57 -0
- package/dist/assets/{redux-BDPBPXLM.js → redux-B4e5IkPl.js} +1 -1
- package/dist/assets/resource-dialog-DSlBHCVu.js +57 -0
- package/dist/assets/ru-BFNdjdAO.js +1 -0
- package/dist/assets/ru-BsFEd75u.js +1 -0
- package/dist/assets/sdk-C5Eo3Lk8.js +1 -0
- package/dist/assets/{selector-DktPytoX.js → selector-fvBTD9SB.js} +3 -3
- package/dist/assets/session-BHe45BP1.js +1 -0
- package/dist/assets/setup-p-Q92t4g.js +19 -0
- package/dist/assets/{shorten-label-3owfLRzi.js → shorten-label-BOSkgF_N.js} +1 -1
- package/dist/assets/{slicedToArray-CQG0j1sa.js → slicedToArray-CbPRhqfX.js} +2 -2
- package/dist/assets/{spaces-DDj9ynWl.js → spaces-Dv5sTFBl.js} +1 -1
- package/dist/assets/{start-DCKDZC67.js → start-D4PsKATv.js} +1 -1
- package/dist/assets/{step-actions-CoJc8417.js → step-actions-DvJ3jG2s.js} +1 -1
- package/dist/assets/{studio-B_0UB40R.js → studio-kDlNaA-v.js} +1 -1
- package/dist/assets/{switch-control-Bun_5Zkk.js → switch-control-CCflGHVj.js} +1 -1
- package/dist/assets/th-B61cOYck.js +1 -0
- package/dist/assets/th-C7TEM40B.js +1 -0
- package/dist/assets/{toUpper-Bf_TQKK7.js → toUpper-DxMwQ-7A.js} +1 -1
- package/dist/assets/{transfer-C7Cxyvnx.js → transfer-Cdc4gT4M.js} +1 -1
- package/dist/assets/{uniqBy-BqI7ffNX.js → uniqBy-C7E-hw0R.js} +1 -1
- package/dist/assets/{unsubscribe-B-iaO9gM.js → unsubscribe-CZRtq6xH.js} +1 -1
- package/dist/assets/{url-join-BoNn2Qh7.js → url-join-Cc5BAZ2e.js} +1 -1
- package/dist/assets/{use-blocklet-info-for-connect-did-spaces-CfK0RcTD.js → use-blocklet-info-for-connect-did-spaces-Dro42um_.js} +1 -1
- package/dist/assets/{use-mobile-C19pzcVe.js → use-mobile-BziK5djw.js} +1 -1
- package/dist/assets/{useAsync-Ca_M5Jhn.js → useAsync-fA1HnQaq.js} +1 -1
- package/dist/assets/{useFormControl-Cs3LGXJe.js → useFormControl-CQ_7pr9i.js} +1 -1
- package/dist/assets/{useLocalStorage-3-rj5S6B.js → useLocalStorage-CpPhACy5.js} +1 -1
- package/dist/assets/{useSetState-BTR-3GfC.js → useSetState-5snwvlLZ.js} +1 -1
- package/dist/assets/useSlot-GRhp-924.js +1 -0
- package/dist/assets/{useSlotProps-CCXsWmb3.js → useSlotProps-CPXTP7XP.js} +1 -1
- package/dist/assets/{useThemeProps-BjkDmxHT.js → useThemeProps-BnBMhVDF.js} +1 -1
- package/dist/assets/user-center-CuPwYsI_.js +1 -0
- package/dist/assets/user-sessions-lG0a9kqK.js +1 -0
- package/dist/assets/{util-DBNeRhAr.js → util-BBmowc-s.js} +1 -1
- package/dist/assets/vi-B884zOLu.js +1 -0
- package/dist/assets/vi-C1X-AoyG.js +1 -0
- package/dist/assets/wrap-locale-D-ibzwQK.js +1 -0
- package/dist/assets/zh-DjEnl7LY.js +1 -0
- package/dist/assets/zh-kNAPjCk5.js +2 -0
- package/dist/assets/zh-tw-Bn1Pkz9A.js +1 -0
- package/dist/assets/zh-tw-DSZuinRu.js +1 -0
- package/dist/index.html +1 -1
- package/dist/service-worker.js +1 -1
- package/package.json +26 -25
- package/api/util/constants.js +0 -10
- package/dist/assets/AddBox-BpwHbwbG.js +0 -1
- package/dist/assets/Alert-Dlco0B3L.js +0 -1
- package/dist/assets/Avatar-B1SFM1MR.js +0 -1
- package/dist/assets/FilterList-DumRQ8ls.js +0 -26
- package/dist/assets/FormControl-CeSJJZgZ.js +0 -1
- package/dist/assets/FormControlLabel-CpH9LTeH.js +0 -1
- package/dist/assets/FormGroup-B0Xdxgiy.js +0 -1
- package/dist/assets/TextField-D_Jtjg13.js +0 -1
- package/dist/assets/Toolbar-D7_EWzTj.js +0 -1
- package/dist/assets/access-control-YUBGali8.js +0 -13
- package/dist/assets/add-resource-BJ9u32jP.js +0 -1
- package/dist/assets/api-DbvHYaVa.js +0 -1
- package/dist/assets/ar-BSACs5SN.js +0 -1
- package/dist/assets/ar-lTVP4T3d.js +0 -1
- package/dist/assets/audit-logs-C1AOwGce.js +0 -58
- package/dist/assets/component-npmbPVSM.js +0 -464
- package/dist/assets/confirm-3b8GTIgU.js +0 -7
- package/dist/assets/connect-to-B0Td9yUD.js +0 -54
- package/dist/assets/de-B3TxaybY.js +0 -1
- package/dist/assets/domain-CkCbH8sj.js +0 -9
- package/dist/assets/es-BY0KMFme.js +0 -1
- package/dist/assets/es-Bk9E9Gbf.js +0 -1
- package/dist/assets/format-error-BVI56bJg.js +0 -2
- package/dist/assets/fr-BiVZLeXU.js +0 -1
- package/dist/assets/hi-B_LrkIOS.js +0 -1
- package/dist/assets/hi-HiGtGtUs.js +0 -1
- package/dist/assets/id-CirrqXGd.js +0 -1
- package/dist/assets/id-jBXPD1he.js +0 -1
- package/dist/assets/index-2xySyQ5i.js +0 -262
- package/dist/assets/index-B0NvcpjT.js +0 -1
- package/dist/assets/index-B7Un-ZeO.js +0 -68
- package/dist/assets/index-BP53WpUP.js +0 -4
- package/dist/assets/index-C1Puqx4M.js +0 -304
- package/dist/assets/index-CLQi4cVY.js +0 -126
- package/dist/assets/index.esm-CptJw3C8.js +0 -1
- package/dist/assets/item-DIkrlQMP.js +0 -1
- package/dist/assets/ja-BOs7uPqI.js +0 -1
- package/dist/assets/ja-DKiHQ6DE.js +0 -1
- package/dist/assets/ko-BBYyf1yM.js +0 -1
- package/dist/assets/ko-D1G4UvNg.js +0 -1
- package/dist/assets/localization-V0WRiXKC.js +0 -1
- package/dist/assets/logo-uploader-D4yqBa_O.js +0 -122
- package/dist/assets/lost-passport-soFqeEb7.js +0 -168
- package/dist/assets/notifications-B9Mu8Fxb.js +0 -62
- package/dist/assets/overview-CFbnZdV0.js +0 -12
- package/dist/assets/pt-CcFeyma6.js +0 -1
- package/dist/assets/pt-DI2MIkSi.js +0 -1
- package/dist/assets/publish-resource-DwhFCZXw.js +0 -1
- package/dist/assets/react-CwUjkFxY.js +0 -57
- package/dist/assets/resource-dialog-BBzXGjTp.js +0 -57
- package/dist/assets/ru-B2L3CRQ4.js +0 -1
- package/dist/assets/ru-OymXgLUI.js +0 -1
- package/dist/assets/sdk-CI7TJ_xu.js +0 -1
- package/dist/assets/session-Cw-dytKR.js +0 -1
- package/dist/assets/setup-DRfpHXNv.js +0 -19
- package/dist/assets/th-CZbdb5PZ.js +0 -1
- package/dist/assets/th-CfNBHHtU.js +0 -1
- package/dist/assets/useSlot-C1f6ZTLt.js +0 -1
- package/dist/assets/user-center-BN2FDsvO.js +0 -1
- package/dist/assets/user-sessions-BIEmgTqD.js +0 -1
- package/dist/assets/vi-DbzhnofW.js +0 -1
- package/dist/assets/vi-DhjQx2Z1.js +0 -1
- package/dist/assets/wrap-locale-D7L9anic.js +0 -1
- package/dist/assets/zh-FO0C29Rb.js +0 -1
- package/dist/assets/zh-jGK5FFL0.js +0 -2
- package/dist/assets/zh-tw-DnmwTx49.js +0 -1
- package/dist/assets/zh-tw-cyWwf75a.js +0 -1
|
@@ -14,7 +14,6 @@ const { LOGIN_PROVIDER } = require('@blocklet/constant');
|
|
|
14
14
|
const getRequestIP = require('@abtnode/util/lib/get-request-ip');
|
|
15
15
|
|
|
16
16
|
const isUrl = require('is-url');
|
|
17
|
-
const { PREFIXES } = require('../../util/constants');
|
|
18
17
|
const { createTokenFn, getDidConnectVersion } = require('../../util');
|
|
19
18
|
const checkUser = require('../../middlewares/check-user');
|
|
20
19
|
|
|
@@ -26,204 +25,219 @@ module.exports = {
|
|
|
26
25
|
} = options;
|
|
27
26
|
const createToken = createTokenFn(createSessionToken);
|
|
28
27
|
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
28
|
+
const handleSession = async (req, res) => {
|
|
29
|
+
const teamDid = req.getBlockletDid();
|
|
30
|
+
const { token } = req;
|
|
31
|
+
let visitorId = req.query?.visitorId;
|
|
32
|
+
if (!visitorId) {
|
|
33
|
+
visitorId = req.get('x-blocklet-visitor-id');
|
|
34
|
+
}
|
|
35
|
+
const { appPid = teamDid } = req.query;
|
|
36
|
+
await req.ensureUser({ token, visitorId, appPid });
|
|
37
|
+
if (!req.user) {
|
|
38
|
+
res.json({ user: null });
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
43
41
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
42
|
+
const blocklet = await req.getBlocklet();
|
|
43
|
+
// FIXME: this code have performance issue
|
|
44
|
+
const user = await node.getUser({ teamDid, user: { did: req.user.did } });
|
|
45
|
+
if (req.user.role) {
|
|
46
|
+
const rbac = await node.getRBAC(teamDid);
|
|
47
|
+
user.permissions = await rbac.getScope(req.user.role);
|
|
48
|
+
user.role = req.user.role;
|
|
49
|
+
}
|
|
52
50
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
51
|
+
if (user.avatar && user.avatar.startsWith(USER_AVATAR_URL_PREFIX)) {
|
|
52
|
+
user.avatar = `${WELLKNOWN_SERVICE_PATH_PREFIX}${USER_AVATAR_PATH_PREFIX}/${
|
|
53
|
+
user.avatar.split('/').slice(-1)[0]
|
|
54
|
+
}`;
|
|
57
55
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
56
|
+
if (req.get('x-avatar-host') === '1') {
|
|
57
|
+
const appUrl = blocklet.environmentObj.BLOCKLET_APP_URL;
|
|
58
|
+
user.avatar = joinURL(appUrl, user.avatar);
|
|
62
59
|
}
|
|
60
|
+
}
|
|
63
61
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
62
|
+
user.passports = (user.passports || [])
|
|
63
|
+
.filter((x) => x.status === PASSPORT_STATUS.VALID)
|
|
64
|
+
.map((x) => pick(x, ['id', 'name', 'title', 'role', 'scope', 'role', 'issuer']));
|
|
67
65
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
66
|
+
res.json({
|
|
67
|
+
user: omit(user, ['extra']),
|
|
68
|
+
provider: req.user.provider || LOGIN_PROVIDER.WALLET,
|
|
69
|
+
walletOS: req.user.walletOS,
|
|
70
|
+
});
|
|
71
|
+
};
|
|
74
72
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
73
|
+
const sessionApi = `${WELLKNOWN_SERVICE_PATH_PREFIX}/api/did/session`;
|
|
74
|
+
router.get(sessionApi, nocache(), sessionBearerToken, handleSession);
|
|
75
|
+
router.post(sessionApi, nocache(), sessionBearerToken, handleSession);
|
|
78
76
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
77
|
+
// update user extra: settings, webhooks
|
|
78
|
+
const extraApi = `${WELLKNOWN_SERVICE_PATH_PREFIX}/api/user/extra`;
|
|
79
|
+
router.get(extraApi, nocache(), sessionBearerToken, checkUser, async (req, res) => {
|
|
80
|
+
const teamDid = req.getBlockletDid();
|
|
81
|
+
const user = await node.getUser({ teamDid, user: { did: req.user.did } });
|
|
82
|
+
res.json(user.extra || {});
|
|
83
|
+
});
|
|
84
|
+
router.post(extraApi, nocache(), sessionBearerToken, checkUser, async (req, res) => {
|
|
85
|
+
const teamDid = req.getBlockletDid();
|
|
86
|
+
const exist = await node.getUser({ teamDid, user: { did: req.user.did } });
|
|
87
|
+
const preSaveData = merge({}, exist.extra || {}, req.body);
|
|
88
|
+
if (req.body.webhooks) {
|
|
89
|
+
preSaveData.webhooks = req.body.webhooks;
|
|
90
|
+
}
|
|
91
|
+
const user = await node.updateUserExtra({
|
|
92
|
+
teamDid,
|
|
93
|
+
did: req.user.did,
|
|
94
|
+
extra: JSON.stringify(preSaveData),
|
|
85
95
|
});
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
res.json(user.extra);
|
|
97
|
+
});
|
|
98
|
+
router.put(extraApi, nocache(), sessionBearerToken, checkUser, async (req, res) => {
|
|
99
|
+
if (['slack', 'api'].includes(req.body.type) === false) {
|
|
100
|
+
res.status(400).send({ error: 'invalid webhook type' });
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if (isUrl(req.body.url) === false) {
|
|
105
|
+
res.status(400).send({ error: 'invalid webhook url' });
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
await node.sendTestMessage({
|
|
109
|
+
webhook: { type: req.body.type, params: [{ name: 'url', value: req.body.url }] },
|
|
110
|
+
message: `This is a test message from user ${req.user.did}`,
|
|
99
111
|
});
|
|
100
|
-
router.put(extraApi, nocache(), sessionBearerToken, checkUser, async (req, res) => {
|
|
101
|
-
if (['slack', 'api'].includes(req.body.type) === false) {
|
|
102
|
-
res.status(400).send({ error: 'invalid webhook type' });
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
112
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
113
|
+
res.json({ success: true });
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
router.post(`${WELLKNOWN_SERVICE_PATH_PREFIX}/api/user/notification/unsubscribe`, async (req, res) => {
|
|
117
|
+
const { wallet } = await req.getBlockletInfo();
|
|
118
|
+
const { token } = req.body;
|
|
119
|
+
if (!verify(token, wallet.publicKey)) {
|
|
120
|
+
res.status(403).send('Invalid token');
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
109
123
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
124
|
+
const verifyData = decode(token);
|
|
125
|
+
|
|
126
|
+
if (verifyData) {
|
|
127
|
+
const { userDid, channel } = verifyData;
|
|
128
|
+
const teamDid = req.getBlockletDid();
|
|
129
|
+
const exist = await node.getUser({ teamDid, user: { did: userDid } });
|
|
130
|
+
await node.updateUserExtra({
|
|
131
|
+
teamDid,
|
|
132
|
+
did: userDid,
|
|
133
|
+
extra: JSON.stringify(
|
|
134
|
+
merge({}, exist.extra || {}, {
|
|
135
|
+
notifications: {
|
|
136
|
+
[channel]: false,
|
|
137
|
+
},
|
|
138
|
+
})
|
|
139
|
+
),
|
|
113
140
|
});
|
|
141
|
+
}
|
|
114
142
|
|
|
115
|
-
|
|
116
|
-
|
|
143
|
+
res.json({ success: true });
|
|
144
|
+
});
|
|
117
145
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
146
|
+
router.post(`${WELLKNOWN_SERVICE_PATH_PREFIX}/api/did/refreshSession`, refreshBearerToken, async (req, res) => {
|
|
147
|
+
const token = req.refreshToken;
|
|
148
|
+
if (token) {
|
|
149
|
+
const teamDid = req.getBlockletDid();
|
|
150
|
+
let visitorId = req.query?.visitorId;
|
|
151
|
+
if (!visitorId) {
|
|
152
|
+
visitorId = req.get('x-blocklet-visitor-id');
|
|
153
|
+
}
|
|
154
|
+
const { appPid = teamDid } = req.query;
|
|
155
|
+
await req.ensureUser({ token, visitorId, appPid });
|
|
156
|
+
if (!req.user) {
|
|
157
|
+
res.status(400).send('user session is logout');
|
|
123
158
|
return;
|
|
124
159
|
}
|
|
125
160
|
|
|
126
|
-
|
|
161
|
+
try {
|
|
162
|
+
const { secret } = await req.getBlockletInfo();
|
|
163
|
+
/** @type {import('@abtnode/client').BlockletState} */
|
|
164
|
+
const blocklet = await req.getBlocklet();
|
|
127
165
|
|
|
128
|
-
|
|
129
|
-
const {
|
|
130
|
-
const teamDid = req.getBlockletDid();
|
|
131
|
-
const exist = await node.getUser({ teamDid, user: { did: userDid } });
|
|
132
|
-
await node.updateUserExtra({
|
|
133
|
-
teamDid,
|
|
166
|
+
const refreshTokenType = 'refresh';
|
|
167
|
+
const {
|
|
134
168
|
did: userDid,
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
169
|
+
role,
|
|
170
|
+
passport,
|
|
171
|
+
provider = LOGIN_PROVIDER.WALLET,
|
|
172
|
+
walletOS,
|
|
173
|
+
} = await verifySessionToken(token, secret, {
|
|
174
|
+
checkFromDb: true,
|
|
175
|
+
teamDid,
|
|
176
|
+
checkToken: (t) => {
|
|
177
|
+
if (t.tokenType !== refreshTokenType) {
|
|
178
|
+
throw new Error(`invalid token type ${t.tokenType}`);
|
|
179
|
+
}
|
|
180
|
+
},
|
|
142
181
|
});
|
|
143
|
-
}
|
|
144
182
|
|
|
145
|
-
|
|
146
|
-
});
|
|
183
|
+
const user = await node.getUser({ teamDid, user: { did: userDid } });
|
|
147
184
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
let visitorId = req.query?.visitorId;
|
|
153
|
-
if (!visitorId) {
|
|
154
|
-
visitorId = req.get('x-blocklet-visitor-id');
|
|
155
|
-
}
|
|
156
|
-
const { appPid = teamDid } = req.query;
|
|
157
|
-
await req.ensureUser({ token, visitorId, appPid });
|
|
158
|
-
if (!req.user) {
|
|
159
|
-
res.status(400).send('user session is logout');
|
|
160
|
-
return;
|
|
185
|
+
if (role) {
|
|
186
|
+
const rbac = await node.getRBAC(teamDid);
|
|
187
|
+
user.permissions = await rbac.getScope(role);
|
|
188
|
+
user.role = role;
|
|
161
189
|
}
|
|
162
190
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
const refreshTokenType = 'refresh';
|
|
169
|
-
const {
|
|
170
|
-
did: userDid,
|
|
171
|
-
role,
|
|
172
|
-
passport,
|
|
173
|
-
provider = LOGIN_PROVIDER.WALLET,
|
|
174
|
-
walletOS,
|
|
175
|
-
} = await verifySessionToken(token, secret, {
|
|
176
|
-
checkFromDb: true,
|
|
177
|
-
teamDid,
|
|
178
|
-
checkToken: (t) => {
|
|
179
|
-
if (t.tokenType !== refreshTokenType) {
|
|
180
|
-
throw new Error(`invalid token type ${t.tokenType}`);
|
|
181
|
-
}
|
|
182
|
-
},
|
|
183
|
-
});
|
|
184
|
-
|
|
185
|
-
const user = await node.getUser({ teamDid, user: { did: userDid } });
|
|
186
|
-
|
|
187
|
-
if (role) {
|
|
188
|
-
const rbac = await node.getRBAC(teamDid);
|
|
189
|
-
user.permissions = await rbac.getScope(role);
|
|
190
|
-
user.role = role;
|
|
191
|
-
}
|
|
191
|
+
if (user.avatar && user.avatar.startsWith(USER_AVATAR_URL_PREFIX)) {
|
|
192
|
+
user.avatar = `${WELLKNOWN_SERVICE_PATH_PREFIX}${USER_AVATAR_PATH_PREFIX}/${
|
|
193
|
+
user.avatar.split('/').slice(-1)[0]
|
|
194
|
+
}`;
|
|
192
195
|
|
|
193
|
-
if (
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
}`;
|
|
197
|
-
|
|
198
|
-
if (req.get('x-avatar-host') === '1') {
|
|
199
|
-
const appUrl = blocklet.environmentObj.BLOCKLET_APP_URL;
|
|
200
|
-
user.avatar = joinURL(appUrl, user.avatar);
|
|
201
|
-
}
|
|
196
|
+
if (req.get('x-avatar-host') === '1') {
|
|
197
|
+
const appUrl = blocklet.environmentObj.BLOCKLET_APP_URL;
|
|
198
|
+
user.avatar = joinURL(appUrl, user.avatar);
|
|
202
199
|
}
|
|
200
|
+
}
|
|
203
201
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
202
|
+
const sessionConfig = blocklet.settings?.session || {};
|
|
203
|
+
const { sessionToken, refreshToken } = createToken(
|
|
204
|
+
userDid,
|
|
205
|
+
{
|
|
206
|
+
secret,
|
|
207
|
+
passport,
|
|
208
|
+
role,
|
|
209
|
+
fullName: user.fullName,
|
|
210
|
+
provider,
|
|
211
|
+
walletOS,
|
|
212
|
+
emailVerified: !!user.emailVerified,
|
|
213
|
+
phoneVerified: !!user.phoneVerified,
|
|
214
|
+
},
|
|
215
|
+
{ ...sessionConfig, didConnectVersion: getDidConnectVersion(req) }
|
|
216
|
+
);
|
|
217
|
+
const ua = req.get('user-agent');
|
|
218
|
+
const lastLoginIp = getRequestIP(req);
|
|
219
|
+
const walletDeviceMessageToken = req.get('wallet-device-message-token');
|
|
220
|
+
const walletDeviceId = req.get('wallet-device-id');
|
|
221
|
+
const userSession = await node.upsertUserSession({
|
|
222
|
+
visitorId,
|
|
223
|
+
teamDid,
|
|
224
|
+
userDid,
|
|
225
|
+
appPid: teamDid,
|
|
226
|
+
status: 'online',
|
|
227
|
+
ua,
|
|
228
|
+
lastLoginIp,
|
|
229
|
+
extra: {
|
|
230
|
+
walletOS,
|
|
231
|
+
walletDeviceMessageToken,
|
|
232
|
+
walletDeviceId,
|
|
233
|
+
},
|
|
234
|
+
});
|
|
235
|
+
if (user?.sourceAppPid) {
|
|
236
|
+
node.syncUserSession({
|
|
223
237
|
teamDid,
|
|
224
238
|
userDid,
|
|
225
|
-
|
|
226
|
-
|
|
239
|
+
visitorId: userSession.visitorId,
|
|
240
|
+
targetAppPid: user.sourceAppPid,
|
|
227
241
|
ua,
|
|
228
242
|
lastLoginIp,
|
|
229
243
|
extra: {
|
|
@@ -232,36 +246,21 @@ module.exports = {
|
|
|
232
246
|
walletDeviceId,
|
|
233
247
|
},
|
|
234
248
|
});
|
|
235
|
-
if (user?.sourceAppPid) {
|
|
236
|
-
node.syncUserSession({
|
|
237
|
-
teamDid,
|
|
238
|
-
userDid,
|
|
239
|
-
visitorId: userSession.visitorId,
|
|
240
|
-
targetAppPid: user.sourceAppPid,
|
|
241
|
-
ua,
|
|
242
|
-
lastLoginIp,
|
|
243
|
-
extra: {
|
|
244
|
-
walletOS,
|
|
245
|
-
walletDeviceMessageToken,
|
|
246
|
-
walletDeviceId,
|
|
247
|
-
},
|
|
248
|
-
});
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
res.json({
|
|
252
|
-
user,
|
|
253
|
-
nextToken: sessionToken,
|
|
254
|
-
nextRefreshToken: refreshToken,
|
|
255
|
-
provider,
|
|
256
|
-
walletOS,
|
|
257
|
-
});
|
|
258
|
-
} catch (err) {
|
|
259
|
-
res.status(400).send(err.message);
|
|
260
249
|
}
|
|
261
|
-
|
|
262
|
-
res.
|
|
250
|
+
|
|
251
|
+
res.json({
|
|
252
|
+
user,
|
|
253
|
+
nextToken: sessionToken,
|
|
254
|
+
nextRefreshToken: refreshToken,
|
|
255
|
+
provider,
|
|
256
|
+
walletOS,
|
|
257
|
+
});
|
|
258
|
+
} catch (err) {
|
|
259
|
+
res.status(400).send(err.message);
|
|
263
260
|
}
|
|
264
|
-
}
|
|
261
|
+
} else {
|
|
262
|
+
res.status(400).send('empty refreshToken');
|
|
263
|
+
}
|
|
265
264
|
});
|
|
266
265
|
},
|
|
267
266
|
};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
const { WELLKNOWN_SERVICE_PATH_PREFIX } = require('@abtnode/constant');
|
|
2
|
+
const { emailSchema } = require('../../socket/channel/did');
|
|
3
|
+
const { sendEmail } = require('../../libs/email');
|
|
4
|
+
const { isEmailKycRequired } = require('../../libs/kyc');
|
|
5
|
+
|
|
6
|
+
const logger = require('../../libs/logger')('kyc');
|
|
7
|
+
|
|
8
|
+
const init = ({ node }) => {
|
|
9
|
+
const onStartEmailVerify = async (req, res) => {
|
|
10
|
+
try {
|
|
11
|
+
const [blocklet, info] = await Promise.all([req.getBlocklet(), req.getBlockletInfo()]);
|
|
12
|
+
const teamDid = blocklet.meta.did;
|
|
13
|
+
|
|
14
|
+
const { error, value: subject } = emailSchema.validate(req.body.email);
|
|
15
|
+
|
|
16
|
+
if (error) {
|
|
17
|
+
return res.status(400).send({ error: 'Email is invalid', code: 'email_invalid' });
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if (await node.isEmailUsed({ teamDid, email: subject, verified: isEmailKycRequired(blocklet) })) {
|
|
21
|
+
return res.status(400).send({
|
|
22
|
+
error: 'Email is already used by another user, please use another email',
|
|
23
|
+
code: 'email_already_used',
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (await node.isSubjectVerified({ teamDid, subject })) {
|
|
28
|
+
return res.status(400).send({
|
|
29
|
+
error: 'Email is already verified, please check your DID Wallet or recover on login',
|
|
30
|
+
code: 'email_already_verified',
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if (await node.isSubjectSent({ teamDid, subject })) {
|
|
35
|
+
return res.status(400).send({
|
|
36
|
+
error: 'Email is already sent, please check your inbox, or retry later',
|
|
37
|
+
code: 'email_already_sent',
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const doc = await node.createVerifyCode({ teamDid, subject });
|
|
42
|
+
logger.info('create verify code', { teamDid, doc });
|
|
43
|
+
|
|
44
|
+
const result = await sendEmail(
|
|
45
|
+
subject,
|
|
46
|
+
{
|
|
47
|
+
title: `Verify Your Email on ${info.name}`,
|
|
48
|
+
body: `To ensure the security of your account and enhance your experience, you need to use following code to verify your email, and you will receive a certificate in your DID Wallet upon verification.\n\nYour verify code is ${doc.code}, please use it within 30 minutes.\n\nThank you for taking the time to enhance your account's security.`,
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
teamDid,
|
|
52
|
+
node,
|
|
53
|
+
locale: req.query.locale,
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
logger.info('send verify code', { teamDid, result });
|
|
57
|
+
await node.sendVerifyCode({ teamDid, code: doc.code });
|
|
58
|
+
|
|
59
|
+
return res.status(200).send({ message: 'Verify code successfully sent' });
|
|
60
|
+
} catch (error) {
|
|
61
|
+
logger.error('Send mail failed', { error });
|
|
62
|
+
return res.status(400).send(error.message);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
const onEndEmailVerify = async (req, res) => {
|
|
67
|
+
try {
|
|
68
|
+
logger.info('onEndEmailVerify', { payload: req.body, user: req.user });
|
|
69
|
+
|
|
70
|
+
const blocklet = await req.getBlocklet();
|
|
71
|
+
const teamDid = blocklet.meta.did;
|
|
72
|
+
|
|
73
|
+
const { code } = req.body;
|
|
74
|
+
const result = await node.consumeVerifyCode({ teamDid, code });
|
|
75
|
+
logger.info('consume verify code', { teamDid, code, result });
|
|
76
|
+
|
|
77
|
+
return res.status(200).send({ message: 'Email is successfully verified' });
|
|
78
|
+
} catch (error) {
|
|
79
|
+
logger.error('Verify mail failed', { error });
|
|
80
|
+
return res.status(400).send(error.message);
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
return {
|
|
85
|
+
attach: (app) => {
|
|
86
|
+
app.post(`${WELLKNOWN_SERVICE_PATH_PREFIX}/api/kyc/email/send`, onStartEmailVerify);
|
|
87
|
+
app.post(`${WELLKNOWN_SERVICE_PATH_PREFIX}/api/kyc/email/verify`, onEndEmailVerify);
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
module.exports = { init };
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
const JWT = require('@arcblock/jwt');
|
|
3
3
|
const Cron = require('@abtnode/cron');
|
|
4
4
|
const { WsServer } = require('@arcblock/ws');
|
|
5
|
+
const { WELLKNOWN_SERVICE_PATH_PREFIX } = require('@abtnode/constant');
|
|
5
6
|
|
|
6
7
|
const states = require('../../state');
|
|
7
|
-
const { PREFIXES } = require('../../util/constants');
|
|
8
8
|
const logger = require('../../libs/logger')('notification');
|
|
9
9
|
const { sendToAppChannel } = require('../../socket/channel/app');
|
|
10
10
|
const { sendToAppComponents } = require('../../socket/channel/component');
|
|
@@ -157,27 +157,21 @@ const init = ({ node }) => {
|
|
|
157
157
|
return {
|
|
158
158
|
sendToUser: {
|
|
159
159
|
attach: (app) => {
|
|
160
|
-
|
|
161
|
-
app.post(`${prefix}/api/send-to-user`, onSendToUser);
|
|
162
|
-
});
|
|
160
|
+
app.post(`${WELLKNOWN_SERVICE_PATH_PREFIX}/api/send-to-user`, onSendToUser);
|
|
163
161
|
},
|
|
164
162
|
exec: (data) => sendToUserDid({ ...data, node, wsServer }),
|
|
165
163
|
},
|
|
166
164
|
|
|
167
165
|
sendToMail: {
|
|
168
166
|
attach: (app) => {
|
|
169
|
-
|
|
170
|
-
app.post(`${prefix}/api/send-to-mail`, onSendToMail);
|
|
171
|
-
});
|
|
167
|
+
app.post(`${WELLKNOWN_SERVICE_PATH_PREFIX}/api/send-to-mail`, onSendToMail);
|
|
172
168
|
},
|
|
173
169
|
exec: (data) => sendToMail({ ...data, node, wsServer }),
|
|
174
170
|
},
|
|
175
171
|
|
|
176
172
|
sendToPush: {
|
|
177
173
|
attach: (app) => {
|
|
178
|
-
|
|
179
|
-
app.post(`${prefix}/api/send-to-push-kit`, onSendToPush);
|
|
180
|
-
});
|
|
174
|
+
app.post(`${WELLKNOWN_SERVICE_PATH_PREFIX}/api/send-to-push-kit`, onSendToPush);
|
|
181
175
|
},
|
|
182
176
|
exec: (data) => sendToMail({ ...data, node, wsServer }),
|
|
183
177
|
},
|
|
@@ -193,17 +187,13 @@ const init = ({ node }) => {
|
|
|
193
187
|
|
|
194
188
|
sendToAppChannel: {
|
|
195
189
|
attach: (app) => {
|
|
196
|
-
|
|
197
|
-
app.post(`${prefix}/api/send-to-app-channel`, onSendToAppChannel);
|
|
198
|
-
});
|
|
190
|
+
app.post(`${WELLKNOWN_SERVICE_PATH_PREFIX}/api/send-to-app-channel`, onSendToAppChannel);
|
|
199
191
|
},
|
|
200
192
|
exec: (data) => sendToAppChannel({ ...data, node, wsServer }),
|
|
201
193
|
},
|
|
202
194
|
|
|
203
195
|
attach: (wsRouter) => {
|
|
204
|
-
|
|
205
|
-
wsRouter.use(`${prefix}/websocket`, wsServer.onConnect.bind(wsServer));
|
|
206
|
-
});
|
|
196
|
+
wsRouter.use(`${WELLKNOWN_SERVICE_PATH_PREFIX}/websocket`, wsServer.onConnect.bind(wsServer));
|
|
207
197
|
},
|
|
208
198
|
};
|
|
209
199
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
const { WsServer } = require('@arcblock/ws');
|
|
2
2
|
const { CHANNEL_TYPE, parseChannel } = require('@blocklet/meta/lib/channel');
|
|
3
|
+
const { WELLKNOWN_SERVICE_PATH_PREFIX } = require('@abtnode/constant');
|
|
3
4
|
|
|
4
5
|
const logger = require('../../libs/logger')('relay');
|
|
5
|
-
const { PREFIXES } = require('../../util/constants');
|
|
6
6
|
const { sendToRelay } = require('../../socket/channel/relay');
|
|
7
7
|
const getHooksByChannel = require('../../socket/channel/hooks');
|
|
8
8
|
|
|
@@ -52,17 +52,13 @@ const init = ({ node }) => {
|
|
|
52
52
|
return {
|
|
53
53
|
sendToRelay: {
|
|
54
54
|
attach: (app) => {
|
|
55
|
-
|
|
56
|
-
app.post(`${prefix}/relay/api/send-to-relay-channel`, onSendToRelay);
|
|
57
|
-
});
|
|
55
|
+
app.post(`${WELLKNOWN_SERVICE_PATH_PREFIX}/relay/api/send-to-relay-channel`, onSendToRelay);
|
|
58
56
|
},
|
|
59
57
|
exec: (data) => sendToRelay({ ...data, node, wsServer }),
|
|
60
58
|
},
|
|
61
59
|
|
|
62
60
|
attach: (wsRouter) => {
|
|
63
|
-
|
|
64
|
-
wsRouter.use(`${prefix}/relay/websocket`, wsServer.onConnect.bind(wsServer));
|
|
65
|
-
});
|
|
61
|
+
wsRouter.use(`${WELLKNOWN_SERVICE_PATH_PREFIX}/relay/websocket`, wsServer.onConnect.bind(wsServer));
|
|
66
62
|
},
|
|
67
63
|
};
|
|
68
64
|
};
|