@abtnode/blocklet-services 1.16.43-beta-20250427-232837-e671de06 → 1.16.43-beta-20250430-124448-4edc5502

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.
Files changed (303) hide show
  1. package/api/emails/_components/layout.js +2 -2
  2. package/api/emails/_libs/style.js +8 -3
  3. package/api/emails/_templates/kyc-code-verify.js +43 -0
  4. package/api/emails/_templates/new-user-session.js +2 -6
  5. package/api/emails/_templates/notification.js +2 -6
  6. package/api/emails/_templates/verify-code-body.js +4 -1
  7. package/api/emails/_templates/verify-code.js +2 -6
  8. package/api/index.js +31 -2
  9. package/api/libs/connect/session.js +4 -2
  10. package/api/libs/email.js +16 -0
  11. package/api/middlewares/ensure-blocklet.js +1 -1
  12. package/api/routes/blocklet.js +26 -17
  13. package/api/routes/ocap.js +1 -1
  14. package/api/routes/user-session.js +4 -2
  15. package/api/routes/user.js +1 -1
  16. package/api/services/auth/session.js +15 -10
  17. package/api/services/kyc/index.js +5 -11
  18. package/dist/assets/{AdapterDayjs-BUGplkxR.js → AdapterDayjs-BWhMsmQP.js} +1 -1
  19. package/dist/assets/{ArrowDropDown-B0sLkJoY.js → ArrowDropDown-DUCtp8oo.js} +1 -1
  20. package/dist/assets/{CheckCircle-BNrN9mgy.js → CheckCircle-yKW43XdV.js} +1 -1
  21. package/dist/assets/{ChevronLeft-Dq00IS01.js → ChevronLeft-6AvuBihM.js} +1 -1
  22. package/dist/assets/{ChevronRight-ZTqWK-Ga.js → ChevronRight-BsdsjNxw.js} +1 -1
  23. package/dist/assets/{Community-DZCTPNMP.js → Community-DathqRsd.js} +1 -1
  24. package/dist/assets/{DeleteOutline-C2sY6hfm.js → DeleteOutline-D_I07sPe.js} +1 -1
  25. package/dist/assets/{Done-JLiLhELm.js → Done-DLTvHdZB.js} +1 -1
  26. package/dist/assets/{Download-Ch4RfGRW.js → Download-DKz_gZX5.js} +1 -1
  27. package/dist/assets/{Edit-CY6fFHQM.js → Edit-odNPT5GK.js} +1 -1
  28. package/dist/assets/{EditIcon-Bi2cR-_u.js → EditIcon-DWRQ3fi6.js} +1 -1
  29. package/dist/assets/{Email-Dz2Eyqu0.js → Email-B0n6rLUZ.js} +1 -1
  30. package/dist/assets/{Error-CSFUqG0m.js → Error-js7ePZ5o.js} +1 -1
  31. package/dist/assets/{ExpandLess-BiMmSOBl.js → ExpandLess-TUium4RQ.js} +1 -1
  32. package/dist/assets/{Google-GOp5YvmZ.js → Google-C7d25Q5r.js} +1 -1
  33. package/dist/assets/{Holiday-Lc6woG1j.js → Holiday-BkY6LMfd.js} +1 -1
  34. package/dist/assets/{InfoOutlined-CQB5qKm-.js → InfoOutlined-BjII93aR.js} +1 -1
  35. package/dist/assets/{Launch-fxgQvk19.js → Launch-ryL3I8d9.js} +1 -1
  36. package/dist/assets/{LaunchOutlined-BV4_W1pb.js → LaunchOutlined-D21Xchdf.js} +1 -1
  37. package/dist/assets/{Location-B8EOY3d0.js → Location-BQhEvGNL.js} +1 -1
  38. package/dist/assets/{LockIcon-fuTfhB_G.js → LockIcon-Bd69pSJI.js} +1 -1
  39. package/dist/assets/{Meeting-Epdyx36z.js → Meeting-BW-_XtSL.js} +1 -1
  40. package/dist/assets/{MoreHoriz-CX_pwfPT.js → MoreHoriz-DHyMdwpT.js} +1 -1
  41. package/dist/assets/{OffSick-VYgugWxu.js → OffSick-9I8vBA8l.js} +1 -1
  42. package/dist/assets/{Phone-KP65huHK.js → Phone-CKzC4712.js} +1 -1
  43. package/dist/assets/{PlayArrow-DFH1Psjx.js → PlayArrow-zDVVYX6u.js} +1 -1
  44. package/dist/assets/{QuestionMarkCircle-p6m3avKp.js → QuestionMarkCircle-DpFFQWud.js} +1 -1
  45. package/dist/assets/{ServerLogo-Bssx1Eou.js → ServerLogo-AfxVBRdi.js} +1 -1
  46. package/dist/assets/{Timezone-Ce4E1Xey.js → Timezone-C3hiNX6j.js} +1 -1
  47. package/dist/assets/{TuneOutlined-Dy2qPFGI.js → TuneOutlined-Bv7cSbWT.js} +1 -1
  48. package/dist/assets/{ViewList-e3CoNi3K.js → ViewList-Ca1IEB31.js} +1 -1
  49. package/dist/assets/{WorkingRemotely-CXFJ6pz8.js → WorkingRemotely-CHzRY2CT.js} +1 -1
  50. package/dist/assets/access-control-CwSjARsN.js +14 -0
  51. package/dist/assets/{actions-DA-6s_nQ.js → actions-BW0Vx00_.js} +1 -1
  52. package/dist/assets/{add-component-core-DG9mQFsr.js → add-component-core-DXp_ntZ3.js} +43 -37
  53. package/dist/assets/add-resource-CmPIp37F.js +1 -0
  54. package/dist/assets/{addon-Bcc-Xwbf.js → addon-FArG2oUy.js} +1 -1
  55. package/dist/assets/{advanced-DTe2fs5L.js → advanced-mJXTlRFz.js} +2 -2
  56. package/dist/assets/api-Bf1onQOz.js +1 -0
  57. package/dist/assets/appearance-D9WrcbPF.js +1 -0
  58. package/dist/assets/ar-BRKjvO8p.js +1 -0
  59. package/dist/assets/ar-Duy7ZH--.js +7 -0
  60. package/dist/assets/audit-logs-CVUuBgdy.js +35 -0
  61. package/dist/assets/{authorize-DUyL7MEU.js → authorize-Bk0sIDAH.js} +1 -1
  62. package/dist/assets/{base32-p9VcJrwv.js → base32-C_EKY5vU.js} +1 -1
  63. package/dist/assets/{branding-_VO2ZZ3t.js → branding-BoSHL25b.js} +2 -2
  64. package/dist/assets/branding-Cywl-fod.js +54 -0
  65. package/dist/assets/bundle-avatar-BXQsJw7m.js +1 -0
  66. package/dist/assets/button-h00yLUET.js +1 -0
  67. package/dist/assets/{click-to-copy-BGyXQL2i.js → click-to-copy-0s0a7Ak5.js} +1 -1
  68. package/dist/assets/cloneDeep-WT_kDeVd.js +1 -0
  69. package/dist/assets/complete--raviZZ4.js +45 -0
  70. package/dist/assets/{component-5gjaNHCg.js → component-C3maTG8x.js} +82 -75
  71. package/dist/assets/config-Die5cVWR.js +32 -0
  72. package/dist/assets/{config-Bh19ZUJ-.js → config-e3P85n7z.js} +1 -1
  73. package/dist/assets/{config-navigation-Dvjz9nAh.js → config-navigation-DhvlW96p.js} +6 -6
  74. package/dist/assets/config-space-CHI2AzS5.js +1 -0
  75. package/dist/assets/{confirm-DqvNmeoz.js → confirm-BqrhdaU7.js} +2 -2
  76. package/dist/assets/connect-DGOqnhoS.js +5 -0
  77. package/dist/assets/connect-cpTXz6hq.js +1 -0
  78. package/dist/assets/connect-to-C1xSYa-8.js +1 -0
  79. package/dist/assets/{content-layout-BPaAeaMQ.js → content-layout-C3Yd4mK9.js} +1 -1
  80. package/dist/assets/dashboard-CvJ8cVy-.js +280 -0
  81. package/dist/assets/de-D3cg0t9f.js +1 -0
  82. package/dist/assets/de-jJ-wrtW1.js +7 -0
  83. package/dist/assets/{delete-confirm-_BzUlhv2.js → delete-confirm-CmXluMcs.js} +1 -1
  84. package/dist/assets/did-address-C6ni99I7.js +1 -0
  85. package/dist/assets/{domain-ag7_Ivc1.js → domain-B7m2mZGp.js} +1 -1
  86. package/dist/assets/domain-action-card-DIGUxqW7.js +24 -0
  87. package/dist/assets/domains-DV-Gl3-a.js +1 -0
  88. package/dist/assets/{dot-BE1YP292.js → dot-WAAJ-O65.js} +2 -2
  89. package/dist/assets/{email-DKpgximx.js → email-CxndZMem.js} +2 -2
  90. package/dist/assets/{empty-spinner-DmDm8XzF.js → empty-spinner-BYUFR95o.js} +1 -1
  91. package/dist/assets/es-CoGP0eAj.js +7 -0
  92. package/dist/assets/es-DPjqApVE.js +1 -0
  93. package/dist/assets/exchange-passport-JjK-mItt.js +1 -0
  94. package/dist/assets/fr-Dscs9WsP.js +1 -0
  95. package/dist/assets/fr-yctlgsrj.js +7 -0
  96. package/dist/assets/{fuel-CcBzY6Bt.js → fuel-bktBZZhG.js} +1 -1
  97. package/dist/assets/{gen-access-key-DxKwgiGT.js → gen-access-key-CPCwDcVa.js} +1 -1
  98. package/dist/assets/get-safe-url-C-CJKtkC.js +1 -0
  99. package/dist/assets/get-safe-url-cyoeQ7Mw.js +1 -0
  100. package/dist/assets/hi-B8D3j6bs.js +1 -0
  101. package/dist/assets/hi-Dh_pGPBD.js +5 -0
  102. package/dist/assets/{home-Bi8fA3jh.js → home-BclSkhw2.js} +1 -1
  103. package/dist/assets/{id-BderyGO5.js → id-DWMMQI0G.js} +1 -1
  104. package/dist/assets/id-cicarMJv.js +7 -0
  105. package/dist/assets/{iframe-DZ181i8X.js → iframe-DZlnwo40.js} +1 -1
  106. package/dist/assets/{index-CYeIiQ6Q.js → index--MMFwLMX.js} +1 -1
  107. package/dist/assets/index-17ov_POl.js +345 -0
  108. package/dist/assets/index-BAstW3VS.js +137 -0
  109. package/dist/assets/{index-BT0GBmWF.js → index-BUHlfcy3.js} +1 -1
  110. package/dist/assets/{index-DyxFC42L.js → index-Bdi900W2.js} +3 -3
  111. package/dist/assets/index-BhX4Vx5B.js +192 -0
  112. package/dist/assets/{index-SDdS_qt8.js → index-Bt7GP-dU.js} +1 -1
  113. package/dist/assets/index-BugTfB-J.js +288 -0
  114. package/dist/assets/index-C-rU1lEd.js +10 -0
  115. package/dist/assets/index-C0x4zVBW.js +55 -0
  116. package/dist/assets/index-C4pzdyRW.js +1 -0
  117. package/dist/assets/index-C8EYAWok.js +113 -0
  118. package/dist/assets/index-CLD6I2fv.js +6 -0
  119. package/dist/assets/{index-CHbpkZwO.js → index-CMFOn8T3.js} +1 -1
  120. package/dist/assets/index-COTyGW2s.js +4 -0
  121. package/dist/assets/index-CiIQJxvH.js +1 -0
  122. package/dist/assets/index-CksPySYI.js +701 -0
  123. package/dist/assets/{index-DKhrYmrN.js → index-DIe9psLc.js} +1 -1
  124. package/dist/assets/{index-n0Q-fETi.js → index-DJeuTVoT.js} +7 -7
  125. package/dist/assets/{index-YbJjfDTR.js → index-DODYa3Im.js} +1 -1
  126. package/dist/assets/{index-B1ljmpu4.css → index-DOq-_YXu.css} +1 -1
  127. package/dist/assets/{index-CGBZONPv.js → index-D_z5kVUS.js} +1 -1
  128. package/dist/assets/{index-Dl4W1N74.js → index-DdLPuFP7.js} +1 -1
  129. package/dist/assets/index-DxR1P6Lh.js +241 -0
  130. package/dist/assets/index-htPha6tP.js +11 -0
  131. package/dist/assets/{invitation-BrAZQXQL.js → invitation-sucipANy.js} +8 -8
  132. package/dist/assets/invite-Bkpf8YcY.js +1 -0
  133. package/dist/assets/{issue-passport-Dd_yyO08.js → issue-passport-Dm4XKvqR.js} +1 -1
  134. package/dist/assets/item-CCsztPdL.js +2 -0
  135. package/dist/assets/ja-3LoBq68U.js +1 -0
  136. package/dist/assets/ja-Bm56AvcM.js +7 -0
  137. package/dist/assets/ko-B0ZZ2RWO.js +7 -0
  138. package/dist/assets/ko-B2dxwXDl.js +1 -0
  139. package/dist/assets/landing-page-BJMRDSCP.js +1 -0
  140. package/dist/assets/{launch-result-message-C9huWJUf.js → launch-result-message-B_fS-f90.js} +1 -1
  141. package/dist/assets/{layout-Cw-hwCHs.js → layout-DV03YuuA.js} +1 -1
  142. package/dist/assets/list-BgP6u-5j.js +236 -0
  143. package/dist/assets/list-header-8k1_C0K0.js +1 -0
  144. package/dist/assets/localization-CTzQFuMS.js +1 -0
  145. package/dist/assets/{log-Chqr_or_.js → log-B4LRFTNR.js} +1 -1
  146. package/dist/assets/{logger-zix81YaM.js → logger-8RyN9oiF.js} +1 -1
  147. package/dist/assets/login-B6TE3gqj.js +1 -0
  148. package/dist/assets/login-oauth-callback-CPP0UVME.js +1 -0
  149. package/dist/assets/logo-uploader-DMxsEq63.js +133 -0
  150. package/dist/assets/{lost-passport-Do1Pl0xI.js → lost-passport-ekwdQ24A.js} +2 -2
  151. package/dist/assets/lottie-error-CMOXHtBH.js +1 -0
  152. package/dist/assets/lottie-loading-o-GBrhM9.js +1 -0
  153. package/dist/assets/lottie-welcome-C9B95FIi.js +1 -0
  154. package/dist/assets/omit-DNeUY6_X.js +1 -0
  155. package/dist/assets/{open-window-D8MZhu_7.js → open-window-BjXpEOv2.js} +1 -1
  156. package/dist/assets/{overview-DLA9wj6a.js → overview-CJRHh92f.js} +2 -2
  157. package/dist/assets/{page-header-CWY8mxlT.js → page-header-MKUHlyAT.js} +1 -1
  158. package/dist/assets/{passport-item-CWtlyIE_.js → passport-item-jrknj0MQ.js} +1 -1
  159. package/dist/assets/{permission-BGM09622.js → permission-PNXSTeNL.js} +1 -1
  160. package/dist/assets/preferences-9BJlt30G.js +1 -0
  161. package/dist/assets/profile-embed-CIWdUuC6.js +1 -0
  162. package/dist/assets/pt-6Xqu-_a4.js +5 -0
  163. package/dist/assets/pt-eei1_Z4R.js +1 -0
  164. package/dist/assets/publish-resource-BQg2Vwb0.js +1 -0
  165. package/dist/assets/{react-beautiful-dnd.esm-ByydTUk4.js → react-beautiful-dnd.esm-C1Wt0pHO.js} +1 -1
  166. package/dist/assets/relative-time-cijkMMnc.js +1 -0
  167. package/dist/assets/ru-ZKgT6XdU.js +1 -0
  168. package/dist/assets/ru-y0N1jyVB.js +5 -0
  169. package/dist/assets/runtime-71FSw-R0.js +1 -0
  170. package/dist/assets/sdk-BXECCi1q.js +1 -0
  171. package/dist/assets/{security-BhkfG23R.js → security-Y5seZEn6.js} +4 -4
  172. package/dist/assets/session-DLQ0rbYE.js +1 -0
  173. package/dist/assets/setup-4hj9RPfM.js +30 -0
  174. package/dist/assets/{shorten-label-DFzv9EKX.js → shorten-label-SbKUBkvs.js} +1 -1
  175. package/dist/assets/{simple-select-DlrdVbaI.js → simple-select-CLc0Q9sm.js} +1 -1
  176. package/dist/assets/{slicedToArray-CPl5_eGD.js → slicedToArray-C0YDCVwK.js} +2 -2
  177. package/dist/assets/{spaces-WkJCApHO.js → spaces-CP1iyRKS.js} +1 -1
  178. package/dist/assets/start-Bt5Vo3K8.js +187 -0
  179. package/dist/assets/starting-progress-yIv14mT6.js +40 -0
  180. package/dist/assets/{status-CygZ0LuY.js → status-BKlS-OSq.js} +1 -1
  181. package/dist/assets/{step-actions-D_1PFeFs.js → step-actions-DMwF4axn.js} +1 -1
  182. package/dist/assets/{studio-Byjzwg8q.js → studio-BR3c6nt5.js} +1 -1
  183. package/dist/assets/{switch-control-5fEOPVKs.js → switch-control-yJOWKqcv.js} +1 -1
  184. package/dist/assets/th-CG5eLRZo.js +1 -0
  185. package/dist/assets/th-CJa7646q.js +5 -0
  186. package/dist/assets/{traffic-T11hxc--.js → traffic-BzRbyLJ-.js} +1 -1
  187. package/dist/assets/{transfer-ROpxn9LD.js → transfer-Ds9NQ12A.js} +1 -1
  188. package/dist/assets/unsubscribe-hfXD8-ea.js +1 -0
  189. package/dist/assets/use-blocklet-logo-BOYeM9RY.js +1 -0
  190. package/dist/assets/{use-mobile-C_flBrm-.js → use-mobile-BKvZ6hcv.js} +1 -1
  191. package/dist/assets/{use-mobile-DlKplWTG.js → use-mobile-BNUwcWCH.js} +1 -1
  192. package/dist/assets/{useAsync-CGW40D2-.js → useAsync-GjVghrwi.js} +1 -1
  193. package/dist/assets/{useLocalStorage-DldnaMbZ.js → useLocalStorage-CXDkfohf.js} +1 -1
  194. package/dist/assets/user-center-CBh-mxjZ.js +76 -0
  195. package/dist/assets/util-D-LnEy9h.js +1 -0
  196. package/dist/assets/{util-Bjy-tP7q.js → util-DJFgW-07.js} +1 -1
  197. package/dist/assets/{vendor-arcblock-ScFEr-lj.js → vendor-arcblock-Dkhgjlzn.js} +100 -97
  198. package/dist/assets/vendor-hooks-DXGUREV9.js +7 -0
  199. package/dist/assets/vendor-mui-core-B6POpIBB.js +266 -0
  200. package/dist/assets/{vendor-mui-x-B0hsmEJ3.js → vendor-mui-x-CATHW1QL.js} +1 -1
  201. package/dist/assets/{vendor-utils-BNHJB5U7.js → vendor-utils-CjMBJT5V.js} +17 -17
  202. package/dist/assets/vendor-ux-did-connect-D4-ZeZHm.js +2292 -0
  203. package/dist/assets/vi-CoZs3B42.js +1 -0
  204. package/dist/assets/vi-Rc5fwdQU.js +5 -0
  205. package/dist/assets/wrap-locale-Dob_mf2V.js +1 -0
  206. package/dist/assets/zh-CgkeS2I3.js +1 -0
  207. package/dist/assets/{zh-BYRCoK6F.js → zh-J32RyrWT.js} +2 -2
  208. package/dist/assets/zh-tw-BSUxp5LQ.js +7 -0
  209. package/dist/assets/zh-tw-CuakNRcW.js +1 -0
  210. package/dist/index.html +7 -7
  211. package/dist/service-worker.js +2 -2
  212. package/dist/share/shared-bridge.html +85 -0
  213. package/package.json +46 -46
  214. package/dist/assets/access-control-B20P1UrY.js +0 -14
  215. package/dist/assets/add-resource-BoS5YkVy.js +0 -1
  216. package/dist/assets/api-BrU7j0QA.js +0 -1
  217. package/dist/assets/appearance-DYi32tlk.js +0 -1
  218. package/dist/assets/ar-CmhpkjwX.js +0 -1
  219. package/dist/assets/ar-DupP3pla.js +0 -7
  220. package/dist/assets/audit-logs-CydL26ZC.js +0 -35
  221. package/dist/assets/branding-CAMtNLMU.js +0 -54
  222. package/dist/assets/bundle-avatar-D0t7RLGx.js +0 -1
  223. package/dist/assets/button-BeZibzB9.js +0 -1
  224. package/dist/assets/cloneDeep-SfcdeqEN.js +0 -1
  225. package/dist/assets/complete-BzCBoyhn.js +0 -45
  226. package/dist/assets/config-1xq1_d84.js +0 -32
  227. package/dist/assets/config-space-CYg-72ab.js +0 -1
  228. package/dist/assets/connect-Bbc2y5nS.js +0 -1
  229. package/dist/assets/connect-DM2xKEWk.js +0 -5
  230. package/dist/assets/connect-to-Ck5O2M1K.js +0 -1
  231. package/dist/assets/dashboard-8QXGSoVu.js +0 -280
  232. package/dist/assets/de-Doy9B4I7.js +0 -1
  233. package/dist/assets/de-TcDcBkI0.js +0 -7
  234. package/dist/assets/did-address-DUThaBlf.js +0 -1
  235. package/dist/assets/domain-action-card-D3w6jyPR.js +0 -24
  236. package/dist/assets/domains-BDxEOJh6.js +0 -1
  237. package/dist/assets/es-CDD0y3ur.js +0 -7
  238. package/dist/assets/es-CruF8tDk.js +0 -1
  239. package/dist/assets/exchange-passport-Izkf8qpM.js +0 -1
  240. package/dist/assets/fr-Bajh_D8H.js +0 -1
  241. package/dist/assets/fr-zYSSKlBw.js +0 -7
  242. package/dist/assets/get-safe-url-Bq9SFfX6.js +0 -1
  243. package/dist/assets/get-safe-url-DBsPGn--.js +0 -1
  244. package/dist/assets/hi-BsP-0YrU.js +0 -5
  245. package/dist/assets/hi-DOsApYK0.js +0 -1
  246. package/dist/assets/id-CY2FWdMB.js +0 -7
  247. package/dist/assets/index-B2yOcqTl.js +0 -192
  248. package/dist/assets/index-BGgGfqEc.js +0 -346
  249. package/dist/assets/index-B_vrglsK.js +0 -10
  250. package/dist/assets/index-BnmeT4Bk.js +0 -113
  251. package/dist/assets/index-C8QMe2NL.js +0 -138
  252. package/dist/assets/index-Cjjg2_Xp.js +0 -11
  253. package/dist/assets/index-DNG6b9sp.js +0 -224
  254. package/dist/assets/index-DO3_1y-L.js +0 -708
  255. package/dist/assets/index-DO4cSlUf.js +0 -290
  256. package/dist/assets/index-DcBUShKK.js +0 -1
  257. package/dist/assets/index-DuH8q5ir.js +0 -1
  258. package/dist/assets/index-EnQ254k3.js +0 -6
  259. package/dist/assets/index-bb90BUf4.js +0 -55
  260. package/dist/assets/index-mDKG4SiY.js +0 -1
  261. package/dist/assets/index-slEV_y-C.js +0 -4
  262. package/dist/assets/invite-Cbz8B2uW.js +0 -1
  263. package/dist/assets/item-nK3D7WH5.js +0 -2
  264. package/dist/assets/ja-99RIjwwl.js +0 -1
  265. package/dist/assets/ja-BLPXqHM4.js +0 -7
  266. package/dist/assets/ko-8oFi6wHH.js +0 -1
  267. package/dist/assets/ko-Cxgk34co.js +0 -7
  268. package/dist/assets/landing-page-BMM_oJb1.js +0 -1
  269. package/dist/assets/list-Dmtz4mRb.js +0 -235
  270. package/dist/assets/list-header-CgF1S4js.js +0 -1
  271. package/dist/assets/localization-DATb3Y_j.js +0 -1
  272. package/dist/assets/login-DjB23H9M.js +0 -1
  273. package/dist/assets/login-oauth-callback-ILeP59KT.js +0 -1
  274. package/dist/assets/logo-uploader-CJrdpVcQ.js +0 -133
  275. package/dist/assets/omit-bLid3PKQ.js +0 -1
  276. package/dist/assets/preferences-DYdbb0kG.js +0 -1
  277. package/dist/assets/profile-embed-CeEMHxEc.js +0 -1
  278. package/dist/assets/pt-BINIHul4.js +0 -5
  279. package/dist/assets/pt-ChXuTrrd.js +0 -1
  280. package/dist/assets/publish-resource-BEc_A5mC.js +0 -1
  281. package/dist/assets/relative-time-Djw-K4Zu.js +0 -1
  282. package/dist/assets/ru-BifF7u-P.js +0 -5
  283. package/dist/assets/ru-IkTTTY0K.js +0 -1
  284. package/dist/assets/runtime-DXl0lfXF.js +0 -1
  285. package/dist/assets/sdk-CTe6rL6c.js +0 -1
  286. package/dist/assets/session-VIMbdc9j.js +0 -1
  287. package/dist/assets/setup-BmYxTt6Z.js +0 -25
  288. package/dist/assets/start-CVexuuAk.js +0 -187
  289. package/dist/assets/th-CBxM23U5.js +0 -5
  290. package/dist/assets/th-OF8xr--T.js +0 -1
  291. package/dist/assets/unsubscribe-Cd3XOnSp.js +0 -1
  292. package/dist/assets/use-app-logo-B8Kl9EZt.js +0 -1
  293. package/dist/assets/user-center-CzyCbtWm.js +0 -77
  294. package/dist/assets/util-Dw9Eiuko.js +0 -1
  295. package/dist/assets/vendor-hooks-DftG_2gV.js +0 -7
  296. package/dist/assets/vendor-mui-core-CQ38ohp2.js +0 -266
  297. package/dist/assets/vendor-ux-did-connect-BdkhddhO.js +0 -2265
  298. package/dist/assets/vi-DCBJBc4G.js +0 -1
  299. package/dist/assets/vi-DY_Y13jR.js +0 -5
  300. package/dist/assets/wrap-locale-DMTYAE64.js +0 -1
  301. package/dist/assets/zh-BRAYg0sY.js +0 -1
  302. package/dist/assets/zh-tw-BG0rlH8p.js +0 -7
  303. package/dist/assets/zh-tw-D5-DkgwC.js +0 -1
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const jsx_runtime_1 = require("react/jsx-runtime");
4
4
  const components_1 = require("@react-email/components");
5
5
  function Layout({ children, mainStyle = {}, containerStyle = {}, subject, }) {
6
- return ((0, jsx_runtime_1.jsxs)(components_1.Html, { children: [(0, jsx_runtime_1.jsx)(components_1.Head, { children: subject && (0, jsx_runtime_1.jsx)("title", { children: subject }) }), (0, jsx_runtime_1.jsx)(components_1.Body, { style: Object.assign(Object.assign({}, _mainStyle), mainStyle), children: (0, jsx_runtime_1.jsx)("div", { style: Object.assign(Object.assign({}, _mainStyle), mainStyle), children: (0, jsx_runtime_1.jsx)("div", { style: { padding: '30px 20px' }, children: (0, jsx_runtime_1.jsx)(components_1.Container, { style: Object.assign(Object.assign({}, _containerStyle), containerStyle), children: (0, jsx_runtime_1.jsx)("div", { children: children }) }) }) }) })] }));
6
+ return ((0, jsx_runtime_1.jsxs)(components_1.Html, { children: [(0, jsx_runtime_1.jsx)(components_1.Head, { children: subject && (0, jsx_runtime_1.jsx)("title", { children: subject }) }), (0, jsx_runtime_1.jsx)(components_1.Body, { style: Object.assign(Object.assign({}, _mainStyle), mainStyle), children: (0, jsx_runtime_1.jsx)("div", { style: Object.assign(Object.assign({}, _mainStyle), mainStyle), children: (0, jsx_runtime_1.jsx)("div", { style: { padding: '20px 10px' }, children: (0, jsx_runtime_1.jsx)(components_1.Container, { style: Object.assign(Object.assign({}, _containerStyle), containerStyle), children: (0, jsx_runtime_1.jsx)("div", { children: children }) }) }) }) })] }));
7
7
  }
8
8
  exports.default = Layout;
9
9
  const _mainStyle = {
@@ -11,5 +11,5 @@ const _mainStyle = {
11
11
  };
12
12
  const _containerStyle = {
13
13
  margin: '0 auto',
14
- maxWidth: '50em',
14
+ maxWidth: '61.8em',
15
15
  };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.footerStyle = exports.h1Style = exports.attachmentsStyle = exports.severityColorMap = exports.titleStyle = exports.summaryStyle = exports.remarkStyle = exports.assetStyle = exports.actionStyle = exports.actionsStyle = exports.linkStyle = void 0;
3
+ exports.contentStyle = exports.footerStyle = exports.h1Style = exports.attachmentsStyle = exports.severityColorMap = exports.titleStyle = exports.summaryStyle = exports.remarkStyle = exports.assetStyle = exports.actionStyle = exports.actionsStyle = exports.linkStyle = void 0;
4
4
  exports.linkStyle = {
5
5
  color: '#2754C5',
6
6
  fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
@@ -56,9 +56,9 @@ exports.attachmentsStyle = {
56
56
  exports.h1Style = {
57
57
  color: '#333',
58
58
  fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
59
- fontSize: '24px',
59
+ fontSize: '22px',
60
60
  fontWeight: 'bold',
61
- margin: '40px 0',
61
+ margin: '1em 0',
62
62
  padding: '0',
63
63
  };
64
64
  exports.footerStyle = {
@@ -68,3 +68,8 @@ exports.footerStyle = {
68
68
  lineHeight: '22px',
69
69
  margin: 0,
70
70
  };
71
+ exports.contentStyle = {
72
+ margin: '20px auto',
73
+ backgroundColor: '#ffffff',
74
+ padding: '10px 20px 30px 20px',
75
+ };
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.KycCodeVerifyEmail = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const components_1 = require("@react-email/components");
9
+ // @ts-ignore
10
+ const constant_1 = require("@abtnode/constant");
11
+ const footer_1 = __importDefault(require("../_components/footer"));
12
+ const content_1 = __importDefault(require("../_components/content"));
13
+ const layout_1 = __importDefault(require("../_components/layout"));
14
+ const header_1 = __importDefault(require("../_components/header"));
15
+ const verify_code_body_1 = __importDefault(require("./verify-code-body"));
16
+ const style_1 = require("../_libs/style");
17
+ const fontFamily = 'HelveticaNeue,Helvetica,Arial,sans-serif';
18
+ const main = {
19
+ fontFamily,
20
+ };
21
+ const KycCodeVerifyEmail = ({ code, appInfo, locale = 'en', userInfo, poweredBy, }) => {
22
+ const appName = appInfo.title;
23
+ const ttl = constant_1.VERIFY_CODE_TTL / 60 / 1000;
24
+ const translations = {
25
+ en: {
26
+ emailTitle: `Verify Your Email for ${appName}`,
27
+ emailHeadline: '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 NFT in your DID Wallet upon verification.',
28
+ emailValidCode: `This code is valid for ${ttl} minutes. If you don't want to verify your email, you can ignore this message.`,
29
+ emailWarning: `${appName} will never email you and ask you to disclose your password, credit card, or banking account number.`,
30
+ },
31
+ zh: {
32
+ emailTitle: `验证您在 ${appName} 的邮箱`,
33
+ emailHeadline: '为确保您的帐户安全并增强您的体验,您需要使用以下代码验证您的邮箱,并在验证后在您的 DID Wallet 中收到 NFT。',
34
+ emailValidCode: `此代码有效期为 ${ttl} 分钟。如果您不想验证您的邮箱,您可以忽略此消息。`,
35
+ emailWarning: `${appName} 永远不会向您发送电子邮件并要求您披露您的密码、信用卡或银行账户信息。`,
36
+ },
37
+ };
38
+ const translation = translations[locale] || translations.en;
39
+ const subject = `[${appInfo.title}] ${translation.emailTitle}`;
40
+ return ((0, jsx_runtime_1.jsxs)(layout_1.default, { mainStyle: main, subject: subject, children: [(0, jsx_runtime_1.jsx)(components_1.Preview, { children: subject }), (0, jsx_runtime_1.jsx)(header_1.default, { appInfo: appInfo }), (0, jsx_runtime_1.jsx)(content_1.default, { style: style_1.contentStyle, locale: locale, title: translation.emailTitle, body: (0, jsx_runtime_1.jsx)(verify_code_body_1.default, { locale: locale, code: code, appName: appInfo.title, children: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(components_1.Text, { children: translation.emailHeadline }), (0, jsx_runtime_1.jsx)(components_1.Heading, { style: { textAlign: 'center', margin: '1.1em 0' }, children: code }), (0, jsx_runtime_1.jsx)(components_1.Text, { children: translation.emailValidCode }), (0, jsx_runtime_1.jsx)(components_1.Text, { children: translation.emailWarning })] }) }) }), (0, jsx_runtime_1.jsx)(footer_1.default, { showCopyright: false, poweredBy: poweredBy, showBlocklet: true, appInfo: appInfo, locale: locale, userInfo: userInfo })] }));
41
+ };
42
+ exports.KycCodeVerifyEmail = KycCodeVerifyEmail;
43
+ exports.default = exports.KycCodeVerifyEmail;
@@ -10,15 +10,11 @@ const footer_1 = __importDefault(require("../_components/footer"));
10
10
  const content_1 = __importDefault(require("../_components/content"));
11
11
  const layout_1 = __importDefault(require("../_components/layout"));
12
12
  const header_1 = __importDefault(require("../_components/header"));
13
+ const style_1 = require("../_libs/style");
13
14
  const fontFamily = 'HelveticaNeue,Helvetica,Arial,sans-serif';
14
15
  const main = {
15
16
  fontFamily,
16
17
  };
17
- const container = {
18
- margin: '20px auto',
19
- backgroundColor: '#ffffff',
20
- padding: '5px 50px 30px 60px',
21
- };
22
18
  const NewUserSessionEmail = ({ userSession, appInfo, locale = 'en', userInfo, poweredBy, }) => {
23
19
  const translations = {
24
20
  en: {
@@ -39,7 +35,7 @@ const NewUserSessionEmail = ({ userSession, appInfo, locale = 'en', userInfo, po
39
35
  zh: 'zh-CN',
40
36
  };
41
37
  const targetLocale = localeMap[locale] || localeMap.en;
42
- return ((0, jsx_runtime_1.jsxs)(layout_1.default, { mainStyle: main, subject: subject, children: [(0, jsx_runtime_1.jsx)(components_1.Preview, { children: subject }), (0, jsx_runtime_1.jsx)(header_1.default, { appInfo: appInfo }), (0, jsx_runtime_1.jsx)(content_1.default, { style: container, locale: locale, title: translation.title, body: (0, jsx_runtime_1.jsxs)(components_1.Text, { children: ["You are logged in a new device: ", userSession.ua] }), attachments: [
38
+ return ((0, jsx_runtime_1.jsxs)(layout_1.default, { mainStyle: main, subject: subject, children: [(0, jsx_runtime_1.jsx)(components_1.Preview, { children: subject }), (0, jsx_runtime_1.jsx)(header_1.default, { appInfo: appInfo }), (0, jsx_runtime_1.jsx)(content_1.default, { style: style_1.contentStyle, locale: locale, title: translation.title, body: (0, jsx_runtime_1.jsxs)(components_1.Text, { children: ["You are logged in a new device: ", userSession.ua] }), attachments: [
43
39
  {
44
40
  type: 'section',
45
41
  fields: [
@@ -10,18 +10,14 @@ const footer_1 = __importDefault(require("../_components/footer"));
10
10
  const content_1 = __importDefault(require("../_components/content"));
11
11
  const layout_1 = __importDefault(require("../_components/layout"));
12
12
  const header_1 = __importDefault(require("../_components/header"));
13
+ const style_1 = require("../_libs/style");
13
14
  const fontFamily = 'HelveticaNeue,Helvetica,Arial,sans-serif';
14
15
  const main = {
15
16
  fontFamily,
16
17
  };
17
- const container = {
18
- margin: '20px auto',
19
- backgroundColor: '#ffffff',
20
- padding: '5px 50px 30px 60px',
21
- };
22
18
  const NotificationEmail = ({ title, body = '', raw = false, // do not convert body to clickable span
23
19
  subject, attachments = [], actions = [], appInfo, locale = 'en', severity = 'normal', unsubscribeToken, userInfo, poweredBy, }) => {
24
- return ((0, jsx_runtime_1.jsxs)(layout_1.default, { mainStyle: main, subject: subject, children: [(0, jsx_runtime_1.jsx)(components_1.Preview, { children: subject }), (0, jsx_runtime_1.jsx)(header_1.default, { appInfo: appInfo }), (0, jsx_runtime_1.jsx)(content_1.default, { style: container, title: title, content: body, attachments: attachments, actions: actions, locale: locale, severity: severity, raw: raw }), (0, jsx_runtime_1.jsx)(footer_1.default, { showCopyright: false, poweredBy: poweredBy, showBlocklet: true, appInfo: appInfo, locale: locale, unsubscribeToken: unsubscribeToken, userInfo: userInfo })] }));
20
+ return ((0, jsx_runtime_1.jsxs)(layout_1.default, { mainStyle: main, subject: subject, children: [(0, jsx_runtime_1.jsx)(components_1.Preview, { children: subject }), (0, jsx_runtime_1.jsx)(header_1.default, { appInfo: appInfo }), (0, jsx_runtime_1.jsx)(content_1.default, { style: style_1.contentStyle, title: title, content: body, attachments: attachments, actions: actions, locale: locale, severity: severity, raw: raw }), (0, jsx_runtime_1.jsx)(footer_1.default, { showCopyright: false, poweredBy: poweredBy, showBlocklet: true, appInfo: appInfo, locale: locale, unsubscribeToken: unsubscribeToken, userInfo: userInfo })] }));
25
21
  };
26
22
  exports.NotificationEmail = NotificationEmail;
27
23
  exports.default = exports.NotificationEmail;
@@ -10,7 +10,7 @@ const components_1 = require("@react-email/components");
10
10
  const constant_1 = require("@abtnode/constant");
11
11
  const actions_1 = __importDefault(require("../_components/actions"));
12
12
  // HACK: 只是短暂为了兼容现有 launcher 转发逻辑
13
- function VerifyCodeBody({ appName, locale = 'en', code, magicLink, }) {
13
+ function VerifyCodeBody({ appName, locale = 'en', code, magicLink, children, }) {
14
14
  const translations = {
15
15
  en: {
16
16
  title: `Login to ${appName}`,
@@ -36,6 +36,9 @@ function VerifyCodeBody({ appName, locale = 'en', code, magicLink, }) {
36
36
  },
37
37
  };
38
38
  const translation = translations[locale] || translations.en;
39
+ if (children) {
40
+ return children;
41
+ }
39
42
  if (code && magicLink) {
40
43
  return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(components_1.Text, { children: translation.followConfirmation }), (0, jsx_runtime_1.jsx)(actions_1.default, { actions: [{ title: translation.confirmButton, link: magicLink }] }), (0, jsx_runtime_1.jsx)(components_1.Hr, {}), (0, jsx_runtime_1.jsxs)(components_1.Text, { children: [translation.orEnterCode, (0, jsx_runtime_1.jsx)("strong", { children: code })] }), (0, jsx_runtime_1.jsx)(components_1.Text, { children: translation.codeExpiresIn }), (0, jsx_runtime_1.jsxs)(components_1.Text, { children: [(0, jsx_runtime_1.jsx)("strong", { children: translation.doNotShareCodeTitle }), " ", translation.doNotShareCode] })] }));
41
44
  }
@@ -11,15 +11,11 @@ const content_1 = __importDefault(require("../_components/content"));
11
11
  const layout_1 = __importDefault(require("../_components/layout"));
12
12
  const header_1 = __importDefault(require("../_components/header"));
13
13
  const verify_code_body_1 = __importDefault(require("./verify-code-body"));
14
+ const style_1 = require("../_libs/style");
14
15
  const fontFamily = 'HelveticaNeue,Helvetica,Arial,sans-serif';
15
16
  const main = {
16
17
  fontFamily,
17
18
  };
18
- const container = {
19
- margin: '20px auto',
20
- backgroundColor: '#ffffff',
21
- padding: '5px 50px 30px 60px',
22
- };
23
19
  const VerifyCodeEmail = ({ code, magicLink, appInfo, locale = 'en', userInfo, poweredBy, }) => {
24
20
  const translations = {
25
21
  en: {
@@ -31,7 +27,7 @@ const VerifyCodeEmail = ({ code, magicLink, appInfo, locale = 'en', userInfo, po
31
27
  };
32
28
  const translation = translations[locale] || translations.en;
33
29
  const subject = `[${appInfo.title}] ${translation.title}`;
34
- return ((0, jsx_runtime_1.jsxs)(layout_1.default, { mainStyle: main, subject: subject, children: [(0, jsx_runtime_1.jsx)(components_1.Preview, { children: subject }), (0, jsx_runtime_1.jsx)(header_1.default, { appInfo: appInfo }), (0, jsx_runtime_1.jsx)(content_1.default, { style: container, locale: locale, title: translation.title, body: (0, jsx_runtime_1.jsx)(verify_code_body_1.default, { locale: locale, code: code, magicLink: magicLink, appName: appInfo.title }) }), (0, jsx_runtime_1.jsx)(footer_1.default, { showCopyright: false, poweredBy: poweredBy, showBlocklet: true, appInfo: appInfo, locale: locale, userInfo: userInfo })] }));
30
+ return ((0, jsx_runtime_1.jsxs)(layout_1.default, { mainStyle: main, subject: subject, children: [(0, jsx_runtime_1.jsx)(components_1.Preview, { children: subject }), (0, jsx_runtime_1.jsx)(header_1.default, { appInfo: appInfo }), (0, jsx_runtime_1.jsx)(content_1.default, { style: style_1.contentStyle, locale: locale, title: translation.title, body: (0, jsx_runtime_1.jsx)(verify_code_body_1.default, { locale: locale, code: code, magicLink: magicLink, appName: appInfo.title }) }), (0, jsx_runtime_1.jsx)(footer_1.default, { showCopyright: false, poweredBy: poweredBy, showBlocklet: true, appInfo: appInfo, locale: locale, userInfo: userInfo })] }));
35
31
  };
36
32
  exports.VerifyCodeEmail = VerifyCodeEmail;
37
33
  exports.default = exports.VerifyCodeEmail;
package/api/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  const http = require('http');
2
+ const path = require('path');
2
3
  const get = require('lodash/get');
3
4
  const omitBy = require('lodash/omitBy');
4
5
  const uniq = require('lodash/uniq');
@@ -84,6 +85,7 @@ const createMediaRoutes = require('./routes/media');
84
85
  const createMCPRoutes = require('./routes/mcp');
85
86
  const ensureBlocklet = require('./middlewares/ensure-blocklet');
86
87
  const bodyParser = require('./middlewares/body-parser');
88
+ const federatedUtil = require('./util/federated');
87
89
 
88
90
  const agent = new http.Agent();
89
91
 
@@ -302,7 +304,22 @@ module.exports = function createServer(node, serverOptions = {}) {
302
304
  async function wrapHelmet({ req, res, securityConfig, blocklet, info }, next) {
303
305
  let config = securityConfig?.responseHeaderPolicy?.securityHeader || {};
304
306
  config = cleanConfigOverride(config);
305
- config = await patchResponseHeader(config, { node, blocklet });
307
+ const referer = req.get('referer');
308
+ // NOTICE: 获取当前站点所有可信的域名
309
+ const trustedDomains = await federatedUtil.getTrustedDomains({ node, req, blocklet });
310
+ // 为了避免 header 过大,这里仅保留 referer 的域名
311
+ const filteredTrustedDomains = trustedDomains.filter((x) => {
312
+ if (referer) {
313
+ try {
314
+ const refererUrl = new URL(referer);
315
+ return refererUrl.hostname === x;
316
+ } catch (err) {
317
+ logger.error('Failed to parse referer', { referer, err });
318
+ }
319
+ }
320
+ return false;
321
+ });
322
+ config = await patchResponseHeader(config, { node, blocklet, trustedDomains: filteredTrustedDomains });
306
323
 
307
324
  // TODO: @zhanghan apply these to user defined rules
308
325
  if (
@@ -419,7 +436,12 @@ module.exports = function createServer(node, serverOptions = {}) {
419
436
  'https://*.vimeo.com',
420
437
  ...whitelist.official,
421
438
  ].filter(Boolean),
422
- frameAncestors: ["'self'", ...whitelist.spaces, ...whitelist.official].filter(Boolean),
439
+ frameAncestors: [
440
+ "'self'",
441
+ ...whitelist.spaces,
442
+ ...whitelist.official,
443
+ ...filteredTrustedDomains.filter(Boolean).map((x) => `https://${x}`),
444
+ ].filter(Boolean),
423
445
  },
424
446
  };
425
447
  }
@@ -492,6 +514,11 @@ module.exports = function createServer(node, serverOptions = {}) {
492
514
  next();
493
515
  });
494
516
 
517
+ // 该接口不需要经过 security 中间件
518
+ server.get(`${WELLKNOWN_SERVICE_PATH_PREFIX}/share/shared-bridge.html`, (req, res) => {
519
+ res.sendFile(path.join(__dirname, '../dist', 'share', 'shared-bridge.html'));
520
+ });
521
+
495
522
  // 提供统一的 service-worker 注册入口,优先采用 service 自己提供的逻辑,尽量不依赖 Nginx 配置
496
523
  server.use(
497
524
  [
@@ -544,8 +571,10 @@ self.blocklet = {
544
571
  whiteList: [
545
572
  '/favicon.ico',
546
573
  '/.well-known/service/blocklet/logo',
574
+ '/.well-known/service/blocklet/logo-dark',
547
575
  '/.well-known/service/blocklet/logo-favicon',
548
576
  '/.well-known/service/blocklet/logo-rect',
577
+ '/.well-known/service/blocklet/logo-rect-dark',
549
578
  '/.well-known/service/blocklet/splash/portrait',
550
579
  '/.well-known/service/blocklet/splash/landscape',
551
580
  '/.well-known/service/openembed.json',
@@ -287,7 +287,8 @@ module.exports = {
287
287
  trustedIssuers: await getTrustedIssuers(blocklet, { sourceAppPid }),
288
288
  optional: !isInvitedUserOnly,
289
289
  claimUrl: getPassportClaimUrl(baseUrl),
290
- ownerDid: [userDid],
290
+ // 此限制会导致无法正常配置的信任通行证,暂时去掉此条件
291
+ // ownerDid: [userDid],
291
292
  };
292
293
  if (passportId) {
293
294
  passportClaim.target = passportId;
@@ -983,7 +984,8 @@ module.exports = {
983
984
  trustedIssuers: await getTrustedIssuers(blocklet, { sourceAppPid }),
984
985
  optional: !isInvitedUserOnly,
985
986
  claimUrl: getPassportClaimUrl(baseUrl),
986
- ownerDid: [userDid],
987
+ // 此限制会导致无法正常配置的信任通行证,暂时去掉此条件
988
+ // ownerDid: [userDid],
987
989
  },
988
990
  };
989
991
  },
package/api/libs/email.js CHANGED
@@ -7,6 +7,7 @@ const { sendEmailWithLauncher } = require('@abtnode/auth/lib/launcher');
7
7
  const logger = require('./logger')('blocklet-services:notification');
8
8
  const { NotificationEmail } = require('../emails/_templates/notification');
9
9
  const { VerifyCodeEmail } = require('../emails/_templates/verify-code');
10
+ const { KycCodeVerifyEmail } = require('../emails/_templates/kyc-code-verify');
10
11
  const cache = require('../cache');
11
12
 
12
13
  const schemaEmail = Joi.string().email().required();
@@ -97,6 +98,21 @@ async function sendEmail(
97
98
  },
98
99
  })
99
100
  );
101
+ } else if (template === 'kyc-code-verify') {
102
+ html = await render(
103
+ KycCodeVerifyEmail({
104
+ subject,
105
+ appInfo,
106
+ ...notification,
107
+ locale,
108
+ raw,
109
+ unsubscribeToken,
110
+ userInfo: {
111
+ ...userInfo,
112
+ email: receiver,
113
+ },
114
+ })
115
+ );
100
116
  }
101
117
  } catch (err) {
102
118
  logger.error('Failed to render email template:', err);
@@ -1,4 +1,4 @@
1
- function ensureBlocklet({ useCache = false } = {}) {
1
+ function ensureBlocklet({ useCache = true } = {}) {
2
2
  return async (req, res, next) => {
3
3
  const blocklet = await req.getBlocklet({ useCache });
4
4
  if (!blocklet) {
@@ -21,6 +21,8 @@ const {
21
21
  ensureDefaultLogo,
22
22
  ensureCustomFavicon,
23
23
  ensureCustomRectLogo,
24
+ ensureCustomRectDarkLogo,
25
+ ensureCustomSquareDarkLogo,
24
26
  fallbackLogo,
25
27
  cacheError,
26
28
  } = require('@abtnode/util/lib/logo-middleware');
@@ -91,29 +93,36 @@ module.exports = {
91
93
  next();
92
94
  };
93
95
 
94
- const logoWorkflow = (...chain) => [
95
- attachSendLogoContext({
96
- onSendFallbackLogo,
97
- onGetBlocklet: ({ req }) => {
98
- return req.getBlocklet();
99
- },
100
- }),
101
- attachSendLogoFn,
102
- ensureBlockletExist,
103
- ...chain,
104
- ensureCustomSquareLogo,
105
- ensureBundleLogo,
106
- ensureDefaultLogo,
107
- fallbackLogo,
108
- cacheError,
109
- ];
96
+ const logoWorkflow = (...chain) => {
97
+ return [
98
+ attachSendLogoContext({
99
+ onSendFallbackLogo,
100
+ onGetBlocklet: ({ req }) => {
101
+ return req.getBlocklet();
102
+ },
103
+ }),
104
+ attachSendLogoFn,
105
+ ensureBlockletExist,
106
+ ...chain,
107
+ ensureCustomSquareLogo,
108
+ ensureBundleLogo,
109
+ ensureDefaultLogo,
110
+ fallbackLogo,
111
+ cacheError,
112
+ ].filter(Boolean);
113
+ };
110
114
 
111
115
  server.get(`${prefix}/blocklet/logo`, ...logoWorkflow());
116
+ server.get(`${prefix}/blocklet/logo-dark`, ...logoWorkflow(ensureCustomSquareDarkLogo));
112
117
 
113
118
  ['/favicon.ico', `${prefix}/blocklet/favicon`, `${prefix}/blocklet/logo-favicon`].forEach((x) => {
114
119
  server.get(x, ...logoWorkflow(ensureCustomFavicon));
115
120
  });
116
121
  server.get(`${prefix}/blocklet/logo-rect`, ...logoWorkflow(ensureCustomRectLogo));
122
+ server.get(
123
+ `${prefix}/blocklet/logo-rect-dark`,
124
+ ...logoWorkflow(ensureCustomRectDarkLogo, ensureCustomSquareDarkLogo)
125
+ );
117
126
 
118
127
  server.get(
119
128
  `${prefix}/blocklet/logo-bundle/?**`,
@@ -201,7 +210,7 @@ module.exports = {
201
210
  did: blocklet.meta.did,
202
211
  checkHealthImmediately: true,
203
212
  throwOnError: true,
204
- atomic: true,
213
+ atomic: false,
205
214
  });
206
215
  } catch (error) {
207
216
  startError = error;
@@ -27,7 +27,7 @@ module.exports = {
27
27
  const data = await chainClient.listAssets({
28
28
  ownerAddress,
29
29
  paging: {
30
- cursor: page - 1 < 0 ? 0 : page - 1,
30
+ cursor: `${Math.max(0, page - 1) * (size || 20)}`,
31
31
  size: size || 20,
32
32
  },
33
33
  });
@@ -100,8 +100,10 @@ async function patchUserSessionData(userSession, { blocklet, appPid, teamDid, no
100
100
  title: userSession.user.role,
101
101
  };
102
102
  }
103
- userSession.user.role = passport?.role || 'guest';
104
- userSession.user.roleTitle = passport?.title || 'guest';
103
+ const roles = await node.getRoles({ teamDid });
104
+ const findPassport = roles.find((x) => x.name === passport?.role);
105
+ userSession.user.role = findPassport?.name || passport?.role || 'guest';
106
+ userSession.user.roleTitle = findPassport?.title || passport?.title || 'guest';
105
107
  }
106
108
 
107
109
  const loginSessionSchema = Joi.object({
@@ -698,7 +698,7 @@ const profileSetSchema = Joi.object({
698
698
  email: Joi.string().email().optional(),
699
699
  phone: Joi.object({
700
700
  phoneNumber: Joi.string().allow('').optional(),
701
- country: Joi.string().optional(),
701
+ country: Joi.string().allow('').optional(),
702
702
  }).optional(),
703
703
  bio: Joi.string().allow('').max(200).optional(),
704
704
  timezone: Joi.string().allow('').optional(),
@@ -48,7 +48,6 @@ const translations = {
48
48
 
49
49
  const t = createTranslator({ translations });
50
50
 
51
- const unReadCountCache = new SingleFlightLRUCache({ max: 10 * 10000, ttl: 1000 * 60 });
52
51
  const signSessionResponseCache = new SingleFlightLRUCache({ max: 10000, ttl: 1000 * 60 });
53
52
 
54
53
  const getUnreadNotificationCount = ({ teamDid, receiver }, node) => {
@@ -56,12 +55,9 @@ const getUnreadNotificationCount = ({ teamDid, receiver }, node) => {
56
55
  return 0;
57
56
  }
58
57
 
59
- const cacheKey = `${teamDid}:${receiver}`;
60
- return unReadCountCache.autoCache(cacheKey, () => {
61
- return node.getNotificationsUnreadCount({
62
- teamDid,
63
- receiver,
64
- });
58
+ return node.getNotificationsUnreadCount({
59
+ teamDid,
60
+ receiver,
65
61
  });
66
62
  };
67
63
 
@@ -129,9 +125,18 @@ module.exports = {
129
125
  }
130
126
  }
131
127
 
128
+ const roles = await node.getRoles({ teamDid });
129
+
132
130
  user.passports = (user.passports || [])
133
131
  .filter((x) => x.status === PASSPORT_STATUS.VALID)
134
- .map((x) => pick(x, ['id', 'name', 'title', 'role', 'scope', 'role', 'issuer', 'display']));
132
+ .map((x) => {
133
+ const item = pick(x, ['id', 'name', 'title', 'role', 'scope', 'role', 'issuer', 'display']);
134
+ const findPassport = roles.find((y) => y.name === item.role);
135
+ item.name = findPassport?.name || item.name || 'guest';
136
+ item.role = findPassport?.name || item.role || 'guest';
137
+ item.title = findPassport?.title || item.title || 'guest';
138
+ return item;
139
+ });
135
140
 
136
141
  const updateUserSessionData = getUpdateUserSessionData({ req });
137
142
  if (Object.keys(updateUserSessionData).length > 0) {
@@ -295,8 +300,8 @@ module.exports = {
295
300
  const teamDid = req.getBlockletDid();
296
301
  const visitorId = req.get('x-blocklet-visitor-id');
297
302
  const ua = req.get('user-agent');
298
- // HACK: BlockletSDK 来的请求不需要检查 visitorId
299
- if (!ua.includes('BlockletSDK/')) {
303
+ // HACK: BlockletSDK 和 Aistro 来的请求不需要检查 visitorId
304
+ if (!(ua.includes('BlockletSDK/') || ua.toLowerCase().includes('aistro/'))) {
300
305
  if (!visitorId) {
301
306
  res.status(400).send(t('userSessionLogout', req.blockletLocale));
302
307
  return;
@@ -1,5 +1,5 @@
1
1
  const { verifyRequest } = require('@blocklet/did-space-js');
2
- const { WELLKNOWN_SERVICE_PATH_PREFIX, VERIFY_CODE_TTL } = require('@abtnode/constant');
2
+ const { WELLKNOWN_SERVICE_PATH_PREFIX } = require('@abtnode/constant');
3
3
  const createTranslator = require('@abtnode/util/lib/translate');
4
4
 
5
5
  const { emailSchema } = require('../../socket/channel/did');
@@ -23,10 +23,7 @@ const translations = {
23
23
  emailTitle: 'Verify Your Email for {appName}',
24
24
  emailHeadline:
25
25
  '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 NFT in your DID Wallet upon verification.',
26
- emailValidCode:
27
- "This code is valid for {ttl} minutes. If you don't want to verify your email, you can ignore this message.",
28
- emailWarning:
29
- '{appName} will never email you and ask you to disclose your password, credit card, or banking account number.',
26
+
30
27
  userNotFound: 'User not found',
31
28
  },
32
29
  zh: {
@@ -40,8 +37,6 @@ const translations = {
40
37
  emailTitle: '验证您在 {appName} 的邮箱',
41
38
  emailHeadline:
42
39
  '为确保您的帐户安全并增强您的体验,您需要使用以下代码验证您的邮箱,并在验证后在您的 DID Wallet 中收到 NFT。',
43
- emailValidCode: '此代码有效期为 {ttl} 分钟。如果您不想验证您的邮箱,您可以忽略此消息。',
44
- emailWarning: '{appName} 永远不会向您发送电子邮件并要求您披露您的密码、信用卡或银行账户信息。',
45
40
  userNotFound: '用户不存在',
46
41
  },
47
42
  };
@@ -102,11 +97,9 @@ const init = ({ node }) => {
102
97
  const result = await sendEmail(
103
98
  subject,
104
99
  {
100
+ code: doc.code,
105
101
  title: t('emailTitle', locale, { appName: info.name }),
106
- body: `<p style="font-size:14px;line-height:24px;margin:16px 0;">${t('emailHeadline', locale)}</p>
107
- <p style="font-size:36px; line-height:24px; color: #333; font-weight: bold; text-align: center;">${doc.code}</p>
108
- <p style="font-size:14px;line-height:24px;margin:16px 0;">${t('emailValidCode', locale, { ttl: VERIFY_CODE_TTL / 60 / 1000 })}</p>
109
- <p style="font-size:14px;line-height:24px;margin:16px 0;">${t('emailWarning', locale, { appName: info.name })}</p>`,
102
+ body: t('emailHeadline', locale),
110
103
  },
111
104
  {
112
105
  teamDid,
@@ -114,6 +107,7 @@ const init = ({ node }) => {
114
107
  locale: req.query.locale,
115
108
  raw: true,
116
109
  launcher: true,
110
+ template: 'kyc-code-verify',
117
111
  }
118
112
  );
119
113
  logger.info('send verify code', { teamDid, result });
@@ -1,3 +1,3 @@
1
- import{_ as dt}from"./vendor-mui-core-CQ38ohp2.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-BdkhddhO.js";import{b as ct}from"./vendor-mui-x-B0hsmEJ3.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(`
1
+ import{_ as dt}from"./vendor-mui-core-B6POpIBB.js";import{a as f}from"./vendor-utils-CjMBJT5V.js";import{e as Q,g as R}from"./vendor-react-DEoibe3W.js";import{W as ft}from"./vendor-ux-did-connect-D4-ZeZHm.js";import{b as ct}from"./vendor-mui-x-CATHW1QL.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),E=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||(E||B?1:$.getDate()),Z=E||$.getFullYear(),F=0;E&&!B||(F=B>0?B-1:$.getMonth());var W,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,_)):(W=new Date(Z,F,N,v,V,J,_),q&&(W=I(W).week(q).toDate()),W)}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-CQ38ohp2.js";import{r as a}from"./vendor-ux-did-connect-BdkhddhO.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
+ import{a9 as e,j as t}from"./vendor-mui-core-B6POpIBB.js";import{r as a}from"./vendor-ux-did-connect-D4-ZeZHm.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-CQ38ohp2.js";import{r as a}from"./vendor-ux-did-connect-BdkhddhO.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
+ import{a9 as r,j as t}from"./vendor-mui-core-B6POpIBB.js";import{r as a}from"./vendor-ux-did-connect-D4-ZeZHm.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-CQ38ohp2.js";import{r as a}from"./vendor-ux-did-connect-BdkhddhO.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
+ import{a9 as r,j as t}from"./vendor-mui-core-B6POpIBB.js";import{r as a}from"./vendor-ux-did-connect-D4-ZeZHm.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-CQ38ohp2.js";import{r as a}from"./vendor-ux-did-connect-BdkhddhO.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};
1
+ import{a9 as r,j as t}from"./vendor-mui-core-B6POpIBB.js";import{r as a}from"./vendor-ux-did-connect-D4-ZeZHm.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};