@abtnode/blocklet-services 1.16.52-beta-20251002-030549-0f91dab2 → 1.16.52-beta-20251005-235515-42ad5caf

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 (257) hide show
  1. package/api/libs/connect/session.js +49 -37
  2. package/api/middlewares/check-running.js +9 -8
  3. package/api/middlewares/ensure-org-enabled.js +17 -0
  4. package/api/routes/blocklet.js +3 -3
  5. package/api/routes/user-session.js +1 -1
  6. package/api/routes/user.js +177 -3
  7. package/api/services/auth/connect/invite.js +1 -1
  8. package/api/services/auth/connect/issue-passport.js +1 -1
  9. package/api/services/auth/connect/switch-passport.js +2 -1
  10. package/api/services/auth/session.js +35 -3
  11. package/dist/assets/{AdapterDayjs-CAaLcejt.js → AdapterDayjs-wck-CfDF.js} +1 -1
  12. package/dist/assets/{Google-BMeng9mn.js → Google-BFauCF2k.js} +1 -1
  13. package/dist/assets/{access-control-Cw0_MVFj.js → access-control-0wy7XAQb.js} +1 -1
  14. package/dist/assets/{actions-DbBJOD0d.js → actions-B4VXcSRp.js} +1 -1
  15. package/dist/assets/{add-component-core-B4fftW3o.js → add-component-core-BM7p_09p.js} +23 -23
  16. package/dist/assets/add-resource-DbQFT7Gg.js +1 -0
  17. package/dist/assets/{addon-CBAld8jW.js → addon-CUvC0k6Y.js} +1 -1
  18. package/dist/assets/{advanced-DPeAQM5T.js → advanced-BhCewgzQ.js} +3 -3
  19. package/dist/assets/{aigne-DD21HBlT.js → aigne-BQckonxP.js} +1 -1
  20. package/dist/assets/api-rC33aBSs.js +1 -0
  21. package/dist/assets/{appearance-CwcRjBdx.js → appearance-CjrhZWhd.js} +1 -1
  22. package/dist/assets/ar-CHd3xUx5.js +7 -0
  23. package/dist/assets/{arrow-down.svg-B1ffj_Bi.js → arrow-down.svg-f3YCmAji.js} +1 -1
  24. package/dist/assets/{audit-logs-CIL7B8dX.js → audit-logs-CASGp36e.js} +2 -2
  25. package/dist/assets/{authorize-DPXeAf_q.js → authorize-CkVYs-vE.js} +1 -1
  26. package/dist/assets/{base-chart-BbbiwJIa.js → base-chart-UFWO9a3P.js} +1 -1
  27. package/dist/assets/{base32-CgLd9kUN.js → base32-Cyneng4p.js} +1 -1
  28. package/dist/assets/{bind-account-Ci1GnBqL.js → bind-account-D6KenxOW.js} +1 -1
  29. package/dist/assets/{branding-Y62inJ9A.js → branding-BVr5wVa5.js} +5 -5
  30. package/dist/assets/{branding-CGCnGFEE.js → branding-CHhPscOd.js} +2 -2
  31. package/dist/assets/branding-DLDF3ZZP.js +1 -0
  32. package/dist/assets/{bundle-avatar-BrBIjq4r.js → bundle-avatar-BpummNxa.js} +1 -1
  33. package/dist/assets/button-DGHIlhos.js +1 -0
  34. package/dist/assets/{click-to-copy-CVHuu877.js → click-to-copy-B379bwP3.js} +1 -1
  35. package/dist/assets/{cloneDeep-E2Pxqpbv.js → cloneDeep-LRq4Ya2k.js} +1 -1
  36. package/dist/assets/{collapse-DhGi244c.js → collapse-DJGzUM1Q.js} +1 -1
  37. package/dist/assets/complete-CQkeXJPL.js +39 -0
  38. package/dist/assets/{component-M75sOZuG.js → component-DWN2cI-c.js} +34 -34
  39. package/dist/assets/{config-Bshk_mlq.js → config-BgdQYz7Z.js} +2 -2
  40. package/dist/assets/{config-BASOtMEK.js → config-CPB45HHq.js} +4 -4
  41. package/dist/assets/{config-BOttfQk3.js → config-CRxOjKmb.js} +1 -1
  42. package/dist/assets/config-navigation-D1TBA90f.js +40 -0
  43. package/dist/assets/config-space-DpOC6rFp.js +1 -0
  44. package/dist/assets/{confirm-LpOyjg-M.js → confirm-BfJfcPyj.js} +1 -1
  45. package/dist/assets/{connect-A31Nzurl.js → connect-BbLXTlyu.js} +1 -1
  46. package/dist/assets/{connect-DEe_baYC.js → connect-ZcwxKVuN.js} +1 -1
  47. package/dist/assets/{connect-to-Cco6-qou.js → connect-to-Skv-ek56.js} +1 -1
  48. package/dist/assets/{content-layout-CaGd-JXO.js → content-layout-B9tc9LCL.js} +1 -1
  49. package/dist/assets/create-passport-svg-DosyhcHP.js +1 -0
  50. package/dist/assets/{createClass-BuhPvJV8.js → createClass-HFwzUuOB.js} +1 -1
  51. package/dist/assets/dashboard-DJ6Tc_2L.js +106 -0
  52. package/dist/assets/de-CD44Obtw.js +7 -0
  53. package/dist/assets/{delete-confirm-V3_sRk8l.js → delete-confirm-DNg1Z1xV.js} +1 -1
  54. package/dist/assets/{did-address-CeTjTMC4.js → did-address-Dbg_LiWL.js} +1 -1
  55. package/dist/assets/{domain-B9OATbrX.js → domain-3JvbKqlt.js} +1 -1
  56. package/dist/assets/{domain-action-card-D-_-tvd3.js → domain-action-card-BixPviaZ.js} +2 -2
  57. package/dist/assets/domains-D8QMeppe.js +1 -0
  58. package/dist/assets/{email-BpimKMdd.js → email-C6m1mnbN.js} +1 -1
  59. package/dist/assets/{empty-spinner-CkCqfxFX.js → empty-spinner-LXNYl6_1.js} +1 -1
  60. package/dist/assets/engine-DkWTqqhM.js +1 -0
  61. package/dist/assets/es-DNFAt0y7.js +9 -0
  62. package/dist/assets/{exchange-passport-XYv5fxqy.js → exchange-passport-BraV0EOe.js} +1 -1
  63. package/dist/assets/{form-CHueGgAz.js → form-BIoto8u8.js} +1 -1
  64. package/dist/assets/form-text-input-BgpOkOYh.js +11 -0
  65. package/dist/assets/{form-wrapper-DNqXvSru.js → form-wrapper-Dt1iJZge.js} +1 -1
  66. package/dist/assets/fr-C9xE9tD4.js +7 -0
  67. package/dist/assets/{fuel-CfnN-Pjf.js → fuel-Dwo_gklT.js} +1 -1
  68. package/dist/assets/gen-access-key-DuRApUI5.js +1 -0
  69. package/dist/assets/{gen-simple-access-key-EujuCaoZ.js → gen-simple-access-key-xXyYChfi.js} +1 -1
  70. package/dist/assets/get-safe-url-HFT553nb.js +1 -0
  71. package/dist/assets/hi-D_0DFJcS.js +5 -0
  72. package/dist/assets/{home-CSzo40aP.js → home-D0rR9_38.js} +1 -1
  73. package/dist/assets/id-BgJjfH2L.js +7 -0
  74. package/dist/assets/iframe-COascK-f.js +1 -0
  75. package/dist/assets/{index-Dr9NaKfR.js → index-3ePiAFIp.js} +1 -1
  76. package/dist/assets/{index-BjcHj49D.js → index-A5fXAFXl.js} +1 -1
  77. package/dist/assets/{index-BC0KaiLK.js → index-AMzbVwE1.js} +1 -1
  78. package/dist/assets/{index-C_YGTMJ4.js → index-B3o5bPY9.js} +1 -1
  79. package/dist/assets/{index-DZkt7K0r.js → index-BAMrdOx5.js} +1 -1
  80. package/dist/assets/{index-BVRSxJRS.js → index-BO080WnZ.js} +1 -1
  81. package/dist/assets/index-BU5Qj_Uf.js +93 -0
  82. package/dist/assets/index-BiMTr9N1.js +6 -0
  83. package/dist/assets/index-BkMwz7Ha.js +281 -0
  84. package/dist/assets/{index-DOo8QRm-.js → index-BoF74OVD.js} +12 -12
  85. package/dist/assets/{index-6IwthDxj.js → index-BrrIKxMS.js} +1 -1
  86. package/dist/assets/{index-3xeMR-Qg.js → index-Bx-RW9vi.js} +1 -1
  87. package/dist/assets/{index-IN8OKZ_V.js → index-CARCeLG0.js} +2 -2
  88. package/dist/assets/index-CX8XMi66.js +1 -0
  89. package/dist/assets/{index-CX0nBp11.js → index-CjUelepA.js} +1 -1
  90. package/dist/assets/{index-C-QPG4ba.js → index-Cv0WQg6r.js} +3 -3
  91. package/dist/assets/{index-D04UESXe.js → index-DKQpQSIL.js} +2 -2
  92. package/dist/assets/index-DKp1VidC.js +7 -0
  93. package/dist/assets/index-DOTZtBXk.js +113 -0
  94. package/dist/assets/{index-ZXxjnrfz.js → index-DXDOA6wf.js} +2 -2
  95. package/dist/assets/{index-iIT2_Y_I.js → index-DcGTEgwU.js} +4 -4
  96. package/dist/assets/index-DnsQF6x_.js +1 -0
  97. package/dist/assets/{index-COFNyzYu.js → index-Ds4S1_JK.js} +3 -3
  98. package/dist/assets/index-DsZw1jDU.js +1039 -0
  99. package/dist/assets/{index-DbXxI_D0.js → index-IYdn8PnM.js} +1 -1
  100. package/dist/assets/index-Z8qCN0P1.js +200 -0
  101. package/dist/assets/{index-BFZ5LKID.js → index-cc7PDHui.js} +1 -1
  102. package/dist/assets/{index-B0JZLMkR.js → index-d3X4O8S1.js} +4 -4
  103. package/dist/assets/{index-DxuK3aPg.js → index-g1J2WU69.js} +1 -1
  104. package/dist/assets/index-o5365tSi.js +124 -0
  105. package/dist/assets/{index-CmkQ05MW.js → index-pMD5HObM.js} +10 -10
  106. package/dist/assets/{index-Cs6DTc99.js → index-un8ZaNww.js} +5 -5
  107. package/dist/assets/{index-BA8N8sek.js → index-yINGgTD8.js} +6 -6
  108. package/dist/assets/{invitation-Bud5mQS8.js → invitation-HIuSHONR.js} +7 -7
  109. package/dist/assets/invitations-Bol3LHDV.js +3 -0
  110. package/dist/assets/invite--kfNCB-y.js +1 -0
  111. package/dist/assets/{isURL-BkRG9xZw.js → isURL-NLB1KXWU.js} +1 -1
  112. package/dist/assets/issue-passport-DEKfDU5Q.js +1 -0
  113. package/dist/assets/{item-CZxO50cp.js → item-8d2bomfb.js} +1 -1
  114. package/dist/assets/ja-SFs9TI5a.js +9 -0
  115. package/dist/assets/ko-CHdBh-EI.js +9 -0
  116. package/dist/assets/{landing-page-Co0EA4cx.js → landing-page-BKWBeaB2.js} +1 -1
  117. package/dist/assets/{launch-result-message-B0--4ubW.js → launch-result-message-DW948RfZ.js} +1 -1
  118. package/dist/assets/{layout-CiBZwE8j.js → layout-BCGFP2fM.js} +1 -1
  119. package/dist/assets/{list-CgUqi7mZ.js → list-CLnYaffq.js} +2 -2
  120. package/dist/assets/{list-CoRNWpJL.js → list-CjwYZK4C.js} +2 -2
  121. package/dist/assets/{list-header-DlrmpNef.js → list-header-DMpz8A8v.js} +1 -1
  122. package/dist/assets/localization-D4M90esB.js +1 -0
  123. package/dist/assets/{log-BLtV-mr3.js → log-CwhRn7dG.js} +1 -1
  124. package/dist/assets/logger-GZGSMwyW.js +1 -0
  125. package/dist/assets/login-D6vdg4tV.js +1 -0
  126. package/dist/assets/{login-oauth-callback-BhX1vXuH.js → login-oauth-callback-DNSbhkTX.js} +1 -1
  127. package/dist/assets/{logo-uploader-x03Hv0sw.js → logo-uploader-CehwiZZl.js} +2 -2
  128. package/dist/assets/{lost-passport-DuQjRy5y.js → lost-passport-JcRjjJMu.js} +3 -3
  129. package/dist/assets/{observability-3BjnzXRV.js → observability-pdEZhjSl.js} +1 -1
  130. package/dist/assets/{omit-r-0RLWOV.js → omit-BQZKecPT.js} +1 -1
  131. package/dist/assets/{open-window-C2521tBf.js → open-window-5tX5UogI.js} +1 -1
  132. package/dist/assets/{over-due-invoice-payment-CeMW933U.js → over-due-invoice-payment-BQTpVcW4.js} +1 -1
  133. package/dist/assets/overview-8cijjh6D.js +85 -0
  134. package/dist/assets/{page-header-DP0csqkR.js → page-header-DvSb4Cmz.js} +1 -1
  135. package/dist/assets/passport-dBKTMShn.js +1 -0
  136. package/dist/assets/{passport-item-CBQOM3AQ.js → passport-item-DybXmjDL.js} +1 -1
  137. package/dist/assets/{permission-BeuMG3nG.js → permission-DPZmpN88.js} +1 -1
  138. package/dist/assets/{playground-BEhnKrD-.js → playground-C0bWoIDS.js} +1 -1
  139. package/dist/assets/preferences-CSIWwAIC.js +1 -0
  140. package/dist/assets/profile-embed-Dxmu0kHv.js +1 -0
  141. package/dist/assets/pt-BJowi6tZ.js +5 -0
  142. package/dist/assets/publish-resource-BEWgZsl5.js +1 -0
  143. package/dist/assets/{react-beautiful-dnd.esm-9QLg1KOC.js → react-beautiful-dnd.esm-BbVphn6n.js} +1 -1
  144. package/dist/assets/{react-stripe.esm-DWiCVD55.js → react-stripe.esm-C51Uah32.js} +1 -1
  145. package/dist/assets/{required-BUAaYcMZ.js → required-BT8zXV8U.js} +1 -1
  146. package/dist/assets/ru-DTjDV3Pw.js +5 -0
  147. package/dist/assets/runtime-Dw23IX1l.js +1 -0
  148. package/dist/assets/{sanitize-mRppk1lK.js → sanitize-C5jEFDvG.js} +1 -1
  149. package/dist/assets/sdk-BIWRdmX9.js +1 -0
  150. package/dist/assets/{section-CCfmWVdK.js → section-ZPKr6_ii.js} +1 -1
  151. package/dist/assets/{security-DAv6SG0v.js → security-D_vkAC2F.js} +1 -1
  152. package/dist/assets/session-tOfkTx-G.js +1 -0
  153. package/dist/assets/{setup-CWKcr-SA.js → setup-eJiK00ap.js} +1 -1
  154. package/dist/assets/{shorten-label-DAXPWCI6.js → shorten-label-DVy6K5I7.js} +1 -1
  155. package/dist/assets/simple-select-BeAlThKq.js +1 -0
  156. package/dist/assets/{spaces-DdStEDKL.js → spaces-f3sezu1Y.js} +1 -1
  157. package/dist/assets/start-tshF2U2D.js +187 -0
  158. package/dist/assets/starting-progress-CNhbI5kz.js +40 -0
  159. package/dist/assets/status-aauXt2lH.js +1 -0
  160. package/dist/assets/{step-actions-DV76BAlD.js → step-actions-B_qluS-3.js} +1 -1
  161. package/dist/assets/{studio-D9ArZgZT.js → studio-ahebVj52.js} +1 -1
  162. package/dist/assets/{switch-control-Bs2D4JNi.js → switch-control-B8BKalcv.js} +1 -1
  163. package/dist/assets/{table-tips-B1dFVdej.js → table-tips-CIe4hASP.js} +1 -1
  164. package/dist/assets/team-DJZO6TyJ.js +146 -0
  165. package/dist/assets/th-A3GLGlJ1.js +5 -0
  166. package/dist/assets/traffic-Dh4U8pnc.js +1 -0
  167. package/dist/assets/{transfer-Dh7kcNdX.js → transfer-CuvzwKCQ.js} +1 -1
  168. package/dist/assets/{unsubscribe-DzDiAt1Q.js → unsubscribe-B1yTQQGf.js} +1 -1
  169. package/dist/assets/{use-app-logo-BiGG8tCg.js → use-app-logo-CqD9SoXr.js} +1 -1
  170. package/dist/assets/{use-mobile-BW9mTiYC.js → use-mobile-BQQpAf3i.js} +1 -1
  171. package/dist/assets/{use-mobile-B_fpUHD7.js → use-mobile-D6YQgajG.js} +1 -1
  172. package/dist/assets/{use-server-logo-R848M-JH.js → use-server-logo-ClR4qaF0.js} +1 -1
  173. package/dist/assets/{use-window-close-Dk0lXOqo.js → use-window-close-CLNOz9Uq.js} +1 -1
  174. package/dist/assets/{useAsync-DkQHu4t4.js → useAsync-DVtDVEv6.js} +1 -1
  175. package/dist/assets/{useAsync-DoI7Qt9M.js → useAsync-fWwm3Jbj.js} +1 -1
  176. package/dist/assets/{useAsyncRetry-DNTidBXG.js → useAsyncRetry-EEjDgDMR.js} +1 -1
  177. package/dist/assets/{useLocalStorage-BzRs3x-K.js → useLocalStorage-BPSCf_zz.js} +1 -1
  178. package/dist/assets/user-center-DDfna1uE.js +126 -0
  179. package/dist/assets/user-follower-Cc-51q-9.js +32 -0
  180. package/dist/assets/{user-sessions-BXusVv21.js → user-sessions-DkchVQBO.js} +1 -1
  181. package/dist/assets/{util-DQbvJ9cJ.js → util-B8Xud4vY.js} +1 -1
  182. package/dist/assets/{util-BKRDkFNf.js → util-D8KMfML_.js} +1 -1
  183. package/dist/assets/{vendor-arcblock-BhtOu00C.js → vendor-arcblock-CSGgL93G.js} +1 -1
  184. package/dist/assets/{vendor-hooks-BtDnIwBH.js → vendor-hooks-BlA8TRnZ.js} +2 -2
  185. package/dist/assets/vendor-mui-core-DRxbhqaK.js +250 -0
  186. package/dist/assets/{vendor-mui-x-DWX99wt-.js → vendor-mui-x-Qp6zkx78.js} +1 -1
  187. package/dist/assets/{vendor-utils-CVwaKsP9.js → vendor-utils-CUDP56Ff.js} +1 -1
  188. package/dist/assets/{vendor-ux-Cfhaj-oj.js → vendor-ux-CDOuCaX1.js} +3 -3
  189. package/dist/assets/vi-DGXwnYQW.js +5 -0
  190. package/dist/assets/{wait-connect-CPHamZhf.js → wait-connect-CGOeOXHL.js} +1 -1
  191. package/dist/assets/{wizard-DXT-RVCl.js → wizard-B7NraPoW.js} +1 -1
  192. package/dist/assets/{wizard-components-CkjeNOkS.js → wizard-components-Bl0PwqPC.js} +7 -7
  193. package/dist/assets/wrap-locale-BQiQiZG-.js +1 -0
  194. package/dist/assets/zh-CJ0qBy8e.js +10 -0
  195. package/dist/assets/{zh-BQXiLbg6.js → zh-DQ2rCoQ5.js} +1 -1
  196. package/dist/assets/zh-tw-Cs-zRk58.js +9 -0
  197. package/dist/index.html +6 -6
  198. package/dist/service-worker.js +1 -1
  199. package/package.json +32 -32
  200. package/dist/assets/add-resource-CZfTjlD0.js +0 -1
  201. package/dist/assets/api-BUbloWod.js +0 -1
  202. package/dist/assets/ar-DDKSNNIB.js +0 -7
  203. package/dist/assets/branding-IhXI5Wue.js +0 -1
  204. package/dist/assets/button-BG8yGG9e.js +0 -1
  205. package/dist/assets/complete-DNXvjWOj.js +0 -39
  206. package/dist/assets/config-navigation-C_Stnyxb.js +0 -40
  207. package/dist/assets/config-space-Bh_yLAj-.js +0 -1
  208. package/dist/assets/dashboard-B757yKbJ.js +0 -106
  209. package/dist/assets/de-C5jW-Aco.js +0 -7
  210. package/dist/assets/domains-CHjbOYj6.js +0 -1
  211. package/dist/assets/engine-DyhSNCpN.js +0 -1
  212. package/dist/assets/es-DnE5Se03.js +0 -9
  213. package/dist/assets/form-text-input-CqoNK3mi.js +0 -11
  214. package/dist/assets/fr-BpXortYf.js +0 -7
  215. package/dist/assets/gen-access-key-ku3cDonU.js +0 -1
  216. package/dist/assets/get-safe-url-CbJcsvAc.js +0 -1
  217. package/dist/assets/hi-CeUu25BW.js +0 -5
  218. package/dist/assets/id-BugYMmLN.js +0 -7
  219. package/dist/assets/iframe-eYdxV3eX.js +0 -1
  220. package/dist/assets/index-82gv-l2w.js +0 -283
  221. package/dist/assets/index-Br6A9_4o.js +0 -124
  222. package/dist/assets/index-C0n4exuY.js +0 -1
  223. package/dist/assets/index-CjATIX5e.js +0 -1039
  224. package/dist/assets/index-Cza28Ou-.js +0 -7
  225. package/dist/assets/index-DRhj0EDS.js +0 -292
  226. package/dist/assets/index-Dn2eai8S.js +0 -113
  227. package/dist/assets/index-ZYd4RNU_.js +0 -1
  228. package/dist/assets/invite-BnTsj399.js +0 -1
  229. package/dist/assets/issue-passport-sL6P-Jy0.js +0 -1
  230. package/dist/assets/ja-DaREJWmX.js +0 -9
  231. package/dist/assets/ko-DGXdpX64.js +0 -9
  232. package/dist/assets/localization-DAfm9MKy.js +0 -1
  233. package/dist/assets/logger-CsgnUk8i.js +0 -1
  234. package/dist/assets/login-0UJlN7iP.js +0 -1
  235. package/dist/assets/overview-C-11gh2u.js +0 -85
  236. package/dist/assets/preferences-DvVN_OF0.js +0 -1
  237. package/dist/assets/profile-embed-BdpgwY58.js +0 -1
  238. package/dist/assets/pt-CIqefLTL.js +0 -5
  239. package/dist/assets/publish-resource-CERp8nCz.js +0 -1
  240. package/dist/assets/ru-B4h3WudR.js +0 -5
  241. package/dist/assets/runtime-CC0b3IOS.js +0 -1
  242. package/dist/assets/sdk-Dfotb8VE.js +0 -1
  243. package/dist/assets/session-p360wpOR.js +0 -1
  244. package/dist/assets/simple-select-BHPmFba3.js +0 -1
  245. package/dist/assets/start-gQWc3jOT.js +0 -187
  246. package/dist/assets/starting-progress-CxdsmebW.js +0 -40
  247. package/dist/assets/status-jCRFV0de.js +0 -1
  248. package/dist/assets/team-CxJqHuEA.js +0 -146
  249. package/dist/assets/th-BjttL5p9.js +0 -5
  250. package/dist/assets/traffic-BuZd517Z.js +0 -1
  251. package/dist/assets/user-center-Gvk90n3A.js +0 -126
  252. package/dist/assets/user-follower-D7rNbdJC.js +0 -32
  253. package/dist/assets/vendor-mui-core-BIZOanxj.js +0 -250
  254. package/dist/assets/vi-C-IhikR1.js +0 -5
  255. package/dist/assets/wrap-locale-DQUa7V1E.js +0 -1
  256. package/dist/assets/zh-CWvcoHsp.js +0 -10
  257. package/dist/assets/zh-tw-D_73qm-O.js +0 -9
@@ -643,43 +643,40 @@ module.exports = {
643
643
  });
644
644
 
645
645
  if (shouldSyncFederated(sourceAppPid, blocklet)) {
646
- node
647
- .syncFederated({
648
- did: teamDid,
649
- data: {
650
- users: [
651
- {
652
- action: 'connectAccount',
653
- did: updatedUser.did,
654
- pk: updatedUser.pk,
655
- fullName: updatedUser.fullName,
656
- email: updatedUser.email || '',
657
- avatar: getUserAvatarUrl(updatedUser.avatar, blocklet),
658
- connectedAccount: [connectAccount, connectedNft],
659
- sourceAppPid: sourceAppPid || masterSite.appPid,
660
- inviter: updatedUser.inviter,
661
- generation: updatedUser.generation,
662
- emailVerified: updatedUser.emailVerified,
663
- phoneVerified: updatedUser.phoneVerified,
664
- },
665
- ],
666
- },
667
- })
668
- .then(() => {
669
- node.syncUserSession({
670
- teamDid,
671
- userDid: userSessionDoc.userDid,
672
- visitorId: userSessionDoc.visitorId,
673
- passportId: passport?.id,
674
- targetAppPid: sourceAppPid,
675
- ua,
676
- lastLoginIp,
677
- extra: {
678
- walletOS,
679
- device: deviceData,
646
+ await node.syncFederated({
647
+ did: teamDid,
648
+ data: {
649
+ users: [
650
+ {
651
+ action: 'connectAccount',
652
+ did: updatedUser.did,
653
+ pk: updatedUser.pk,
654
+ fullName: updatedUser.fullName,
655
+ email: updatedUser.email || '',
656
+ avatar: getUserAvatarUrl(updatedUser.avatar, blocklet),
657
+ connectedAccount: [connectAccount, connectedNft],
658
+ sourceAppPid: sourceAppPid || masterSite.appPid,
659
+ inviter: updatedUser.inviter,
660
+ generation: updatedUser.generation,
661
+ emailVerified: updatedUser.emailVerified,
662
+ phoneVerified: updatedUser.phoneVerified,
680
663
  },
681
- });
682
- });
664
+ ],
665
+ },
666
+ });
667
+ await node.syncUserSession({
668
+ teamDid,
669
+ userDid: userSessionDoc.userDid,
670
+ visitorId: userSessionDoc.visitorId,
671
+ passportId: passport?.id,
672
+ targetAppPid: sourceAppPid,
673
+ ua,
674
+ lastLoginIp,
675
+ extra: {
676
+ walletOS,
677
+ device: deviceData,
678
+ },
679
+ });
683
680
  }
684
681
 
685
682
  if (passport) {
@@ -945,7 +942,7 @@ module.exports = {
945
942
  },
946
943
 
947
944
  switchPassport: {
948
- onConnect: async ({ node, request, locale, userDid, previousUserDid, baseUrl }) => {
945
+ onConnect: async ({ node, request, locale, userDid, previousUserDid, baseUrl, orgId = '' }) => {
949
946
  if (userDid && previousUserDid && userDid !== previousUserDid) {
950
947
  throw new Error(messages.userMismatch[locale]);
951
948
  }
@@ -978,6 +975,21 @@ module.exports = {
978
975
  const blocklet = await request.getBlocklet();
979
976
  const sourceAppPid = getSourceAppPid(request);
980
977
 
978
+ // 如果有 orgId 只显示 org 下的通行证
979
+ if (orgId) {
980
+ const roles = await node.getRoles({ teamDid, orgId });
981
+ return {
982
+ verifiableCredential: getVerifyAccessClaims({
983
+ node,
984
+ passports: user.passports,
985
+ roles: roles.map((x) => x.name),
986
+ types: PASSPORT_VC_TYPES,
987
+ source: 'blocklet',
988
+ trustedIssuers: await getTrustedIssuers(blocklet, { sourceAppPid }),
989
+ }),
990
+ };
991
+ }
992
+
981
993
  return {
982
994
  verifiableCredential: {
983
995
  type: 'verifiableCredential',
@@ -14,14 +14,15 @@ const checkRunning = async (req, res, next) => {
14
14
  // for backward compatibility
15
15
  component = component || app;
16
16
 
17
- if (
18
- ![
19
- BlockletStatus.running,
20
- // Waiting, Downloading should be allowed because blocklet is currently being upgrading
21
- BlockletStatus.waiting,
22
- BlockletStatus.downloading,
23
- ].includes(component.status)
24
- ) {
17
+ const isRunningStatus = [
18
+ BlockletStatus.running,
19
+ // Waiting, Downloading should be allowed because blocklet is currently being upgrading
20
+ BlockletStatus.waiting,
21
+ BlockletStatus.downloading,
22
+ ];
23
+ const isRunning = isRunningStatus.includes(component.status) || isRunningStatus.includes(component.greenStatus);
24
+
25
+ if (!isRunning) {
25
26
  if (shouldGotoStartPage(req, component)) {
26
27
  if (req.query.setupToken) {
27
28
  await req
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 验证是否开启了 org,如果没有开启,那么相关接口不应该被请求
3
+ */
4
+
5
+ function ensureOrgEnabled({ useCache = true } = {}) {
6
+ return async (req, res, next) => {
7
+ const blocklet = req.blocklet ? await req.getBlocklet({ useCache }) : null;
8
+ const { org = {} } = blocklet.settings || {};
9
+ if (!org?.enabled) {
10
+ res.status(403).send('Org is not enabled, Can not request this api');
11
+ return;
12
+ }
13
+ next();
14
+ };
15
+ }
16
+
17
+ module.exports = ensureOrgEnabled;
@@ -401,7 +401,7 @@ module.exports = {
401
401
  let webInterfaceCount = 0;
402
402
  forEachComponentV2Sync(blocklet, (component) => {
403
403
  components[component.meta.did] = {
404
- running: component.status === BlockletStatus.running,
404
+ running: component.status === BlockletStatus.running || component.greenStatus === BlockletStatus.running,
405
405
  };
406
406
 
407
407
  const hasWebInterface = (component.meta?.interfaces || []).some((x) => x.type === BLOCKLET_INTERFACE_TYPE_WEB);
@@ -410,7 +410,7 @@ module.exports = {
410
410
  }
411
411
  });
412
412
 
413
- if (blocklet.status !== BlockletStatus.running) {
413
+ if (blocklet.status !== BlockletStatus.running && blocklet.greenStatus !== BlockletStatus.running) {
414
414
  return res.status(503).json({ message: 'not running', components });
415
415
  }
416
416
 
@@ -448,7 +448,7 @@ module.exports = {
448
448
  return res.status(404).json({ message: 'component not found' });
449
449
  }
450
450
 
451
- if (component.status !== BlockletStatus.running) {
451
+ if (component.status !== BlockletStatus.running && component.greenStatus !== BlockletStatus.running) {
452
452
  return res.status(503).json({ message: 'not running' });
453
453
  }
454
454
 
@@ -310,7 +310,7 @@ module.exports = {
310
310
  });
311
311
 
312
312
  if (isFederatedLogin) {
313
- node.syncUserSession({
313
+ await node.syncUserSession({
314
314
  teamDid,
315
315
  userDid: validUserSession.userDid,
316
316
  visitorId: userSessionDoc.visitorId,
@@ -20,7 +20,7 @@ const { getWallet, getWalletDid } = require('@blocklet/meta/lib/did-utils');
20
20
  const { Joi } = require('@arcblock/validator');
21
21
  const { parse } = require('@abtnode/core/lib/util/ua');
22
22
  const getRequestIP = require('@abtnode/util/lib/get-request-ip');
23
- const { formatError, CustomError } = require('@blocklet/error');
23
+ const { formatError, CustomError, getStatusFromError } = require('@blocklet/error');
24
24
  const { xss } = require('@blocklet/xss');
25
25
  const { createRateLimiter } = require('@blocklet/rate-limit');
26
26
  const { withQuery, joinURL } = require('ufo');
@@ -39,6 +39,7 @@ const { loginWalletSchema, loginOAuthSchema, loginUserWalletSchema, checkUserSch
39
39
  const verifySig = require('../middlewares/verify-sig');
40
40
  const logger = require('../libs/logger')('user');
41
41
  const ensureBlocklet = require('../middlewares/ensure-blocklet');
42
+ const ensureOrgEnabled = require('../middlewares/ensure-org-enabled');
42
43
  const checkUser = require('../middlewares/check-user');
43
44
  const { Profile } = require('../state/profile');
44
45
  const { emailSchema } = require('../socket/channel/did');
@@ -320,7 +321,7 @@ async function loginSDK(req, node, options) {
320
321
  locale,
321
322
  origin: await getOrigin({ req }),
322
323
  });
323
- node.syncUserSession({
324
+ await node.syncUserSession({
324
325
  teamDid,
325
326
  userDid: userSession.userDid,
326
327
  visitorId: userSession.visitorId,
@@ -715,6 +716,13 @@ const spaceGatewaySchema = Joi.object({
715
716
  endpoint: Joi.string().required(),
716
717
  });
717
718
 
719
+ const queryOrgsInputSchema = Joi.object({
720
+ search: Joi.string().optional().allow(''),
721
+ page: Joi.number().optional().min(1).default(1),
722
+ pageSize: Joi.number().optional().min(1).default(20),
723
+ type: Joi.string().valid('owned', 'joined').optional().allow('').allow(null),
724
+ });
725
+
718
726
  module.exports = {
719
727
  init(server, node, options) {
720
728
  const ensureCors = cors(async (req, callback) => {
@@ -849,7 +857,7 @@ module.exports = {
849
857
  locale,
850
858
  origin: await getOrigin({ req }),
851
859
  });
852
- node.syncUserSession({
860
+ await node.syncUserSession({
853
861
  teamDid,
854
862
  userDid: userSession.userDid,
855
863
  visitorId: userSession.visitorId,
@@ -1694,5 +1702,171 @@ module.exports = {
1694
1702
  res.status(500).send(formatError(err));
1695
1703
  }
1696
1704
  });
1705
+
1706
+ /* ********************************* org 相关 ********************************* */
1707
+ /**
1708
+ * 获取用户所有的 org 列表:包括我创建的和加入的
1709
+ */
1710
+ server.get(`${prefixApi}/orgs`, checkUser, ensureBlocklet(), ensureOrgEnabled(), async (req, res) => {
1711
+ try {
1712
+ const { blocklet } = req;
1713
+ const teamDid = blocklet.appPid;
1714
+ const { error, value } = queryOrgsInputSchema.validate(req.query);
1715
+ if (error) {
1716
+ res.status(400).send({ error: error.message });
1717
+ return;
1718
+ }
1719
+ const { search, page = 1, pageSize = 20, type } = value;
1720
+ // 查询所有的(包括我创建的和我加入的)
1721
+ const params = { teamDid, paging: { page, pageSize }, ...(type ? { type } : {}) };
1722
+ if (search) {
1723
+ params.org = {
1724
+ name: search,
1725
+ description: search,
1726
+ };
1727
+ }
1728
+ const result = await node.getOrgs(params, { user: req.user });
1729
+ res.json(result);
1730
+ } catch (err) {
1731
+ logger.error('Failed to get orgs', { error: err, userDid: req.user.did });
1732
+ res.status(getStatusFromError(err)).send(formatError(err));
1733
+ }
1734
+ });
1735
+
1736
+ /**
1737
+ * 创建 org
1738
+ */
1739
+ server.post(`${prefixApi}/orgs`, checkUser, ensureBlocklet(), ensureOrgEnabled(), async (req, res) => {
1740
+ try {
1741
+ const { blocklet } = req;
1742
+ const teamDid = blocklet.appPid;
1743
+ const { org } = req.body;
1744
+ if (!org.name) {
1745
+ res.status(400).send({ error: 'name is required' });
1746
+ return;
1747
+ }
1748
+ const result = await node.createOrg({ teamDid, ...org }, { user: req.user });
1749
+ await node.createAuditLog(
1750
+ {
1751
+ action: 'createOrg',
1752
+ args: { teamDid, ...org },
1753
+ context: formatContext(Object.assign(req, { user: req.user })),
1754
+ result,
1755
+ },
1756
+ node
1757
+ );
1758
+ res.json(result);
1759
+ } catch (err) {
1760
+ logger.error('Failed to create org', { error: err, userDid: req.user.did });
1761
+ res.status(getStatusFromError(err)).send(formatError(err));
1762
+ }
1763
+ });
1764
+
1765
+ /**
1766
+ * 获取一个 org 详情
1767
+ */
1768
+ server.get(`${prefixApi}/orgs/:orgId`, checkUser, ensureBlocklet(), ensureOrgEnabled(), async (req, res) => {
1769
+ try {
1770
+ const { blocklet } = req;
1771
+ const teamDid = blocklet.appPid;
1772
+ const { orgId } = req.params;
1773
+ const result = await node.getOrg({ teamDid, id: orgId }, { user: req.user });
1774
+ res.json(result);
1775
+ } catch (err) {
1776
+ logger.error('Failed to get org', { error: err, userDid: req.user.did });
1777
+ res.status(getStatusFromError(err)).send(formatError(err));
1778
+ }
1779
+ });
1780
+
1781
+ /**
1782
+ * 获取所有的 roles 列表
1783
+ */
1784
+ server.get(`${prefixApi}/role`, checkUser, ensureBlocklet(), async (req, res) => {
1785
+ try {
1786
+ const { blocklet } = req;
1787
+ const teamDid = blocklet.appPid;
1788
+ const { name = '' } = req.query;
1789
+ if (!name) {
1790
+ res.status(400).send({ error: 'role name is required' });
1791
+ return;
1792
+ }
1793
+
1794
+ const result = await node.getRole({ teamDid, role: { name } }, { user: req.user });
1795
+ res.json(result);
1796
+ } catch (err) {
1797
+ logger.error('Failed to get role', { error: err, userDid: req.user.did });
1798
+ res.status(getStatusFromError(err)).send(formatError(err));
1799
+ }
1800
+ });
1801
+
1802
+ /**
1803
+ * 将资源添加到 org 下
1804
+ */
1805
+ server.post(
1806
+ `${prefixApi}/orgs/:orgId/resources`,
1807
+ checkUser,
1808
+ ensureBlocklet(),
1809
+ ensureOrgEnabled(),
1810
+ async (req, res) => {
1811
+ try {
1812
+ const { blocklet } = req;
1813
+ const teamDid = blocklet.appPid;
1814
+ const { orgId } = req.params;
1815
+ const { resourceId, ...rest } = req.body;
1816
+ const result = await node.addOrgResource(
1817
+ { teamDid, orgId, resourceIds: [resourceId], ...rest },
1818
+ { user: req.user }
1819
+ );
1820
+ await node.createAuditLog(
1821
+ {
1822
+ action: 'addOrgResource',
1823
+ args: { teamDid, orgId, resourceIds: [resourceId], ...rest },
1824
+ context: formatContext(Object.assign(req, { user: req.user })),
1825
+ result,
1826
+ },
1827
+ node
1828
+ );
1829
+ res.json(result);
1830
+ } catch (err) {
1831
+ logger.error('Failed to add org resource', { error: err, orgId: req.params.orgId });
1832
+ res.status(getStatusFromError(err)).send(formatError(err));
1833
+ }
1834
+ }
1835
+ );
1836
+
1837
+ /**
1838
+ * 迁移资源到新的 org
1839
+ */
1840
+ server.put(
1841
+ `${prefixApi}/orgs/:from/resources`,
1842
+ checkUser,
1843
+ ensureBlocklet(),
1844
+ ensureOrgEnabled(),
1845
+ async (req, res) => {
1846
+ try {
1847
+ const { blocklet } = req;
1848
+ const teamDid = blocklet.appPid;
1849
+ const { from } = req.params;
1850
+ const { to, resourceId } = req.body;
1851
+ const result = await node.migrateOrgResource(
1852
+ { teamDid, from, to, resourceIds: [resourceId] },
1853
+ { user: req.user }
1854
+ );
1855
+ await node.createAuditLog(
1856
+ {
1857
+ action: 'migrateOrgResource',
1858
+ args: { teamDid, from, to, resourceIds: [resourceId] },
1859
+ context: formatContext(Object.assign(req, { user: req.user })),
1860
+ result,
1861
+ },
1862
+ node
1863
+ );
1864
+ res.json(result);
1865
+ } catch (err) {
1866
+ logger.error('Failed to migrate org resource', { error: err, from: req.params.from });
1867
+ res.status(getStatusFromError(err)).send(formatError(err));
1868
+ }
1869
+ }
1870
+ );
1697
1871
  },
1698
1872
  };
@@ -141,7 +141,7 @@ module.exports = function createRoutes(node, authenticator, createSessionToken)
141
141
  locale,
142
142
  origin: await getOrigin({ req }),
143
143
  });
144
- node.syncUserSession({
144
+ await node.syncUserSession({
145
145
  teamDid,
146
146
  userDid: userSessionDoc.userDid,
147
147
  visitorId: userSessionDoc.visitorId,
@@ -102,7 +102,7 @@ module.exports = function createRoutes(node, authenticator, createSessionToken)
102
102
  locale,
103
103
  origin: await getOrigin({ req }),
104
104
  });
105
- node.syncUserSession({
105
+ await node.syncUserSession({
106
106
  teamDid,
107
107
  userDid: userSessionDoc.userDid,
108
108
  visitorId: userSessionDoc.visitorId,
@@ -6,7 +6,7 @@ const { onConnect, onApprove } = switchPassport;
6
6
  module.exports = function createRoutes(node, authenticator, createSessionToken) {
7
7
  return {
8
8
  action: 'switch-passport',
9
- onConnect: ({ userDid, baseUrl, extraParams: { locale, connectedDid }, req, request }) => {
9
+ onConnect: ({ userDid, baseUrl, extraParams: { locale, connectedDid, orgId }, req, request }) => {
10
10
  const sourceAppPid = getSourceAppPid(request);
11
11
  const provider = getLoginProvider(request);
12
12
  return onConnect({
@@ -18,6 +18,7 @@ module.exports = function createRoutes(node, authenticator, createSessionToken)
18
18
  baseUrl,
19
19
  sourceAppPid,
20
20
  provider,
21
+ orgId,
21
22
  });
22
23
  },
23
24
 
@@ -26,10 +26,12 @@ const createTranslator = require('@abtnode/util/lib/translate');
26
26
  const getOrigin = require('@abtnode/util/lib/get-origin');
27
27
  const md5 = require('@abtnode/util/lib/md5');
28
28
  const { sign } = require('@blocklet/sdk/lib/util/csrf');
29
+ const { createOrgValidators } = require('@abtnode/core/lib/util/org');
29
30
 
30
31
  const { createTokenFn, getDidConnectVersion } = require('../../util');
31
32
  const checkUser = require('../../middlewares/check-user');
32
33
  const cache = require('../../cache');
34
+ const logger = require('../../libs/logger')('auth');
33
35
 
34
36
  const translations = {
35
37
  zh: {
@@ -74,9 +76,10 @@ const getUpdateUserSessionData = ({ req }) => {
74
76
  if (req.userSession) {
75
77
  // 更新用户会话中的 ua 信息,仅当 ua 为空时
76
78
  // 这种情况对应的是这个会话刚刚登录过,还未记录 ua 信息
77
- // FIXME: @zhanghan loginIp 是否应该做一样的处理?
78
79
  if (!req.userSession.ua) {
80
+ const lastLoginIp = getRequestIP(req);
79
81
  result.ua = req.get('user-agent');
82
+ result.lastLoginIp = lastLoginIp;
80
83
  }
81
84
  const deviceData = omitBy(getDeviceData({ req }), isUndefined);
82
85
  if (Object.keys(deviceData).length > 0 && !isEqual(req.userSession?.extra?.device, deviceData)) {
@@ -135,6 +138,20 @@ module.exports = {
135
138
  const permissions = await rbac.getScope(req.user.role);
136
139
  user.role = req.user.role;
137
140
  user.permissions = permissions;
141
+ // 根据 role 获取所在的 org 信息
142
+ const { getOrgSettings } = createOrgValidators(blocklet);
143
+ const orgSettings = getOrgSettings();
144
+ if (orgSettings?.enabled) {
145
+ try {
146
+ const role = await node.getRole({ teamDid, role: { name: user.role } });
147
+ if (role?.orgId) {
148
+ const org = await node.getOrg({ teamDid, id: role?.orgId }, { user: req.user });
149
+ user.org = org || null;
150
+ }
151
+ } catch (err) {
152
+ logger.error('get role error', err);
153
+ }
154
+ }
138
155
  }
139
156
 
140
157
  if (user.avatar && user.avatar.startsWith(USER_AVATAR_URL_PREFIX)) {
@@ -175,7 +192,7 @@ module.exports = {
175
192
  origin: await getOrigin({ req, blockletInfo }),
176
193
  });
177
194
  if (user?.sourceAppPid) {
178
- node.syncUserSession({
195
+ await node.syncUserSession({
179
196
  teamDid,
180
197
  userDid: userSession.userDid,
181
198
  visitorId: userSession.visitorId,
@@ -373,6 +390,20 @@ module.exports = {
373
390
  const rbac = await node.getRBAC(teamDid);
374
391
  user.permissions = await rbac.getScope(role);
375
392
  user.role = role;
393
+ // 根据 role 获取所在的 org 信息
394
+ const { getOrgSettings } = createOrgValidators(blocklet);
395
+ const orgSettings = getOrgSettings();
396
+ if (orgSettings?.enabled) {
397
+ try {
398
+ const roleInfo = await node.getRole({ teamDid, role: { name: user.role } });
399
+ if (roleInfo?.orgId) {
400
+ const org = await node.getOrg({ teamDid, id: roleInfo?.orgId }, { user: req.user });
401
+ user.org = org || null;
402
+ }
403
+ } catch (err) {
404
+ logger.error('get role error', err);
405
+ }
406
+ }
376
407
  }
377
408
 
378
409
  if (user.avatar && user.avatar.startsWith(USER_AVATAR_URL_PREFIX)) {
@@ -409,6 +440,7 @@ module.exports = {
409
440
  userDid: userPid,
410
441
  appPid: teamDid,
411
442
  status: 'online',
443
+ // refreshSession 时更新 ua 可以解决浏览器升级导致 ua 变化产生的问题
412
444
  ua,
413
445
  lastLoginIp,
414
446
  extra: {
@@ -418,7 +450,7 @@ module.exports = {
418
450
  origin: await getOrigin({ req }),
419
451
  });
420
452
  if (user?.sourceAppPid) {
421
- node.syncUserSession({
453
+ await node.syncUserSession({
422
454
  teamDid,
423
455
  userDid: userSession.userDid,
424
456
  visitorId: userSession.visitorId,
@@ -1,3 +1,3 @@
1
- import{_ as lt}from"./vendor-mui-core-BIZOanxj.js";import{d as c}from"./vendor-hooks-BtDnIwBH.js";import{g as G}from"./vendor-react-Dvs43sk9.js";import{a4 as yt}from"./vendor-ux-Cfhaj-oj.js";var b={exports:{}},pt=b.exports,rt;function Mt(){return rt||(rt=1,function(Y,z){(function(m,t){Y.exports=t()})(pt,function(){var m="week",t="year";return function(e,i,a){var r=i.prototype;r.week=function(s){if(s===void 0&&(s=null),s!==null)return this.add(7*(s-this.week()),"day");var u=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var h=a(this).startOf(t).add(1,t).date(u),l=a(this).endOf(m);if(h.isBefore(l))return 1}var O=a(this).startOf(t).date(u).startOf(m).subtract(1,"millisecond"),$=this.diff(O,m,!0);return $<0?a(this).startOf("week").week():Math.ceil($)},r.weeks=function(s){return s===void 0&&(s=null),this.week(s)}}})}(b)),b.exports}var Tt=Mt();const gt=G(Tt);var I={exports:{}},Dt=I.exports,st;function wt(){return st||(st=1,function(Y,z){(function(m,t){Y.exports=t()})(Dt,function(){var m={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"},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,e=/\d/,i=/\d\d/,a=/\d\d?/,r=/\d*[^-_:/,()\s\d]+/,s={},u=function(n){return(n=+n)+(n>68?1900:2e3)},h=function(n){return function(o){this[n]=+o}},l=[/[+-]\d\d:?(\d\d)?|Z/,function(n){(this.zone||(this.zone={})).offset=function(o){if(!o||o==="Z")return 0;var f=o.match(/([+-]|\d\d)/g),d=60*f[1]+(+f[2]||0);return d===0?0:f[0]==="+"?-d:d}(n)}],O=function(n){var o=s[n];return o&&(o.indexOf?o:o.s.concat(o.f))},$=function(n,o){var f,d=s.meridiem;if(d){for(var T=1;T<=24;T+=1)if(n.indexOf(d(T,0,o))>-1){f=T>12;break}}else f=n===(o?"pm":"PM");return f},ot={A:[r,function(n){this.afternoon=$(n,!1)}],a:[r,function(n){this.afternoon=$(n,!0)}],Q:[e,function(n){this.month=3*(n-1)+1}],S:[e,function(n){this.milliseconds=100*+n}],SS:[i,function(n){this.milliseconds=10*+n}],SSS:[/\d{3}/,function(n){this.milliseconds=+n}],s:[a,h("seconds")],ss:[a,h("seconds")],m:[a,h("minutes")],mm:[a,h("minutes")],H:[a,h("hours")],h:[a,h("hours")],HH:[a,h("hours")],hh:[a,h("hours")],D:[a,h("day")],DD:[i,h("day")],Do:[r,function(n){var o=s.ordinal,f=n.match(/\d+/);if(this.day=f[0],o)for(var d=1;d<=31;d+=1)o(d).replace(/\[|\]/g,"")===n&&(this.day=d)}],w:[a,h("week")],ww:[i,h("week")],M:[a,h("month")],MM:[i,h("month")],MMM:[r,function(n){var o=O("months"),f=(O("monthsShort")||o.map(function(d){return d.slice(0,3)})).indexOf(n)+1;if(f<1)throw new Error;this.month=f%12||f}],MMMM:[r,function(n){var o=O("months").indexOf(n)+1;if(o<1)throw new Error;this.month=o%12||o}],Y:[/[+-]?\d+/,h("year")],YY:[i,function(n){this.year=u(n)}],YYYY:[/\d{4}/,h("year")],Z:l,ZZ:l};function ht(n){var o,f;o=n,f=s&&s.formats;for(var d=(n=o.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(C,x,M){var p=M&&M.toUpperCase();return x||f[M]||m[M]||f[p].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(k,L,j){return L||j.slice(1)})})).match(t),T=d.length,g=0;g<T;g+=1){var U=d[g],S=ot[U],D=S&&S[0],w=S&&S[1];d[g]=w?{regex:D,parser:w}:U.replace(/^\[|\]$/g,"")}return function(C){for(var x={},M=0,p=0;M<T;M+=1){var k=d[M];if(typeof k=="string")p+=k.length;else{var L=k.regex,j=k.parser,A=C.slice(p),v=L.exec(A)[0];j.call(x,v),C=C.replace(v,"")}}return function(P){var F=P.afternoon;if(F!==void 0){var y=P.hours;F?y<12&&(P.hours+=12):y===12&&(P.hours=0),delete P.afternoon}}(x),x}}return function(n,o,f){f.p.customParseFormat=!0,n&&n.parseTwoDigitYear&&(u=n.parseTwoDigitYear);var d=o.prototype,T=d.parse;d.parse=function(g){var U=g.date,S=g.utc,D=g.args;this.$u=S;var w=D[1];if(typeof w=="string"){var C=D[2]===!0,x=D[3]===!0,M=C||x,p=D[2];x&&(p=D[2]),s=this.$locale(),!C&&p&&(s=f.Ls[p]),this.$d=function(A,v,P,F){try{if(["x","X"].indexOf(v)>-1)return new Date((v==="X"?1e3:1)*A);var y=ht(v)(A),Z=y.year,W=y.month,ut=y.day,ft=y.hours,dt=y.minutes,ct=y.seconds,mt=y.milliseconds,tt=y.zone,et=y.week,N=new Date,_=ut||(Z||W?1:N.getDate()),q=Z||N.getFullYear(),H=0;Z&&!W||(H=W>0?W-1:N.getMonth());var B,R=ft||0,Q=dt||0,X=ct||0,J=mt||0;return tt?new Date(Date.UTC(q,H,_,R,Q,X,J+60*tt.offset*1e3)):P?new Date(Date.UTC(q,H,_,R,Q,X,J)):(B=new Date(q,H,_,R,Q,X,J),et&&(B=F(B).week(et).toDate()),B)}catch{return new Date("")}}(U,w,S,f),this.init(),p&&p!==!0&&(this.$L=this.locale(p).$L),M&&U!=this.format(w)&&(this.$d=new Date("")),s={}}else if(w instanceof Array)for(var k=w.length,L=1;L<=k;L+=1){D[1]=w[L-1];var j=f.apply(this,D);if(j.isValid()){this.$d=j.$d,this.$L=j.$L,this.init();break}L===k&&(this.$d=new Date(""))}else T.call(this,g)}}})}(I)),I.exports}var Yt=wt();const Ot=G(Yt);var E={exports:{}},xt=E.exports,nt;function kt(){return nt||(nt=1,function(Y,z){(function(m,t){Y.exports=t()})(xt,function(){return function(m,t,e){t.prototype.isBetween=function(i,a,r,s){var u=e(i),h=e(a),l=(s=s||"()")[0]==="(",O=s[1]===")";return(l?this.isAfter(u,r):!this.isBefore(u,r))&&(O?this.isBefore(h,r):!this.isAfter(h,r))||(l?this.isBefore(u,r):!this.isAfter(u,r))&&(O?this.isAfter(h,r):!this.isBefore(h,r))}}})}(E)),E.exports}var Lt=kt();const zt=G(Lt);var V={exports:{}},St=V.exports,it;function Ct(){return it||(it=1,function(Y,z){(function(m,t){Y.exports=t()})(St,function(){return function(m,t){var e=t.prototype,i=e.format;e.format=function(a){var r=this,s=this.$locale();if(!this.isValid())return i.bind(this)(a);var u=this.$utils(),h=(a||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(l){switch(l){case"Q":return Math.ceil((r.$M+1)/3);case"Do":return s.ordinal(r.$D);case"gggg":return r.weekYear();case"GGGG":return r.isoWeekYear();case"wo":return s.ordinal(r.week(),"W");case"w":case"ww":return u.s(r.week(),l==="w"?1:2,"0");case"W":case"WW":return u.s(r.isoWeek(),l==="W"?1:2,"0");case"k":case"kk":return u.s(String(r.$H===0?24:r.$H),l==="k"?1:2,"0");case"X":return Math.floor(r.$d.getTime()/1e3);case"x":return r.$d.getTime();case"z":return"["+r.offsetName()+"]";case"zzz":return"["+r.offsetName("long")+"]";default:return l}});return i.bind(this)(h)}}})}(V)),V.exports}var jt=Ct();const Pt=G(jt);c.extend(yt);c.extend(gt);c.extend(zt);c.extend(Pt);const vt={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"},$t={year:"YYYY",month:"MMMM",monthShort:"MMM",dayOfMonth:"D",dayOfMonthFull:"Do",weekday:"dddd",weekdayShort:"dd",hours24h:"HH",hours12h:"hh",meridiem:"A",minutes:"mm",seconds:"ss",fullDate:"ll",keyboardDate:"L",shortDate:"MMM D",normalDate:"D MMMM",normalDateWithWeekday:"ddd, MMM D",fullTime12h:"hh:mm A",fullTime24h:"HH:mm",keyboardDateTime12h:"L hh:mm A",keyboardDateTime24h:"L HH:mm"},K=["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 lt}from"./vendor-mui-core-DRxbhqaK.js";import{d as c}from"./vendor-hooks-BlA8TRnZ.js";import{g as G}from"./vendor-react-Dvs43sk9.js";import{a4 as yt}from"./vendor-ux-CDOuCaX1.js";var b={exports:{}},pt=b.exports,rt;function Mt(){return rt||(rt=1,function(Y,z){(function(m,t){Y.exports=t()})(pt,function(){var m="week",t="year";return function(e,i,a){var r=i.prototype;r.week=function(s){if(s===void 0&&(s=null),s!==null)return this.add(7*(s-this.week()),"day");var u=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var h=a(this).startOf(t).add(1,t).date(u),l=a(this).endOf(m);if(h.isBefore(l))return 1}var O=a(this).startOf(t).date(u).startOf(m).subtract(1,"millisecond"),$=this.diff(O,m,!0);return $<0?a(this).startOf("week").week():Math.ceil($)},r.weeks=function(s){return s===void 0&&(s=null),this.week(s)}}})}(b)),b.exports}var Tt=Mt();const gt=G(Tt);var I={exports:{}},Dt=I.exports,st;function wt(){return st||(st=1,function(Y,z){(function(m,t){Y.exports=t()})(Dt,function(){var m={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"},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,e=/\d/,i=/\d\d/,a=/\d\d?/,r=/\d*[^-_:/,()\s\d]+/,s={},u=function(n){return(n=+n)+(n>68?1900:2e3)},h=function(n){return function(o){this[n]=+o}},l=[/[+-]\d\d:?(\d\d)?|Z/,function(n){(this.zone||(this.zone={})).offset=function(o){if(!o||o==="Z")return 0;var f=o.match(/([+-]|\d\d)/g),d=60*f[1]+(+f[2]||0);return d===0?0:f[0]==="+"?-d:d}(n)}],O=function(n){var o=s[n];return o&&(o.indexOf?o:o.s.concat(o.f))},$=function(n,o){var f,d=s.meridiem;if(d){for(var T=1;T<=24;T+=1)if(n.indexOf(d(T,0,o))>-1){f=T>12;break}}else f=n===(o?"pm":"PM");return f},ot={A:[r,function(n){this.afternoon=$(n,!1)}],a:[r,function(n){this.afternoon=$(n,!0)}],Q:[e,function(n){this.month=3*(n-1)+1}],S:[e,function(n){this.milliseconds=100*+n}],SS:[i,function(n){this.milliseconds=10*+n}],SSS:[/\d{3}/,function(n){this.milliseconds=+n}],s:[a,h("seconds")],ss:[a,h("seconds")],m:[a,h("minutes")],mm:[a,h("minutes")],H:[a,h("hours")],h:[a,h("hours")],HH:[a,h("hours")],hh:[a,h("hours")],D:[a,h("day")],DD:[i,h("day")],Do:[r,function(n){var o=s.ordinal,f=n.match(/\d+/);if(this.day=f[0],o)for(var d=1;d<=31;d+=1)o(d).replace(/\[|\]/g,"")===n&&(this.day=d)}],w:[a,h("week")],ww:[i,h("week")],M:[a,h("month")],MM:[i,h("month")],MMM:[r,function(n){var o=O("months"),f=(O("monthsShort")||o.map(function(d){return d.slice(0,3)})).indexOf(n)+1;if(f<1)throw new Error;this.month=f%12||f}],MMMM:[r,function(n){var o=O("months").indexOf(n)+1;if(o<1)throw new Error;this.month=o%12||o}],Y:[/[+-]?\d+/,h("year")],YY:[i,function(n){this.year=u(n)}],YYYY:[/\d{4}/,h("year")],Z:l,ZZ:l};function ht(n){var o,f;o=n,f=s&&s.formats;for(var d=(n=o.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(C,x,M){var p=M&&M.toUpperCase();return x||f[M]||m[M]||f[p].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(k,L,j){return L||j.slice(1)})})).match(t),T=d.length,g=0;g<T;g+=1){var U=d[g],S=ot[U],D=S&&S[0],w=S&&S[1];d[g]=w?{regex:D,parser:w}:U.replace(/^\[|\]$/g,"")}return function(C){for(var x={},M=0,p=0;M<T;M+=1){var k=d[M];if(typeof k=="string")p+=k.length;else{var L=k.regex,j=k.parser,A=C.slice(p),v=L.exec(A)[0];j.call(x,v),C=C.replace(v,"")}}return function(P){var F=P.afternoon;if(F!==void 0){var y=P.hours;F?y<12&&(P.hours+=12):y===12&&(P.hours=0),delete P.afternoon}}(x),x}}return function(n,o,f){f.p.customParseFormat=!0,n&&n.parseTwoDigitYear&&(u=n.parseTwoDigitYear);var d=o.prototype,T=d.parse;d.parse=function(g){var U=g.date,S=g.utc,D=g.args;this.$u=S;var w=D[1];if(typeof w=="string"){var C=D[2]===!0,x=D[3]===!0,M=C||x,p=D[2];x&&(p=D[2]),s=this.$locale(),!C&&p&&(s=f.Ls[p]),this.$d=function(A,v,P,F){try{if(["x","X"].indexOf(v)>-1)return new Date((v==="X"?1e3:1)*A);var y=ht(v)(A),Z=y.year,W=y.month,ut=y.day,ft=y.hours,dt=y.minutes,ct=y.seconds,mt=y.milliseconds,tt=y.zone,et=y.week,N=new Date,_=ut||(Z||W?1:N.getDate()),q=Z||N.getFullYear(),H=0;Z&&!W||(H=W>0?W-1:N.getMonth());var B,R=ft||0,Q=dt||0,X=ct||0,J=mt||0;return tt?new Date(Date.UTC(q,H,_,R,Q,X,J+60*tt.offset*1e3)):P?new Date(Date.UTC(q,H,_,R,Q,X,J)):(B=new Date(q,H,_,R,Q,X,J),et&&(B=F(B).week(et).toDate()),B)}catch{return new Date("")}}(U,w,S,f),this.init(),p&&p!==!0&&(this.$L=this.locale(p).$L),M&&U!=this.format(w)&&(this.$d=new Date("")),s={}}else if(w instanceof Array)for(var k=w.length,L=1;L<=k;L+=1){D[1]=w[L-1];var j=f.apply(this,D);if(j.isValid()){this.$d=j.$d,this.$L=j.$L,this.init();break}L===k&&(this.$d=new Date(""))}else T.call(this,g)}}})}(I)),I.exports}var Yt=wt();const Ot=G(Yt);var E={exports:{}},xt=E.exports,nt;function kt(){return nt||(nt=1,function(Y,z){(function(m,t){Y.exports=t()})(xt,function(){return function(m,t,e){t.prototype.isBetween=function(i,a,r,s){var u=e(i),h=e(a),l=(s=s||"()")[0]==="(",O=s[1]===")";return(l?this.isAfter(u,r):!this.isBefore(u,r))&&(O?this.isBefore(h,r):!this.isAfter(h,r))||(l?this.isBefore(u,r):!this.isAfter(u,r))&&(O?this.isAfter(h,r):!this.isBefore(h,r))}}})}(E)),E.exports}var Lt=kt();const zt=G(Lt);var V={exports:{}},St=V.exports,it;function Ct(){return it||(it=1,function(Y,z){(function(m,t){Y.exports=t()})(St,function(){return function(m,t){var e=t.prototype,i=e.format;e.format=function(a){var r=this,s=this.$locale();if(!this.isValid())return i.bind(this)(a);var u=this.$utils(),h=(a||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(l){switch(l){case"Q":return Math.ceil((r.$M+1)/3);case"Do":return s.ordinal(r.$D);case"gggg":return r.weekYear();case"GGGG":return r.isoWeekYear();case"wo":return s.ordinal(r.week(),"W");case"w":case"ww":return u.s(r.week(),l==="w"?1:2,"0");case"W":case"WW":return u.s(r.isoWeek(),l==="W"?1:2,"0");case"k":case"kk":return u.s(String(r.$H===0?24:r.$H),l==="k"?1:2,"0");case"X":return Math.floor(r.$d.getTime()/1e3);case"x":return r.$d.getTime();case"z":return"["+r.offsetName()+"]";case"zzz":return"["+r.offsetName("long")+"]";default:return l}});return i.bind(this)(h)}}})}(V)),V.exports}var jt=Ct();const Pt=G(jt);c.extend(yt);c.extend(gt);c.extend(zt);c.extend(Pt);const vt={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"},$t={year:"YYYY",month:"MMMM",monthShort:"MMM",dayOfMonth:"D",dayOfMonthFull:"Do",weekday:"dddd",weekdayShort:"dd",hours24h:"HH",hours12h:"hh",meridiem:"A",minutes:"mm",seconds:"ss",fullDate:"ll",keyboardDate:"L",shortDate:"MMM D",normalDate:"D MMMM",normalDateWithWeekday:"ddd, MMM D",fullTime12h:"hh:mm A",fullTime24h:"HH:mm",keyboardDateTime12h:"L hh:mm A",keyboardDateTime24h:"L HH:mm"},K=["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
  `),at=["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
  `);class Bt{constructor({locale:z,formats:m}={}){this.isMUIAdapter=!0,this.isTimezoneCompatible=!0,this.lib="dayjs",this.locale=void 0,this.formats=void 0,this.escapedCharacters={start:"[",end:"]"},this.formatTokenMap=vt,this.setLocaleToValue=t=>{const e=this.getCurrentLocaleCode();return e===t.locale()?t:t.locale(e)},this.hasUTCPlugin=()=>typeof c.utc<"u",this.hasTimezonePlugin=()=>typeof c.tz<"u",this.isSame=(t,e,i)=>{const a=this.setTimezone(e,this.getTimezone(t));return t.format(i)===a.format(i)},this.cleanTimezone=t=>{switch(t){case"default":return;case"system":return c.tz.guess();default:return t}},this.createSystemDate=t=>{let e;if(this.hasUTCPlugin()&&this.hasTimezonePlugin()){const i=c.tz.guess();i==="UTC"?e=c(t):e=c.tz(t,i)}else e=c(t);return this.setLocaleToValue(e)},this.createUTCDate=t=>{if(!this.hasUTCPlugin())throw new Error(K);return this.setLocaleToValue(c.utc(t))},this.createTZDate=(t,e)=>{if(!this.hasUTCPlugin())throw new Error(K);if(!this.hasTimezonePlugin())throw new Error(at);const i=t!==void 0&&!t.endsWith("Z");return this.setLocaleToValue(c(t).tz(this.cleanTimezone(e),i))},this.getLocaleFormats=()=>{const t=c.Ls,e=this.locale||"en";let i=t[e];return i===void 0&&(i=t.en),i.formats},this.adjustOffset=t=>{if(!this.hasTimezonePlugin())return t;const e=this.getTimezone(t);if(e!=="UTC"){const i=t.tz(this.cleanTimezone(e),!0);if(i.$offset===(t.$offset??0))return t;t.$offset=i.$offset}return t},this.date=(t,e="default")=>t===null?null:e==="UTC"?this.createUTCDate(t):e==="system"||e==="default"&&!this.hasTimezonePlugin()?this.createSystemDate(t):this.createTZDate(t,e),this.getInvalidDate=()=>c(new Date("Invalid date")),this.getTimezone=t=>{if(this.hasTimezonePlugin()){const e=t.$x?.$timezone;if(e)return e}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(K);return t.utc()}if(e==="system")return t.local();if(!this.hasTimezonePlugin()){if(e==="default")return t;throw new Error(at)}return this.setLocaleToValue(c.tz(t,this.cleanTimezone(e)))},this.toJsDate=t=>t.toDate(),this.parse=(t,e)=>t===""?null:c(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(),i=a=>a.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(r,s,u)=>s||u.slice(1));return t.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(a,r,s)=>{const u=s&&s.toUpperCase();return r||e[s]||i(e[u])})},this.isValid=t=>t==null?!1:t.isValid(),this.format=(t,e)=>this.formatByString(t,this.formats[e]),this.formatByString=(t,e)=>this.setLocaleToValue(t).format(e),this.formatNumber=t=>t,this.isEqual=(t,e)=>t===null&&e===null?!0:t===null||e===null?!1:t.toDate().getTime()===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,i])=>t>=e&&t<=i,this.startOfYear=t=>this.adjustOffset(t.startOf("year")),this.startOfMonth=t=>this.adjustOffset(t.startOf("month")),this.startOfWeek=t=>this.adjustOffset(this.setLocaleToValue(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(this.setLocaleToValue(t).endOf("week")),this.endOfDay=t=>this.adjustOffset(t.endOf("day")),this.addYears=(t,e)=>this.adjustOffset(t.add(e,"year")),this.addMonths=(t,e)=>this.adjustOffset(t.add(e,"month")),this.addWeeks=(t,e)=>this.adjustOffset(t.add(e,"week")),this.addDays=(t,e)=>this.adjustOffset(t.add(e,"day")),this.addHours=(t,e)=>this.adjustOffset(t.add(e,"hour")),this.addMinutes=(t,e)=>this.adjustOffset(t.add(e,"minute")),this.addSeconds=(t,e)=>this.adjustOffset(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.getWeekArray=t=>{const e=this.startOfWeek(this.startOfMonth(t)),i=this.endOfWeek(this.endOfMonth(t));let a=0,r=e;const s=[];for(;r<i;){const u=Math.floor(a/7);s[u]=s[u]||[],s[u].push(r),r=this.addDays(r,1),a+=1}return s},this.getWeekNumber=t=>t.week(),this.getYearRange=([t,e])=>{const i=this.startOfYear(t),a=this.endOfYear(e),r=[];let s=i;for(;this.isBefore(s,a);)r.push(s),s=this.addYears(s,1);return r},this.locale=z,this.formats=lt({},$t,m),c.extend(Ot)}getDayOfWeek(z){return z.day()+1}}export{Bt as A};