ghost 6.63.0 → 6.65.0

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 (883) hide show
  1. package/bin/create-migration.js +15 -0
  2. package/bin/lib/duplicate-deps.js +204 -0
  3. package/bin/validate-adapters.js +50 -6
  4. package/components/tryghost-adapter-base-scheduling-0.2.4.tgz +0 -0
  5. package/components/tryghost-adapter-base-sso-0.1.3.tgz +0 -0
  6. package/components/tryghost-admin-api-schema-0.0.0.tgz +0 -0
  7. package/components/tryghost-api-framework-0.0.0.tgz +0 -0
  8. package/components/tryghost-i18n-0.0.0.tgz +0 -0
  9. package/components/{tryghost-kg-default-cards-10.3.5.tgz → tryghost-kg-default-cards-10.3.6.tgz} +0 -0
  10. package/components/tryghost-kg-default-nodes-2.2.1.tgz +0 -0
  11. package/components/tryghost-kg-html-to-lexical-1.4.0.tgz +0 -0
  12. package/components/{tryghost-kg-lexical-html-renderer-1.5.0.tgz → tryghost-kg-lexical-html-renderer-1.5.1.tgz} +0 -0
  13. package/components/tryghost-limit-service-0.0.0.tgz +0 -0
  14. package/components/tryghost-metafield-types-0.0.0.tgz +0 -0
  15. package/content/themes/casper/assets/built/casper.js +1 -1
  16. package/content/themes/casper/assets/built/screen.css +1 -1
  17. package/content/themes/casper/assets/css/screen.css +15 -2
  18. package/content/themes/casper/assets/js/init.js +37 -9
  19. package/content/themes/casper/package.json +8 -8
  20. package/content/themes/source/assets/built/screen.css +1 -1
  21. package/content/themes/source/assets/built/source.js +1 -1
  22. package/content/themes/source/assets/css/screen.css +15 -2
  23. package/content/themes/source/assets/js/main.js +24 -4
  24. package/content/themes/source/package.json +8 -8
  25. package/core/boot.js +27 -15
  26. package/core/bridge.js +1 -1
  27. package/core/built/admin/assets/Combination-DQ6f9A5P.js +41 -0
  28. package/core/built/admin/assets/{PolarAngleAxis-pkMyqz8g.js → PolarAngleAxis-BBaU7PRV.js} +2 -2
  29. package/core/built/admin/assets/RadialBarChart-Bp20JPnA.js +1 -0
  30. package/core/built/admin/assets/about-Dp43j18M.js +1 -0
  31. package/core/built/admin/assets/accordion-h62UzFhj.js +1 -0
  32. package/core/built/admin/assets/account-migration-CBTbtX6Q.js +1 -0
  33. package/core/built/admin/assets/action-list-DC9QpX-l.js +1 -0
  34. package/core/built/admin/assets/activitypub/{account-migration-KA6Jjf9L.js → account-migration-B1DUZS4Q.js} +8 -8
  35. package/core/built/admin/assets/activitypub/activitypub.js +24 -11
  36. package/core/built/admin/assets/activitypub/avatar-CRGud8yf.js +153 -0
  37. package/core/built/admin/assets/activitypub/{avatar-flipboard-csQaNeYK.js → avatar-flipboard-BZNFAXfm.js} +3 -3
  38. package/core/built/admin/assets/activitypub/{bluesky-sharing-C7nTDMvw.js → bluesky-sharing-Cg_v-LwS.js} +30 -31
  39. package/core/built/admin/assets/activitypub/{chunk-KS7C4IRE-Ck3O4oo2.js → chunk-KS7C4IRE-CTUL98Lc.js} +2498 -1885
  40. package/core/built/admin/assets/activitypub/{content-formatters-CLcjaBwV.js → content-formatters-D7GWP7nH.js} +23 -24
  41. package/core/built/admin/assets/activitypub/{copy-DcOh8kXw.js → copy-CgzTvoeR.js} +2 -2
  42. package/core/built/admin/assets/activitypub/{domain-fZ-X8i4-.js → domain-C3G_nkHU.js} +46 -46
  43. package/core/built/admin/assets/activitypub/{edit-profile-BqMLQV88.js → edit-profile-C8cCY-AK.js} +927 -928
  44. package/core/built/admin/assets/activitypub/{explore-B4yPoP8E.js → explore-NlDT4inq.js} +11 -11
  45. package/core/built/admin/assets/activitypub/{feed-BRC_mvAe.js → feed-DF22jCTV.js} +10 -10
  46. package/core/built/admin/assets/activitypub/{field-COacNgOt.js → field-95-iuTte.js} +4 -4
  47. package/core/built/admin/assets/activitypub/{hash-C7u-irQQ.js → hash-R7LMLnhY.js} +2 -2
  48. package/core/built/admin/assets/activitypub/{inbox-CbTTdDQ3.js → inbox-DUJUiV6x.js} +2 -2
  49. package/core/built/admin/assets/activitypub/{inbox-BW-yvUoN.js → inbox-DerExBzA.js} +416 -414
  50. package/core/built/admin/assets/activitypub/{label-kPMmYI7l.js → label-EwCn1QYc.js} +4 -4
  51. package/core/built/admin/assets/activitypub/layout-Dy6NnW1G.js +1 -0
  52. package/core/built/admin/assets/activitypub/{moderation-CuidJzc0.js → moderation-BSkfiVYo.js} +73 -75
  53. package/core/built/admin/assets/activitypub/{note-CAMRRSqD.js → note-DOnAJTXK.js} +9 -9
  54. package/core/built/admin/assets/activitypub/{notifications-BmNlXGgp.js → notifications-DZc6XTjG.js} +27 -27
  55. package/core/built/admin/assets/activitypub/{onboarding-Dmun9jr_.js → onboarding-8vEIwYTH.js} +3 -3
  56. package/core/built/admin/assets/activitypub/{onboarding-Bqg7fh_L.js → onboarding-DYVqbNmp.js} +2 -2
  57. package/core/built/admin/assets/activitypub/{preferences--oH19wf9.js → preferences-DDok6F2N.js} +1418 -1390
  58. package/core/built/admin/assets/activitypub/{profile-DH_tQx2D.js → profile-DjVa2hUk.js} +254 -255
  59. package/core/built/admin/assets/activitypub/{reply-Cap9PxSH.js → reply-DtXBpHxu.js} +2 -2
  60. package/core/built/admin/assets/activitypub/routes-Cw302e1c.js +4946 -0
  61. package/core/built/admin/assets/activitypub/{separator-CAxxu8VV.js → separator-FpRpVDd3.js} +8 -9
  62. package/core/built/admin/assets/activitypub/settings-yK-puALn.js +314 -0
  63. package/core/built/admin/assets/activitypub/{site-BYps63oh.js → site-CHw0R2PA.js} +2 -2
  64. package/core/built/admin/assets/activitypub/{step-1-CKjR2KAm.js → step-1-737bnvxk.js} +7 -7
  65. package/core/built/admin/assets/activitypub/{step-2-B6PKfOUQ.js → step-2-DBaIsAsM.js} +7 -7
  66. package/core/built/admin/assets/activitypub/{step-3-C-qBbcUo.js → step-3-BBmy9m9V.js} +23 -23
  67. package/core/built/admin/assets/activitypub/tabs-LQ2xirdm.js +1101 -0
  68. package/core/built/admin/assets/activitypub/{topic-filter-DsUOuu0k.js → topic-filter-75Nu0CKj.js} +4 -4
  69. package/core/built/admin/assets/activitypub/{use-activity-pub-queries-CX9snsLs.js → use-activity-pub-queries-CYI2QJMs.js} +58 -58
  70. package/core/built/admin/assets/activitypub/{use-navigate-with-base-path-DsJTGDSS.js → use-navigate-with-base-path-B4jZ8hyg.js} +3924 -1403
  71. package/core/built/admin/assets/activitypub/{use-reply-chain-data-AJi9zkzm.js → use-reply-chain-data-BHmFxc3U.js} +6 -6
  72. package/core/built/admin/assets/activitypub/users-CSjOwpT9.js +886 -0
  73. package/core/built/admin/assets/activitypub/{x-DR8AT3-4.js → x-B9ptWCds.js} +2 -2
  74. package/core/built/admin/assets/add-integration-modal-BwePhq95.js +1 -0
  75. package/core/built/admin/assets/add-newsletter-modal-Zv0I7Msm.js +1 -0
  76. package/core/built/admin/assets/add-recommendation-modal-cdLv0wHy.js +1 -0
  77. package/core/built/admin/assets/analytics-DY8_SaP7.js +1 -0
  78. package/core/built/admin/assets/announcement-bar-modal-C-2yWwag.js +1 -0
  79. package/core/built/admin/assets/api-keys-BHKATUqQ.js +1 -0
  80. package/core/built/admin/assets/{api-keys-BGPzLHzA.js → api-keys-omLA6iYn.js} +1 -1
  81. package/core/built/admin/assets/{audience-ceV3XVHq.js → audience-wRcSN0jV.js} +1 -1
  82. package/core/built/admin/assets/automated-emails-CzUa3v4d.js +1 -0
  83. package/core/built/admin/assets/automations-DupSsSOr.js +1 -0
  84. package/core/built/admin/assets/automations-hDVcRPjh.js +1 -0
  85. package/core/built/admin/assets/avatar-flipboard-DiAGgshK.js +1 -0
  86. package/core/built/admin/assets/badge-CI1Z0xyG.js +1 -0
  87. package/core/built/admin/assets/bluesky-sharing-B8PC1SBj.js +1 -0
  88. package/core/built/admin/assets/box-LUuYRT-1.js +1 -0
  89. package/core/built/admin/assets/brand-icon-CrmbX86T.js +1 -0
  90. package/core/built/admin/assets/breadcrumb-DDDpzLyo.js +1 -0
  91. package/core/built/admin/assets/button-D414TI3B.js +1 -0
  92. package/core/built/admin/assets/calendar-Cp_opo3i.js +1 -0
  93. package/core/built/admin/assets/card-C2dfd5u0.js +1 -0
  94. package/core/built/admin/assets/chart-B_UNLXse.js +63 -0
  95. package/core/built/admin/assets/chart-helpers-Czu_9QpJ.js +1 -0
  96. package/core/built/admin/assets/checkbox-CFFqf0Nh.js +1 -0
  97. package/core/built/admin/assets/{chunk-KS7C4IRE-DCsL4i4D.js → chunk-KS7C4IRE-DhOcHQOU.js} +1 -1
  98. package/core/built/admin/assets/{chunk.254.035b85ec456ebbd7336b.js → chunk.201.6961b57ed7a281ac193e.js} +165 -122
  99. package/core/built/admin/assets/chunk.524.0b850e72ec49a0fa3882.js +25 -0
  100. package/core/built/admin/assets/chunk.582.db2ae9e968256e8d58ac.js +27 -0
  101. package/core/built/admin/assets/{chunk.901.4ccc639821020230bcca.js → chunk.972.4b8c97f93d66db15e751.js} +10625 -10088
  102. package/core/built/admin/assets/clean-tracked-url-dkN05vOf.js +1 -0
  103. package/core/built/admin/assets/code-editor-view-Bd_nnHKk.js +1 -0
  104. package/core/built/admin/assets/code-editor-view-BeU3Yf9M.js +1 -0
  105. package/core/built/admin/assets/color-picker-Bzm1V7qg.js +3 -0
  106. package/core/built/admin/assets/color-picker-field-DP0moHz9.js +1 -0
  107. package/core/built/admin/assets/combobox-6_ruuTuj.js +1 -0
  108. package/core/built/admin/assets/command-B5wfm6pd.js +1 -0
  109. package/core/built/admin/assets/comments-BB26dUSl.js +1 -0
  110. package/core/built/admin/assets/components-CwL6a6As-CCRaoCeP.js +1 -0
  111. package/core/built/admin/assets/{config-kSHvwdTG.js → config-BPljH6wF.js} +1 -1
  112. package/core/built/admin/assets/confirmation-context-znVJD4pX.js +1 -0
  113. package/core/built/admin/assets/container-CHHif8km.js +1 -0
  114. package/core/built/admin/assets/content-api-modal-DOHwl0yZ.js +1 -0
  115. package/core/built/admin/assets/context-menu-BpY46Dlb.js +1 -0
  116. package/core/built/admin/assets/copy-field-DRBx6Ady.js +1 -0
  117. package/core/built/admin/assets/create-ghost-browse-value-source-eIXo5Qws.js +1 -0
  118. package/core/built/admin/assets/{custom-field-type-option-BAuW0F-E.js → custom-field-type-option-DrSlETOI.js} +1 -1
  119. package/core/built/admin/assets/custom-integration-modal-Dgo425Ec.js +1 -0
  120. package/core/built/admin/assets/data-list-DM8yqpXi.js +1 -0
  121. package/core/built/admin/assets/date-range-select-DdC23c13.js +1 -0
  122. package/core/built/admin/assets/design-and-theme-modal-CbSu9IT4.js +2 -0
  123. package/core/built/admin/assets/detail-page-CN4NdhpV.js +1 -0
  124. package/core/built/admin/assets/dirty-confirm-dialog-BT_Vq9TD.js +1 -0
  125. package/core/built/admin/assets/disabled-sources-indicator-C5xtW0Q2.js +1 -0
  126. package/core/built/admin/assets/dist-B40T-RCQ.js +1 -0
  127. package/core/built/admin/assets/dist-BRQkNYN1.js +11 -0
  128. package/core/built/admin/assets/dist-Bm-PB47a.js +6 -0
  129. package/core/built/admin/assets/{dist-B6bJuxL3.js → dist-C2lYC76d.js} +1 -1
  130. package/core/built/admin/assets/dist-Cm2qbZKL.js +1 -0
  131. package/core/built/admin/assets/dist-CrlaEoaK.js +1 -0
  132. package/core/built/admin/assets/{dist-BtaTA7Ii.js → dist-D7yMk931.js} +1 -1
  133. package/core/built/admin/assets/{dist-zwwGt8Yf.js → dist-DNAdeRyr.js} +1 -1
  134. package/core/built/admin/assets/dist-DS6zpxid.js +1 -0
  135. package/core/built/admin/assets/dist-DVVKsyPh.js +23 -0
  136. package/core/built/admin/assets/dist-DxfQlAmn.js +1 -0
  137. package/core/built/admin/assets/dist-DziNzWI2.js +1 -0
  138. package/core/built/admin/assets/dist-nmRzULcD.js +1 -0
  139. package/core/built/admin/assets/domain-BPReCZa8.js +1 -0
  140. package/core/built/admin/assets/dropzone-B2auMkf2.js +5 -0
  141. package/core/built/admin/assets/edit-profile-B7XTBzKe.js +1 -0
  142. package/core/built/admin/assets/editor-BcaC9dqm.js +8 -0
  143. package/core/built/admin/assets/editor-screen-FuMpItC8.js +27 -0
  144. package/core/built/admin/assets/email-previews-Bs-JDhIw.js +1 -0
  145. package/core/built/admin/assets/email-sending-status-context-C76KYL1V.js +1 -0
  146. package/core/built/admin/assets/email-sending-status-provider-9d81o1C2.js +1 -0
  147. package/core/built/admin/assets/{emails-vFMk4yYl.js → emails-CgvIIz3q.js} +1 -1
  148. package/core/built/admin/assets/embed-signup-form-modal-CbVbMsxl.js +8 -0
  149. package/core/built/admin/assets/empty-indicator-CSQts7GV.js +1 -0
  150. package/core/built/admin/assets/esm--rhhUGIG.js +2 -0
  151. package/core/built/admin/assets/explore-DbSXFTJN.js +1 -0
  152. package/core/built/admin/assets/feature-flag-overrides-context-CrcQKm9Z.js +1 -0
  153. package/core/built/admin/assets/feature-image-placeholder-DFXA4vfJ.js +1 -0
  154. package/core/built/admin/assets/feed-W7RlF-Gp.js +1 -0
  155. package/core/built/admin/assets/feedback-BTPBQLT5.js +1 -0
  156. package/core/built/admin/assets/field-BXEh3ptU.js +1 -0
  157. package/core/built/admin/assets/filter-sources-DHK2IoCk.js +1 -0
  158. package/core/built/admin/assets/filters-0SYNTqyQ.js +1 -0
  159. package/core/built/admin/assets/filters-DTtZKQyq.js +1 -0
  160. package/core/built/admin/assets/first-promoter-modal-DcoN_OXu.js +1 -0
  161. package/core/built/admin/assets/focus-koenig-editor-on-bottom-click-CkFA8EkI.js +1 -0
  162. package/core/built/admin/assets/framework-provider-DB-svAju.js +4 -0
  163. package/core/built/admin/assets/{ghost-b4e8a403baba61905cd7560e30b9732d.js → ghost-25495154132af7305cb7b646fd83f48f.js} +580 -523
  164. package/core/built/admin/assets/gift-link-modal-BX-Q1TOk.js +1 -0
  165. package/core/built/admin/assets/{gift-links-CfLSnst2.js → gift-links-D8gl_yJS.js} +1 -1
  166. package/core/built/admin/assets/global-data-context-3MItMry2.js +1 -0
  167. package/core/built/admin/assets/grid-BEUIDQX7.js +1 -0
  168. package/core/built/admin/assets/growth-G6PLO4aF.js +1 -0
  169. package/core/built/admin/assets/growth-tkD-fBOY.js +3 -0
  170. package/core/built/admin/assets/heading-ih-fOVqF.js +1 -0
  171. package/core/built/admin/assets/history-modal-Ca-gStoq.js +1 -0
  172. package/core/built/admin/assets/hooks-DYfTEQLk.js +2 -0
  173. package/core/built/admin/assets/html-field-B3CrKV9Y.js +1 -0
  174. package/core/built/admin/assets/iframe-buffering-Bq1el-gw.js +1 -0
  175. package/core/built/admin/assets/images-H-BIm8OQ.js +1 -0
  176. package/core/built/admin/assets/{inbox-gJHG7_xd.js → inbox-DBbDVMPz.js} +35 -35
  177. package/core/built/admin/assets/index-DOF2jDq0.js +4 -0
  178. package/core/built/admin/assets/index-JrrNchW1.css +2 -0
  179. package/core/built/admin/assets/index.es-Ct5XQNSj.js +1 -0
  180. package/core/built/admin/assets/input-group-CvH-3d3F.js +1 -0
  181. package/core/built/admin/assets/input-surface-CL23Mlh8.js +1 -0
  182. package/core/built/admin/assets/integration-header-C7GXGis_.js +1 -0
  183. package/core/built/admin/assets/{integrations-B4kuRBFY.js → integrations-DnJrZnHv.js} +1 -1
  184. package/core/built/admin/assets/invite-user-modal-EJ2_6RpV.js +1 -0
  185. package/core/built/admin/assets/isPlainObject-BzzgUf1E.js +1 -0
  186. package/core/built/admin/assets/jsx-runtime-BlNNh7jY.js +1 -0
  187. package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +3 -3
  188. package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +1 -1
  189. package/core/built/admin/assets/{koenig-lexical-CGXb0F8o.js → koenig-lexical-Dkwee5FG.js} +1 -1
  190. package/core/built/admin/assets/koenig-loader-BzXCXHoA.js +2 -0
  191. package/core/built/admin/assets/kpi-card-iCDUTgOR.js +1 -0
  192. package/core/built/admin/assets/kpi-card-jTnpLKGr.js +1 -0
  193. package/core/built/admin/assets/kpi-helpers-Criu0YAf.js +1 -0
  194. package/core/built/admin/assets/kpi-tabs-DbOmmyOo.js +1 -0
  195. package/core/built/admin/assets/label-Du0yqMqL.js +1 -0
  196. package/core/built/admin/assets/label-picker-Bq1XXr1D.js +1 -0
  197. package/core/built/admin/assets/labels-0x2NfLtC.js +1 -0
  198. package/core/built/admin/assets/layout-Ckwzsnsu.js +1 -0
  199. package/core/built/admin/assets/lib-CCz2mjm8.js +2 -0
  200. package/core/built/admin/assets/link-helpers-o9GgBTni.js +1 -0
  201. package/core/built/admin/assets/links-Ctujreuh.js +1 -0
  202. package/core/built/admin/assets/list-page-CH_wnDC3.js +1 -0
  203. package/core/built/admin/assets/luxon-BXCsmep3.js +1 -0
  204. package/core/built/admin/assets/member-activity-CsAh6MxK.js +1 -0
  205. package/core/built/admin/assets/member-activity-feed-0ytsQbtY.js +1 -0
  206. package/core/built/admin/assets/member-custom-fields-CTFGnnYv.js +1 -0
  207. package/core/built/admin/assets/member-detail-QU3vB1ML.js +1 -0
  208. package/core/built/admin/assets/members-CtMVO_AB.js +4 -0
  209. package/core/built/admin/assets/modal-page-8Ipfl51B.js +1 -0
  210. package/core/built/admin/assets/moderation-B8VtA-W0.js +1 -0
  211. package/core/built/admin/assets/multi-select-combobox-_9wEYmGv.js +1 -0
  212. package/core/built/admin/assets/navigation-modal-CGcjJvkc.js +1 -0
  213. package/core/built/admin/assets/newsletter-BpHjjqmq.js +1 -0
  214. package/core/built/admin/assets/newsletter-detail-modal-DzTbGOyo.js +1 -0
  215. package/core/built/admin/assets/newsletter-emails-BMKH4Osp.js +1 -0
  216. package/core/built/admin/assets/newsletters-BxC84_cL.js +1 -0
  217. package/core/built/admin/assets/{newsletters-Rq1M3GD-.js → newsletters-Dz77m__5.js} +1 -1
  218. package/core/built/admin/assets/note-BPtEzzZS.js +1 -0
  219. package/core/built/admin/assets/notifications-ng3ulEdp.js +1 -0
  220. package/core/built/admin/assets/{nql-BLpCn7qX.js → nql-DnDc7UuU.js} +1 -1
  221. package/core/built/admin/assets/nql-lang-CeTB_Bhv.js +19 -0
  222. package/core/built/admin/assets/{offers--e2nGvkW.js → offers-ByWSK0rR.js} +1 -1
  223. package/core/built/admin/assets/offers-container-modal-CwqnRa3T.js +1 -0
  224. package/core/built/admin/assets/onboarding-B4hfBi9a.js +1 -0
  225. package/core/built/admin/assets/onboarding-DV_XbHts.js +1 -0
  226. package/core/built/admin/assets/onboarding-route-CplZzd7F.js +1 -0
  227. package/core/built/admin/assets/overview-B0yD9OoX.js +1 -0
  228. package/core/built/admin/assets/overview-C4eJzQqi.js +1 -0
  229. package/core/built/admin/assets/page-header-CdCpekG9.js +1 -0
  230. package/core/built/admin/assets/pagemenu-CKQD9hoP.js +1 -0
  231. package/core/built/admin/assets/{pages-CjDY2CBI.js → pages-DZ_YGB1D.js} +1 -1
  232. package/core/built/admin/assets/pages-route-CKsnxIvw.js +1 -0
  233. package/core/built/admin/assets/papaparse.min-BlhnCUXn.js +10 -0
  234. package/core/built/admin/assets/pintura-modal-C5jzeyGk.js +1 -0
  235. package/core/built/admin/assets/portal-frame-DYo0bh0E.js +1 -0
  236. package/core/built/admin/assets/portal-modal-C0d8xjKa.js +1 -0
  237. package/core/built/admin/assets/post-analytics-C5C7IyAm.js +1 -0
  238. package/core/built/admin/assets/post-analytics-context-bt2YTBAC.js +1 -0
  239. package/core/built/admin/assets/post-analytics-header-DKWHwoK2.js +1 -0
  240. package/core/built/admin/assets/post-analytics-provider-BqCPPxmW.js +1 -0
  241. package/core/built/admin/assets/post-share-modal-wxmqbAv_.js +1 -0
  242. package/core/built/admin/assets/posts-list-screen-B978ZO0R.js +2 -0
  243. package/core/built/admin/assets/posts-route-CDqxKazl.js +1 -0
  244. package/core/built/admin/assets/{posts-pCPrhQeR.js → posts-tcoO3iRG.js} +1 -1
  245. package/core/built/admin/assets/preferences-CnejTRc4.js +5 -0
  246. package/core/built/admin/assets/preview-chrome-C7yZWVLZ.js +1 -0
  247. package/core/built/admin/assets/preview-modal-CFUxUGHp.js +1 -0
  248. package/core/built/admin/assets/profile-ClRGiOqA.js +1 -0
  249. package/core/built/admin/assets/prop-types-6lTeqvom.js +1 -0
  250. package/core/built/admin/assets/radio-group-CTmLo0h9.js +1 -0
  251. package/core/built/admin/assets/react-BXwhMTuc.js +1 -0
  252. package/core/built/admin/assets/{jsx-runtime-DX3WBWVO.js → react-dom-CMOtJ5MH.js} +2 -2
  253. package/core/built/admin/assets/{referrers-D8oHPmDB.js → referrers-1R8bPpoV.js} +1 -1
  254. package/core/built/admin/assets/router-provider-DDZvgS3V.js +1 -0
  255. package/core/built/admin/assets/select-D_4xWFYv.js +1 -0
  256. package/core/built/admin/assets/settings-BRl7-7a9.js +1 -0
  257. package/core/built/admin/assets/settings-BoQcPa-y.js +4 -0
  258. package/core/built/admin/assets/settings-breadcrumbs-C9Yxl81q.js +1 -0
  259. package/core/built/admin/assets/{dist-B3keLvjj.js → shade-scope-Cccj-c7I-D0XwkdKQ.js} +5 -3
  260. package/core/built/admin/assets/share-modal-DBqZobuR.js +1 -0
  261. package/core/built/admin/assets/simple-pagination-D5t_ox6x.js +1 -0
  262. package/core/built/admin/assets/skeleton-CPcTiTSX.js +1 -0
  263. package/core/built/admin/assets/slack-modal-BF9ex8cd.js +1 -0
  264. package/core/built/admin/assets/sort-button-C0EXGjnS.js +1 -0
  265. package/core/built/admin/assets/source-icon-BzzftCQ2.js +1 -0
  266. package/core/built/admin/assets/{stats-D9PDLS3x.js → stats-Cvp8Ep5m.js} +1 -1
  267. package/core/built/admin/assets/stats-view-CzpGoHzF.js +1 -0
  268. package/core/built/admin/assets/step-1-CBUYUPPF.js +1 -0
  269. package/core/built/admin/assets/step-2-CEIXUwQa.js +1 -0
  270. package/core/built/admin/assets/step-3-C1HA5i1N.js +2 -0
  271. package/core/built/admin/assets/stripe-button-DMFsLs80.js +1 -0
  272. package/core/built/admin/assets/stripe-connect-modal-CEvxCUTv.js +1 -0
  273. package/core/built/admin/assets/switch-DoOJF2yg.js +1 -0
  274. package/core/built/admin/assets/table-BDYbUHJz.js +1 -0
  275. package/core/built/admin/assets/tabs-BZyz4ZCH.js +1 -0
  276. package/core/built/admin/assets/tag-detail-CFzaz_9E.js +2 -0
  277. package/core/built/admin/assets/tag-picker-BKUCZuRc.js +1 -0
  278. package/core/built/admin/assets/tags-Bs1FiD7m.js +1 -0
  279. package/core/built/admin/assets/{tags-ChfdwJyS.js → tags-NwZ7BPK6.js} +1 -1
  280. package/core/built/admin/assets/testimonials-modal-CVm0_7E-.js +1 -0
  281. package/core/built/admin/assets/text-BLI0C8Mc.js +1 -0
  282. package/core/built/admin/assets/textarea-C5qolByg.js +1 -0
  283. package/core/built/admin/assets/themes-DtcEFQWm.js +1 -0
  284. package/core/built/admin/assets/tier-detail-modal-Cmwzi-e7.js +1 -0
  285. package/core/built/admin/assets/{tiers-BCpIOGQr.js → tiers-6mPzCXlM.js} +1 -1
  286. package/core/built/admin/assets/toggle-group-BTL1QsWY.js +1 -0
  287. package/core/built/admin/assets/topic-filter-BMjhquv7.js +1 -0
  288. package/core/built/admin/assets/transistor-modal-hMv53jF8.js +1 -0
  289. package/core/built/admin/assets/trend-badge-1w_HEzkG.js +1 -0
  290. package/core/built/admin/assets/unsplash-modal-jzC8lEB2.js +1 -0
  291. package/core/built/admin/assets/use-analytics-data-B3lGOxsC.js +1 -0
  292. package/core/built/admin/assets/use-availability-DnKqOyqd.js +1 -0
  293. package/core/built/admin/assets/{use-check-theme-limit-error-DRUjK4YM.js → use-check-theme-limit-error-C1tc2P4N.js} +2 -2
  294. package/core/built/admin/assets/use-email-sending-status-DNMtL5B9.js +1 -0
  295. package/core/built/admin/assets/use-filter-params-DU-aiaTb.js +1 -0
  296. package/core/built/admin/assets/use-filterable-api-CxCrnPxG.js +1 -0
  297. package/core/built/admin/assets/use-form-DJKZJhQh.js +1 -0
  298. package/core/built/admin/assets/use-growth-stats-E13rMQUE.js +1 -0
  299. package/core/built/admin/assets/use-host-limits-mpTkZIq8.js +1 -0
  300. package/core/built/admin/assets/use-limiter-DlL7au90.js +19 -0
  301. package/core/built/admin/assets/use-navigate-with-base-path-BzgNwMAx.js +1 -0
  302. package/core/built/admin/assets/use-pintura-config-CtEV1JQY.js +1 -0
  303. package/core/built/admin/assets/use-pintura-editor-CaxE64kD.js +1 -0
  304. package/core/built/admin/assets/use-post-referrers-DyPjyBSN.js +1 -0
  305. package/core/built/admin/assets/use-query-params-DlOHCo-R.js +1 -0
  306. package/core/built/admin/assets/use-reply-chain-data-BST2OgCM.js +1 -0
  307. package/core/built/admin/assets/use-router-history-entry-CKx9LhqD.js +1 -0
  308. package/core/built/admin/assets/use-sending-eta-DR9ueMH8.js +1 -0
  309. package/core/built/admin/assets/use-setting-group-ldtX1Vsk.js +1 -0
  310. package/core/built/admin/assets/use-settings-navigation-CzGU4sus.js +1 -0
  311. package/core/built/admin/assets/use-staff-users-DoeXaPsb.js +1 -0
  312. package/core/built/admin/assets/use-tinybird-query-BaBNCaj0.js +1 -0
  313. package/core/built/admin/assets/use-tinybird-token-CnZ19NDf.js +1 -0
  314. package/core/built/admin/assets/use-unsaved-changes-guard-CKVPWz_F.js +1 -0
  315. package/core/built/admin/assets/use-upgrade-route-CVjDlNSs.js +1 -0
  316. package/core/built/admin/assets/{use-url-input-fvp-TpPx.js → use-url-input-C5KHJw79.js} +1 -1
  317. package/core/built/admin/assets/user-detail-modal-Dm0KfPeR.js +1 -0
  318. package/core/built/admin/assets/{users-DVNWrqg9.js → users-C60_hpn6.js} +1 -1
  319. package/core/built/admin/assets/{validator-Cr0sMKuW.js → validator-DlFQP70j.js} +1 -1
  320. package/core/built/admin/assets/{vendor-2dd263291938d407802568d3357ec69e.js → vendor-97e91ff8dd1457c668f9ef103ee1a77b.js} +2748 -2977
  321. package/core/built/admin/assets/virtual-list-tAuPUICw.js +1 -0
  322. package/core/built/admin/assets/web-BQlKcW2x.js +2 -0
  323. package/core/built/admin/assets/web-NTT5DkEz.js +1 -0
  324. package/core/built/admin/assets/zapier-modal-DsHG9Oev.js +1 -0
  325. package/core/built/admin/index.html +35 -34
  326. package/core/cli/command.js +17 -2
  327. package/core/frontend/apps/private-blogging/index.js +2 -2
  328. package/core/frontend/apps/private-blogging/lib/middleware.js +1 -1
  329. package/core/frontend/apps/private-blogging/lib/router.js +1 -1
  330. package/core/frontend/helpers/cancel_link.js +3 -3
  331. package/core/frontend/helpers/content.js +2 -2
  332. package/core/frontend/helpers/content_api_url.js +1 -1
  333. package/core/frontend/helpers/date.js +1 -1
  334. package/core/frontend/helpers/foreach.js +5 -5
  335. package/core/frontend/helpers/get.js +7 -4
  336. package/core/frontend/helpers/ghost_head.js +2 -2
  337. package/core/frontend/helpers/has.js +1 -3
  338. package/core/frontend/helpers/link.js +7 -7
  339. package/core/frontend/helpers/link_class.js +2 -2
  340. package/core/frontend/helpers/navigation.js +1 -2
  341. package/core/frontend/helpers/recommendations.js +5 -6
  342. package/core/frontend/helpers/tiers.js +1 -1
  343. package/core/frontend/helpers/total_members.js +1 -1
  344. package/core/frontend/helpers/total_paid_members.js +1 -1
  345. package/core/frontend/meta/asset-url.js +1 -16
  346. package/core/frontend/meta/author-url.js +1 -1
  347. package/core/frontend/meta/modified-date.js +1 -1
  348. package/core/frontend/meta/published-date.js +1 -1
  349. package/core/frontend/meta/schema.js +3 -8
  350. package/core/frontend/meta/structured-data.js +1 -2
  351. package/core/frontend/services/asset-hash/index.js +32 -2
  352. package/core/frontend/services/assets-minification/minifier.js +1 -1
  353. package/core/frontend/services/data/entry-lookup.js +1 -1
  354. package/core/frontend/services/data/fetch-data.js +2 -2
  355. package/core/frontend/services/rendering/format-response.js +1 -1
  356. package/core/frontend/services/rendering/renderer.js +3 -0
  357. package/core/frontend/services/rendering/templates.js +1 -1
  358. package/core/frontend/services/routing/controllers/static.js +1 -1
  359. package/core/frontend/services/routing/controllers/unsubscribe.js +2 -1
  360. package/core/frontend/services/routing/parent-router.js +1 -1
  361. package/core/frontend/services/routing/registry.js +1 -1
  362. package/core/frontend/services/rss/generate-feed.js +1 -1
  363. package/core/frontend/services/sitemap/base-site-map-generator.js +68 -97
  364. package/core/frontend/services/sitemap/site-map-index-generator.js +16 -21
  365. package/core/frontend/services/sitemap/site-map-manager.js +82 -43
  366. package/core/frontend/services/sitemap/sitemap-xml.js +72 -0
  367. package/core/frontend/services/theme-engine/active.js +2 -4
  368. package/core/frontend/services/theme-engine/handlebars/utils.js +8 -8
  369. package/core/frontend/services/theme-engine/i18n/i18n.js +15 -6
  370. package/core/frontend/services/theme-engine/i18next/theme-i18n.js +1 -1
  371. package/core/frontend/services/theme-engine/middleware/update-global-template-options.js +1 -1
  372. package/core/frontend/services/theme-engine/preview.js +1 -1
  373. package/core/frontend/utils/member-count.js +2 -2
  374. package/core/frontend/web/middleware/llms-discovery.js +34 -43
  375. package/core/frontend/web/routers/serve-public-file.js +1 -1
  376. package/core/server/adapters/route-settings/S3RouteSettingsStore.js +1 -1
  377. package/core/server/adapters/scheduling/README.md +4 -0
  378. package/core/server/adapters/scheduling/get-scheduler-idempotency-key.js +21 -0
  379. package/core/server/adapters/storage/LocalFilesStorage.js +12 -2
  380. package/core/server/adapters/storage/LocalStorageBase.js +15 -1
  381. package/core/server/api/endpoints/actions.js +2 -1
  382. package/core/server/api/endpoints/automated-emails.js +11 -4
  383. package/core/server/api/endpoints/automations.js +77 -49
  384. package/core/server/api/endpoints/db.js +1 -1
  385. package/core/server/api/endpoints/emails.js +11 -6
  386. package/core/server/api/endpoints/index.js +1 -1
  387. package/core/server/api/endpoints/invites.js +2 -1
  388. package/core/server/api/endpoints/labels.js +6 -2
  389. package/core/server/api/endpoints/mail.js +1 -1
  390. package/core/server/api/endpoints/member-metafields.js +2 -2
  391. package/core/server/api/endpoints/member-signin-urls.js +1 -1
  392. package/core/server/api/endpoints/members.js +23 -7
  393. package/core/server/api/endpoints/oembed.js +1 -1
  394. package/core/server/api/endpoints/pages.js +2 -6
  395. package/core/server/api/endpoints/posts.js +4 -12
  396. package/core/server/api/endpoints/settings.js +2 -2
  397. package/core/server/api/endpoints/snippets.js +2 -1
  398. package/core/server/api/endpoints/tags.js +6 -2
  399. package/core/server/api/endpoints/themes.js +5 -5
  400. package/core/server/api/endpoints/users.js +2 -6
  401. package/core/server/api/endpoints/utils/api-filter-utils.js +62 -3
  402. package/core/server/api/endpoints/utils/serializers/input/pages.js +2 -2
  403. package/core/server/api/endpoints/utils/serializers/input/posts.js +2 -2
  404. package/core/server/api/endpoints/utils/serializers/input/tags.js +1 -1
  405. package/core/server/api/endpoints/utils/serializers/input/utils/slug-filter-order.js +4 -4
  406. package/core/server/api/endpoints/utils/serializers/output/mappers/comments.js +8 -5
  407. package/core/server/api/endpoints/utils/serializers/output/mappers/posts.js +1 -1
  408. package/core/server/api/endpoints/utils/serializers/output/pages.js +4 -4
  409. package/core/server/api/endpoints/utils/serializers/output/posts.js +4 -4
  410. package/core/server/api/endpoints/utils/serializers/output/search-index.js +11 -11
  411. package/core/server/api/endpoints/utils/serializers/output/settings.js +1 -1
  412. package/core/server/api/endpoints/utils/serializers/output/utils/clean.js +2 -0
  413. package/core/server/api/endpoints/utils/serializers/output/utils/extra-attrs.js +6 -3
  414. package/core/server/api/endpoints/utils/validators/input/automated_emails.js +23 -33
  415. package/core/server/api/endpoints/utils/validators/input/settings.js +18 -4
  416. package/core/server/data/exporter/exporter.js +3 -3
  417. package/core/server/data/exporter/table-lists.js +4 -5
  418. package/core/server/data/importer/handlers/image.js +1 -2
  419. package/core/server/data/importer/handlers/json.js +1 -3
  420. package/core/server/data/importer/handlers/markdown.js +4 -8
  421. package/core/server/data/importer/import-manager.js +1 -1
  422. package/core/server/data/importer/importers/content-file-importer.js +4 -8
  423. package/core/server/data/importer/importers/data/base.js +10 -10
  424. package/core/server/data/importer/importers/data/custom-theme-settings-importer.js +1 -1
  425. package/core/server/data/importer/importers/data/data-importer.js +3 -4
  426. package/core/server/data/importer/importers/data/posts-importer.js +10 -10
  427. package/core/server/data/importer/importers/data/products-importer.js +3 -3
  428. package/core/server/data/importer/importers/data/settings-importer.js +10 -4
  429. package/core/server/data/importer/importers/data/stripe-prices-importer.js +1 -1
  430. package/core/server/data/importer/importers/data/stripe-products-importer.js +1 -1
  431. package/core/server/data/importer/importers/data/tags-importer.js +1 -1
  432. package/core/server/data/importer/importers/data/users-importer.js +2 -2
  433. package/core/server/data/importer/importers/json-to-html.js +12 -9
  434. package/core/server/data/migrations/versions/5.0/2022-05-11-13-12-rename-settings.js +1 -1
  435. package/core/server/data/migrations/versions/6.64/2026-09-03-15-40-25-add-member-access-to-members-metafields.js +12 -0
  436. package/core/server/data/migrations/versions/6.64/2026-09-08-11-01-12-add-posts-auto-excerpt-and-reading-time-columns.js +17 -0
  437. package/core/server/data/migrations/versions/6.64/2026-09-09-13-56-18-add-automation-run-updated-at-indexes.js +6 -0
  438. package/core/server/data/migrations/versions/6.64/2026-09-09-13-56-18-add-tinybird-syncs-table.js +10 -0
  439. package/core/server/data/migrations/versions/6.65/2026-09-16-15-35-26-add-members-metafield-change-events.js +17 -0
  440. package/core/server/data/schema/fixtures/fixture-manager.js +3 -3
  441. package/core/server/data/schema/index.js +1 -1
  442. package/core/server/data/schema/schema.js +54 -2
  443. package/core/server/data/schema/validator.js +96 -123
  444. package/core/server/data/seeders/importers/automations-importer.js +0 -1
  445. package/core/server/data/seeders/importers/comments-importer.js +1 -1
  446. package/core/server/data/seeders/importers/email-recipients-importer.js +3 -3
  447. package/core/server/data/seeders/importers/emails-importer.js +1 -1
  448. package/core/server/data/seeders/importers/members-importer.js +1 -1
  449. package/core/server/data/seeders/importers/members-login-events-importer.js +2 -2
  450. package/core/server/data/seeders/importers/members-newsletters-importer.js +1 -1
  451. package/core/server/data/seeders/importers/members-paid-subscription-events-importer.js +1 -1
  452. package/core/server/data/seeders/importers/members-status-events-importer.js +1 -1
  453. package/core/server/data/seeders/importers/members-stripe-customers-importer.js +1 -1
  454. package/core/server/data/seeders/importers/members-stripe-customers-subscriptions-importer.js +2 -2
  455. package/core/server/data/seeders/importers/members-subscribe-events-importer.js +2 -2
  456. package/core/server/data/seeders/importers/members-subscription-created-events-importer.js +1 -1
  457. package/core/server/data/seeders/utils/blog-info.js +4 -3
  458. package/core/server/data/seeders/utils/event-generator.js +72 -46
  459. package/core/server/data/tinybird/datasources/_mv_automation_run_steps.datasource +10 -0
  460. package/core/server/data/tinybird/datasources/_mv_automation_runs.datasource +10 -0
  461. package/core/server/data/tinybird/datasources/_mv_pending_automation_runs.datasource +10 -0
  462. package/core/server/data/tinybird/datasources/automation_run_events.datasource +12 -0
  463. package/core/server/data/tinybird/datasources/automation_run_step_events.datasource +12 -0
  464. package/core/server/data/tinybird/endpoints/api_automation_browse_stats.pipe +43 -0
  465. package/core/server/data/tinybird/fixtures/automation_run_events.ndjson +7 -0
  466. package/core/server/data/tinybird/fixtures/automation_run_step_events.ndjson +8 -0
  467. package/core/server/data/tinybird/pipes/mv_automation_run_steps.pipe +13 -0
  468. package/core/server/data/tinybird/pipes/mv_automation_runs.pipe +15 -0
  469. package/core/server/data/tinybird/pipes/mv_hits.pipe +25 -20
  470. package/core/server/data/tinybird/pipes/mv_pending_automation_runs.pipe +7 -0
  471. package/core/server/data/tinybird/scripts/docker-analytics-manager.js +2 -2
  472. package/core/server/data/tinybird/tests/api_automation_browse_stats.yaml +18 -0
  473. package/core/server/ghost-server.js +4 -22
  474. package/core/server/lib/generate-password.js +54 -0
  475. package/core/server/lib/image/image-size.js +1 -3
  476. package/core/server/lib/public-jwk.js +77 -0
  477. package/core/server/lib/request-external.js +53 -117
  478. package/core/server/models/base/plugins/actions.js +2 -3
  479. package/core/server/models/base/plugins/crud.js +1 -2
  480. package/core/server/models/base/plugins/events.js +4 -4
  481. package/core/server/models/base/plugins/raw-knex.js +3 -3
  482. package/core/server/models/base/plugins/sanitize.js +1 -1
  483. package/core/server/models/benefit.js +1 -1
  484. package/core/server/models/collection.js +1 -1
  485. package/core/server/models/comment.js +3 -3
  486. package/core/server/models/invite.js +2 -5
  487. package/core/server/models/label.js +3 -6
  488. package/core/server/models/member.js +7 -10
  489. package/core/server/models/newsletter.js +1 -1
  490. package/core/server/models/permission.js +3 -6
  491. package/core/server/models/post.js +20 -23
  492. package/core/server/models/product.js +4 -1
  493. package/core/server/models/relations/authors.js +9 -12
  494. package/core/server/models/role.js +2 -5
  495. package/core/server/models/settings.js +3 -3
  496. package/core/server/models/tag.js +2 -5
  497. package/core/server/models/user.js +19 -19
  498. package/core/server/models/webhook.js +2 -4
  499. package/core/server/notify.js +2 -2
  500. package/core/server/services/adapter-manager/base-classes.js +21 -3
  501. package/core/server/services/adapter-manager/utils.js +6 -1
  502. package/core/server/services/api-version-compatibility/legacy-api-path-match.js +2 -2
  503. package/core/server/services/auth/api-key/admin.js +2 -2
  504. package/core/server/services/auth/api-key/content.js +1 -1
  505. package/core/server/services/auth/passwordreset.js +1 -1
  506. package/core/server/services/auth/setup.js +1 -3
  507. package/core/server/services/automations/README.md +19 -0
  508. package/core/server/services/automations/automations-api.js +46 -1
  509. package/core/server/services/automations/poll.js +3 -1
  510. package/core/server/services/automations/service.js +2 -2
  511. package/core/server/services/automations/tinybird-automation-stats.js +56 -0
  512. package/core/server/services/automations/welcome-email-automation-poll.js +199 -293
  513. package/core/server/services/comments/comments-controller.js +9 -30
  514. package/core/server/services/comments/comments-service-email-renderer.js +1 -1
  515. package/core/server/services/comments/comments-service-emails.js +1 -1
  516. package/core/server/services/comments/comments-service.js +27 -58
  517. package/core/server/services/comments/comments-stats-service.js +1 -1
  518. package/core/server/services/content-import/import/media.js +1 -1
  519. package/core/server/services/content-import/import/staged-file.js +9 -9
  520. package/core/server/services/content-import/index.js +1 -1
  521. package/core/server/services/custom-redirects/validation.js +1 -1
  522. package/core/server/services/email-analytics/email-analytics-service-wrapper.js +38 -84
  523. package/core/server/services/email-analytics/email-analytics-service.js +19 -3
  524. package/core/server/services/email-analytics/index.js +44 -23
  525. package/core/server/services/email-analytics/jobs/email-analytics-job-scheduler.js +31 -60
  526. package/core/server/services/email-rendering/finalize.js +7 -2
  527. package/core/server/services/email-service/README.md +38 -0
  528. package/core/server/services/email-service/batch-sending-service.js +13 -14
  529. package/core/server/services/email-service/email-renderer.js +57 -16
  530. package/core/server/services/email-service/email-service-wrapper.js +4 -3
  531. package/core/server/services/email-service/email-service.js +76 -42
  532. package/core/server/services/email-service/email-templates/partials/feedback-button.hbs +2 -1
  533. package/core/server/services/email-service/email-templates/partials/styles.hbs +0 -6
  534. package/core/server/services/email-service/email-templates/template.hbs +1 -1
  535. package/core/server/services/email-service/jobs/send-email-job.js +12 -0
  536. package/core/server/services/email-service/mailgun-email-provider.js +7 -2
  537. package/core/server/services/email-service/sending-service.js +1 -1
  538. package/core/server/services/email-service/sending-status.js +10 -4
  539. package/core/server/services/gifts/gift-email-service.js +10 -3
  540. package/core/server/services/gifts/gift-service.js +12 -3
  541. package/core/server/services/gifts/index.js +1 -2
  542. package/core/server/services/gifts/jobs/index.js +12 -24
  543. package/core/server/services/gifts/jobs/send-gift-reminders-job.js +6 -46
  544. package/core/server/services/i18n.js +1 -1
  545. package/core/server/services/identity-tokens/identity-token-service-wrapper.js +3 -4
  546. package/core/server/services/invitations/accept.js +2 -2
  547. package/core/server/services/jobs/job-service.js +0 -28
  548. package/core/server/services/jobs-service/jobs-service.js +5 -0
  549. package/core/server/services/jobs-service/register-job-handlers.js +17 -1
  550. package/core/server/services/lib/mailgun-client.js +16 -1
  551. package/core/server/services/lib/mailgun-recipient-message-id.js +49 -0
  552. package/core/server/services/limits.js +18 -2
  553. package/core/server/services/mail/ghost-mailer.js +1 -1
  554. package/core/server/services/member-attribution/member-attribution-service.js +1 -1
  555. package/core/server/services/member-attribution/referrer-translator.js +1 -1
  556. package/core/server/services/member-welcome-emails/service.js +1 -1
  557. package/core/server/services/members/account-service.js +3 -3
  558. package/core/server/services/members/api.js +1 -1
  559. package/core/server/services/members/import-export/import/importer.js +25 -16
  560. package/core/server/services/members/import-export/import/spool.js +11 -15
  561. package/core/server/services/members/import-export/index.js +11 -8
  562. package/core/server/services/members/jobs/index.js +1 -1
  563. package/core/server/services/members/jobs/members-import-job.js +18 -0
  564. package/core/server/services/members/member-avatar.js +18 -0
  565. package/core/server/services/members/members-api/controllers/member-controller.js +2 -2
  566. package/core/server/services/members/members-api/controllers/router-controller.js +7 -2
  567. package/core/server/services/members/members-api/controllers/well-known-controller.js +2 -1
  568. package/core/server/services/members/members-api/members-api.js +4 -4
  569. package/core/server/services/members/members-api/repositories/event-repository.js +40 -1
  570. package/core/server/services/members/members-api/repositories/member-repository.js +55 -17
  571. package/core/server/services/members/members-api/repositories/product-repository.js +1 -1
  572. package/core/server/services/members/members-api/services/member-bread-service.js +19 -19
  573. package/core/server/services/members/members-api/services/token-service.js +11 -12
  574. package/core/server/services/members/middleware.js +9 -2
  575. package/core/server/services/members/request-integrity-token-provider.js +2 -1
  576. package/core/server/services/members/service.js +7 -2
  577. package/core/server/services/members/stats/members-stats.js +2 -2
  578. package/core/server/services/members-events/event-storage.js +2 -2
  579. package/core/server/services/members-metafields/access.js +31 -20
  580. package/core/server/services/members-metafields/actions.js +24 -2
  581. package/core/server/services/members-metafields/bindings-service.js +5 -5
  582. package/core/server/services/members-metafields/codec.js +9 -2
  583. package/core/server/services/members-metafields/definitions-service.js +57 -52
  584. package/core/server/services/members-metafields/index.js +3 -2
  585. package/core/server/services/members-metafields/models.js +2 -0
  586. package/core/server/services/members-metafields/queries.js +45 -11
  587. package/core/server/services/members-metafields/schema.js +51 -1
  588. package/core/server/services/members-metafields/serializers.js +1 -0
  589. package/core/server/services/members-metafields/values-service.js +132 -21
  590. package/core/server/services/mentions/mention-discovery-service.js +1 -1
  591. package/core/server/services/mentions/mention-sending-service.js +3 -3
  592. package/core/server/services/mentions/mention.js +4 -5
  593. package/core/server/services/mentions/mentions-api.js +4 -1
  594. package/core/server/services/mentions-jobs/job-service.js +0 -28
  595. package/core/server/services/milestones/milestones-service.js +1 -1
  596. package/core/server/services/newsletters/newsletters-service.js +1 -1
  597. package/core/server/services/notifications/notifications.js +3 -3
  598. package/core/server/services/oembed/oembed-service.js +115 -14
  599. package/core/server/services/permissions/can-this.js +1 -2
  600. package/core/server/services/post-scheduling/post-scheduling.js +8 -1
  601. package/core/server/services/posts/post-scheduling.js +27 -0
  602. package/core/server/services/settings/settings-bread-service.js +3 -3
  603. package/core/server/services/settings/settings-utils.js +1 -1
  604. package/core/server/services/settings-helpers/settings-helpers.js +1 -1
  605. package/core/server/services/staff/staff-service-emails.js +14 -10
  606. package/core/server/services/stats/posts-stats-service.js +10 -10
  607. package/core/server/services/stats/referrers-stats-service.js +1 -1
  608. package/core/server/services/stats/stats-service.js +12 -3
  609. package/core/server/services/stats/subscription-stats-service.js +3 -3
  610. package/core/server/services/stats/utils/tinybird.js +8 -1
  611. package/core/server/services/stripe/stripe-api.js +3 -3
  612. package/core/server/services/stripe/stripe-migrations.js +6 -6
  613. package/core/server/services/themes/storage.js +21 -26
  614. package/core/server/services/themes/theme-storage.js +2 -2
  615. package/core/server/services/tier-checkout-config/service.js +17 -1
  616. package/core/server/services/tiers/tier.js +15 -15
  617. package/core/server/services/tinybird/tinybird-service.js +1 -0
  618. package/core/server/services/tinybird-sync/get-ingest-config.js +39 -0
  619. package/core/server/services/tinybird-sync/index.js +31 -0
  620. package/core/server/services/tinybird-sync/sync-table-to-tinybird.js +149 -0
  621. package/core/server/services/tinybird-sync/tinybird-sync-service.js +67 -0
  622. package/core/server/services/update-check/update-check-service.js +3 -3
  623. package/core/server/services/webhooks/serialize.js +1 -1
  624. package/core/server/web/api/app.js +0 -5
  625. package/core/server/web/api/endpoints/admin/routes.js +33 -34
  626. package/core/server/web/api/middleware/upload.js +29 -2
  627. package/core/server/web/parent/middleware/index.js +1 -1
  628. package/core/server/web/parent/middleware/log-request.js +5 -0
  629. package/core/server/web/parent/middleware/queue-request.js +104 -59
  630. package/core/server/web/shared/middleware/api/spam-prevention.js +2 -2
  631. package/core/server/web/well-known.js +12 -16
  632. package/core/shared/config/defaults.json +7 -3
  633. package/core/shared/custom-theme-settings-cache/custom-theme-settings-service.js +1 -1
  634. package/core/shared/{flush-logs.js → flush.js} +7 -3
  635. package/core/shared/labs.js +5 -2
  636. package/core/shared/settings-cache/cache-manager.js +1 -1
  637. package/core/shared/timing-safe-string-equal.js +26 -0
  638. package/nodemon.json +1 -1
  639. package/package.json +47 -48
  640. package/patches/@elastic__elasticsearch@8.19.2.patch +67 -0
  641. package/patches/juice@11.1.1.patch +46 -0
  642. package/pnpm-lock.yaml +571 -2107
  643. package/pnpm-workspace.yaml +38 -28
  644. package/scripts/prune.mts +70 -3
  645. package/tsconfig.json +1 -1
  646. package/components/tryghost-adapter-base-scheduling-0.2.3.tgz +0 -0
  647. package/core/built/admin/assets/Combination-B0l4MKVh.js +0 -41
  648. package/core/built/admin/assets/RadialBarChart-JAKoS4KT.js +0 -1
  649. package/core/built/admin/assets/_baseAssignValue-C_vooEQc.js +0 -1
  650. package/core/built/admin/assets/about-C1C3s5-g.js +0 -1
  651. package/core/built/admin/assets/accordion-CxGsDKwa.js +0 -1
  652. package/core/built/admin/assets/account-migration-CbUhW6gk.js +0 -1
  653. package/core/built/admin/assets/action-list-C4v0-du8.js +0 -1
  654. package/core/built/admin/assets/activitypub/avatar-DVJF5bxP.js +0 -261
  655. package/core/built/admin/assets/activitypub/layout-BL4_jtuV.js +0 -1
  656. package/core/built/admin/assets/activitypub/routes-DdyY9uFF.js +0 -7181
  657. package/core/built/admin/assets/activitypub/settings-B6EEcVkW.js +0 -315
  658. package/core/built/admin/assets/activitypub/tabs-DLhZtVde.js +0 -1083
  659. package/core/built/admin/assets/activitypub/users-inweyKL5.js +0 -1499
  660. package/core/built/admin/assets/add-integration-modal-BT_onDJy.js +0 -1
  661. package/core/built/admin/assets/add-newsletter-modal-Cx1kQpiY.js +0 -1
  662. package/core/built/admin/assets/add-recommendation-modal-B5nvAhvr.js +0 -1
  663. package/core/built/admin/assets/analytics-DjoJWPI7.js +0 -1
  664. package/core/built/admin/assets/announcement-bar-modal-Dwd0EGFP.js +0 -1
  665. package/core/built/admin/assets/api-keys-BoeacM-s.js +0 -1
  666. package/core/built/admin/assets/automated-emails-BLesE41L.js +0 -1
  667. package/core/built/admin/assets/automations-BN4u3GR8.js +0 -1
  668. package/core/built/admin/assets/automations-C-ZTUwW3.js +0 -1
  669. package/core/built/admin/assets/avatar-flipboard-C6Kj3Awu.js +0 -1
  670. package/core/built/admin/assets/bluesky-sharing-vzh-oPXL.js +0 -1
  671. package/core/built/admin/assets/box-CdfQAP_F.js +0 -1
  672. package/core/built/admin/assets/brand-icon-CrIGOA3Z.js +0 -1
  673. package/core/built/admin/assets/breadcrumb-CaLk2b7D.js +0 -1
  674. package/core/built/admin/assets/build-CsiH26uS.js +0 -1
  675. package/core/built/admin/assets/button-Dvcv1QSR.js +0 -1
  676. package/core/built/admin/assets/calendar-Bl9RLcZX.js +0 -1
  677. package/core/built/admin/assets/card--VNbfgo3.js +0 -1
  678. package/core/built/admin/assets/chart-BrhA41Zi.js +0 -63
  679. package/core/built/admin/assets/chart-helpers-FHywU0pj.js +0 -1
  680. package/core/built/admin/assets/checkbox-BtayFtjg.js +0 -1
  681. package/core/built/admin/assets/chunk.524.e6975095fccdf22d90f8.js +0 -32
  682. package/core/built/admin/assets/chunk.582.98b485f9b2802f540897.js +0 -34
  683. package/core/built/admin/assets/code-editor-view-C3ZfoF1X.js +0 -1
  684. package/core/built/admin/assets/code-editor-view-CAyRWy1s.js +0 -1
  685. package/core/built/admin/assets/color-picker-G4kGR7rp.js +0 -3
  686. package/core/built/admin/assets/color-picker-field-DQFVTNnT.js +0 -1
  687. package/core/built/admin/assets/combobox-BnYzgEB4.js +0 -1
  688. package/core/built/admin/assets/command-C_vyTikI.js +0 -1
  689. package/core/built/admin/assets/comments-aBrxfnZf.js +0 -1
  690. package/core/built/admin/assets/components-CwL6a6As-B0E0-NBJ.js +0 -1
  691. package/core/built/admin/assets/confirmation-context-DwXX_Y5h.js +0 -1
  692. package/core/built/admin/assets/container-BuQG1wuP.js +0 -1
  693. package/core/built/admin/assets/content-api-modal-D2G0nJP6.js +0 -1
  694. package/core/built/admin/assets/context-menu-DOVB6yaz.js +0 -1
  695. package/core/built/admin/assets/copy-field-DCJwh9qf.js +0 -1
  696. package/core/built/admin/assets/create-ghost-browse-value-source-5C53jJaX.js +0 -1
  697. package/core/built/admin/assets/custom-integration-modal-AbJGVyKc.js +0 -1
  698. package/core/built/admin/assets/data-list-CA2jYGPq.js +0 -1
  699. package/core/built/admin/assets/date-range-select-BY3K-ukj.js +0 -1
  700. package/core/built/admin/assets/design-and-theme-modal-BvEy4_pC.js +0 -2
  701. package/core/built/admin/assets/detail-page-Dnv-CdR1.js +0 -1
  702. package/core/built/admin/assets/dirty-confirm-dialog-DVPuGz3U.js +0 -1
  703. package/core/built/admin/assets/disabled-sources-indicator-Cy7Zp4c8.js +0 -1
  704. package/core/built/admin/assets/dist-4m6pHdc0.js +0 -23
  705. package/core/built/admin/assets/dist-8YJUlf3B.js +0 -1
  706. package/core/built/admin/assets/dist-CZgIBXQN.js +0 -1
  707. package/core/built/admin/assets/dist-CiHx7vA5.js +0 -6
  708. package/core/built/admin/assets/dist-DIC8yz5C.js +0 -1
  709. package/core/built/admin/assets/dist-Dcsslyo72.js +0 -1
  710. package/core/built/admin/assets/dist-Dgt2cr6a.js +0 -1
  711. package/core/built/admin/assets/dist-ECAUrdGc.js +0 -1
  712. package/core/built/admin/assets/dist-JLOy8o0Q.js +0 -1
  713. package/core/built/admin/assets/dist-Ndy-PuGN.js +0 -1
  714. package/core/built/admin/assets/dist-Z97pCNqS.js +0 -11
  715. package/core/built/admin/assets/domain-Dl61QGuk.js +0 -1
  716. package/core/built/admin/assets/dropzone-Dtz5Rmjt.js +0 -5
  717. package/core/built/admin/assets/edit-profile-DNJSMDwm.js +0 -1
  718. package/core/built/admin/assets/editor-DbAen9zf.js +0 -8
  719. package/core/built/admin/assets/editor-screen-BFWThIai.js +0 -26
  720. package/core/built/admin/assets/email-sending-status-context-CWDOD1FN.js +0 -1
  721. package/core/built/admin/assets/email-sending-status-provider-DCPkDICt.js +0 -1
  722. package/core/built/admin/assets/embed-signup-form-modal-DGqsORxS.js +0 -8
  723. package/core/built/admin/assets/empty-indicator-D9QdpuNX.js +0 -1
  724. package/core/built/admin/assets/en-B1jX3WMs.js +0 -1
  725. package/core/built/admin/assets/esm-CXo5SEPy.js +0 -2
  726. package/core/built/admin/assets/explore-nnRr1Fja.js +0 -1
  727. package/core/built/admin/assets/feature-flag-overrides-context-DQjdJFAk.js +0 -1
  728. package/core/built/admin/assets/feature-image-placeholder-BrIHmPs8.js +0 -1
  729. package/core/built/admin/assets/feed-BNUcNu-W.js +0 -1
  730. package/core/built/admin/assets/feedback-DJ4Zb9rZ.js +0 -1
  731. package/core/built/admin/assets/field-C93_Mg6j.js +0 -1
  732. package/core/built/admin/assets/filter-bar-Da1qxybu.js +0 -1
  733. package/core/built/admin/assets/filter-sources-CGJb4C5r.js +0 -1
  734. package/core/built/admin/assets/filters--kKP-EC8.js +0 -1
  735. package/core/built/admin/assets/filters-DxA_a4FP.js +0 -1
  736. package/core/built/admin/assets/first-promoter-modal-BYDtrz2S.js +0 -1
  737. package/core/built/admin/assets/focus-koenig-editor-on-bottom-click-BbSnGOtK.js +0 -1
  738. package/core/built/admin/assets/framework-provider-DqI25epG.js +0 -4
  739. package/core/built/admin/assets/gift-link-modal-B7u5bD4e.js +0 -1
  740. package/core/built/admin/assets/global-data-context-gAMDH9u1.js +0 -1
  741. package/core/built/admin/assets/grid-Dj29PY05.js +0 -1
  742. package/core/built/admin/assets/growth-Cd1uO9d2.js +0 -1
  743. package/core/built/admin/assets/growth-aG32xfdE.js +0 -3
  744. package/core/built/admin/assets/heading-Dh5SFVjL.js +0 -1
  745. package/core/built/admin/assets/history-modal-Df8lW8h-.js +0 -1
  746. package/core/built/admin/assets/hooks-Cy_-oZ4o.js +0 -2
  747. package/core/built/admin/assets/html-field-DA4eU7eq.js +0 -1
  748. package/core/built/admin/assets/iframe-buffering-B2OKJzbz.js +0 -1
  749. package/core/built/admin/assets/images-KXmyO3Ss.js +0 -1
  750. package/core/built/admin/assets/index-BHHXtR5C.css +0 -2
  751. package/core/built/admin/assets/index-CgMCwsxN.js +0 -4
  752. package/core/built/admin/assets/index.es-CY6-yuw9.js +0 -1
  753. package/core/built/admin/assets/inline-BWSs_VzR.js +0 -1
  754. package/core/built/admin/assets/input-group-BE8rM2y1.js +0 -1
  755. package/core/built/admin/assets/input-surface-BsrIZeSF.js +0 -1
  756. package/core/built/admin/assets/integration-header-Bm6IDb1A.js +0 -1
  757. package/core/built/admin/assets/invite-user-modal-B4CuNcx4.js +0 -1
  758. package/core/built/admin/assets/koenig-loader-BeM5rFPX.js +0 -2
  759. package/core/built/admin/assets/kpi-card-B21aToe8.js +0 -1
  760. package/core/built/admin/assets/kpi-card-pz6Wv4Ae.js +0 -1
  761. package/core/built/admin/assets/kpi-helpers-Dq5jelmP.js +0 -1
  762. package/core/built/admin/assets/kpi-tabs-DEZHpKUt.js +0 -1
  763. package/core/built/admin/assets/label-OLCzze8N.js +0 -1
  764. package/core/built/admin/assets/label-picker-BigOvMPV.js +0 -1
  765. package/core/built/admin/assets/labels-Dr0SgUQD.js +0 -1
  766. package/core/built/admin/assets/layout-DUTL8SH5.js +0 -1
  767. package/core/built/admin/assets/lib-7QPTI0FS.js +0 -1
  768. package/core/built/admin/assets/limit-service-BhiEvqcP.js +0 -20
  769. package/core/built/admin/assets/link-helpers-BRAg9SCj.js +0 -1
  770. package/core/built/admin/assets/links-BDHPTlyj.js +0 -1
  771. package/core/built/admin/assets/list-page-BucXJ0hi.js +0 -1
  772. package/core/built/admin/assets/luxon-D1RVjjpq.js +0 -1
  773. package/core/built/admin/assets/member-custom-fields-TRTHCAz9.js +0 -1
  774. package/core/built/admin/assets/member-detail-b6dRwc3C.js +0 -1
  775. package/core/built/admin/assets/members-Czt5lJSc.js +0 -4
  776. package/core/built/admin/assets/modal-page-xCivTMvI.js +0 -1
  777. package/core/built/admin/assets/moderation-ZWefD9uH.js +0 -1
  778. package/core/built/admin/assets/multi-select-combobox-CT13MTo-.js +0 -1
  779. package/core/built/admin/assets/navigation-modal-C8FEhBK5.js +0 -1
  780. package/core/built/admin/assets/newsletter-5VYW4RyJ.js +0 -1
  781. package/core/built/admin/assets/newsletter-detail-modal-ChjC0ZqH.js +0 -1
  782. package/core/built/admin/assets/newsletter-emails-DZH6I-PY.js +0 -1
  783. package/core/built/admin/assets/newsletters-DOC9KBcX.js +0 -1
  784. package/core/built/admin/assets/note-DIV-Pojr.js +0 -1
  785. package/core/built/admin/assets/notifications-s20-H49V.js +0 -1
  786. package/core/built/admin/assets/nql-lang-CaWrLesS.js +0 -19
  787. package/core/built/admin/assets/offers-container-modal-BmG5M5Tv.js +0 -1
  788. package/core/built/admin/assets/onboarding-CUuy9unR.js +0 -1
  789. package/core/built/admin/assets/onboarding-pXyct0Jm.js +0 -1
  790. package/core/built/admin/assets/onboarding-route-CK4pcXoR.js +0 -1
  791. package/core/built/admin/assets/overview-CaPsciMs.js +0 -1
  792. package/core/built/admin/assets/overview-a8GfcsKX.js +0 -1
  793. package/core/built/admin/assets/page-header-DM_KyoFI.js +0 -1
  794. package/core/built/admin/assets/pagemenu-vgZVUVKR.js +0 -1
  795. package/core/built/admin/assets/pages-route-BzKZYdV5.js +0 -1
  796. package/core/built/admin/assets/papaparse.min-cQwnxGCG.js +0 -10
  797. package/core/built/admin/assets/pintura-modal-DExCF1ii.js +0 -1
  798. package/core/built/admin/assets/portal-frame-Cqanidq4.js +0 -1
  799. package/core/built/admin/assets/portal-modal-oinBgA27.js +0 -1
  800. package/core/built/admin/assets/post-analytics-C5oJ1dWV.js +0 -1
  801. package/core/built/admin/assets/post-analytics-context-D0Mw-Pmv.js +0 -1
  802. package/core/built/admin/assets/post-analytics-header-OATo3X_r.js +0 -1
  803. package/core/built/admin/assets/post-analytics-provider-tOpIVGT5.js +0 -1
  804. package/core/built/admin/assets/post-share-modal-DvhC1XgV.js +0 -1
  805. package/core/built/admin/assets/posts-list-screen-o4ZjbgS3.js +0 -2
  806. package/core/built/admin/assets/posts-route-9F--xdIb.js +0 -1
  807. package/core/built/admin/assets/preferences--vNubsqD.js +0 -5
  808. package/core/built/admin/assets/preview-chrome-BljUBlOk.js +0 -1
  809. package/core/built/admin/assets/preview-modal-YYbzlYdO.js +0 -1
  810. package/core/built/admin/assets/profile-BllKV3dR.js +0 -1
  811. package/core/built/admin/assets/prop-types-DeUPn3oD.js +0 -1
  812. package/core/built/admin/assets/radio-group-DL8GI8rt.js +0 -1
  813. package/core/built/admin/assets/react-Bb3IsNbi.js +0 -1
  814. package/core/built/admin/assets/rolldown-runtime-DAXXjFlN.js +0 -1
  815. package/core/built/admin/assets/router-provider-BSvTXgZY.js +0 -1
  816. package/core/built/admin/assets/select-v5YbA3Mw.js +0 -1
  817. package/core/built/admin/assets/settings-PEsZupw1.js +0 -4
  818. package/core/built/admin/assets/settings-breadcrumbs-NwPnCTC7.js +0 -1
  819. package/core/built/admin/assets/settings-u_s1CRkr.js +0 -1
  820. package/core/built/admin/assets/shade-app-CcS3f8MZ-vwURazk8.js +0 -3
  821. package/core/built/admin/assets/share-modal-SskCmVGL.js +0 -1
  822. package/core/built/admin/assets/skeleton-Ce9GgUpf.js +0 -1
  823. package/core/built/admin/assets/slack-modal-XxSJiYgo.js +0 -1
  824. package/core/built/admin/assets/sort-button-Cx1KtINE.js +0 -1
  825. package/core/built/admin/assets/source-icon-Bdp9Im_5.js +0 -1
  826. package/core/built/admin/assets/stack-B2eszIiq.js +0 -1
  827. package/core/built/admin/assets/stats-view-W2g6Jsd-.js +0 -1
  828. package/core/built/admin/assets/step-1-BQYzvBzr.js +0 -1
  829. package/core/built/admin/assets/step-2-xES32xJV.js +0 -1
  830. package/core/built/admin/assets/step-3-DA_XK5kW.js +0 -2
  831. package/core/built/admin/assets/stripe-button-CVsLHelt.js +0 -1
  832. package/core/built/admin/assets/stripe-connect-modal-ClmLOMGS.js +0 -1
  833. package/core/built/admin/assets/switch-CI4gLWqb.js +0 -1
  834. package/core/built/admin/assets/table-BenqVupI.js +0 -1
  835. package/core/built/admin/assets/tabs-eBBlxPp8.js +0 -1
  836. package/core/built/admin/assets/tag-detail-Ce8Se2qd.js +0 -2
  837. package/core/built/admin/assets/tag-picker-C3UR-uJ-.js +0 -1
  838. package/core/built/admin/assets/tags-B-kJxCs7.js +0 -1
  839. package/core/built/admin/assets/testimonials-modal-9Q6fT06V.js +0 -1
  840. package/core/built/admin/assets/text-BQDSDsKs.js +0 -1
  841. package/core/built/admin/assets/textarea-DJ1Q5V39.js +0 -1
  842. package/core/built/admin/assets/tier-detail-modal-CDyYdqK7.js +0 -1
  843. package/core/built/admin/assets/toggle-group-CviIkyok.js +0 -1
  844. package/core/built/admin/assets/topic-filter-I2jCBGxm.js +0 -1
  845. package/core/built/admin/assets/transistor-modal-p53u3W8y.js +0 -1
  846. package/core/built/admin/assets/trend-badge-CideVzQd.js +0 -1
  847. package/core/built/admin/assets/types-uYQ1HgqL.js +0 -1
  848. package/core/built/admin/assets/unsplash-modal-DY8UcKcE.js +0 -1
  849. package/core/built/admin/assets/use-analytics-data-DAIGcr2f.js +0 -1
  850. package/core/built/admin/assets/use-filter-params-JkZhIS8L.js +0 -1
  851. package/core/built/admin/assets/use-filterable-api-BVEVMrhZ.js +0 -1
  852. package/core/built/admin/assets/use-form-vRjI0Kwk.js +0 -1
  853. package/core/built/admin/assets/use-growth-stats-937CUj6j.js +0 -1
  854. package/core/built/admin/assets/use-host-limits-D0Dv3tKA.js +0 -1
  855. package/core/built/admin/assets/use-limiter-CohWfzvK.js +0 -2
  856. package/core/built/admin/assets/use-navigate-with-base-path-BkxcPj5l.js +0 -1
  857. package/core/built/admin/assets/use-pintura-config-xgytjU35.js +0 -1
  858. package/core/built/admin/assets/use-pintura-editor-CaV1mbfO.js +0 -1
  859. package/core/built/admin/assets/use-post-referrers-BCQI7fDg.js +0 -1
  860. package/core/built/admin/assets/use-query-params-BfzuqbcD.js +0 -1
  861. package/core/built/admin/assets/use-reply-chain-data-CYRhoaxY.js +0 -1
  862. package/core/built/admin/assets/use-router-history-entry-NOKcd--l.js +0 -1
  863. package/core/built/admin/assets/use-setting-group-bLKMwoBT.js +0 -1
  864. package/core/built/admin/assets/use-settings-navigation-B-qrriKD.js +0 -1
  865. package/core/built/admin/assets/use-simple-pagination-CNPd6Rf6.js +0 -1
  866. package/core/built/admin/assets/use-staff-users-pRIMIyiW.js +0 -1
  867. package/core/built/admin/assets/use-tinybird-query-CmdbCS9X.js +0 -1
  868. package/core/built/admin/assets/use-tinybird-token-KLne235s.js +0 -1
  869. package/core/built/admin/assets/use-unsaved-changes-guard-7-ug0JdH.js +0 -1
  870. package/core/built/admin/assets/use-upgrade-route-Dm_qqKr0.js +0 -1
  871. package/core/built/admin/assets/user-detail-modal-D3KlGYv-.js +0 -1
  872. package/core/built/admin/assets/virtual-list-CZ3RK2Yf.js +0 -1
  873. package/core/built/admin/assets/web-ClEJsCAj.js +0 -2
  874. package/core/built/admin/assets/web-X9rdnrtq.js +0 -1
  875. package/core/built/admin/assets/zapier-modal-DfVhV17j.js +0 -1
  876. package/core/frontend/services/sitemap/utils.js +0 -17
  877. package/core/server/services/automations/get-scheduler-idempotency-key.js +0 -13
  878. package/core/server/web/api/testmode/index.js +0 -1
  879. package/core/server/web/api/testmode/jobs/cpu-hog.js +0 -15
  880. package/core/server/web/api/testmode/jobs/graceful-job.js +0 -50
  881. package/core/server/web/api/testmode/jobs/say-hello.js +0 -17
  882. package/core/server/web/api/testmode/routes.js +0 -120
  883. /package/core/built/admin/assets/{chunk.901.4ccc639821020230bcca.js.LICENSE.txt → chunk.972.4b8c97f93d66db15e751.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ import{i as e,r as t}from"./react-BXwhMTuc.js";var n=e({DateTime:()=>$,Duration:()=>X,FixedOffsetZone:()=>U,IANAZone:()=>V,Info:()=>Q,Interval:()=>ri,InvalidZone:()=>qn,Settings:()=>W,SystemZone:()=>jn,VERSION:()=>bi,Zone:()=>B});function r(e){let t=Mn.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(`en-US`,{hour12:!1,timeZone:e,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,era:`short`}),Mn.set(e,t)),t}function i(e,t){let n=e.format(t).replace(/\u200E/g,``),[,r,i,a,o,s,c,l]=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n);return[a,r,i,o,s,c,l]}function a(e,t){let n=e.formatToParts(t),r=[];for(let e=0;e<n.length;e++){let{type:t,value:i}=n[e],a=Nn[t];t===`era`?r[a]=i:x(a)||(r[a]=parseInt(i,10))}return r}function o(e,t={}){let n=JSON.stringify([e,t]),r=Fn[n];return r||(r=new Intl.ListFormat(e,t),Fn[n]=r),r}function s(e,t={}){let n=JSON.stringify([e,t]),r=In.get(n);return r===void 0&&(r=new Intl.DateTimeFormat(e,t),In.set(n,r)),r}function c(e,t={}){let n=JSON.stringify([e,t]),r=Ln.get(n);return r===void 0&&(r=new Intl.NumberFormat(e,t),Ln.set(n,r)),r}function l(e,t={}){let{base:n,...r}=t,i=JSON.stringify([e,r]),a=Rn.get(i);return a===void 0&&(a=new Intl.RelativeTimeFormat(e,t),Rn.set(i,a)),a}function u(){return zn||(zn=new Intl.DateTimeFormat().resolvedOptions().locale,zn)}function d(e){let t=Bn.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(e).resolvedOptions(),Bn.set(e,t)),t}function f(e){let t=Vn.get(e);if(!t){let n=new Intl.Locale(e);t=`getWeekInfo`in n?n.getWeekInfo():n.weekInfo,`minimalDays`in t||(t={...Gn,...t}),Vn.set(e,t)}return t}function p(e){let t=e.indexOf(`-x-`);t!==-1&&(e=e.substring(0,t));let n=e.indexOf(`-u-`);if(n===-1)return[e];{let t,r;try{t=s(e).resolvedOptions(),r=e}catch{let i=e.substring(0,n);t=s(i).resolvedOptions(),r=i}let{numberingSystem:i,calendar:a}=t;return[r,i,a]}}function m(e,t,n){return n||t?(e.includes(`-u-`)||(e+=`-u`),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`),e):e}function h(e){let t=[];for(let n=1;n<=12;n++){let r=$.utc(2009,n,1);t.push(e(r))}return t}function ee(e){let t=[];for(let n=1;n<=7;n++){let r=$.utc(2016,11,13+n);t.push(e(r))}return t}function g(e,t,n,r){let i=e.listingMode();return i===`error`?null:i===`en`?n(t):r(t)}function te(e){return e.numberingSystem&&e.numberingSystem!==`latn`?!1:e.numberingSystem===`latn`||!e.locale||e.locale.startsWith(`en`)||d(e.locale).numberingSystem===`latn`}function _(e,t){if(x(e)||e===null)return t;if(e instanceof B)return e;if(_e(e)){let n=e.toLowerCase();return n==="default"?t:n===`local`||n===`system`?jn.instance:n===`utc`||n===`gmt`?U.utcInstance:U.parseSpecifier(n)||V.create(e)}else if(S(e))return U.instance(e);else if(typeof e==`object`&&`offset`in e&&typeof e.offset==`function`)return e;else return new qn(e)}function ne(e){let t=parseInt(e,10);if(isNaN(t)){t=``;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(e[n].search(Jn.hanidec)!==-1)t+=Xn.indexOf(e[n]);else for(let e in Yn){let[n,i]=Yn[e];r>=n&&r<=i&&(t+=r-n)}}return parseInt(t,10)}else return t}function re(){Zn.clear()}function v({numberingSystem:e},t=``){let n=e||`latn`,r=Zn.get(n);r===void 0&&(r=new Map,Zn.set(n,r));let i=r.get(t);return i===void 0&&(i=RegExp(`${Jn[n]}${t}`),r.set(t,i)),i}function y(e,t){return new G(`unit out of range`,`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function b(e,t,n){let r=new Date(Date.UTC(e,t-1,n));e<100&&e>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);let i=r.getUTCDay();return i===0?7:i}function ie(e,t,n){return n+(ke(e)?sr:or)[t-1]}function ae(e,t){let n=ke(e)?sr:or,r=n.findIndex(e=>e<t),i=t-n[r];return{month:r+1,day:i}}function oe(e,t){return(e-t+7)%7+1}function se(e,t=4,n=1){let{year:r,month:i,day:a}=e,o=ie(r,i,a),s=oe(b(r,i,a),n),c=Math.floor((o-s+14-t)/7),l;return c<1?(l=r-1,c=Pe(l,t,n)):c>Pe(r,t,n)?(l=r+1,c=1):l=r,{weekYear:l,weekNumber:c,weekday:s,...Ve(e)}}function ce(e,t=4,n=1){let{weekYear:r,weekNumber:i,weekday:a}=e,o=oe(b(r,1,t),n),s=Ae(r),c=i*7+a-o-7+t,l;c<1?(l=r-1,c+=Ae(l)):c>s?(l=r+1,c-=Ae(r)):l=r;let{month:u,day:d}=ae(l,c);return{year:l,month:u,day:d,...Ve(e)}}function le(e){let{year:t,month:n,day:r}=e;return{year:t,ordinal:ie(t,n,r),...Ve(e)}}function ue(e){let{year:t,ordinal:n}=e,{month:r,day:i}=ae(t,n);return{year:t,month:r,day:i,...Ve(e)}}function de(e,t){if(!x(e.localWeekday)||!x(e.localWeekNumber)||!x(e.localWeekYear)){if(!x(e.weekday)||!x(e.weekNumber)||!x(e.weekYear))throw new P(`Cannot mix locale-based week fields with ISO-based week fields`);return x(e.localWeekday)||(e.weekday=e.localWeekday),x(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),x(e.localWeekYear)||(e.weekYear=e.localWeekYear),delete e.localWeekday,delete e.localWeekNumber,delete e.localWeekYear,{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function fe(e,t=4,n=1){let r=ge(e.weekYear),i=C(e.weekNumber,1,Pe(e.weekYear,t,n)),a=C(e.weekday,1,7);return r?i?a?!1:y(`weekday`,e.weekday):y(`week`,e.weekNumber):y(`weekYear`,e.weekYear)}function pe(e){let t=ge(e.year),n=C(e.ordinal,1,Ae(e.year));return t?n?!1:y(`ordinal`,e.ordinal):y(`year`,e.year)}function me(e){let t=ge(e.year),n=C(e.month,1,12),r=C(e.day,1,je(e.year,e.month));return t?n?r?!1:y(`day`,e.day):y(`month`,e.month):y(`year`,e.year)}function he(e){let{hour:t,minute:n,second:r,millisecond:i}=e,a=C(t,0,23)||t===24&&n===0&&r===0&&i===0,o=C(n,0,59),s=C(r,0,59),c=C(i,0,999);return a?o?s?c?!1:y(`millisecond`,i):y(`second`,r):y(`minute`,n):y(`hour`,t)}function x(e){return e===void 0}function S(e){return typeof e==`number`}function ge(e){return typeof e==`number`&&e%1==0}function _e(e){return typeof e==`string`}function ve(e){return Object.prototype.toString.call(e)===`[object Date]`}function ye(){try{return typeof Intl<`u`&&!!Intl.RelativeTimeFormat}catch{return!1}}function be(){try{return typeof Intl<`u`&&!!Intl.Locale&&(`weekInfo`in Intl.Locale.prototype||`getWeekInfo`in Intl.Locale.prototype)}catch{return!1}}function xe(e){return Array.isArray(e)?e:[e]}function Se(e,t,n){if(e.length!==0)return e.reduce((e,r)=>{let i=[t(r),r];return e&&n(e[0],i[0])===e[0]?e:i},null)[1]}function Ce(e,t){return t.reduce((t,n)=>(t[n]=e[n],t),{})}function we(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Te(e){if(e==null)return null;if(typeof e!=`object`)throw new F(`Week settings must be an object`);if(!C(e.firstDay,1,7)||!C(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some(e=>!C(e,1,7)))throw new F(`Invalid week settings`);return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function C(e,t,n){return ge(e)&&e>=t&&e<=n}function Ee(e,t){return e-t*Math.floor(e/t)}function w(e,t=2){let n=e<0,r;return r=n?`-`+(``+-e).padStart(t,`0`):(``+e).padStart(t,`0`),r}function T(e){if(!(x(e)||e===null||e===``))return parseInt(e,10)}function E(e){if(!(x(e)||e===null||e===``))return parseFloat(e)}function De(e){if(!(x(e)||e===null||e===``)){let t=parseFloat(`0.`+e)*1e3;return Math.floor(t)}}function Oe(e,t,n=`round`){let r=10**t;switch(n){case`expand`:return e>0?Math.ceil(e*r)/r:Math.floor(e*r)/r;case`trunc`:return Math.trunc(e*r)/r;case`round`:return Math.round(e*r)/r;case`floor`:return Math.floor(e*r)/r;case`ceil`:return Math.ceil(e*r)/r;default:throw RangeError(`Value rounding ${n} is out of range`)}}function ke(e){return e%4==0&&(e%100!=0||e%400==0)}function Ae(e){return ke(e)?366:365}function je(e,t){let n=Ee(t-1,12)+1,r=e+(t-n)/12;return n===2?ke(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function Me(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t),t.setUTCFullYear(e.year,e.month-1,e.day)),+t}function Ne(e,t,n){return-oe(b(e,1,t),n)+t-1}function Pe(e,t=4,n=1){let r=Ne(e,t,n),i=Ne(e+1,t,n);return(Ae(e)-r+i)/7}function Fe(e){return e>99?e:e>W.twoDigitCutoffYear?1900+e:2e3+e}function Ie(e,t,n,r=null){let i=new Date(e),a={hourCycle:`h23`,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`};r&&(a.timeZone=r);let o={timeZoneName:t,...a},s=new Intl.DateTimeFormat(n,o).formatToParts(i).find(e=>e.type.toLowerCase()===`timezonename`);return s?s.value:null}function Le(e,t){let n=parseInt(e,10);Number.isNaN(n)&&(n=0);let r=parseInt(t,10)||0,i=n<0||Object.is(n,-0)?-r:r;return n*60+i}function Re(e){let t=Number(e);if(typeof e==`boolean`||e===``||!Number.isFinite(t))throw new F(`Invalid unit value ${e}`);return t}function ze(e,t){let n={};for(let r in e)if(we(e,r)){let i=e[r];if(i==null)continue;n[t(r)]=Re(i)}return n}function Be(e,t){let n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=e>=0?`+`:`-`;switch(t){case`short`:return`${i}${w(n,2)}:${w(r,2)}`;case`narrow`:return`${i}${n}${r>0?`:${r}`:``}`;case`techie`:return`${i}${w(n,2)}${w(r,2)}`;default:throw RangeError(`Value format ${t} is out of range for property format`)}}function Ve(e){return Ce(e,[`hour`,`minute`,`second`,`millisecond`])}function He(e){switch(e){case`narrow`:return[...ur];case`short`:return[...lr];case`long`:return[...cr];case`numeric`:return[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`11`,`12`];case`2-digit`:return[`01`,`02`,`03`,`04`,`05`,`06`,`07`,`08`,`09`,`10`,`11`,`12`];default:return null}}function Ue(e){switch(e){case`narrow`:return[...pr];case`short`:return[...fr];case`long`:return[...dr];case`numeric`:return[`1`,`2`,`3`,`4`,`5`,`6`,`7`];default:return null}}function We(e){switch(e){case`narrow`:return[..._r];case`short`:return[...gr];case`long`:return[...hr];default:return null}}function Ge(e){return mr[e.hour<12?0:1]}function Ke(e,t){return Ue(t)[e.weekday-1]}function qe(e,t){return He(t)[e.month-1]}function Je(e,t){return We(t)[e.year<0?0:1]}function Ye(e,t,n=`always`,r=!1){let i={years:[`year`,`yr.`],quarters:[`quarter`,`qtr.`],months:[`month`,`mo.`],weeks:[`week`,`wk.`],days:[`day`,`day`,`days`],hours:[`hour`,`hr.`],minutes:[`minute`,`min.`],seconds:[`second`,`sec.`]},a=[`hours`,`minutes`,`seconds`].indexOf(e)===-1;if(n===`auto`&&a){let n=e===`days`;switch(t){case 1:return n?`tomorrow`:`next ${i[e][0]}`;case-1:return n?`yesterday`:`last ${i[e][0]}`;case 0:return n?`today`:`this ${i[e][0]}`}}let o=Object.is(t,-0)||t<0,s=Math.abs(t),c=s===1,l=i[e],u=r?c?l[1]:l[2]||l[1]:c?i[e][0]:e;return o?`${s} ${u} ago`:`in ${s} ${u}`}function Xe(e,t){let n=``;for(let r of e)r.literal?n+=r.val:n+=t(r.val);return n}function D(...e){let t=e.reduce((e,t)=>e+t.source,``);return RegExp(`^${t}$`)}function O(...e){return t=>e.reduce(([e,n,r],i)=>{let[a,o,s]=i(t,r);return[{...e,...a},o||n,s]},[{},null,1]).slice(0,2)}function Ze(e,...t){if(e==null)return[null,null];for(let[n,r]of t){let t=n.exec(e);if(t)return r(t)}return[null,null]}function Qe(...e){return(t,n)=>{let r={},i;for(i=0;i<e.length;i++)r[e[i]]=T(t[n+i]);return[r,null,n+i]}}function $e(e,t,n){let r=e[t];return x(r)?n:T(r)}function et(e,t){return[{year:$e(e,t),month:$e(e,t+1,1),day:$e(e,t+2,1)},null,t+3]}function tt(e,t){return[{hours:$e(e,t,0),minutes:$e(e,t+1,0),seconds:$e(e,t+2,0),milliseconds:De(e[t+3])},null,t+4]}function nt(e,t){let n=!e[t]&&!e[t+1],r=Le(e[t+1],e[t+2]);return[{},n?null:U.instance(r),t+3]}function rt(e,t){return[{},e[t]?V.create(e[t]):null,t+1]}function it(e){let[t,n,r,i,a,o,s,c,l]=e,u=t[0]===`-`,d=c&&c[0]===`-`,f=(e,t=!1)=>e!==void 0&&(t||e&&u)?-e:e;return[{years:f(E(n)),months:f(E(r)),weeks:f(E(i)),days:f(E(a)),hours:f(E(o)),minutes:f(E(s)),seconds:f(E(c),c===`-0`),milliseconds:f(De(l),d)}]}function at(e,t,n,r,i,a,o){let s={year:t.length===2?Fe(T(t)):T(t),month:lr.indexOf(n)+1,day:T(r),hour:T(i),minute:T(a)};return o&&(s.second=T(o)),e&&(s.weekday=e.length>3?dr.indexOf(e)+1:fr.indexOf(e)+1),s}function ot(e){let[,t,n,r,i,a,o,s,c,l,u,d]=e,f=at(t,i,r,n,a,o,s),p;return p=c?Fr[c]:l?0:Le(u,d),[f,new U(p)]}function st(e){return e.replace(/\([^()]*\)|[\n\t]/g,` `).replace(/(\s\s+)/g,` `).trim()}function ct(e){let[,t,n,r,i,a,o,s]=e;return[at(t,i,r,n,a,o,s),U.utcInstance]}function lt(e){let[,t,n,r,i,a,o,s]=e;return[at(t,s,n,r,i,a,o),U.utcInstance]}function ut(e){return Ze(e,[Br,Wr],[Vr,Gr],[Hr,Kr],[Ur,qr])}function dt(e){return Ze(st(e),[Ir,ot])}function ft(e){return Ze(e,[Lr,ct],[Rr,ct],[zr,lt])}function pt(e){return Ze(e,[Pr,it])}function mt(e){return Ze(e,[Nr,Jr])}function ht(e){return Ze(e,[Yr,Wr],[Xr,Zr])}function k(e,t,n=!1){let r={values:n?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix};return new X(r)}function gt(e,t){let n=t.milliseconds??0;for(let r of ni.slice(1))t[r]&&(n+=t[r]*e[r].milliseconds);return n}function _t(e,t){let n=gt(e,t)<0?-1:1;Y.reduceRight((r,i)=>{if(x(t[i]))return r;if(r){let a=t[r]*n,o=e[i][r],s=Math.floor(a/o);t[i]+=s*n,t[r]-=s*o*n}return i},null),Y.reduce((n,r)=>{if(x(t[r]))return n;if(n){let i=t[n]%1;t[n]-=i,t[r]+=i*e[n][r]}return r},null)}function vt(e){let t={};for(let[n,r]of Object.entries(e))r!==0&&(t[n]=r);return t}function yt(e,t){return!e||!e.isValid?ri.invalid(`missing or invalid start`):!t||!t.isValid?ri.invalid(`missing or invalid end`):t<e?ri.invalid(`end before start`,`The end of an interval must be after its start, but you had start=${e.toISO()} and end=${t.toISO()}`):null}function bt(e,t){let n=e=>e.toUTC(0,{keepLocalTime:!0}).startOf(`day`).valueOf(),r=n(t)-n(e);return Math.floor(X.fromMillis(r).as(`days`))}function xt(e,t,n){let r=[[`years`,(e,t)=>t.year-e.year],[`quarters`,(e,t)=>t.quarter-e.quarter+(t.year-e.year)*4],[`months`,(e,t)=>t.month-e.month+(t.year-e.year)*12],[`weeks`,(e,t)=>{let n=bt(e,t);return(n-n%7)/7}],[`days`,bt]],i={},a=e,o,s;for(let[c,l]of r)n.indexOf(c)>=0&&(o=c,i[c]=l(e,t),s=a.plus(i),s>t?(i[c]--,e=a.plus(i),e>t&&(s=e,i[c]--,e=a.plus(i))):e=s);return[e,i,s,o]}function St(e,t,n,r){let[i,a,o,s]=xt(e,t,n),c=t-i,l=n.filter(e=>[`hours`,`minutes`,`seconds`,`milliseconds`].indexOf(e)>=0);l.length===0&&(o<t&&(o=i.plus({[s]:1})),o!==i&&(a[s]=(a[s]||0)+c/(o-i)));let u=X.fromObject(a,r);return l.length>0?X.fromMillis(c,r).shiftTo(...l).plus(u):u}function A(e,t=e=>e){return{regex:e,deser:([e])=>t(ne(e))}}function Ct(e){return e.replace(/\./g,`\\.?`).replace(oi,ai)}function wt(e){return e.replace(/\./g,``).replace(oi,` `).toLowerCase()}function j(e,t){return e===null?null:{regex:RegExp(e.map(Ct).join(`|`)),deser:([n])=>e.findIndex(e=>wt(n)===wt(e))+t}}function Tt(e,t){return{regex:e,deser:([,e,t])=>Le(e,t),groups:t}}function Et(e){return{regex:e,deser:([e])=>e}}function Dt(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,`\\$&`)}function Ot(e,t){let n=v(t),r=v(t,`{2}`),i=v(t,`{3}`),a=v(t,`{4}`),o=v(t,`{6}`),s=v(t,`{1,2}`),c=v(t,`{1,3}`),l=v(t,`{1,6}`),u=v(t,`{1,9}`),d=v(t,`{2,4}`),f=v(t,`{4,6}`),p=e=>({regex:RegExp(Dt(e.val)),deser:([e])=>e,literal:!0}),m=(m=>{if(e.literal)return p(m);switch(m.val){case`G`:return j(t.eras(`short`),0);case`GG`:return j(t.eras(`long`),0);case`y`:return A(l);case`yy`:return A(d,Fe);case`yyyy`:return A(a);case`yyyyy`:return A(f);case`yyyyyy`:return A(o);case`M`:return A(s);case`MM`:return A(r);case`MMM`:return j(t.months(`short`,!0),1);case`MMMM`:return j(t.months(`long`,!0),1);case`L`:return A(s);case`LL`:return A(r);case`LLL`:return j(t.months(`short`,!1),1);case`LLLL`:return j(t.months(`long`,!1),1);case`d`:return A(s);case`dd`:return A(r);case`o`:return A(c);case`ooo`:return A(i);case`HH`:return A(r);case`H`:return A(s);case`hh`:return A(r);case`h`:return A(s);case`mm`:return A(r);case`m`:return A(s);case`q`:return A(s);case`qq`:return A(r);case`s`:return A(s);case`ss`:return A(r);case`S`:return A(c);case`SSS`:return A(i);case`u`:return Et(u);case`uu`:return Et(s);case`uuu`:return A(n);case`a`:return j(t.meridiems(),0);case`kkkk`:return A(a);case`kk`:return A(d,Fe);case`W`:return A(s);case`WW`:return A(r);case`E`:case`c`:return A(n);case`EEE`:return j(t.weekdays(`short`,!1),1);case`EEEE`:return j(t.weekdays(`long`,!1),1);case`ccc`:return j(t.weekdays(`short`,!0),1);case`cccc`:return j(t.weekdays(`long`,!0),1);case`Z`:case`ZZ`:return Tt(RegExp(`([+-]${s.source})(?::(${r.source}))?`),2);case`ZZZ`:return Tt(RegExp(`([+-]${s.source})(${r.source})?`),2);case`z`:return Et(/[a-z_+-/]{1,256}?/i);case` `:return Et(/[^\S\n\r]/);default:return p(m)}})(e)||{invalidReason:ii};return m.token=e,m}function kt(e,t,n){let{type:r,value:i}=e;if(r===`literal`){let e=/^\s+$/.test(i);return{literal:!e,val:e?` `:i}}let a=t[r],o=r;r===`hour`&&(o=t.hour12==null?t.hourCycle==null?n.hour12?`hour12`:`hour24`:t.hourCycle===`h11`||t.hourCycle===`h12`?`hour12`:`hour24`:t.hour12?`hour12`:`hour24`);let s=si[o];if(typeof s==`object`&&(s=s[a]),s)return{literal:!1,val:s}}function At(e){return[`^${e.map(e=>e.regex).reduce((e,t)=>`${e}(${t.source})`,``)}$`,e]}function jt(e,t,n){let r=e.match(t);if(r){let e={},t=1;for(let i in n)if(we(n,i)){let a=n[i],o=a.groups?a.groups+1:1;!a.literal&&a.token&&(e[a.token.val[0]]=a.deser(r.slice(t,t+o))),t+=o}return[r,e]}else return[r,{}]}function Mt(e){let t=e=>{switch(e){case`S`:return`millisecond`;case`s`:return`second`;case`m`:return`minute`;case`h`:case`H`:return`hour`;case`d`:return`day`;case`o`:return`ordinal`;case`L`:case`M`:return`month`;case`y`:return`year`;case`E`:case`c`:return`weekday`;case`W`:return`weekNumber`;case`k`:return`weekYear`;case`q`:return`quarter`;default:return null}},n=null,r;return x(e.z)||(n=V.create(e.z)),x(e.Z)||(n||=new U(e.Z),r=e.Z),x(e.q)||(e.M=(e.q-1)*3+1),x(e.h)||(e.h<12&&e.a===1?e.h+=12:e.h===12&&e.a===0&&(e.h=0)),e.G===0&&e.y&&(e.y=-e.y),x(e.u)||(e.S=De(e.u)),[Object.keys(e).reduce((n,r)=>{let i=t(r);return i&&(n[i]=e[r]),n},{}),n,r]}function Nt(){return ci||=$.fromMillis(1555555555555),ci}function Pt(e,t){if(e.literal)return e;let n=Rt(K.macroTokenToFormatOpts(e.val),t);return n==null||n.includes(void 0)?e:n}function Ft(e,t){return Array.prototype.concat(...e.map(e=>Pt(e,t)))}function It(e,t,n){return new li(e,n).explainFromTokens(t)}function Lt(e,t,n){let{result:r,zone:i,specificOffset:a,invalidReason:o}=It(e,t,n);return[r,i,a,o]}function Rt(e,t){if(!e)return null;let n=K.create(t,e).dtFormatter(Nt()),r=n.formatToParts(),i=n.resolvedOptions();return r.map(t=>kt(t,e,i))}function zt(e){return new G(`unsupported zone`,`the zone "${e.name}" is not supported`)}function Bt(e){return e.weekData===null&&(e.weekData=se(e.c)),e.weekData}function Vt(e){return e.localWeekData===null&&(e.localWeekData=se(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function M(e,t){let n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new $({...n,...t,old:n})}function Ht(e,t,n){let r=e-t*60*1e3,i=n.offset(r);if(t===i)return[r,t];r-=(i-t)*60*1e3;let a=n.offset(r);return i===a?[r,i]:[e-Math.min(i,a)*60*1e3,Math.max(i,a)]}function Ut(e,t){e+=t*60*1e3;let n=new Date(e);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function Wt(e,t,n){return Ht(Me(e),t,n)}function Gt(e,t){let n=e.o,r=e.c.year+Math.trunc(t.years),i=e.c.month+Math.trunc(t.months)+Math.trunc(t.quarters)*3,a={...e.c,year:r,month:i,day:Math.min(e.c.day,je(r,i))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},o=X.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as(`milliseconds`),[s,c]=Ht(Me(a),n,e.zone);return o!==0&&(s+=o,c=e.zone.offset(s)),{ts:s,o:c}}function Kt(e,t,n,r,i,a){let{setZone:o,zone:s}=n;if(e&&Object.keys(e).length!==0||t){let r=t||s,i=$.fromObject(e,{...n,zone:r,specificOffset:a});return o?i:i.setZone(s)}else return $.invalid(new G(`unparsable`,`the input "${i}" can't be parsed as ${r}`))}function qt(e,t,n=!0){return e.isValid?K.create(H.create(`en-US`),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function Jt(e,t,n){let r=e.c.year>9999||e.c.year<0,i=``;if(r&&e.c.year>=0&&(i+=`+`),i+=w(e.c.year,r?6:4),n===`year`)return i;if(t){if(i+=`-`,i+=w(e.c.month),n===`month`)return i;i+=`-`}else if(i+=w(e.c.month),n===`month`)return i;return i+=w(e.c.day),i}function Yt(e,t,n,r,i,a,o){let s=!n||e.c.millisecond!==0||e.c.second!==0,c=``;switch(o){case`day`:case`month`:case`year`:break;default:if(c+=w(e.c.hour),o===`hour`)break;if(t){if(c+=`:`,c+=w(e.c.minute),o===`minute`)break;s&&(c+=`:`,c+=w(e.c.second))}else{if(c+=w(e.c.minute),o===`minute`)break;s&&(c+=w(e.c.second))}if(o===`second`)break;s&&(!r||e.c.millisecond!==0)&&(c+=`.`,c+=w(e.c.millisecond,3))}return i&&(e.isOffsetFixed&&e.offset===0&&!a?c+=`Z`:e.o<0?(c+=`-`,c+=w(Math.trunc(-e.o/60)),c+=`:`,c+=w(Math.trunc(-e.o%60))):(c+=`+`,c+=w(Math.trunc(e.o/60)),c+=`:`,c+=w(Math.trunc(e.o%60)))),a&&(c+=`[`+e.zone.ianaName+`]`),c}function Xt(e){let t={year:`year`,years:`year`,month:`month`,months:`month`,day:`day`,days:`day`,hour:`hour`,hours:`hour`,minute:`minute`,minutes:`minute`,quarter:`quarter`,quarters:`quarter`,second:`second`,seconds:`second`,millisecond:`millisecond`,milliseconds:`millisecond`,weekday:`weekday`,weekdays:`weekday`,weeknumber:`weekNumber`,weeksnumber:`weekNumber`,weeknumbers:`weekNumber`,weekyear:`weekYear`,weekyears:`weekYear`,ordinal:`ordinal`}[e.toLowerCase()];if(!t)throw new sn(e);return t}function Zt(e){switch(e.toLowerCase()){case`localweekday`:case`localweekdays`:return`localWeekday`;case`localweeknumber`:case`localweeknumbers`:return`localWeekNumber`;case`localweekyear`:case`localweekyears`:return`localWeekYear`;default:return Xt(e)}}function Qt(e){if(vi===void 0&&(vi=W.now()),e.type!==`iana`)return e.offset(vi);let t=e.name,n=yi.get(t);return n===void 0&&(n=e.offset(vi),yi.set(t,n)),n}function $t(e,t){let n=_(t.zone,W.defaultZone);if(!n.isValid)return $.invalid(zt(n));let r=H.fromObject(t),i,a;if(x(e.year))i=W.now();else{for(let t of hi)x(e[t])&&(e[t]=fi[t]);let t=me(e)||he(e);if(t)return $.invalid(t);let r=Qt(n);[i,a]=Wt(e,r,n)}return new $({ts:i,zone:n,loc:r,o:a})}function en(e,t,n){let r=x(n.round)?!0:n.round,i=x(n.rounding)?`trunc`:n.rounding,a=(e,a)=>(e=Oe(e,r||n.calendary?0:2,n.calendary?`round`:i),t.loc.clone(n).relFormatter(n).format(e,a)),o=r=>n.calendary?t.hasSame(e,r)?0:t.startOf(r).diff(e.startOf(r),r).get(r):t.diff(e,r).get(r);if(n.unit)return a(o(n.unit),n.unit);for(let e of n.units){let t=o(e);if(Math.abs(t)>=1)return a(t,e)}return a(e>t?-0:0,n.units[n.units.length-1])}function tn(e){let t={},n;return e.length>0&&typeof e[e.length-1]==`object`?(t=e[e.length-1],n=Array.from(e).slice(0,e.length-1)):n=Array.from(e),[t,n]}function nn(e){if($.isDateTime(e))return e;if(e&&e.valueOf&&S(e.valueOf()))return $.fromJSDate(e);if(e&&typeof e==`object`)return $.fromObject(e);throw new F(`Unknown datetime argument: ${e}, of type ${typeof e}`)}var N,rn,an,on,P,sn,F,I,L,R,z,cn,ln,un,dn,fn,pn,mn,hn,gn,_n,vn,yn,bn,xn,Sn,Cn,wn,Tn,En,Dn,On,kn,B,An,jn,Mn,Nn,Pn,V,Fn,In,Ln,Rn,zn,Bn,Vn,Hn,Un,Wn,Gn,H,Kn,U,qn,Jn,Yn,Xn,Zn,Qn,$n,er,tr,nr,rr,ir,ar,W,G,or,sr,cr,lr,ur,dr,fr,pr,mr,hr,gr,_r,vr,K,yr,br,xr,Sr,Cr,wr,Tr,Er,Dr,Or,kr,Ar,jr,Mr,Nr,Pr,Fr,Ir,Lr,Rr,zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,Xr,Zr,Qr,$r,ei,q,J,ti,Y,ni,X,Z,ri,Q,ii,ai,oi,si,ci,li,ui,di,fi,pi,mi,hi,gi,_i,vi,yi,$,bi,xi=t((()=>{N=class extends Error{},rn=class extends N{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},an=class extends N{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},on=class extends N{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},P=class extends N{},sn=class extends N{constructor(e){super(`Invalid unit ${e}`)}},F=class extends N{},I=class extends N{constructor(){super(`Zone is an abstract class`)}},L=`numeric`,R=`short`,z=`long`,cn={year:L,month:L,day:L},ln={year:L,month:R,day:L},un={year:L,month:R,day:L,weekday:R},dn={year:L,month:z,day:L},fn={year:L,month:z,day:L,weekday:z},pn={hour:L,minute:L},mn={hour:L,minute:L,second:L},hn={hour:L,minute:L,second:L,timeZoneName:R},gn={hour:L,minute:L,second:L,timeZoneName:z},_n={hour:L,minute:L,hourCycle:`h23`},vn={hour:L,minute:L,second:L,hourCycle:`h23`},yn={hour:L,minute:L,second:L,hourCycle:`h23`,timeZoneName:R},bn={hour:L,minute:L,second:L,hourCycle:`h23`,timeZoneName:z},xn={year:L,month:L,day:L,hour:L,minute:L},Sn={year:L,month:L,day:L,hour:L,minute:L,second:L},Cn={year:L,month:R,day:L,hour:L,minute:L},wn={year:L,month:R,day:L,hour:L,minute:L,second:L},Tn={year:L,month:R,day:L,weekday:R,hour:L,minute:L},En={year:L,month:z,day:L,hour:L,minute:L,timeZoneName:R},Dn={year:L,month:z,day:L,hour:L,minute:L,second:L,timeZoneName:R},On={year:L,month:z,day:L,weekday:z,hour:L,minute:L,timeZoneName:z},kn={year:L,month:z,day:L,weekday:z,hour:L,minute:L,second:L,timeZoneName:z},B=class{get type(){throw new I}get name(){throw new I}get ianaName(){return this.name}get isUniversal(){throw new I}offsetName(e,t){throw new I}formatOffset(e,t){throw new I}offset(e){throw new I}equals(e){throw new I}get isValid(){throw new I}},An=null,jn=class e extends B{static get instance(){return An===null&&(An=new e),An}get type(){return`system`}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return Ie(e,t,n)}formatOffset(e,t){return Be(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type===`system`}get isValid(){return!0}},Mn=new Map,Nn={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6},Pn=new Map,V=class e extends B{static create(t){let n=Pn.get(t);return n===void 0&&Pn.set(t,n=new e(t)),n}static resetCache(){Pn.clear(),Mn.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat(`en-US`,{timeZone:e}).format(),!0}catch{return!1}}constructor(t){super(),this.zoneName=t,this.valid=e.isValidZone(t)}get type(){return`iana`}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return Ie(e,t,n,this.name)}formatOffset(e,t){return Be(this.offset(e),t)}offset(e){if(!this.valid)return NaN;let t=new Date(e);if(isNaN(t))return NaN;let n=r(this.name),[o,s,c,l,u,d,f]=n.formatToParts?a(n,t):i(n,t);l===`BC`&&(o=-Math.abs(o)+1);let p=Me({year:o,month:s,day:c,hour:u===24?0:u,minute:d,second:f,millisecond:0}),m=+t,h=m%1e3;return m-=h>=0?h:1e3+h,(p-m)/(60*1e3)}equals(e){return e.type===`iana`&&e.name===this.name}get isValid(){return this.valid}},Fn={},In=new Map,Ln=new Map,Rn=new Map,zn=null,Bn=new Map,Vn=new Map,Hn=class{constructor(e,t,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:r,floor:i,...a}=n;if(!t||Object.keys(a).length>0){let t={useGrouping:!1,...n};n.padTo>0&&(t.minimumIntegerDigits=n.padTo),this.inf=c(e,t)}}format(e){if(this.inf){let t=this.floor?Math.floor(e):e;return this.inf.format(t)}else return w(this.floor?Math.floor(e):Oe(e,3),this.padTo)}},Un=class{constructor(e,t,n){this.opts=n,this.originalZone=void 0;let r;if(this.opts.timeZone)this.dt=e;else if(e.zone.type===`fixed`){let t=-1*(e.offset/60),n=t>=0?`Etc/GMT+${t}`:`Etc/GMT${t}`;e.offset!==0&&V.create(n).valid?(r=n,this.dt=e):(r=`UTC`,this.dt=e.offset===0?e:e.setZone(`UTC`).plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type===`system`?this.dt=e:e.zone.type===`iana`?(this.dt=e,r=e.zone.name):(r=`UTC`,this.dt=e.setZone(`UTC`).plus({minutes:e.offset}),this.originalZone=e.zone);let i={...this.opts};i.timeZone=i.timeZone||r,this.dtf=s(t,i)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(``):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(e=>{if(e.type===`timeZoneName`){let t=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...e,value:t}}else return e}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},Wn=class{constructor(e,t,n){this.opts={style:`long`,...n},!t&&ye()&&(this.rtf=l(e,n))}format(e,t){return this.rtf?this.rtf.format(e,t):Ye(t,e,this.opts.numeric,this.opts.style!==`long`)}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}},Gn={firstDay:1,minimalDays:4,weekend:[6,7]},H=class e{static fromOpts(t){return e.create(t.locale,t.numberingSystem,t.outputCalendar,t.weekSettings,t.defaultToEN)}static create(t,n,r,i,a=!1){let o=t||W.defaultLocale,s=o||(a?`en-US`:u()),c=n||W.defaultNumberingSystem,l=r||W.defaultOutputCalendar,d=Te(i)||W.defaultWeekSettings;return new e(s,c,l,d,o)}static resetCache(){zn=null,In.clear(),Ln.clear(),Rn.clear(),Bn.clear(),Vn.clear()}static fromObject({locale:t,numberingSystem:n,outputCalendar:r,weekSettings:i}={}){return e.create(t,n,r,i)}constructor(e,t,n,r,i){let[a,o,s]=p(e);this.locale=a,this.numberingSystem=t||o||null,this.outputCalendar=n||s||null,this.weekSettings=r,this.intl=m(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached??=te(this),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),t=(this.numberingSystem===null||this.numberingSystem===`latn`)&&(this.outputCalendar===null||this.outputCalendar===`gregory`);return e&&t?`en`:`intl`}clone(t){return!t||Object.getOwnPropertyNames(t).length===0?this:e.create(t.locale||this.specifiedLocale,t.numberingSystem||this.numberingSystem,t.outputCalendar||this.outputCalendar,Te(t.weekSettings)||this.weekSettings,t.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,t=!1){return g(this,e,He,()=>{let n=this.intl===`ja`||this.intl.startsWith(`ja-`);t&=!n;let r=t?{month:e,day:`numeric`}:{month:e},i=t?`format`:`standalone`;if(!this.monthsCache[i][e]){let t=n?e=>this.dtFormatter(e,r).format():e=>this.extract(e,r,`month`);this.monthsCache[i][e]=h(t)}return this.monthsCache[i][e]})}weekdays(e,t=!1){return g(this,e,Ue,()=>{let n=t?{weekday:e,year:`numeric`,month:`long`,day:`numeric`}:{weekday:e},r=t?`format`:`standalone`;return this.weekdaysCache[r][e]||(this.weekdaysCache[r][e]=ee(e=>this.extract(e,n,`weekday`))),this.weekdaysCache[r][e]})}meridiems(){return g(this,void 0,()=>mr,()=>{if(!this.meridiemCache){let e={hour:`numeric`,hourCycle:`h12`};this.meridiemCache=[$.utc(2016,11,13,9),$.utc(2016,11,13,19)].map(t=>this.extract(t,e,`dayperiod`))}return this.meridiemCache})}eras(e){return g(this,e,We,()=>{let t={era:e};return this.eraCache[e]||(this.eraCache[e]=[$.utc(-40,1,1),$.utc(2017,1,1)].map(e=>this.extract(e,t,`era`))),this.eraCache[e]})}extract(e,t,n){let r=this.dtFormatter(e,t).formatToParts().find(e=>e.type.toLowerCase()===n);return r?r.value:null}numberFormatter(e={}){return new Hn(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new Un(e,this.intl,t)}relFormatter(e={}){return new Wn(this.intl,this.isEnglish(),e)}listFormatter(e={}){return o(this.intl,e)}isEnglish(){return this.locale===`en`||this.locale.toLowerCase()===`en-us`||d(this.intl).locale.startsWith(`en-us`)}getWeekSettings(){return this.weekSettings?this.weekSettings:be()?f(this.locale):Gn}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}},Kn=null,U=class e extends B{static get utcInstance(){return Kn===null&&(Kn=new e(0)),Kn}static instance(t){return t===0?e.utcInstance:new e(t)}static parseSpecifier(t){if(t){let n=t.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new e(Le(n[1],n[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return`fixed`}get name(){return this.fixed===0?`UTC`:`UTC${Be(this.fixed,`narrow`)}`}get ianaName(){return this.fixed===0?`Etc/UTC`:`Etc/GMT${Be(-this.fixed,`narrow`)}`}offsetName(){return this.name}formatOffset(e,t){return Be(this.fixed,t)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type===`fixed`&&e.fixed===this.fixed}get isValid(){return!0}},qn=class extends B{constructor(e){super(),this.zoneName=e}get type(){return`invalid`}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return``}offset(){return NaN}equals(){return!1}get isValid(){return!1}},Jn={arab:`[٠-٩]`,arabext:`[۰-۹]`,bali:`[᭐-᭙]`,beng:`[০-৯]`,deva:`[०-९]`,fullwide:`[0-9]`,gujr:`[૦-૯]`,hanidec:`[〇|一|二|三|四|五|六|七|八|九]`,khmr:`[០-៩]`,knda:`[೦-೯]`,laoo:`[໐-໙]`,limb:`[᥆-᥏]`,mlym:`[൦-൯]`,mong:`[᠐-᠙]`,mymr:`[၀-၉]`,orya:`[୦-୯]`,tamldec:`[௦-௯]`,telu:`[౦-౯]`,thai:`[๐-๙]`,tibt:`[༠-༩]`,latn:`\\d`},Yn={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},Xn=Jn.hanidec.replace(/[\[|\]]/g,``).split(``),Zn=new Map,Qn=()=>Date.now(),$n=`system`,er=null,tr=null,nr=null,rr=60,ar=null,W=class{static get now(){return Qn}static set now(e){Qn=e}static set defaultZone(e){$n=e}static get defaultZone(){return _($n,jn.instance)}static get defaultLocale(){return er}static set defaultLocale(e){er=e}static get defaultNumberingSystem(){return tr}static set defaultNumberingSystem(e){tr=e}static get defaultOutputCalendar(){return nr}static set defaultOutputCalendar(e){nr=e}static get defaultWeekSettings(){return ar}static set defaultWeekSettings(e){ar=Te(e)}static get twoDigitCutoffYear(){return rr}static set twoDigitCutoffYear(e){rr=e%100}static get throwOnInvalid(){return ir}static set throwOnInvalid(e){ir=e}static resetCaches(){H.resetCache(),V.resetCache(),$.resetCache(),re()}},G=class{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},or=[0,31,59,90,120,151,181,212,243,273,304,334],sr=[0,31,60,91,121,152,182,213,244,274,305,335],cr=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],lr=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],ur=[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],dr=[`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`,`Sunday`],fr=[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],pr=[`M`,`T`,`W`,`T`,`F`,`S`,`S`],mr=[`AM`,`PM`],hr=[`Before Christ`,`Anno Domini`],gr=[`BC`,`AD`],_r=[`B`,`A`],vr={D:cn,DD:ln,DDD:dn,DDDD:fn,t:pn,tt:mn,ttt:hn,tttt:gn,T:_n,TT:vn,TTT:yn,TTTT:bn,f:xn,ff:Cn,fff:En,ffff:On,F:Sn,FF:wn,FFF:Dn,FFFF:kn},K=class e{static create(t,n={}){return new e(t,n)}static parseFormat(e){let t=null,n=``,r=!1,i=[];for(let a=0;a<e.length;a++){let o=e.charAt(a);o===`'`?((n.length>0||r)&&i.push({literal:r||/^\s+$/.test(n),val:n===``?`'`:n}),t=null,n=``,r=!r):r||o===t?n+=o:(n.length>0&&i.push({literal:/^\s+$/.test(n),val:n}),n=o,t=o)}return n.length>0&&i.push({literal:r||/^\s+$/.test(n),val:n}),i}static macroTokenToFormatOpts(e){return vr[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...t}).format()}dtFormatter(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t})}formatDateTime(e,t){return this.dtFormatter(e,t).format()}formatDateTimeParts(e,t){return this.dtFormatter(e,t).formatToParts()}formatInterval(e,t){return this.dtFormatter(e.start,t).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,t){return this.dtFormatter(e,t).resolvedOptions()}num(e,t=0,n=void 0){if(this.opts.forceSimple)return w(e,t);let r={...this.opts};return t>0&&(r.padTo=t),n&&(r.signDisplay=n),this.loc.numberFormatter(r).format(e)}formatDateTimeFromString(t,n){let r=this.loc.listingMode()===`en`,i=this.loc.outputCalendar&&this.loc.outputCalendar!==`gregory`,a=(e,n)=>this.loc.extract(t,e,n),o=e=>t.isOffsetFixed&&t.offset===0&&e.allowZ?`Z`:t.isValid?t.zone.formatOffset(t.ts,e.format):``,s=()=>r?Ge(t):a({hour:`numeric`,hourCycle:`h12`},`dayperiod`),c=(e,n)=>r?qe(t,e):a(n?{month:e}:{month:e,day:`numeric`},`month`),l=(e,n)=>r?Ke(t,e):a(n?{weekday:e}:{weekday:e,month:`long`,day:`numeric`},`weekday`),u=n=>{let r=e.macroTokenToFormatOpts(n);return r?this.formatWithSystemDefault(t,r):n},d=e=>r?Je(t,e):a({era:e},`era`);return Xe(e.parseFormat(n),e=>{switch(e){case`S`:return this.num(t.millisecond);case`u`:case`SSS`:return this.num(t.millisecond,3);case`s`:return this.num(t.second);case`ss`:return this.num(t.second,2);case`uu`:return this.num(Math.floor(t.millisecond/10),2);case`uuu`:return this.num(Math.floor(t.millisecond/100));case`m`:return this.num(t.minute);case`mm`:return this.num(t.minute,2);case`h`:return this.num(t.hour%12==0?12:t.hour%12);case`hh`:return this.num(t.hour%12==0?12:t.hour%12,2);case`H`:return this.num(t.hour);case`HH`:return this.num(t.hour,2);case`Z`:return o({format:`narrow`,allowZ:this.opts.allowZ});case`ZZ`:return o({format:`short`,allowZ:this.opts.allowZ});case`ZZZ`:return o({format:`techie`,allowZ:this.opts.allowZ});case`ZZZZ`:return t.zone.offsetName(t.ts,{format:`short`,locale:this.loc.locale});case`ZZZZZ`:return t.zone.offsetName(t.ts,{format:`long`,locale:this.loc.locale});case`z`:return t.zoneName;case`a`:return s();case`d`:return i?a({day:`numeric`},`day`):this.num(t.day);case`dd`:return i?a({day:`2-digit`},`day`):this.num(t.day,2);case`c`:return this.num(t.weekday);case`ccc`:return l(`short`,!0);case`cccc`:return l(`long`,!0);case`ccccc`:return l(`narrow`,!0);case`E`:return this.num(t.weekday);case`EEE`:return l(`short`,!1);case`EEEE`:return l(`long`,!1);case`EEEEE`:return l(`narrow`,!1);case`L`:return i?a({month:`numeric`,day:`numeric`},`month`):this.num(t.month);case`LL`:return i?a({month:`2-digit`,day:`numeric`},`month`):this.num(t.month,2);case`LLL`:return c(`short`,!0);case`LLLL`:return c(`long`,!0);case`LLLLL`:return c(`narrow`,!0);case`M`:return i?a({month:`numeric`},`month`):this.num(t.month);case`MM`:return i?a({month:`2-digit`},`month`):this.num(t.month,2);case`MMM`:return c(`short`,!1);case`MMMM`:return c(`long`,!1);case`MMMMM`:return c(`narrow`,!1);case`y`:return i?a({year:`numeric`},`year`):this.num(t.year);case`yy`:return i?a({year:`2-digit`},`year`):this.num(t.year.toString().slice(-2),2);case`yyyy`:return i?a({year:`numeric`},`year`):this.num(t.year,4);case`yyyyyy`:return i?a({year:`numeric`},`year`):this.num(t.year,6);case`G`:return d(`short`);case`GG`:return d(`long`);case`GGGGG`:return d(`narrow`);case`kk`:return this.num(t.weekYear.toString().slice(-2),2);case`kkkk`:return this.num(t.weekYear,4);case`W`:return this.num(t.weekNumber);case`WW`:return this.num(t.weekNumber,2);case`n`:return this.num(t.localWeekNumber);case`nn`:return this.num(t.localWeekNumber,2);case`ii`:return this.num(t.localWeekYear.toString().slice(-2),2);case`iiii`:return this.num(t.localWeekYear,4);case`o`:return this.num(t.ordinal);case`ooo`:return this.num(t.ordinal,3);case`q`:return this.num(t.quarter);case`qq`:return this.num(t.quarter,2);case`X`:return this.num(Math.floor(t.ts/1e3));case`x`:return this.num(t.ts);default:return u(e)}})}formatDurationFromString(t,n){let r=this.opts.signMode===`negativeLargestOnly`?-1:1,i=e=>{switch(e[0]){case`S`:return`milliseconds`;case`s`:return`seconds`;case`m`:return`minutes`;case`h`:return`hours`;case`d`:return`days`;case`w`:return`weeks`;case`M`:return`months`;case`y`:return`years`;default:return null}},a=(e,t)=>n=>{let a=i(n);if(a){let i=t.isNegativeDuration&&a!==t.largestUnit?r:1,o;return o=this.opts.signMode===`negativeLargestOnly`&&a!==t.largestUnit?`never`:this.opts.signMode===`all`?`always`:`auto`,this.num(e.get(a)*i,n.length,o)}else return n},o=e.parseFormat(n),s=o.reduce((e,{literal:t,val:n})=>t?e:e.concat(n),[]),c=t.shiftTo(...s.map(i).filter(e=>e));return Xe(o,a(c,{isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]}))}},yr=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/,br=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,xr=`(?:${br.source}?(?:\\[(${yr.source})\\])?)?`,Sr=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Cr=RegExp(`${Sr.source}${xr}`),wr=RegExp(`(?:[Tt]${Cr.source})?`),Tr=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Er=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Dr=/(\d{4})-?(\d{3})/,Or=Qe(`weekYear`,`weekNumber`,`weekDay`),kr=Qe(`year`,`ordinal`),Ar=/(\d{4})-(\d\d)-(\d\d)/,jr=RegExp(`${Sr.source} ?(?:${br.source}|(${yr.source}))?`),Mr=RegExp(`(?: ${jr.source})?`),Nr=RegExp(`^T?${Sr.source}$`),Pr=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/,Fr={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480},Ir=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/,Lr=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Rr=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,zr=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/,Br=D(Tr,wr),Vr=D(Er,wr),Hr=D(Dr,wr),Ur=D(Cr),Wr=O(et,tt,nt,rt),Gr=O(Or,tt,nt,rt),Kr=O(kr,tt,nt,rt),qr=O(tt,nt,rt),Jr=O(tt),Yr=D(Ar,Mr),Xr=D(jr),Zr=O(tt,nt,rt),Qr=`Invalid Duration`,$r={weeks:{days:7,hours:168,minutes:10080,seconds:10080*60,milliseconds:10080*60*1e3},days:{hours:24,minutes:1440,seconds:1440*60,milliseconds:1440*60*1e3},hours:{minutes:60,seconds:3600,milliseconds:3600*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},ei={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:2184*60,seconds:2184*60*60,milliseconds:2184*60*60*1e3},months:{weeks:4,days:30,hours:720,minutes:720*60,seconds:720*60*60,milliseconds:720*60*60*1e3},...$r},q=146097/400,J=146097/4800,ti={years:{quarters:4,months:12,weeks:q/7,days:q,hours:q*24,minutes:q*24*60,seconds:q*24*60*60,milliseconds:q*24*60*60*1e3},quarters:{months:3,weeks:q/28,days:q/4,hours:q*24/4,minutes:q*24*60/4,seconds:q*24*60*60/4,milliseconds:q*24*60*60*1e3/4},months:{weeks:J/7,days:J,hours:J*24,minutes:J*24*60,seconds:J*24*60*60,milliseconds:J*24*60*60*1e3},...$r},Y=[`years`,`quarters`,`months`,`weeks`,`days`,`hours`,`minutes`,`seconds`,`milliseconds`],ni=Y.slice(0).reverse(),X=class e{constructor(e){let t=e.conversionAccuracy===`longterm`||!1,n=t?ti:ei;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||H.create(),this.conversionAccuracy=t?`longterm`:`casual`,this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(t,n){return e.fromObject({milliseconds:t},n)}static fromObject(t,n={}){if(typeof t!=`object`||!t)throw new F(`Duration.fromObject: argument expected to be an object, got ${t===null?`null`:typeof t}`);return new e({values:ze(t,e.normalizeUnit),loc:H.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(t){if(S(t))return e.fromMillis(t);if(e.isDuration(t))return t;if(typeof t==`object`)return e.fromObject(t);throw new F(`Unknown duration argument ${t} of type ${typeof t}`)}static fromISO(t,n){let[r]=pt(t);return r?e.fromObject(r,n):e.invalid(`unparsable`,`the input "${t}" can't be parsed as ISO 8601`)}static fromISOTime(t,n){let[r]=mt(t);return r?e.fromObject(r,n):e.invalid(`unparsable`,`the input "${t}" can't be parsed as ISO 8601`)}static invalid(t,n=null){if(!t)throw new F(`need to specify a reason the Duration is invalid`);let r=t instanceof G?t:new G(t,n);if(W.throwOnInvalid)throw new on(r);return new e({invalid:r})}static normalizeUnit(e){let t={year:`years`,years:`years`,quarter:`quarters`,quarters:`quarters`,month:`months`,months:`months`,week:`weeks`,weeks:`weeks`,day:`days`,days:`days`,hour:`hours`,hours:`hours`,minute:`minutes`,minutes:`minutes`,second:`seconds`,seconds:`seconds`,millisecond:`milliseconds`,milliseconds:`milliseconds`}[e&&e.toLowerCase()];if(!t)throw new sn(e);return t}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){let n={...t,floor:t.round!==!1&&t.floor!==!1};return this.isValid?K.create(this.loc,n).formatDurationFromString(this,e):Qr}toHuman(e={}){if(!this.isValid)return Qr;let t=e.showZeros!==!1,n=Y.map(n=>{let r=this.values[n];return x(r)||r===0&&!t?null:this.loc.numberFormatter({style:`unit`,unitDisplay:`long`,...e,unit:n.slice(0,-1)}).format(r)}).filter(e=>e);return this.loc.listFormatter({type:`conjunction`,style:e.listStyle||`narrow`,...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e=`P`;return this.years!==0&&(e+=this.years+`Y`),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+`M`),this.weeks!==0&&(e+=this.weeks+`W`),this.days!==0&&(e+=this.days+`D`),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+=`T`),this.hours!==0&&(e+=this.hours+`H`),this.minutes!==0&&(e+=this.minutes+`M`),(this.seconds!==0||this.milliseconds!==0)&&(e+=Oe(this.seconds+this.milliseconds/1e3,3)+`S`),e===`P`&&(e+=`T0S`),e}toISOTime(e={}){if(!this.isValid)return null;let t=this.toMillis();return t<0||t>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:`extended`,...e,includeOffset:!1},$.fromMillis(t,{zone:`UTC`}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?gt(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(t){if(!this.isValid)return this;let n=e.fromDurationLike(t),r={};for(let e of Y)(we(n.values,e)||we(this.values,e))&&(r[e]=n.get(e)+this.get(e));return k(this,{values:r},!0)}minus(t){if(!this.isValid)return this;let n=e.fromDurationLike(t);return this.plus(n.negate())}mapUnits(e){if(!this.isValid)return this;let t={};for(let n of Object.keys(this.values))t[n]=Re(e(this.values[n],n));return k(this,{values:t},!0)}get(t){return this[e.normalizeUnit(t)]}set(t){if(!this.isValid)return this;let n={...this.values,...ze(t,e.normalizeUnit)};return k(this,{values:n})}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:n,matrix:r}={}){let i={loc:this.loc.clone({locale:e,numberingSystem:t}),matrix:r,conversionAccuracy:n};return k(this,i)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return _t(this.matrix,e),k(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=vt(this.normalize().shiftToAll().toObject());return k(this,{values:e},!0)}shiftTo(...t){if(!this.isValid||t.length===0)return this;t=t.map(t=>e.normalizeUnit(t));let n={},r={},i=this.toObject(),a;for(let e of Y)if(t.indexOf(e)>=0){a=e;let t=0;for(let n in r)t+=this.matrix[n][e]*r[n],r[n]=0;S(i[e])&&(t+=i[e]);let o=Math.trunc(t);n[e]=o,r[e]=(t*1e3-o*1e3)/1e3}else S(i[e])&&(r[e]=i[e]);for(let e in r)r[e]!==0&&(n[a]+=e===a?r[e]:r[e]/this.matrix[a][e]);return _t(this.matrix,n),k(this,{values:n},!0)}shiftToAll(){return this.isValid?this.shiftTo(`years`,`months`,`weeks`,`days`,`hours`,`minutes`,`seconds`,`milliseconds`):this}negate(){if(!this.isValid)return this;let e={};for(let t of Object.keys(this.values))e[t]=this.values[t]===0?0:-this.values[t];return k(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=vt(this.values);return k(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function t(e,t){return e===void 0||e===0?t===void 0||t===0:e===t}for(let n of Y)if(!t(this.values[n],e.values[n]))return!1;return!0}},Z=`Invalid Interval`,ri=class e{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(t,n=null){if(!t)throw new F(`need to specify a reason the Interval is invalid`);let r=t instanceof G?t:new G(t,n);if(W.throwOnInvalid)throw new an(r);return new e({invalid:r})}static fromDateTimes(t,n){let r=nn(t),i=nn(n);return yt(r,i)??new e({start:r,end:i})}static after(t,n){let r=X.fromDurationLike(n),i=nn(t);return e.fromDateTimes(i,i.plus(r))}static before(t,n){let r=X.fromDurationLike(n),i=nn(t);return e.fromDateTimes(i.minus(r),i)}static fromISO(t,n){let[r,i]=(t||``).split(`/`,2);if(r&&i){let t,a;try{t=$.fromISO(r,n),a=t.isValid}catch{a=!1}let o,s;try{o=$.fromISO(i,n),s=o.isValid}catch{s=!1}if(a&&s)return e.fromDateTimes(t,o);if(a){let r=X.fromISO(i,n);if(r.isValid)return e.after(t,r)}else if(s){let t=X.fromISO(r,n);if(t.isValid)return e.before(o,t)}}return e.invalid(`unparsable`,`the input "${t}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e=`milliseconds`){return this.isValid?this.toDuration(e).get(e):NaN}count(e=`milliseconds`,t){if(!this.isValid)return NaN;let n=this.start.startOf(e,t),r;return r=t?.useLocaleWeeks?this.end.reconfigure({locale:n.locale}):this.end,r=r.startOf(e,t),Math.floor(r.diff(n,e).get(e))+(r.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:t,end:n}={}){return this.isValid?e.fromDateTimes(t||this.s,n||this.e):this}splitAt(...t){if(!this.isValid)return[];let n=t.map(nn).filter(e=>this.contains(e)).sort((e,t)=>e.toMillis()-t.toMillis()),r=[],{s:i}=this,a=0;for(;i<this.e;){let t=n[a]||this.e,o=+t>+this.e?this.e:t;r.push(e.fromDateTimes(i,o)),i=o,a+=1}return r}splitBy(t){let n=X.fromDurationLike(t);if(!this.isValid||!n.isValid||n.as(`milliseconds`)===0)return[];let{s:r}=this,i=1,a,o=[];for(;r<this.e;){let t=this.start.plus(n.mapUnits(e=>e*i));a=+t>+this.e?this.e:t,o.push(e.fromDateTimes(r,a)),r=a,i+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(t){if(!this.isValid)return this;let n=this.s>t.s?this.s:t.s,r=this.e<t.e?this.e:t.e;return n>=r?null:e.fromDateTimes(n,r)}union(t){if(!this.isValid)return this;let n=this.s<t.s?this.s:t.s,r=this.e>t.e?this.e:t.e;return e.fromDateTimes(n,r)}static merge(e){let[t,n]=e.sort((e,t)=>e.s-t.s).reduce(([e,t],n)=>t?t.overlaps(n)||t.abutsStart(n)?[e,t.union(n)]:[e.concat([t]),n]:[e,n],[[],null]);return n&&t.push(n),t}static xor(t){let n=null,r=0,i=[],a=t.map(e=>[{time:e.s,type:`s`},{time:e.e,type:`e`}]),o=Array.prototype.concat(...a).sort((e,t)=>e.time-t.time);for(let t of o)r+=t.type===`s`?1:-1,r===1?n=t.time:(n&&+n!=+t.time&&i.push(e.fromDateTimes(n,t.time)),n=null);return e.merge(i)}difference(...t){return e.xor([this].concat(t)).map(e=>this.intersection(e)).filter(e=>e&&!e.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:Z}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=cn,t={}){return this.isValid?K.create(this.s.loc.clone(t),e).formatInterval(this):Z}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Z}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Z}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Z}toFormat(e,{separator:t=` – `}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:Z}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):X.invalid(this.invalidReason)}mapEndpoints(t){return e.fromDateTimes(t(this.s),t(this.e))}},Q=class{static hasDST(e=W.defaultZone){let t=$.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return V.isValidZone(e)}static normalizeZone(e){return _(e,W.defaultZone)}static getStartOfWeek({locale:e=null,locObj:t=null}={}){return(t||H.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:t=null}={}){return(t||H.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:t=null}={}){return(t||H.create(e)).getWeekendDays().slice()}static months(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i=`gregory`}={}){return(r||H.create(t,n,i)).months(e)}static monthsFormat(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i=`gregory`}={}){return(r||H.create(t,n,i)).months(e,!0)}static weekdays(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||H.create(t,n,null)).weekdays(e)}static weekdaysFormat(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||H.create(t,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return H.create(e).meridiems()}static eras(e=`short`,{locale:t=null}={}){return H.create(t,null,`gregory`).eras(e)}static features(){return{relative:ye(),localeWeek:be()}}},ii=`missing Intl.DateTimeFormat.formatToParts support`,ai=`[ \xA0]`,oi=new RegExp(ai,`g`),si={year:{"2-digit":`yy`,numeric:`yyyyy`},month:{numeric:`M`,"2-digit":`MM`,short:`MMM`,long:`MMMM`},day:{numeric:`d`,"2-digit":`dd`},weekday:{short:`EEE`,long:`EEEE`},dayperiod:`a`,dayPeriod:`a`,hour12:{numeric:`h`,"2-digit":`hh`},hour24:{numeric:`H`,"2-digit":`HH`},minute:{numeric:`m`,"2-digit":`mm`},second:{numeric:`s`,"2-digit":`ss`},timeZoneName:{long:`ZZZZZ`,short:`ZZZ`}},ci=null,li=class{constructor(e,t){if(this.locale=e,this.format=t,this.tokens=Ft(K.parseFormat(t),e),this.units=this.tokens.map(t=>Ot(t,e)),this.disqualifyingUnit=this.units.find(e=>e.invalidReason),!this.disqualifyingUnit){let[e,t]=At(this.units);this.regex=RegExp(e,`i`),this.handlers=t}}explainFromTokens(e){if(this.isValid){let[t,n]=jt(e,this.regex,this.handlers),[r,i,a]=n?Mt(n):[null,null,void 0];if(we(n,`a`)&&we(n,`H`))throw new P(`Can't include meridiem when specifying 24-hour format`);return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:t,matches:n,result:r,zone:i,specificOffset:a}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}},ui=`Invalid DateTime`,di=864e13,fi={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},pi={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},mi={ordinal:1,hour:0,minute:0,second:0,millisecond:0},hi=[`year`,`month`,`day`,`hour`,`minute`,`second`,`millisecond`],gi=[`weekYear`,`weekNumber`,`weekday`,`hour`,`minute`,`second`,`millisecond`],_i=[`year`,`ordinal`,`hour`,`minute`,`second`,`millisecond`],yi=new Map,$=class e{constructor(e){let t=e.zone||W.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new G(`invalid input`):null)||(t.isValid?null:zt(t));this.ts=x(e.ts)?W.now():e.ts;let r=null,i=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t))[r,i]=[e.old.c,e.old.o];else{let a=S(e.o)&&!e.old?e.o:t.offset(this.ts);r=Ut(this.ts,a),n=Number.isNaN(r.year)?new G(`invalid input`):null,r=n?null:r,i=n?null:a}this._zone=t,this.loc=e.loc||H.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=r,this.o=i,this.isLuxonDateTime=!0}static now(){return new e({})}static local(){let[e,t]=tn(arguments),[n,r,i,a,o,s,c]=t;return $t({year:n,month:r,day:i,hour:a,minute:o,second:s,millisecond:c},e)}static utc(){let[e,t]=tn(arguments),[n,r,i,a,o,s,c]=t;return e.zone=U.utcInstance,$t({year:n,month:r,day:i,hour:a,minute:o,second:s,millisecond:c},e)}static fromJSDate(t,n={}){let r=ve(t)?t.valueOf():NaN;if(Number.isNaN(r))return e.invalid(`invalid input`);let i=_(n.zone,W.defaultZone);return i.isValid?new e({ts:r,zone:i,loc:H.fromObject(n)}):e.invalid(zt(i))}static fromMillis(t,n={}){if(!S(t))throw new F(`fromMillis requires a numerical input, but received a ${typeof t} with value ${t}`);return t<-864e13||t>di?e.invalid(`Timestamp out of range`):new e({ts:t,zone:_(n.zone,W.defaultZone),loc:H.fromObject(n)})}static fromSeconds(t,n={}){if(S(t))return new e({ts:t*1e3,zone:_(n.zone,W.defaultZone),loc:H.fromObject(n)});throw new F(`fromSeconds requires a numerical input`)}static fromObject(t,n={}){t||={};let r=_(n.zone,W.defaultZone);if(!r.isValid)return e.invalid(zt(r));let i=H.fromObject(n),a=ze(t,Zt),{minDaysInFirstWeek:o,startOfWeek:s}=de(a,i),c=W.now(),l=x(n.specificOffset)?r.offset(c):n.specificOffset,u=!x(a.ordinal),d=!x(a.year),f=!x(a.month)||!x(a.day),p=d||f,m=a.weekYear||a.weekNumber;if((p||u)&&m)throw new P(`Can't mix weekYear/weekNumber units with year/month/day or ordinals`);if(f&&u)throw new P(`Can't mix ordinal dates with month/day`);let h=m||a.weekday&&!p,ee,g,te=Ut(c,l);h?(ee=gi,g=pi,te=se(te,o,s)):u?(ee=_i,g=mi,te=le(te)):(ee=hi,g=fi);let ne=!1;for(let e of ee){let t=a[e];x(t)?ne?a[e]=g[e]:a[e]=te[e]:ne=!0}let re=(h?fe(a,o,s):u?pe(a):me(a))||he(a);if(re)return e.invalid(re);let[v,y]=Wt(h?ce(a,o,s):u?ue(a):a,l,r),b=new e({ts:v,zone:r,o:y,loc:i});return a.weekday&&p&&t.weekday!==b.weekday?e.invalid(`mismatched weekday`,`you can't specify both a weekday of ${a.weekday} and a date of ${b.toISO()}`):b.isValid?b:e.invalid(b.invalid)}static fromISO(e,t={}){let[n,r]=ut(e);return Kt(n,r,t,`ISO 8601`,e)}static fromRFC2822(e,t={}){let[n,r]=dt(e);return Kt(n,r,t,`RFC 2822`,e)}static fromHTTP(e,t={}){let[n,r]=ft(e);return Kt(n,r,t,`HTTP`,t)}static fromFormat(t,n,r={}){if(x(t)||x(n))throw new F(`fromFormat requires an input string and a format`);let{locale:i=null,numberingSystem:a=null}=r,[o,s,c,l]=Lt(H.fromOpts({locale:i,numberingSystem:a,defaultToEN:!0}),t,n);return l?e.invalid(l):Kt(o,s,r,`format ${n}`,t,c)}static fromString(t,n,r={}){return e.fromFormat(t,n,r)}static fromSQL(e,t={}){let[n,r]=ht(e);return Kt(n,r,t,`SQL`,e)}static invalid(t,n=null){if(!t)throw new F(`need to specify a reason the DateTime is invalid`);let r=t instanceof G?t:new G(t,n);if(W.throwOnInvalid)throw new rn(r);return new e({invalid:r})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){let n=Rt(e,H.fromObject(t));return n?n.map(e=>e?e.val:null).join(``):null}static expandFormat(e,t={}){return Ft(K.parseFormat(e),H.fromObject(t)).map(e=>e.val).join(``)}static resetCache(){vi=void 0,yi.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Bt(this).weekYear:NaN}get weekNumber(){return this.isValid?Bt(this).weekNumber:NaN}get weekday(){return this.isValid?Bt(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Vt(this).weekday:NaN}get localWeekNumber(){return this.isValid?Vt(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Vt(this).weekYear:NaN}get ordinal(){return this.isValid?le(this.c).ordinal:NaN}get monthShort(){return this.isValid?Q.months(`short`,{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Q.months(`long`,{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Q.weekdays(`short`,{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Q.weekdays(`long`,{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:`short`,locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:`long`,locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,t=6e4,n=Me(this.c),r=this.zone.offset(n-e),i=this.zone.offset(n+e),a=this.zone.offset(n-r*t),o=this.zone.offset(n-i*t);if(a===o)return[this];let s=n-a*t,c=n-o*t,l=Ut(s,a),u=Ut(c,o);return l.hour===u.hour&&l.minute===u.minute&&l.second===u.second&&l.millisecond===u.millisecond?[M(this,{ts:s}),M(this,{ts:c})]:[this]}get isInLeapYear(){return ke(this.year)}get daysInMonth(){return je(this.year,this.month)}get daysInYear(){return this.isValid?Ae(this.year):NaN}get weeksInWeekYear(){return this.isValid?Pe(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Pe(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:t,numberingSystem:n,calendar:r}=K.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:n,outputCalendar:r}}toUTC(e=0,t={}){return this.setZone(U.instance(e),t)}toLocal(){return this.setZone(W.defaultZone)}setZone(t,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(t=_(t,W.defaultZone),t.equals(this.zone))return this;if(t.isValid){let e=this.ts;if(n||r){let n=t.offset(this.ts),r=this.toObject();[e]=Wt(r,n,t)}return M(this,{ts:e,zone:t})}else return e.invalid(zt(t))}reconfigure({locale:e,numberingSystem:t,outputCalendar:n}={}){let r=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:n});return M(this,{loc:r})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let t=ze(e,Zt),{minDaysInFirstWeek:n,startOfWeek:r}=de(t,this.loc),i=!x(t.weekYear)||!x(t.weekNumber)||!x(t.weekday),a=!x(t.ordinal),o=!x(t.year),s=!x(t.month)||!x(t.day),c=o||s,l=t.weekYear||t.weekNumber;if((c||a)&&l)throw new P(`Can't mix weekYear/weekNumber units with year/month/day or ordinals`);if(s&&a)throw new P(`Can't mix ordinal dates with month/day`);let u;i?u=ce({...se(this.c,n,r),...t},n,r):x(t.ordinal)?(u={...this.toObject(),...t},x(t.day)&&(u.day=Math.min(je(u.year,u.month),u.day))):u=ue({...le(this.c),...t});let[d,f]=Wt(u,this.o,this.zone);return M(this,{ts:d,o:f})}plus(e){if(!this.isValid)return this;let t=X.fromDurationLike(e);return M(this,Gt(this,t))}minus(e){if(!this.isValid)return this;let t=X.fromDurationLike(e).negate();return M(this,Gt(this,t))}startOf(e,{useLocaleWeeks:t=!1}={}){if(!this.isValid)return this;let n={},r=X.normalizeUnit(e);switch(r){case`years`:n.month=1;case`quarters`:case`months`:n.day=1;case`weeks`:case`days`:n.hour=0;case`hours`:n.minute=0;case`minutes`:n.second=0;case`seconds`:n.millisecond=0;break}if(r===`weeks`)if(t){let e=this.loc.getStartOfWeek(),{weekday:t}=this;t<e&&(n.weekNumber=this.weekNumber-1),n.weekday=e}else n.weekday=1;return r===`quarters`&&(n.month=(Math.ceil(this.month/3)-1)*3+1),this.set(n)}endOf(e,t){return this.isValid?this.plus({[e]:1}).startOf(e,t).minus(1):this}toFormat(e,t={}){return this.isValid?K.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):ui}toLocaleString(e=cn,t={}){return this.isValid?K.create(this.loc.clone(t),e).formatDateTime(this):ui}toLocaleParts(e={}){return this.isValid?K.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e=`extended`,suppressSeconds:t=!1,suppressMilliseconds:n=!1,includeOffset:r=!0,extendedZone:i=!1,precision:a=`milliseconds`}={}){if(!this.isValid)return null;a=Xt(a);let o=e===`extended`,s=Jt(this,o,a);return hi.indexOf(a)>=3&&(s+=`T`),s+=Yt(this,o,t,n,r,i,a),s}toISODate({format:e=`extended`,precision:t=`day`}={}){return this.isValid?Jt(this,e===`extended`,Xt(t)):null}toISOWeekDate(){return qt(this,`kkkk-'W'WW-c`)}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:t=!1,includeOffset:n=!0,includePrefix:r=!1,extendedZone:i=!1,format:a=`extended`,precision:o=`milliseconds`}={}){return this.isValid?(o=Xt(o),(r&&hi.indexOf(o)>=3?`T`:``)+Yt(this,a===`extended`,t,e,n,i,o)):null}toRFC2822(){return qt(this,`EEE, dd LLL yyyy HH:mm:ss ZZZ`,!1)}toHTTP(){return qt(this.toUTC(),`EEE, dd LLL yyyy HH:mm:ss 'GMT'`)}toSQLDate(){return this.isValid?Jt(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:t=!1,includeOffsetSpace:n=!0}={}){let r=`HH:mm:ss.SSS`;return(t||e)&&(n&&(r+=` `),t?r+=`z`:e&&(r+=`ZZ`)),qt(this,r,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():ui}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let t={...this.c};return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,t=`milliseconds`,n={}){if(!this.isValid||!e.isValid)return X.invalid(`created by diffing an invalid DateTime`);let r={locale:this.locale,numberingSystem:this.numberingSystem,...n},i=xe(t).map(X.normalizeUnit),a=e.valueOf()>this.valueOf(),o=St(a?this:e,a?e:this,i,r);return a?o.negate():o}diffNow(t=`milliseconds`,n={}){return this.diff(e.now(),t,n)}until(e){return this.isValid?ri.fromDateTimes(this,e):this}hasSame(e,t,n){if(!this.isValid)return!1;let r=e.valueOf(),i=this.setZone(e.zone,{keepLocalTime:!0});return i.startOf(t,n)<=r&&r<=i.endOf(t,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(t={}){if(!this.isValid)return null;let n=t.base||e.fromObject({},{zone:this.zone}),r=t.padding?this<n?-t.padding:t.padding:0,i=[`years`,`months`,`days`,`hours`,`minutes`,`seconds`],a=t.unit;return Array.isArray(t.unit)&&(i=t.unit,a=void 0),en(n,this.plus(r),{...t,numeric:`always`,units:i,unit:a})}toRelativeCalendar(t={}){return this.isValid?en(t.base||e.fromObject({},{zone:this.zone}),this,{...t,numeric:`auto`,units:[`years`,`months`,`days`],calendary:!0}):null}static min(...t){if(!t.every(e.isDateTime))throw new F(`min requires all arguments be DateTimes`);return Se(t,e=>e.valueOf(),Math.min)}static max(...t){if(!t.every(e.isDateTime))throw new F(`max requires all arguments be DateTimes`);return Se(t,e=>e.valueOf(),Math.max)}static fromFormatExplain(e,t,n={}){let{locale:r=null,numberingSystem:i=null}=n;return It(H.fromOpts({locale:r,numberingSystem:i,defaultToEN:!0}),e,t)}static fromStringExplain(t,n,r={}){return e.fromFormatExplain(t,n,r)}static buildFormatParser(e,t={}){let{locale:n=null,numberingSystem:r=null}=t,i=H.fromOpts({locale:n,numberingSystem:r,defaultToEN:!0});return new li(i,e)}static fromFormatParser(t,n,r={}){if(x(t)||x(n))throw new F(`fromFormatParser requires an input string and a format parser`);let{locale:i=null,numberingSystem:a=null}=r,o=H.fromOpts({locale:i,numberingSystem:a,defaultToEN:!0});if(!o.equals(n.locale))throw new F(`fromFormatParser called with a locale of ${o}, but the format parser was created for ${n.locale}`);let{result:s,zone:c,specificOffset:l,invalidReason:u}=n.explainFromTokens(t);return u?e.invalid(u):Kt(s,c,r,`format ${n.format}`,t,l)}static get DATE_SHORT(){return cn}static get DATE_MED(){return ln}static get DATE_MED_WITH_WEEKDAY(){return un}static get DATE_FULL(){return dn}static get DATE_HUGE(){return fn}static get TIME_SIMPLE(){return pn}static get TIME_WITH_SECONDS(){return mn}static get TIME_WITH_SHORT_OFFSET(){return hn}static get TIME_WITH_LONG_OFFSET(){return gn}static get TIME_24_SIMPLE(){return _n}static get TIME_24_WITH_SECONDS(){return vn}static get TIME_24_WITH_SHORT_OFFSET(){return yn}static get TIME_24_WITH_LONG_OFFSET(){return bn}static get DATETIME_SHORT(){return xn}static get DATETIME_SHORT_WITH_SECONDS(){return Sn}static get DATETIME_MED(){return Cn}static get DATETIME_MED_WITH_SECONDS(){return wn}static get DATETIME_MED_WITH_WEEKDAY(){return Tn}static get DATETIME_FULL(){return En}static get DATETIME_FULL_WITH_SECONDS(){return Dn}static get DATETIME_HUGE(){return On}static get DATETIME_HUGE_WITH_SECONDS(){return kn}},bi=`3.7.2`}));export{xi as n,n as r,$ as t};
@@ -0,0 +1 @@
1
+ import{s as e,t}from"./react-BXwhMTuc.js";import{m as n}from"./hooks-DYfTEQLk.js";import{t as r}from"./jsx-runtime-BlNNh7jY.js";import{s as i}from"./config-BPljH6wF.js";import{i as a,r as o}from"./currency-Dy4Tc2R2.js";import{_ as s,n as c}from"./chunk-KS7C4IRE-DhOcHQOU.js";import{G as l,H as u,J as d,L as f}from"./shade-scope-Cccj-c7I-D0XwkdKQ.js";import{t as p}from"./box-LUuYRT-1.js";import{t as ee}from"./container-CHHif8km.js";import{t as te}from"./grid-BEUIDQX7.js";import{r as ne}from"./newsletters-Dz77m__5.js";import{Fr as m,Y as h,an as g,nr as _,qt as v,t as y,tn as b}from"./button-D414TI3B.js";import{a as x,o as S,r as C,s as w,t as T}from"./command-B5wfm6pd.js";import{a as re,i as ie,n as E,o as ae,r as oe,t as se}from"./breadcrumb-DDDpzLyo.js";import{t as D}from"./empty-indicator-CSQts7GV.js";import{t as O}from"./input-group-CvH-3d3F.js";import{t as k}from"./preview-chrome-C7yZWVLZ.js";import{a as A,c as j,n as ce,r as M,s as le,t as ue}from"./table-BDYbUHJz.js";import{n as N,t as P}from"./toggle-group-BTL1QsWY.js";import{$n as de,$r as F,Bn as I,En as L,Hn as R,Hr as fe,Jn as z,Ln as B,Mr as pe,Qn as me,Qr as V,Rn as he,Si as ge,Sn as H,Wn as _e,Xr as ve,cr as ye,d as U,er as be,or as xe,p as W,q as Se,r as Ce,vi as we,yi as Te}from"./index-DOF2jDq0.js";import{t as G}from"./page-header-CdCpekG9.js";import{a as Ee}from"./tiers-6mPzCXlM.js";import{t as K}from"./list-page-CH_wnDC3.js";import{t as De}from"./email-previews-Bs-JDhIw.js";import{t as Oe}from"./clean-tracked-url-dkN05vOf.js";import{a as ke,c as q,i as Ae,l as je,o as Me,r as Ne,s as Pe,t as Fe}from"./member-activity-feed-0ytsQbtY.js";var J=e(t(),1),Y={minimumFractionDigits:0,maximumFractionDigits:2};function X(e,t){if(!(typeof e!=`number`||!Number.isFinite(e)||typeof t!=`string`||!/^[a-z]{3}$/i.test(t)))return{value:o(e),symbol:a(t)}}function Ie(e,t){let n=X(e.data.mrr_delta,e.data.currency);if(!n||n.value===0)return;let r=`${n.symbol}${u(Math.abs(n.value),Y)}`;return e.data.type===`created`?`${t.hasMultipleTiers&&typeof e.data.tierName==`string`&&e.data.tierName.trim()?e.data.tierName:`Paid`} ${n.value<0?`-`:``}${r}/month`:`MRR ${n.value>0?`+`:`-`}${r}`}function Le(e){let t=X(e.data.amount,e.data.currency),{tier_name:n,duration:r,cadence:i}=e.data;if(!t||typeof n!=`string`||!n.trim()||typeof r!=`number`||!Number.isInteger(r)||r<=0||typeof i!=`string`||!i.trim())return`Purchased gift subscription`;let a=`${t.symbol}${u(t.value,Y)}`,o=r===1?i:`${i}s`;return`Purchased gift subscription for ${a} (${n}, ${u(r)} ${o})`}function Re(e,t){let n=je(e.type===`gift_purchase_event`?{...e,data:{...e.data,amount:void 0}}:e,t);if(e.type===`subscription_event`&&(n.info=Ie(e,t)),e.type===`donation_event`){let t=X(e.data.amount,e.data.currency);n.info=t?`${t.symbol}${u(t.value,Y)}`:void 0}return e.type===`gift_purchase_event`&&(n.action=Le(e),n.actionTitle=n.action),e.type===`click_event`&&(n.description=typeof n.description==`string`?Oe(n.description,!0):void 0),n}function Z(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function Q(e){return typeof e==`string`?e:void 0}function ze(e){let t=Z(e),n=Z(t?.email),r=[t,n].find(e=>Q(e?.html)&&typeof e?.subject==`string`),i=Z(t?.newsletter)??Z(n?.newsletter),a=Q(t?.post_id)||Q(n?.post_id)||(typeof t?.title==`string`?Q(t.id):void 0);return{stored:r?{html:Q(r.html),subject:Q(r.subject)}:void 0,postId:a,newsletter:i?{sender_name:Q(i.sender_name),sender_email:Q(i.sender_email)}:void 0}}function Be(e,t,n){let r=n?.hostSettings?.managedEmail;return r?.enabled&&(!r.sendingDomain||e?.split(`@`)[1]!==r.sendingDomain)?t||``:e||t||``}function Ve(e){let t=new DOMParser().parseFromString(e,`text/html`);t.querySelectorAll(`a, area`).forEach(e=>{e.removeAttribute(`href`),e.removeAttribute(`target`)}),t.querySelectorAll(`base, meta[http-equiv], form`).forEach(e=>e.remove());let n=t.createElement(`style`);return n.textContent=`html { scrollbar-width: none; } html::-webkit-scrollbar { display: none; }`,t.head.append(n),`<!DOCTYPE html>${t.documentElement.outerHTML}`}var $=r();function He({email:e,onClose:t}){let[n,r]=(0,J.useState)(`desktop`),[a]=(0,J.useState)(()=>window.document.activeElement),o=ze(e),s=!o.stored&&!!o.postId,c=De(o.postId??``,{enabled:s}),l=ne({enabled:!o.newsletter,searchParams:{filter:`status:active`,limit:`1`}}),u=ge(),d=i(),[p,ee]=Te(u.data?.settings??[],[`title`,`default_email_address`]),m=o.newsletter??l.data?.newsletters[0],_=m?.sender_name||p,b=Be(m?.sender_email??void 0,ee,d.data?.config),x=o.stored??(s&&!c.isError?c.data?.email_previews[0]:void 0),S=(0,J.useMemo)(()=>x?Ve(x.html):void 0,[x?.html]),C=u.isError||d.isError||!o.newsletter&&l.isError,w=u.isLoading||d.isLoading||!o.newsletter&&l.isLoading,T=s&&c.isLoading;return(0,$.jsx)(R,{open:!0,onOpenChange:e=>{e||t()},children:(0,$.jsxs)(_e,{"aria-describedby":void 0,className:`top-0 left-0 h-dvh w-full max-w-none translate-0 grid-rows-[auto_1fr] gap-0 rounded-none border-0 p-0 shadow-none sm:rounded-none`,"data-testid":`activity-email-preview`,onCloseAutoFocus:e=>{a instanceof HTMLElement&&a.isConnected&&(e.preventDefault(),a.focus())},onInteractOutside:e=>e.preventDefault(),children:[(0,$.jsxs)(te,{align:`center`,className:`border-b border-border-default p-4`,columns:3,gap:`md`,children:[(0,$.jsx)(z,{children:`Email preview`}),(0,$.jsxs)(P,{className:`justify-self-center`,type:`single`,value:n,onValueChange:e=>{(e===`desktop`||e===`mobile`)&&r(e)},children:[(0,$.jsx)(N,{"aria-label":`Desktop`,value:`desktop`,children:(0,$.jsx)(g,{})}),(0,$.jsx)(N,{"aria-label":`Mobile`,value:`mobile`,children:(0,$.jsx)(h,{})})]}),(0,$.jsx)(y,{className:`justify-self-end`,onClick:t,children:`Close`})]}),(0,$.jsx)(F,{align:`start`,className:`min-h-0 overflow-auto bg-muted p-3 sm:p-6`,gap:`none`,justify:`center`,children:(0,$.jsx)(k,{className:f(`max-w-full shrink-0`,n===`desktop`?`max-w-[740px] px-0 [&>div]:rounded-2xl [&>div]:shadow-2xl`:`shadow-2xl`),"data-device":n,device:n,children:(0,$.jsxs)(V,{className:`size-full bg-background`,gap:`none`,children:[(0,$.jsxs)(V,{className:`border-b border-border-default p-4 text-[13px]`,gap:`xs`,children:[(0,$.jsx)(`p`,{className:`font-semibold break-words`,children:x?.subject}),(0,$.jsxs)(`p`,{children:[(0,$.jsx)(`span`,{className:`text-muted-foreground`,children:`From: `}),w?`Loading sender…`:C?`Sender unavailable`:(0,$.jsxs)($.Fragment,{children:[_,b&&` <${b}>`]})]}),(0,$.jsxs)(`p`,{children:[(0,$.jsx)(`span`,{className:`text-muted-foreground`,children:`To: `}),`Jamie Larson <jamie@example.com>`]}),C&&(0,$.jsxs)(F,{gap:`sm`,children:[(0,$.jsx)(`p`,{role:`alert`,children:`Couldn’t load sender details.`}),(0,$.jsx)(y,{size:`sm`,variant:`outline`,onClick:()=>{u.refetch(),d.refetch(),o.newsletter||l.refetch()},children:`Retry sender details`})]})]}),T?(0,$.jsx)(F,{"aria-label":`Loading email preview`,className:`grow`,gap:`none`,justify:`center`,role:`status`,children:(0,$.jsx)(L,{size:`md`})}):x?(0,$.jsx)(`iframe`,{className:`min-h-0 grow border-0`,sandbox:``,srcDoc:S,title:`Email content`}):(0,$.jsx)(D,{actions:s?(0,$.jsx)(y,{variant:`outline`,onClick:()=>void c.refetch(),children:`Retry`}):void 0,className:`grow justify-center`,description:s?`The email preview could not be loaded.`:`The original email content is no longer available.`,role:`alert`,title:`Couldn’t load the email preview`,children:(0,$.jsx)(v,{})})]})})})]})})}function Ue({onSelect:e}){let[t,n]=(0,J.useState)(!1),r=(0,J.useRef)(null),[i,a]=(0,J.useState)(``),[o]=Se(i,300),{data:s,isFetching:c,isError:l,refetch:u}=pe({enabled:t&&!!o.trim(),searchParams:{search:o,limit:`20`},defaultErrorHandler:!1}),d=c||i!==o;return(0,$.jsx)(T,{className:`h-auto w-60 max-w-full min-w-0 overflow-visible`,shouldFilter:!1,children:(0,$.jsxs)(B,{open:t&&!!i.trim(),onOpenChange:n,children:[(0,$.jsx)(he,{asChild:!0,children:(0,$.jsx)(p,{ref:r,children:(0,$.jsx)(O,{className:`[&_[cmdk-input-wrapper]]:w-full [&_[cmdk-input-wrapper]]:border-0`,children:(0,$.jsx)(x,{"aria-expanded":t&&!!i.trim(),"aria-label":`Search members`,className:`h-(--control-height) min-w-0 py-0`,"data-slot":`input-group-control`,placeholder:`Search members...`,value:i,onClick:()=>n(!!i.trim()),onFocus:()=>n(!!i.trim()),onValueChange:e=>{a(e),n(!!e.trim())}})})})}),(0,$.jsx)(I,{align:`end`,className:`w-(--radix-popover-trigger-width) max-w-[calc(100vw-2rem)] p-0`,onCloseAutoFocus:e=>e.preventDefault(),onInteractOutside:e=>{r.current?.contains(e.target)&&e.preventDefault()},onOpenAutoFocus:e=>e.preventDefault(),children:(0,$.jsx)(w,{children:d?(0,$.jsx)(F,{"aria-label":`Loading members`,className:`p-4`,justify:`center`,role:`status`,children:(0,$.jsx)(L,{size:`sm`})}):l?(0,$.jsxs)(V,{className:`p-4`,gap:`sm`,children:[(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,role:`alert`,children:`Couldn’t load members`}),(0,$.jsx)(y,{variant:`outline`,onClick:()=>void u(),children:`Retry`})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(C,{children:`No members found`}),s?.members.map(t=>(0,$.jsxs)(S,{value:t.id,onSelect:()=>{e(t.id),n(!1),a(``)},children:[(0,$.jsx)(H,{...W(t),src:t.avatar_image}),(0,$.jsxs)(V,{className:`min-w-0`,gap:`none`,children:[(0,$.jsx)(`span`,{className:`truncate font-medium`,title:U(t),children:U(t)}),t.name?.trim()&&(0,$.jsx)(`span`,{className:`truncate text-sm text-muted-foreground`,title:t.email,children:t.email})]})]},t.id))]})})})]})})}var We=e(d(),1);function Ge(e){if(!e||typeof e!=`object`)return;let t=`subject`in e?e.subject:void 0;return typeof t==`string`&&t.trim()?t:`email`in e&&e.email&&typeof e.email==`object`?Ge(e.email):`Email`}function Ke({event:e,memberHref:t,hideMember:n,onPreview:r}){let i=typeof e.subject==`string`&&e.subject?e.subject:`Unknown member`,a=(0,$.jsxs)(F,{gap:`md`,children:[(0,$.jsx)(H,{...W(e.member),className:`[&_span]:text-[13px]`,src:e.member?.avatar_image}),(0,$.jsxs)(V,{className:`min-w-0`,gap:`none`,children:[(0,$.jsx)(`span`,{className:f(`truncate font-medium`,t&&`group-hover/member:underline`),children:i}),e.member?.name&&(0,$.jsx)(`span`,{className:`truncate text-muted-foreground`,children:e.member.email})]})]}),o=q(e.route)?e.route:q(e.url)?e.url:void 0,s=!!e.object&&!!o,l=!s&&Ge(e.email),u=e.action?e.action[0].toUpperCase()+e.action.slice(1):`Unknown activity`,d=e.timestamp?(0,We.default)(e.timestamp).local():void 0;return(0,$.jsxs)(j,{children:[!n&&(0,$.jsx)(M,{className:`group/member w-1/3 max-w-72 min-w-40 py-4`,children:t?(0,$.jsx)(c,{className:`block hover:no-underline`,to:t,children:a}):a}),(0,$.jsx)(M,{className:`min-w-48 py-4`,children:(0,$.jsxs)(F,{gap:`md`,children:[(0,$.jsx)(F,{className:`size-8 shrink-0 rounded-full bg-muted`,gap:`none`,justify:`center`,children:(0,$.jsx)(Fe,{iconName:e.icon})}),(0,$.jsxs)(V,{className:`min-w-0`,gap:`xs`,children:[(0,$.jsxs)(`p`,{className:`leading-relaxed`,children:[(0,$.jsx)(`span`,{title:e.actionTitle,children:u}),e.info&&(0,$.jsxs)(`span`,{className:`ml-1 text-muted-foreground`,children:[`(`,e.info,`)`]}),s&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{className:`mx-1 text-muted-foreground`,children:e.join}),o.startsWith(`#/`)?(0,$.jsx)(Ce,{className:`font-medium hover:underline`,to:o.slice(1),children:e.object}):(0,$.jsx)(`a`,{className:`font-medium hover:underline`,href:o,rel:`noopener noreferrer`,target:`_blank`,children:e.object})]}),l&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{className:`mx-1 text-muted-foreground`,children:e.join}),(0,$.jsx)(`button`,{className:`cursor-pointer text-left font-medium hover:underline`,type:`button`,onClick:()=>r(e.email),children:l})]})]}),e.description&&(0,$.jsx)(`p`,{className:`break-all text-muted-foreground`,title:e.description,children:e.description})]})]})}),(0,$.jsx)(M,{className:`w-40 py-4 text-left whitespace-nowrap text-muted-foreground`,children:d?.isValid()?(0,$.jsx)(`time`,{dateTime:d.toISOString(),children:d.format(`DD MMM YYYY HH:mm`)}):`—`})]})}function qe(){let[e,t]=s(),r=e.get(`member`)||void 0,i=e.get(`excludedEvents`),[a,o]=(0,J.useState)(null),d=(0,J.useRef)(null),{settingsQuery:f,settings:te,activitySettings:h}=Ne(),g=we(te,`paid_members_enabled`)??!1,v=fe(r??``,{enabled:!!r,defaultErrorHandler:!1}),x=v.data?.members[0],S=!!r&&(v.error instanceof n&&v.error.response?.status===404||v.isSuccess&&!x),C=!!r&&v.isError&&!S,w=ne({searchParams:{filter:`status:active`,limit:`1`}}),T=Ee({searchParams:{filter:`type:paid+active:true`,limit:`all`},enabled:g}),O=ve({...Ae({settings:h,memberId:r,excluded:i}),enabled:!!f.data&&!f.isError&&(!r||!!x),defaultErrorHandler:!1}),k=O.data?.events??[],M=ke(h,r),N=Me(i),P=M.filter(({event:e})=>!N.includes(e)),I=P.length===M.length?`All events`:P.length===1?P[0].name:P.length===0?`No events selected`:`${u(P.length)} events`,R=f.isLoading||!!r&&v.isLoading||O.isLoading,z=(n,r)=>{let i=new URLSearchParams(e);r?i.set(n,r):i.delete(n),t(i)};(0,J.useEffect)(()=>{let e=d.current;if(!e||!O.hasNextPage||O.isFetching||O.isError)return;let t=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&O.fetchNextPage()},{root:l(e),rootMargin:`250px`});return t.observe(e),()=>t.disconnect()},[O.hasNextPage,O.isFetching,O.isError,O.fetchNextPage]);let B=!!r||N.length>0;return(0,$.jsxs)(p,{className:`size-full`,children:[(0,$.jsx)(ee,{className:`relative h-full`,size:`page`,children:(0,$.jsxs)(K,{"data-testid":`member-activity-page`,children:[(0,$.jsx)(K.Header,{children:(0,$.jsxs)(G,{blurredBackground:!1,sticky:!1,children:[(0,$.jsx)(G.Left,{children:r?(0,$.jsx)(se,{children:(0,$.jsxs)(ie,{children:[(0,$.jsx)(E,{children:(0,$.jsx)(oe,{asChild:!0,children:(0,$.jsx)(c,{to:`/members-activity`,children:`Member activity`})})}),(0,$.jsx)(ae,{}),(0,$.jsx)(E,{children:(0,$.jsx)(re,{className:`truncate`,children:x?U(x):`Member`})})]})}):(0,$.jsx)(G.Title,{children:`Member activity`})}),(0,$.jsx)(G.Actions,{className:`max-w-full min-w-0`,children:(0,$.jsxs)(F,{className:`max-w-full min-w-0`,gap:`md`,wrap:!0,children:[!r&&(0,$.jsx)(Ue,{onSelect:e=>z(`member`,e)}),(0,$.jsxs)(me,{children:[(0,$.jsx)(ye,{asChild:!0,children:(0,$.jsxs)(y,{"aria-label":`Filter events`,variant:`outline`,children:[(0,$.jsx)(b,{className:`size-4`}),I,(0,$.jsx)(_,{className:`size-4 opacity-50`})]})}),(0,$.jsx)(be,{align:`end`,className:`max-h-[70vh] w-64 max-w-[calc(100vw-2rem)] overflow-y-auto`,children:M.map((e,t)=>(0,$.jsxs)(J.Fragment,{children:[t>0&&e.group!==M[t-1].group&&(0,$.jsx)(xe,{}),(0,$.jsxs)(de,{checked:!N.includes(e.event),className:`gap-2 pr-8 pl-2 [&>span:first-child]:right-2 [&>span:first-child]:left-auto`,onCheckedChange:()=>z(`excludedEvents`,Pe(e.event,i)),onSelect:e=>e.preventDefault(),children:[(0,$.jsx)(Fe,{iconName:e.icon}),e.name]})]},e.event))})]})]})})]})}),(0,$.jsxs)(K.Body,{children:[x&&(0,$.jsxs)(F,{className:`py-6`,gap:`lg`,children:[(0,$.jsx)(H,{...W(x),className:`size-12 min-w-12 [&_span]:text-lg`,src:x.avatar_image}),(0,$.jsxs)(V,{className:`min-w-0`,gap:`none`,children:[(0,$.jsx)(`h2`,{className:`truncate text-xl font-semibold`,children:U(x)}),x.name?.trim()&&(0,$.jsx)(`p`,{className:`truncate text-muted-foreground`,children:x.email}),(0,$.jsx)(c,{className:`mt-0.5 text-sm font-medium hover:underline`,to:`/members/${encodeURIComponent(x.id)}`,children:`View member profile →`})]})]}),f.isError?(0,$.jsx)(D,{actions:(0,$.jsx)(y,{variant:`outline`,onClick:()=>void f.refetch(),children:`Retry`}),role:`alert`,title:`Couldn’t load activity settings`}):S?(0,$.jsx)(D,{actions:(0,$.jsx)(y,{variant:`outline`,onClick:()=>z(`member`),children:`Clear member`}),description:`This member may have been deleted.`,role:`alert`,title:`Member not found`}):C?(0,$.jsx)(D,{actions:(0,$.jsx)(y,{variant:`outline`,onClick:()=>void v.refetch(),children:`Retry`}),role:`alert`,title:`Couldn’t load member`}):R?(0,$.jsx)(F,{"aria-label":`Loading member activity`,className:`grow py-10`,justify:`center`,role:`status`,children:(0,$.jsx)(L,{size:`lg`})}):(0,$.jsxs)($.Fragment,{children:[k.length>0?(0,$.jsx)(p,{className:`shrink-0 overflow-x-auto`,children:(0,$.jsxs)(ue,{"aria-label":`Member activity`,className:`text-[13px]`,children:[(0,$.jsx)(le,{children:(0,$.jsxs)(j,{children:[!r&&(0,$.jsx)(A,{className:`text-[13px]`,scope:`col`,children:`Member`}),(0,$.jsx)(A,{className:`text-[13px]`,scope:`col`,children:`Event`}),(0,$.jsx)(A,{className:`text-[13px]`,scope:`col`,children:`Time`})]})}),(0,$.jsx)(ce,{children:k.map((t,n)=>{let i=Re(t,{hasMultipleNewsletters:w.isError||(w.data?.meta?.pagination.total??0)>1,hasMultipleTiers:(T.data?.tiers.length??0)>1,paidMembersEnabled:g}),a=new URLSearchParams(e);return i.member?.id&&a.set(`member`,i.member.id),(0,$.jsx)(Ke,{event:i,hideMember:!!r,memberHref:i.member?.id?`/members-activity?${a}`:void 0,onPreview:o},`${t.type}:${i.id??n}`)})})]})}):!O.isError&&(0,$.jsx)(D,{actions:B?(0,$.jsx)(y,{variant:`outline`,asChild:!0,children:(0,$.jsx)(c,{to:`/members-activity`,children:`Show all activity`})}):void 0,className:`grow`,title:B?`No activities match the current filter`:`No member activity yet`,children:(0,$.jsx)(m,{})}),O.isError&&(0,$.jsx)(D,{actions:(0,$.jsx)(y,{variant:`outline`,onClick:()=>void(O.isFetchNextPageError?O.fetchNextPage():O.refetch()),children:`Retry`}),role:`alert`,title:k.length?`Couldn’t load more activity`:`Couldn’t load member activity`}),O.isFetchingNextPage&&(0,$.jsx)(F,{"aria-label":`Loading more activity`,className:`py-6`,justify:`center`,role:`status`,children:(0,$.jsx)(L,{size:`md`})}),(0,$.jsx)(p,{ref:d,className:`h-px`})]})]})]})}),!!a&&(0,$.jsx)(He,{email:a,onClose:()=>o(null)})]})}export{qe as default};
@@ -0,0 +1 @@
1
+ import{s as e,t}from"./react-BXwhMTuc.js";import{t as n}from"./jsx-runtime-BlNNh7jY.js";import{J as r,c as i}from"./shade-scope-Cccj-c7I-D0XwkdKQ.js";import{A as a,At as o,Fr as s,Gt as c,It as l,Jn as u,Jt as d,Kt as f,Qt as ee,Rn as te,Tr as ne,Xt as p,Yt as m,_ as h,et as g,g as re,k as _,qt as v,t as y,yn as b}from"./button-D414TI3B.js";import{t as x}from"./skeleton-CPcTiTSX.js";import{n as S,t as C}from"./card-C2dfd5u0.js";import{t as ie}from"./empty-indicator-CSQts7GV.js";import{Si as ae,Ur as w,vi as T}from"./index-DOF2jDq0.js";import{r as E,t as D}from"./use-availability-DnKqOyqd.js";t();var O=e(r(),1),k=new Set([`bif`,`clp`,`djf`,`gnf`,`jpy`,`kmf`,`krw`,`mga`,`pyg`,`rwf`,`ugx`,`vnd`,`vuv`,`xaf`,`xof`,`xpf`]);function A(e,t){let n=k.has(t.toLowerCase())?e:e/100,r=n%1==0;try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t.toUpperCase(),minimumFractionDigits:r?0:2,maximumFractionDigits:r?0:2}).format(n)}catch{return`${n}`}}function j(e){return e?.trim()||null}function M(e){let t;return e.type===`login_event`&&(t=`logged-in`),e.type===`payment_event`&&(t=`subscriptions`),e.type===`newsletter_event`&&(t=e.data.subscribed?`subscribed-to-email`:`unsubscribed-from-email`),e.type===`subscription_event`&&(t=`subscriptions`,e.data.type===`canceled`&&(t=`canceled-subscription`)),(e.type===`signup_event`||e.type===`subscription_event`&&e.data.type===`created`&&e.data.signup)&&(t=`signed-up`),e.type===`email_opened_event`&&(t=`opened-email`),(e.type===`email_sent_event`||e.type===`automated_email_sent_event`)&&(t=`sent-email`),e.type===`email_delivered_event`&&(t=`received-email`),e.type===`email_failed_event`&&(t=`email-delivery-failed`),e.type===`email_complaint_event`&&(t=`email-delivery-spam`),e.type===`comment_event`&&(t=`comment`),(e.type===`click_event`||e.type===`aggregated_click_event`)&&(t=`click`),e.type===`feedback_event`&&(t=e.data.score===1?`more-like-this`:`less-like-this`),e.type===`donation_event`&&(t=`subscriptions`),(e.type===`gift_purchase_event`||e.type===`gift_redemption_event`||e.type===`gift_ended_event`)&&(t=`gift`),e.type===`email_change_event`&&(t=`email-changed`),e.type===`metafield_change_event`&&(t=`metafields-changed`),`event-${t}`}var N=3;function P(e){return e.type===`metafield_change_event`}var F={admin:`in Admin`,admin_api:`through the Admin API`,import:`from an import`,checkout:`at checkout`,portal:`in Portal`};function I(e){let t=e.data.metafields.map(({name:e})=>e),n=`custom fields`;if(t.length>N){let e=t.length-N;n=`${t.slice(0,N).join(`, `)} and ${e} more ${e===1?`field`:`fields`}`}else t.length>0&&(n=t.length===1?t[0]:`${t.slice(0,-1).join(`, `)} and ${t.at(-1)}`);let{source:r}=e.data,i=E(r)?F[r]:void 0;return i?`updated ${n} ${i}`:`updated ${n}`}function L(e,t){if(e.type===`signup_event`||e.type===`subscription_event`&&e.data.type===`created`&&e.data.signup)return`signed up`;if(e.type===`login_event`)return`logged in`;if(e.type===`payment_event`)return`made payment`;if(e.type===`newsletter_event`){let n=e.data.newsletter,r=t&&n?.name?n.name:`newsletter`;return e.data.subscribed?`subscribed to ${r}`:`unsubscribed from ${r}`}if(e.type===`subscription_event`){let t=e.data.type;return t===`created`?`started paid subscription`:t===`canceled`?`canceled paid subscription`:t===`reactivated`?`reactivated paid subscription`:t===`expired`?`ended paid subscription`:`changed paid subscription`}if(e.type===`email_opened_event`)return`opened email`;if(e.type===`email_sent_event`)return`sent email`;if(e.type===`automated_email_sent_event`){let t=e.data.automatedEmail;if(t?.source!==`automation_action_revision`)return`received welcome email (${(t?.slug||``).includes(`paid`)?`Paid`:`Free`})`;let n=j(t.subject);return n?`received automated email: ${n}`:`received automated email`}if(e.type===`email_delivered_event`)return`received email`;if(e.type===`email_failed_event`)return`bounced email`;if(e.type===`email_complaint_event`)return`email flagged as spam`;if(e.type===`comment_event`)return e.data.parent?`replied to comment`:`commented`;if(e.type===`click_event`)return`clicked link in email`;if(e.type===`aggregated_click_event`){let t=e.data.count?.clicks??1;return t<=1?`clicked link in email`:`clicked ${t} links in email`}if(e.type===`feedback_event`)return e.data.score===1?`more like this`:`less like this`;if(e.type===`email_change_event`)return e.data.from_email&&e.data.to_email?`Email address changed from ${e.data.from_email} to ${e.data.to_email}`:`Email address changed`;if(P(e))return I(e);if(e.type===`donation_event`)return`Made a one-time payment`;if(e.type===`gift_purchase_event`){let t=e.data.amount,n=e.data.currency,r=e.data.tier_name,i=e.data.duration,a=e.data.cadence;return typeof t==`number`&&n&&r&&typeof i==`number`&&a?`Purchased gift subscription for ${A(t,n)} (${r}, ${i} ${i===1?a:`${a}s`})`:`Purchased gift subscription`}if(e.type===`gift_redemption_event`)return`started gift subscription`;if(e.type===`gift_ended_event`)return`gift subscription expired`}function R(e,t){if(e.type===`automated_email_sent_event`){let t=e.data.automatedEmail;if(t?.source===`automation_action_revision`){let e=j(t.subject);return e?`received automated email: ${e}`:`received automated email`}}return L(e,t)}function z(e){if(e.type===`signup_event`||e.type===`subscription_event`||e.type===`donation_event`){let t=e.data.attribution;if(t?.title)return t.title}if(e.type===`comment_event`||e.type===`click_event`||e.type===`feedback_event`){let t=e.data.post;if(t?.title)return t.title}return``}function B(e){let t=e.data.attribution;return t?.referrer_source?{name:t.referrer_source,url:t.referrer_url??null}:null}function V(e,t){if(e.type===`signup_event`&&t.paidMembersEnabled){let t=e.data.created_with_status;return t&&t!==`free`?null:`Free`}if(e.type===`gift_redemption_event`)return e.data.tier_name??void 0}function H(e){if(e.type===`click_event`)return e.data.link?.to}function oe(e){if(e.type===`comment_event`||e.type===`click_event`||e.type===`feedback_event`){let t=e.data.post;if(t?.url)return t.url}if(e.type===`signup_event`||e.type===`subscription_event`||e.type===`donation_event`){let t=e.data.attribution;if(t?.url)return t.url}}function U(e){if(e.type===`click_event`||e.type===`feedback_event`){let t=e.data.post;if(t?.id)return`#/posts/analytics/${t.id}`}if((e.type===`signup_event`||e.type===`subscription_event`)&&e.data.attribution_type===`post`&&e.data.attribution_id)return`#/posts/analytics/${e.data.attribution_id}`}function W(e,t){let n=j(e.data.member?.name),r=e.data.member?n||e.data.member.email||``:e.data.name||e.data.email||``,i=e.data.member?{...e.data.member,name:n??void 0}:e.data.member;return{id:e.data.id,memberId:e.data.member_id??e.data.member?.id,member:i,emailId:e.data.email_id,email:e.data.email,icon:M(e),subject:r,action:L(e,t.hasMultipleNewsletters),actionTitle:R(e,t.hasMultipleNewsletters),join:`–`,object:z(e),source:B(e),info:V(e,t),description:H(e),url:oe(e),route:U(e),timestamp:e.data.created_at}}function G(e){return e?/^(https?:\/\/|\/|#\/)/i.test(e):!1}var K=[`email_sent_event`,`email_delivered_event`,`email_opened_event`,`email_failed_event`,`email_complaint_event`],q=[{event:`signup_event`,name:`Signups`,group:`auth`,icon:`event-signed-up`},{event:`login_event`,name:`Logins`,group:`auth`,icon:`event-logged-in`},{event:`subscription_event`,name:`Paid subscriptions`,group:`payments`,icon:`event-subscriptions`},{event:`payment_event`,name:`Payments`,group:`payments`,icon:`event-subscriptions`},{event:`newsletter_event`,name:`Email subscriptions`,group:`emails`,icon:`event-subscribed-to-email`},{event:`email_opened_event`,name:`Email opened`,group:`emails`,icon:`event-opened-email`},{event:`email_delivered_event`,name:`Email received`,group:`emails`,icon:`event-received-email`},{event:`email_complaint_event`,name:`Email flagged as spam`,group:`emails`,icon:`event-email-delivery-spam`},{event:`email_failed_event`,name:`Email bounced`,group:`emails`,icon:`event-email-delivery-failed`},{event:`email_change_event`,name:`Email address changed`,group:`emails`,icon:`event-email-changed`},{event:`automated_email_sent_event`,name:`Welcome email received`,group:`emails`,icon:`event-sent-email`},{event:`metafield_change_event`,name:`Custom fields updated`,group:`others`,icon:`event-metafields-changed`},{event:`feedback_event`,name:`Feedback`,group:`others`,icon:`event-more-like-this`}];function J(e){return[...new Set((e??``).split(`,`).filter(e=>/^[a-z_]+$/.test(e)))]}function Y(e,t){let n=[`aggregated_click_event`];return(!t||e.editorDefaultEmailRecipients===`disabled`)&&n.push(...K),e.editorDefaultEmailRecipients===`disabled`&&n.push(`newsletter_event`),e.customFieldsAvailable||n.push(`metafield_change_event`),n}function se(e,t){let n=[...q];e.commentsEnabled!==`off`&&n.push({event:`comment_event`,name:`Comments`,group:`others`,icon:`event-comment`}),e.emailTrackClicks&&n.push({event:`click_event`,name:`Clicked link in email`,group:`others`,icon:`event-click`});let r=new Set(Y(e,t));return n.filter(({event:e})=>!r.has(e))}function ce(e,t){let n=new Set(J(t)),r=e===`subscription_event`?[e,`gift_redemption_event`,`gift_ended_event`]:e===`payment_event`?[e,`donation_event`,`gift_purchase_event`]:[e],i=n.has(e);for(let e of r)i?n.delete(e):n.add(e);return[...n].join(`,`)}function X({settings:e,memberId:t,excluded:n}){let r=new Set([...J(n),...Y(e,t)]);return r.has(`email_complaint_event`)&&r.add(`email_complained_event`),e.commentsEnabled===`off`&&r.add(`comment_event`),{memberId:t,excludedEvents:[...r]}}function Z(){let e=ae({defaultErrorHandler:!1}),t=e.data?.settings??[],n=D();return{settingsQuery:e,settings:t,activitySettings:{editorDefaultEmailRecipients:T(t,`editor_default_email_recipients`)??void 0,commentsEnabled:T(t,`comments_enabled`)??void 0,emailTrackClicks:T(t,`email_track_clicks`)??void 0,customFieldsAvailable:n}}}var Q=n(),$=({iconName:e})=>{let t={className:`shrink-0 text-muted-foreground`,size:16};switch(e){case`event-signed-up`:return(0,Q.jsx)(re,{...t});case`event-logged-in`:return(0,Q.jsx)(ee,{...t});case`event-subscriptions`:return(0,Q.jsx)(te,{...t});case`event-canceled-subscription`:return(0,Q.jsx)(u,{...t});case`event-subscribed-to-email`:return(0,Q.jsx)(d,{...t});case`event-unsubscribed-from-email`:return(0,Q.jsx)(p,{...t});case`event-opened-email`:return(0,Q.jsx)(m,{...t});case`event-received-email`:return(0,Q.jsx)(c,{...t});case`event-sent-email`:return(0,Q.jsx)(g,{...t});case`event-email-delivery-failed`:return(0,Q.jsx)(f,{...t});case`event-email-delivery-spam`:return(0,Q.jsx)(v,{...t});case`event-email-changed`:return(0,Q.jsx)(ne,{...t});case`event-metafields-changed`:return(0,Q.jsx)(h,{...t});case`event-comment`:return(0,Q.jsx)(l,{...t});case`event-click`:return(0,Q.jsx)(o,{...t});case`event-more-like-this`:return(0,Q.jsx)(_,{...t});case`event-less-like-this`:return(0,Q.jsx)(a,{...t});case`event-gift`:return(0,Q.jsx)(b,{...t});default:return(0,Q.jsx)(s,{...t})}},le=({memberId:e})=>{let{isAdmin7:t}=i(),n=(0,Q.jsx)(`a`,{className:t?void 0:`block pt-3 font-medium text-primary hover:underline`,"data-testid":`member-activity-view-all`,href:`#/members-activity?member=${e}`,children:`View all member activity →`});return t?(0,Q.jsx)(y,{className:`mt-3`,variant:`ghost`,asChild:!0,children:n}):n},ue=`All events related to this member will be shown here.`,de=e=>e?e.charAt(0).toUpperCase()+e.slice(1):``;function fe(e){if(e&&typeof e==`object`){let t=e.subject;return t?`“${t}”`:`Email`}}var pe=({event:e})=>{if(!e.action)return null;let t=fe(e.email),n=e.object&&(e.route||G(e.url)),r=!n&&t,i=e.timestamp?(0,O.default)(e.timestamp).fromNow():`—`;return(0,Q.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,"data-testid":`member-activity-event`,children:[(0,Q.jsx)(`div`,{className:`flex size-8 shrink-0 items-center justify-center rounded-full bg-muted`,children:(0,Q.jsx)($,{iconName:e.icon})}),(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,Q.jsxs)(`div`,{className:`text-sm leading-snug`,children:[(0,Q.jsx)(`span`,{"data-testid":`member-activity-action`,children:de(e.action)}),e.info&&(0,Q.jsxs)(`span`,{className:`ml-1 text-muted-foreground`,children:[`(`,e.info,`)`]}),n&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`mx-1 text-muted-foreground`,children:e.join}),e.route?(0,Q.jsx)(`a`,{className:`hover:underline`,href:e.route,children:e.object}):(0,Q.jsx)(`a`,{className:`hover:underline`,href:e.url,rel:`noopener noreferrer`,target:`_blank`,children:e.object})]}),r&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`mx-1 text-muted-foreground`,children:e.join}),(0,Q.jsx)(`span`,{className:`text-muted-foreground`,children:t})]})]}),e.description&&(0,Q.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:e.description}),(0,Q.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:i})]})]})},me=({memberId:e,hasMultipleNewsletters:t,hasMultipleTiers:n,paidMembersEnabled:r})=>{let{settingsQuery:i,activitySettings:a}=Z(),{excludedEvents:o}=X({settings:a,memberId:e,excluded:null}),{data:c,isLoading:l}=w(e??``,{limit:`5`,enabled:!!e&&!i.isLoading,excludedEvents:o}),u=i.isLoading||l,d=(c?.events??[]).map(e=>W(e,{hasMultipleNewsletters:t,hasMultipleTiers:n,paidMembersEnabled:r})),f=new Set;return e?(0,Q.jsxs)(`section`,{"aria-labelledby":`member-activity-heading`,className:`flex flex-col gap-3`,children:[(0,Q.jsx)(`h3`,{className:`text-base font-semibold`,id:`member-activity-heading`,children:`Activity`}),(0,Q.jsx)(C,{children:(0,Q.jsxs)(S,{className:`pt-3`,children:[u?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsx)(x,{className:`h-10`}),(0,Q.jsx)(x,{className:`h-10`}),(0,Q.jsx)(x,{className:`h-10`})]}):d.length===0?(0,Q.jsx)(`p`,{className:`py-4 text-center text-sm text-muted-foreground`,"data-testid":`member-activity-empty`,children:`No activity yet`}):(0,Q.jsx)(`div`,{className:`divide-y divide-border`,children:d.map(e=>{let t=e.id||`${e.timestamp??`?`}-${e.icon}-${e.action}`,n=t,r=1;for(;f.has(n);)n=`${t}#${r}`,r+=1;return f.add(n),(0,Q.jsx)(pe,{event:e},n)})}),!u&&d.length>0&&(0,Q.jsx)(le,{memberId:e})]})})]}):(0,Q.jsxs)(`section`,{"aria-labelledby":`member-activity-heading`,className:`flex flex-col gap-3`,children:[(0,Q.jsx)(`h3`,{className:`text-base font-semibold`,id:`member-activity-heading`,children:`Activity`}),(0,Q.jsx)(C,{children:(0,Q.jsx)(S,{className:`pt-6`,children:(0,Q.jsx)(`div`,{className:`flex flex-col items-center gap-3 py-4`,children:(0,Q.jsx)(ie,{description:ue,title:`Activity`,children:(0,Q.jsx)(s,{})})})})})]})};export{se as a,G as c,X as i,W as l,me as n,J as o,Z as r,ce as s,$ as t};
@@ -0,0 +1 @@
1
+ import{n as e,r as t}from"./hooks-DYfTEQLk.js";import{a as n,i as r,n as i,o as a}from"./use-availability-DnKqOyqd.js";var o=`AC.AD.AE.AF.AG.AI.AL.AM.AO.AQ.AR.AS.AT.AU.AW.AX.AZ.BA.BB.BD.BE.BF.BG.BH.BI.BJ.BL.BM.BN.BO.BQ.BR.BS.BT.BV.BW.BY.BZ.CA.CC.CD.CF.CG.CH.CI.CK.CL.CM.CN.CO.CR.CU.CV.CW.CX.CY.CZ.DE.DJ.DK.DM.DO.DZ.EC.EE.EG.EH.ER.ES.ET.FI.FJ.FK.FM.FO.FR.GA.GB.GD.GE.GF.GG.GH.GI.GL.GM.GN.GP.GQ.GR.GS.GT.GU.GW.GY.HK.HM.HN.HR.HT.HU.ID.IE.IL.IM.IN.IO.IQ.IR.IS.IT.JE.JM.JO.JP.KE.KG.KH.KI.KM.KN.KP.KR.KW.KY.KZ.LA.LB.LC.LI.LK.LR.LS.LT.LU.LV.LY.MA.MC.MD.ME.MF.MG.MH.MK.ML.MM.MN.MO.MP.MQ.MR.MS.MT.MU.MV.MW.MX.MY.MZ.NA.NC.NE.NF.NG.NI.NL.NO.NP.NR.NU.NZ.OM.PA.PE.PF.PG.PH.PK.PL.PM.PN.PR.PS.PT.PW.PY.QA.RE.RO.RS.RU.RW.SA.SB.SC.SD.SE.SG.SH.SI.SJ.SK.SL.SM.SN.SO.SR.SS.ST.SV.SX.SY.SZ.TA.TC.TD.TF.TG.TH.TJ.TK.TL.TM.TN.TO.TR.TT.TV.TW.TZ.UA.UG.UM.US.UY.UZ.VA.VC.VE.VG.VI.VN.VU.WF.WS.XK.YE.YT.ZA.ZM.ZW`.split(`.`),s=new Intl.DisplayNames([`en`],{type:`region`}),c=e=>{try{return s.of(e.toUpperCase())??e}catch{return e}},l;function u(e){l??=o.map(e=>({value:e,label:c(e)})).sort((e,t)=>e.label.localeCompare(t.label,`en`));let t=l,n=(typeof e==`string`?[e]:e??[]).filter((e,n,r)=>e&&r.indexOf(e)===n&&!t.some(t=>t.value===e));return n.length===0?l:[...l,...n.map(e=>({value:e,label:c(e)}))]}var d=`metafields`,f=/^[a-z0-9_]+$/;function p({namespace:e,key:t,partPath:n}){let r=`${e}.${t}`;return n?`${r}.${n}`:r}function m(e){let[t,n,...r]=e.split(`.`);return t===void 0||n===void 0||![t,n,...r].every(e=>f.test(e))?null:{namespace:t,key:n,partPath:r.length>0?r.join(`.`):null}}var h=`${d}.`;function g(e){return p({namespace:e.namespace,key:e.key,partPath:null})}function _(e){let t=`${h}${g(e)}`,n=a(e.type);return n?n.map(e=>({column:`${t}.${e}`,subField:e})):[{column:t,subField:null}]}function v(e){return e===`metafields`||e.startsWith(h)}var y={short_text:{label:`Short text`,input:`text`},long_text:{label:`Long text`,input:`textarea`},address:{label:`Address`,input:`address`,subFields:{line1:`Address line 1`,line2:`Address line 2`,city:`City`,state:`State`,postal_code:`Postal code`,country:`Country`}}},b=e=>y[e]?.subFields??{},x=r.map(e=>({id:e,...y[e]})),S=e=>x.find(t=>t.id===e)||x[0],C=e=>S(e.type),w=e=>e.flatMap(e=>{let t=b(e.type);return _({namespace:e.namespace,key:e.key,type:e.type}).map(({column:n,subField:r})=>{let i=r===null?void 0:t[r];return{value:n,fieldName:e.name,...i===void 0?{}:{partLabel:i},label:i===void 0?e.name:`${e.name} (${i})`,type:e.type}})}),T=e=>{let t=a(e),r=n(e);if(!t||!r)return null;let i=b(e);return t.map(e=>({key:e,label:i[e],type:r[e]}))},E=e=>typeof e==`object`&&!!e&&!Array.isArray(e),D={address:[[`state`,`postal_code`]]};function O(e){let t=a(e);if(!t)return[];let n=new Map;(D[e]??[]).forEach((e,t)=>{e.forEach(e=>n.set(e,t))});let r=[],i;for(let e of t){let t=n.get(e);if(t!==void 0&&t===i){r[r.length-1].push(e);continue}r.push([e]),i=t}return r}var k=Object.fromEntries(r.map(e=>[e,O(e)])),A=(e,t)=>{if(a(e)===null)return typeof t==`string`?t:``;if(!E(t))return``;let r=n(e)??{},i=e=>{let n=t[e];return r[e]===`country_code`&&typeof n==`string`?c(n):n};return(k[e]??[]).map(e=>e.map(i).filter(e=>typeof e==`string`&&e!==``).join(` `)).filter(Boolean).join(`, `)},j=e=>i[e].kind,M=`MemberCustomFieldsResponseType`,N=M,P=t({dataType:M,path:`/members/metafields/custom/`,returnData:e=>e.members_metafields}),F=e=>P({...e,searchParams:{filter:`status:[active,archived]`}}),I=e({method:`POST`,path:()=>`/members/metafields/custom/`,body:e=>({members_metafields:[e]}),invalidateQueries:{dataType:M},updateQueries:{dataType:M,emberUpdateType:`skip`,update:(e,t)=>{let n=t;if(!n?.members_metafields)return t;let r=e.members_metafields.filter(e=>!n.members_metafields.some(t=>t.key===e.key));return{...n,members_metafields:[...n.members_metafields,...r]}}}}),L=e({method:`PUT`,path:e=>`/members/metafields/custom/${e.key}/`,body:({key:e,...t})=>({members_metafields:[t]}),invalidateQueries:{dataType:M}}),R=e({method:`PUT`,path:()=>`/members/metafields/custom/`,body:e=>({members_metafields:e.map(({key:e})=>({key:e}))}),updateQueries:{dataType:M,emberUpdateType:`skip`,update:(e,t)=>{let n=t;if(!n?.members_metafields)return t;let r=e.members_metafields.map(({key:e})=>e);return{...n,members_metafields:z(r,n.members_metafields)}}}}),z=(e,t)=>{let n=new Map(e.map((e,t)=>[e,t]));return[...t].sort((e,t)=>(n.get(e.key)??1/0)-(n.get(t.key)??1/0))},B=e({method:`DELETE`,path:e=>`/members/metafields/custom/${e}/`,invalidateQueries:{dataType:M}});export{p as _,T as a,u as b,P as c,B as d,L as f,v as g,S as h,j as i,F as l,C as m,z as n,x as o,R as p,w as r,N as s,A as t,I as u,m as v,c as y};
@@ -0,0 +1 @@
1
+ import{s as e,t}from"./react-BXwhMTuc.js";import{s as n}from"./framework-provider-DB-svAju.js";import{o as r}from"./hooks-DYfTEQLk.js";import{t as i}from"./jsx-runtime-BlNNh7jY.js";import{n as a}from"./dist-DziNzWI2.js";import{i as o}from"./currency-Dy4Tc2R2.js";import{h as s,n as c,u as l}from"./chunk-KS7C4IRE-DhOcHQOU.js";import{a as u}from"./router-provider-DDZvgS3V.js";import{J as d,L as f,c as p}from"./shade-scope-Cccj-c7I-D0XwkdKQ.js";import{t as m}from"./box-LUuYRT-1.js";import{t as h}from"./container-CHHif8km.js";import{i as g}from"./users-C60_hpn6.js";import{r as _}from"./newsletters-Dz77m__5.js";import{Bt as ee,D as te,Kt as v,On as ne,Pn as y,Qt as b,Rn as x,Rt as S,Ut as re,Zt as ie,ft as C,g as ae,jn as oe,nr as se,t as w,vn as T,xt as E,zt as D}from"./button-D414TI3B.js";import{i as O,n as k,o as A,s as j,t as ce}from"./select-D_4xWFYv.js";import{t as le}from"./multi-select-combobox-_9wEYmGv.js";import{t as M}from"./switch-DoOJF2yg.js";import{t as ue}from"./skeleton-CPcTiTSX.js";import{t as de}from"./badge-CI1Z0xyG.js";import{a as fe,i as pe,n as me,o as he,r as ge,t as _e}from"./breadcrumb-DDDpzLyo.js";import{n as N,t as P}from"./card-C2dfd5u0.js";import{i as ve,n as ye,r as be,t as xe}from"./combobox-6_ruuTuj.js";import{t as F}from"./empty-indicator-CSQts7GV.js";import{t as I}from"./label-Du0yqMqL.js";import{n as Se,o as L,t as Ce}from"./input-group-CvH-3d3F.js";import{t as we}from"./textarea-C5qolByg.js";import{An as Te,Br as R,Dn as z,En as B,Fn as Ee,Gn as De,Gr as Oe,Hn as V,Hr as ke,Ir as Ae,Jn as H,Jr as je,Kn as U,Kr as Me,Lr as Ne,Mn as Pe,Nn as Fe,Oi as Ie,On as Le,Pn as Re,Qn as ze,Rr as Be,Si as Ve,Sn as He,Wn as W,Yr as Ue,cr as We,d as Ge,er as Ke,jn as qe,jr as Je,ki as Ye,nr as G,or as Xe,p as Ze,qn as K,vi as Qe,zr as $e}from"./index-DOF2jDq0.js";import{t as q}from"./page-header-CdCpekG9.js";import{t as et}from"./dirty-confirm-dialog-BT_Vq9TD.js";import{a as tt}from"./tiers-6mPzCXlM.js";import{t as J}from"./detail-page-CN4NdhpV.js";import{t as nt}from"./validator-DlFQP70j.js";import{n as rt,t as it}from"./use-unsaved-changes-guard-CKVPWz_F.js";import{n as at}from"./use-availability-DnKqOyqd.js";import{c as ot,n as st}from"./member-activity-feed-0ytsQbtY.js";import{a as ct,b as lt,m as ut,t as dt,y as ft}from"./member-custom-fields-CTFGnnYv.js";import{i as pt,n as mt,r as ht}from"./label-picker-Bq1XXr1D.js";var Y=e(t(),1),gt=new Set([`active`,`trialing`,`unpaid`,`past_due`]);function _t(e){return(e.subscriptions??[]).some(e=>gt.has(e.status))}function vt(e){return e?`Delete member + Cancel subscription`:`Delete member`}var X=i(),yt=({open:e,onOpenChange:t,member:n,allowLeaveWithUnsavedChanges:r})=>{let i=u(),o=Ae(),[s,c]=Y.useState(!1);Y.useEffect(()=>{e&&c(!1)},[e]);let l=_t(n),d=n.email||n.name||`this member`,f=async()=>{try{let e=l&&s;await o.mutateAsync({id:n.id,cancel:e}),a.success(e?`${d} was deleted and their Stripe subscription was cancelled.`:`${d} was deleted.`),t(!1),r(),i(`/members`)}catch{a.error(`Couldn’t delete the member. Please try again.`)}};return(0,X.jsx)(V,{open:e,onOpenChange:e=>{o.isPending||t(e)},children:(0,X.jsxs)(W,{"data-testid":`delete-member-modal`,children:[(0,X.jsxs)(K,{children:[(0,X.jsx)(H,{children:`Delete member account`}),(0,X.jsxs)(De,{children:[`Permanently delete `,(0,X.jsx)(`strong`,{children:d}),` from Ghost.`]})]}),l&&(0,X.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,X.jsx)(`h4`,{className:`text-sm font-medium`,children:`Also cancel subscription in Stripe`}),(0,X.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`If disabled, the member’s premium subscription will continue`})]}),(0,X.jsx)(M,{"aria-label":`Also cancel subscription in Stripe`,checked:s,"data-testid":`delete-member-cancel-stripe`,disabled:o.isPending,onCheckedChange:c})]}),(0,X.jsxs)(U,{children:[(0,X.jsx)(w,{"data-testid":`cancel-delete-member`,disabled:o.isPending,variant:`outline`,onClick:()=>t(!1),children:`Cancel`}),(0,X.jsx)(w,{"data-testid":`confirm-delete-member`,disabled:o.isPending,variant:`destructive`,onClick:()=>void f(),children:o.isPending?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(B,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Deleting`})]}):vt(s&&l)})]})]})})},bt=`Disabled from member settings`,xt=({open:e,onOpenChange:t,member:n})=>{let r=Ne(),[i,o]=Y.useState(!1);Y.useEffect(()=>{e&&o(!1)},[e]);let s=n.name||n.email||`this member`,c=async()=>{try{await r.mutateAsync({id:n.id,reason:bt,hideComments:i})}catch{a.error(`Couldn’t disable commenting. Please try again.`);return}a.success(`Commenting has been disabled for ${s}.`),t(!1)};return(0,X.jsx)(V,{open:e,onOpenChange:e=>{r.isPending||t(e)},children:(0,X.jsxs)(W,{"data-testid":`disable-commenting-modal`,children:[(0,X.jsxs)(K,{children:[(0,X.jsx)(H,{children:`Disable commenting`}),(0,X.jsxs)(De,{children:[(0,X.jsx)(`strong`,{children:s}),` won’t be able to comment in the future. You can re-enable commenting anytime.`]})]}),(0,X.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,X.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:(0,X.jsx)(`h4`,{className:`text-sm font-medium`,children:`Hide all previous comments`})}),(0,X.jsx)(M,{"aria-label":`Hide all previous comments`,checked:i,"data-testid":`disable-commenting-hide-comments`,disabled:r.isPending,onCheckedChange:o})]}),(0,X.jsxs)(U,{children:[(0,X.jsx)(w,{"data-testid":`cancel-disable-commenting`,disabled:r.isPending,variant:`outline`,onClick:()=>t(!1),children:`Cancel`}),(0,X.jsx)(w,{"data-testid":`confirm-disable-commenting`,disabled:r.isPending,onClick:()=>void c(),children:r.isPending?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(B,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Disabling`})]}):`Disable commenting`})]})]})})},St=({open:e,onOpenChange:t,memberId:r})=>{let i=n();Y.useEffect(()=>{e&&i.removeQueries({queryKey:[`MemberSigninUrlResponseType`]})},[e,i]);let{data:o,isFetching:s,isError:c}=Me(r,{enabled:e,defaultErrorHandler:!1}),l=o?.url??``,u=c||!s&&!c&&!l,[d,f]=Y.useState(!1),p=Y.useRef(null),m=Y.useCallback(()=>{p.current!==null&&(clearTimeout(p.current),p.current=null)},[]);Y.useEffect(()=>{e||(m(),f(!1))},[e,m]),Y.useEffect(()=>m,[m]);let h=async()=>{try{await navigator.clipboard.writeText(l),f(!0),m(),p.current=setTimeout(()=>{f(!1),p.current=null},1e3)}catch{a.error(`Couldn’t copy the impersonation link`)}};return(0,X.jsx)(V,{open:e,onOpenChange:t,children:(0,X.jsxs)(W,{"data-testid":`impersonate-modal`,children:[(0,X.jsxs)(K,{children:[(0,X.jsx)(H,{children:`Impersonate member`}),(0,X.jsx)(De,{children:`A single-use signin link that works for 24 hours. Anyone with the link can sign in as this member.`})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(I,{htmlFor:`member-signin-url`,children:`Signin link`}),(0,X.jsx)(z,{"data-testid":`member-signin-url`,id:`member-signin-url`,value:s?`Generating link…`:u?`Failed to generate link`:l,readOnly:!0})]}),(0,X.jsxs)(U,{children:[(0,X.jsx)(w,{variant:`outline`,onClick:()=>t(!1),children:`Close`}),(0,X.jsx)(w,{disabled:s||u||!l,onClick:()=>void h(),children:s?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(B,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Generating link`})]}):d?`Copied`:`Copy link`})]})]})})},Ct=({open:e,onOpenChange:t,member:n})=>{let r=Oe(),i=n.name||n.email||`This member`,o=async()=>{try{await r.mutateAsync({id:n.id}),a.success(`${i} has been signed out from all devices.`),t(!1)}catch{a.error(`Couldn’t sign the member out. Please try again.`)}};return(0,X.jsx)(Le,{open:e,onOpenChange:e=>{r.isPending||t(e)},children:(0,X.jsxs)(qe,{"data-testid":`logout-member-modal`,children:[(0,X.jsxs)(Re,{children:[(0,X.jsx)(Ee,{children:`Sign out member from all devices?`}),(0,X.jsxs)(Pe,{children:[(0,X.jsx)(`strong`,{children:i}),` will be signed out of all active sessions, and will need to sign in again upon return.`]})]}),(0,X.jsxs)(Fe,{children:[(0,X.jsx)(Te,{disabled:r.isPending,children:`Cancel`}),(0,X.jsx)(w,{"data-testid":`confirm-logout-member`,disabled:r.isPending,variant:`destructive`,onClick:()=>void o(),children:r.isPending?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(B,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Signing out`})]}):`Sign out`})]})]})})};function wt(e){return e.can_comment===!1}function Tt(e){return wt(e)?`Enable commenting`:`Disable commenting`}var Et=({member:e,allowLeaveWithUnsavedChanges:t})=>{let{isAdmin7:n}=p(),{data:i}=r(),[o,s]=Y.useState(!1),[c,l]=Y.useState(!1),[u,d]=Y.useState(!1),[f,m]=Y.useState(!1),h=R(),_=je(),v=h.isPending||h.isSuccess&&_,ne=wt(e),x=Tt(e),S=e.name||e.email||`this member`;if(!i||!g(i))return null;let re=async()=>{if(!ne){d(!0);return}try{await h.mutateAsync({id:e.id}),a.success(`Commenting has been enabled for ${S}.`)}catch{a.error(`Couldn’t enable commenting. Please try again.`)}};return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(ze,{children:[(0,X.jsx)(We,{asChild:!0,children:(0,X.jsx)(w,{"aria-label":`Actions`,className:`size-(--control-height)`,"data-testid":`member-actions`,size:`icon`,variant:`subtle`,children:(0,X.jsx)(y,{size:16})})}),(0,X.jsxs)(Ke,{align:`end`,children:[(0,X.jsxs)(G,{"data-testid":`member-actions-impersonate`,onSelect:()=>s(!0),children:[n&&(0,X.jsx)(b,{"aria-hidden":`true`}),`Impersonate`]}),(0,X.jsxs)(G,{"data-testid":`member-actions-logout`,onSelect:()=>l(!0),children:[n&&(0,X.jsx)(ie,{"aria-hidden":`true`}),`Sign out of all devices`]}),(0,X.jsxs)(G,{"data-testid":`member-actions-commenting`,disabled:v,onSelect:()=>void re(),children:[n&&(ne?(0,X.jsx)(D,{"aria-hidden":`true`}):(0,X.jsx)(ee,{"aria-hidden":`true`})),x]}),(0,X.jsx)(Xe,{}),(0,X.jsxs)(G,{className:`text-destructive focus:text-destructive`,"data-testid":`member-actions-delete`,onSelect:()=>m(!0),children:[n&&(0,X.jsx)(te,{"aria-hidden":`true`}),`Delete member`]})]})]}),(0,X.jsx)(St,{memberId:e.id,open:o,onOpenChange:s}),(0,X.jsx)(Ct,{member:e,open:c,onOpenChange:l}),(0,X.jsx)(xt,{member:e,open:u,onOpenChange:d}),(0,X.jsx)(yt,{allowLeaveWithUnsavedChanges:t,member:e,open:f,onOpenChange:m})]})},Z=e(d(),1),Dt=e(nt(),1),Ot=ct(`address`)??[];function Q(e){return{name:(e.name??``).trim(),email:(e.email??``).trim(),note:e.note??``,labels:(e.labels??[]).map(e=>({name:e.name,slug:e.slug})).sort((e,t)=>e.slug<t.slug?-1:+(e.slug>t.slug)),newsletters:(e.newsletters??[]).map(e=>e.id).sort()}}function kt(e){let t={};for(let[n,r]of Object.entries(e??{}))for(let[e,i]of Object.entries(r??{}))t[`${n}.${e}`]=i;let n={};for(let[e,r]of Object.entries(t))if(typeof r==`string`&&r.trim()!==``)n[e]=r.trim();else if(typeof r==`object`&&r&&!Array.isArray(r)){let t=jt(r);t&&(n[e]=t)}return n}function At(e){let t={};for(let{key:n}of Ot){let r=e[n];typeof r==`string`&&(t[n]=r.trim())}return Object.values(t).some(e=>e!==``)?t:void 0}function jt(e){let t={};for(let{key:n}of Ot){let r=e[n];typeof r==`string`&&r.trim()!==``&&(t[n]=r.trim())}return Object.keys(t).length?t:void 0}function Mt(e,t){return e.includes(t)?e.filter(e=>e!==t):[...e,t].sort()}function Nt(e,t){let n=e.trim();return t!==void 0&&n===t.trim()?!0:Dt.default.isEmail(n)}function Pt(e,t,n){return t?e.trim()===``?`Email is required.`:Nt(e,n)?null:`Invalid email.`:null}function Ft(e){if(!e?.suppressed)return null;let t=e.info;if(!t)return{label:null};let{reason:n,timestamp:r}=t,i=(0,Z.default)(new Date(r)).format(`D MMM YYYY`);switch(n){case`fail`:return{reason:n,label:`Bounced on ${i}`};case`spam`:return{reason:n,label:`Flagged as spam on ${i}`};default:return{reason:n,label:`Email disabled on ${i}`}}}function It(e){return e?e.filter(e=>e.subscribe_on_signup===!0&&e.visibility===`members`).map(e=>e.id):[]}function Lt(e){return 500-[...e].length}function Rt(e,t,n){let r=Wt(t),i={id:e,name:r.name,email:r.email,note:r.note,labels:r.labels};return rt(r.newsletters,n.newsletters)||(i.newsletters=r.newsletters.map(e=>({id:e}))),i}function zt(e){return typeof e==`string`?e.trim()||void 0:At(e)}function Bt(e,t,n){return{id:e,metafields:{[t.namespace]:{[t.key]:zt(n)??null}}}}function Vt(e,t){let n={};for(let r of t){let t=e[r.key],i=t===void 0?void 0:zt(t);if(i===void 0)continue;let a=at[r.type];if(!a)continue;let o=a.value.safeParse(i);if(!o.success)for(let e of o.error.issues){let t=[r.namespace,r.key,...e.path].join(`.`);n[t]??=e.message}}return n}function Ht(e){let t=e?.data,n={};for(let e of t?.errors??[])e.property?.startsWith(`metafields.`)&&(n[e.property.slice(11)]=e.context||e.message||`Invalid value.`);return Object.keys(n).length?n:void 0}function Ut(e,t){return e.map(e=>t.get(e)??{name:e,slug:e})}function Wt(e){return{name:e.name.trim(),email:e.email.trim(),note:e.note,labels:e.labels,newsletters:e.newsletters}}function Gt(e,t){return!e||!!t&&rt(Wt(e),t)}var Kt=({message:e})=>e?(0,X.jsx)(`p`,{className:`text-sm text-destructive`,role:`alert`,children:e}):null,qt=({id:e,label:t,value:n,invalid:r,disabled:i,onChange:a})=>{let[o,s]=Y.useState(!1);return(0,X.jsxs)(xe,{open:o,modal:!0,onOpenChange:s,children:[(0,X.jsx)(be,{"aria-invalid":r||void 0,"aria-label":t,disabled:i,id:e,children:(0,X.jsx)(ve,{placeholder:!n,children:n?ft(n):`Select...`})}),(0,X.jsx)(ye,{children:(0,X.jsx)(le,{i18n:{searchPlaceholder:`Search countries...`},isMultiSelect:!1,options:lt(n),values:n?[n]:[],autoCloseOnSelect:!0,onChange:e=>a(e[0]??``),onClose:()=>s(!1)})})]})},Jt=({inputId:e,value:t,errors:n,disabled:r,onChange:i})=>(0,X.jsx)(`div`,{className:`grid gap-x-4 gap-y-3 md:grid-cols-2`,children:Ot.map(({key:a,label:o,type:s})=>{let c=`${e}-${a}`,l=n?.[a];return(0,X.jsxs)(`div`,{className:f(`flex flex-col gap-1.5`,(a===`line1`||a===`line2`)&&`md:col-span-2`),children:[(0,X.jsx)(I,{htmlFor:c,children:o}),s===`country_code`?(0,X.jsx)(qt,{disabled:r,id:c,invalid:!!l,label:o,value:t[a],onChange:e=>i({...t,[a]:e})}):(0,X.jsx)(z,{"aria-invalid":l?!0:void 0,disabled:r,id:c,value:t[a]??``,onChange:e=>i({...t,[a]:e.target.value})}),(0,X.jsx)(Kt,{message:l})]},a)})});function Yt(e){return null}var Xt=({field:e,inputId:t,value:n,errors:r,disabled:i,onChange:a})=>{let o=r?.[``],{input:s}=ut(e);switch(s){case`text`:return(0,X.jsx)(z,{"aria-invalid":o?!0:void 0,disabled:i,id:t,value:typeof n==`string`?n:``,onChange:e=>a(e.target.value)});case`textarea`:return(0,X.jsx)(we,{"aria-invalid":o?!0:void 0,className:`max-w-full resize-y`,disabled:i,id:t,value:typeof n==`string`?n:``,onChange:e=>a(e.target.value)});case`address`:return(0,X.jsx)(Jt,{disabled:i,errors:r,inputId:t,value:typeof n==`object`&&n?n:{},onChange:a});default:return Yt(s)}},Zt=({memberId:e,field:t,initialValue:n,onClose:r})=>{let i=ut(t).input===`address`,[o,s]=Y.useState(n??(i?{}:``)),[c,l]=Y.useState(!1),[u,d]=Y.useState(),f=Be(),p=Vt({[t.key]:o},[t]),m={...c?p:{},...u},h=Object.fromEntries(Object.entries(m).map(([e,n])=>[e===`${t.namespace}.${t.key}`?``:e.slice(`${t.namespace}.${t.key}`.length+1),n])),g=`member-custom-field-${t.key}`,_=!rt(kt({[t.namespace]:{[t.key]:o}}),kt({[t.namespace]:{[t.key]:n}}));return(0,X.jsx)(V,{open:!0,onOpenChange:e=>{!e&&!f.isPending&&r()},children:(0,X.jsxs)(W,{"data-testid":`member-custom-field-edit-modal`,onEscapeKeyDown:e=>{(_||f.isPending)&&e.preventDefault()},onInteractOutside:e=>{(_||f.isPending)&&e.preventDefault()},children:[(0,X.jsx)(K,{children:(0,X.jsx)(H,{children:t.name})}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[!i&&(0,X.jsx)(I,{className:`sr-only`,htmlFor:g,children:t.name}),(0,X.jsx)(Xt,{disabled:f.isPending,errors:h,field:t,inputId:g,value:o,onChange:e=>{d(void 0),s(e)}}),(0,X.jsx)(Kt,{message:h[``]})]}),(0,X.jsxs)(U,{children:[(0,X.jsx)(w,{disabled:f.isPending,variant:`outline`,onClick:r,children:`Cancel`}),(0,X.jsx)(w,{className:`min-w-16`,disabled:f.isPending,onClick:()=>{if(!f.isPending){if(!_){r();return}if(Object.keys(p).length>0){l(!0);return}f.mutate(Bt(e,t,o),{onSuccess:()=>{a.success(`${t.name} saved`),r()},onError:e=>{let n=Ht(e);d(n),n||a.error(`${t.name} couldn’t be saved`)}})}},children:f.isPending?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(B,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Saving`})]}):`Save`})]})]})})},Qt=({memberId:e,metafields:t,disabled:n})=>{let{data:r,isLoading:i}=pt(),a=r??[],o=kt(t),[s,c]=Y.useState(null);return i||a.length===0?null:(0,X.jsxs)(`section`,{"aria-labelledby":`member-custom-fields-heading`,className:`flex flex-col gap-3`,"data-testid":`member-custom-fields-field`,children:[(0,X.jsx)(`h3`,{className:`text-base font-semibold`,id:`member-custom-fields-heading`,children:`Custom fields`}),(0,X.jsx)(P,{children:(0,X.jsx)(N,{className:`px-6 py-4`,children:(0,X.jsx)(`ul`,{children:a.map(e=>{let t=dt(e.type,o[`${e.namespace}.${e.key}`])||null;return(0,X.jsx)(`li`,{className:`border-b border-border transition-colors last:border-b-0 hover:border-b-transparent [&:has(+li:hover)]:border-b-transparent`,children:(0,X.jsxs)(`button`,{"aria-label":t?`Edit ${e.name}: ${t}`:`Edit ${e.name}`,className:`group -mx-3 flex w-[calc(100%+1.5rem)] items-center justify-between gap-4 rounded-md p-3 text-left transition-colors hover:bg-table-row-hover disabled:cursor-not-allowed disabled:opacity-50`,disabled:n,type:`button`,onClick:()=>{window.getSelection()?.toString()||c(e)},children:[(0,X.jsxs)(`span`,{className:`min-w-0`,children:[(0,X.jsx)(`span`,{className:`block text-sm text-muted-foreground`,children:e.name}),t?(0,X.jsx)(`span`,{className:`block break-words select-text`,children:t}):(0,X.jsx)(`span`,{className:`block text-muted-foreground`,children:`–`})]}),(0,X.jsx)(E,{"aria-hidden":`true`,className:`shrink-0 text-muted-foreground opacity-0 transition-all group-hover:opacity-100 group-focus-visible:opacity-100`,size:16})]})},e.key)})})})}),s&&(0,X.jsx)(Zt,{field:s,initialValue:o[`${s.namespace}.${s.key}`],memberId:e,onClose:()=>c(null)},s.key)]})},$t=({labels:e,disabled:t,onChange:n})=>{let r=e.map(e=>e.slug),i=Y.useRef(e);i.current=e;let a=Y.useRef(new Map),o=e=>{for(let t of e)a.current.set(t.slug,{name:t.name,slug:t.slug})};o(e);let s=mt({selectedSlugs:r,onSelectionChange:e=>n(Ut(e,a.current))});o(s.labels);let c=async e=>{let t=await s.createLabel(e);if(t){let e={name:t.name,slug:t.slug};a.current.set(t.slug,e),n([...i.current.filter(e=>e.slug!==t.slug),e])}return t};return(0,X.jsx)(`div`,{className:t?`pointer-events-none opacity-60`:void 0,"data-testid":`member-labels-field`,...t?{inert:``}:{},children:(0,X.jsx)(ht,{isCreating:s.isCreating,labels:s.labels,optionSource:s.optionSource,placeholder:``,resolvedSelectedLabels:s.resolvedSelectedLabels,selectedSlugs:r,onCreate:c,onDelete:s.deleteLabel,onEdit:s.editLabel,onToggle:s.toggleLabel})})},en=({draft:e,emailError:t,disabled:n,onChange:r,onEmailBlur:i,onNameBlur:a})=>{let o=Lt(e.note),s=500-o,c=o<0?`text-destructive`:s>=500*.8?`text-state-warning`:`text-state-success`;return(0,X.jsxs)(`div`,{className:`grid items-stretch gap-6 md:grid-cols-2`,"data-testid":`member-detail-form`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(I,{htmlFor:`member-name`,children:`Name`}),(0,X.jsx)(z,{disabled:n,id:`member-name`,value:e.name,onBlur:a,onChange:e=>r({name:e.target.value})})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(I,{htmlFor:`member-email`,children:`Email`}),(0,X.jsx)(z,{"aria-invalid":!!t,disabled:n,id:`member-email`,type:`email`,value:e.email,onBlur:i,onChange:e=>r({email:e.target.value})}),t&&(0,X.jsx)(`p`,{className:`text-sm text-destructive`,children:t})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(I,{children:`Labels`}),(0,X.jsx)($t,{disabled:n,labels:e.labels,onChange:e=>r({labels:e})})]})]}),(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-1.5`,children:[(0,X.jsxs)(I,{htmlFor:`member-note`,children:[`Note `,(0,X.jsx)(`span`,{className:`font-normal text-muted-foreground`,children:`(not visible to member)`})]}),(0,X.jsxs)(Ce,{className:`flex-1`,children:[(0,X.jsx)(L,{className:`h-full`,disabled:n,id:`member-note`,value:e.note,onChange:e=>r({note:e.target.value})}),(0,X.jsx)(Se,{align:`block-end`,className:`justify-end`,children:(0,X.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[`Maximum: `,(0,X.jsx)(`span`,{className:`font-semibold text-foreground`,children:500}),` `,`characters. You’ve used`,` `,(0,X.jsx)(`span`,{className:f(`font-semibold`,c),children:s})]})})]})]})]})};function tn(e){if(!e)return null;try{let t=JSON.parse(e);return t&&typeof t==`object`&&!Array.isArray(t)?t:null}catch{return null}}function nn(e){let t=tn(e);return t?t.country_code===`US`&&t.region?`${t.region}, US`:t.country||`Unknown location`:`Unknown location`}function rn(e){let t=e?.referrer_source;return!t||t===`Created manually`?null:t}var an=e=>Z.default.utc(e).format(`D MMM YYYY`),$=({icon:e,children:t})=>(0,X.jsxs)(`p`,{className:`flex items-center gap-2 text-muted-foreground`,children:[(0,X.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:e}),(0,X.jsx)(`span`,{className:`min-w-0 truncate`,children:t})]}),on=e=>e.split(` `)[0]||``,sn=({member:e,draftName:t,draftEmail:n,engagementEnabled:r})=>{let i=(t??e?.name??``).trim(),a=(n??e?.email??``).trim(),o=i||a||`New member`,s=!e;return(0,X.jsxs)(`aside`,{className:`flex w-full shrink-0 flex-col gap-6 lg:w-80`,"data-testid":`member-detail-sidebar`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,X.jsx)(He,{className:`size-12 min-w-12 [&_span]:text-lg`,...Ze({name:i,email:a}),src:e?.avatar_image}),(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`h2`,{className:`truncate text-xl font-semibold`,children:o}),i&&a&&(0,X.jsx)(`a`,{className:`block truncate text-muted-foreground hover:underline`,href:`mailto:${a}`,children:a}),!i&&a&&(0,X.jsx)(`span`,{className:`block truncate text-muted-foreground`,children:a})]})]}),!s&&e&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-2 text-sm`,children:[(0,X.jsx)($,{icon:(0,X.jsx)(re,{size:16}),children:(0,X.jsx)(`span`,{"data-testid":`member-detail-location`,children:nn(e.geolocation)})}),(0,X.jsx)($,{icon:(0,X.jsx)(oe,{size:16}),children:e.last_seen_at?`Last seen on ${an(e.last_seen_at)}`:`Not seen yet`}),e.can_comment===!1&&(0,X.jsx)($,{icon:(0,X.jsx)(S,{size:16}),children:`Comments disabled`})]}),(0,X.jsxs)(`div`,{className:`mt-4 flex flex-col gap-3 text-sm`,children:[(0,X.jsx)(`h3`,{className:`border-b border-border pb-2 text-base font-semibold`,children:`Signup info`}),(0,X.jsxs)($,{icon:(0,X.jsx)(ae,{size:16}),children:[`Created — `,(0,X.jsx)(`span`,{className:`text-foreground`,children:an(e.created_at)})]}),(()=>{let t=rn(e.attribution);return t?(0,X.jsxs)($,{icon:(0,X.jsx)(T,{size:16}),children:[`Source —`,` `,(0,X.jsx)(`span`,{className:`text-foreground`,title:t,children:t})]}):null})(),e.attribution?.title&&(0,X.jsxs)($,{icon:(0,X.jsx)(ne,{size:16}),children:[`Page —`,` `,ot(e.attribution.url)?(0,X.jsx)(`a`,{className:`truncate text-foreground hover:underline`,href:e.attribution.url,rel:`noopener noreferrer`,target:`_blank`,title:e.attribution.title,children:e.attribution.title}):(0,X.jsx)(`span`,{className:`truncate text-foreground`,title:e.attribution.title,children:e.attribution.title})]})]}),r&&(0,X.jsxs)(`section`,{className:`mt-4 flex flex-col gap-3 text-sm`,"data-testid":`member-detail-engagement`,children:[(0,X.jsx)(`h4`,{className:`border-b border-border pb-2 text-base font-semibold`,children:`Engagement`}),(e.email_count??0)===0?(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:i?`We’ll show ${on(i)}’s email stats here once they receive their first newsletter.`:`We’ll show this member’s email stats here once they receive their first newsletter.`}):(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:`Emails received`}),(0,X.jsx)(`p`,{className:`text-2xl font-semibold`,children:e.email_count})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:`Emails opened`}),(0,X.jsx)(`p`,{className:`text-2xl font-semibold`,children:e.email_opened_count??0})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:`Average open rate`}),e.email_open_rate===null||e.email_open_rate===void 0?(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:`This metric is calculated once a member has received 5 newsletters.`}):(0,X.jsxs)(`p`,{className:`text-2xl font-semibold`,children:[e.email_open_rate,(0,X.jsx)(`span`,{className:`text-base font-normal text-muted-foreground`,children:`%`})]})]})]})]})]})]})},cn=({memberId:e,emailSuppression:t,subscribedIds:n,disabled:r,onChange:i})=>{let o=e?Ft(t):null,s=Ue(),{data:c,isLoading:l}=_({searchParams:{filter:`status:active`,limit:`50`}}),u=c?.newsletters??[],d=je(),f=s.isPending||s.isSuccess&&d;return!o&&(l||u.length===0)?null:(0,X.jsxs)(`section`,{"aria-labelledby":`member-newsletters-heading`,className:`flex flex-col gap-3`,"data-testid":`member-newsletters-field`,children:[(0,X.jsx)(`h3`,{className:`text-base font-semibold`,id:`member-newsletters-heading`,children:`Newsletters`}),(0,X.jsx)(P,{children:(0,X.jsx)(N,{className:`p-6`,children:o?(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,"data-testid":`member-suppression-banner`,children:[(0,X.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,X.jsx)(v,{className:`mt-0.5 shrink-0 text-muted-foreground`,size:20}),(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`div`,{className:`font-medium`,children:`Email disabled`}),o.label&&(0,X.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:o.label}),(0,X.jsx)(`a`,{className:`text-sm text-muted-foreground hover:underline`,href:`https://ghost.org/help/disabled-emails`,rel:`noopener noreferrer`,target:`_blank`,children:`Learn more`})]})]}),(0,X.jsx)(w,{disabled:r||f,onClick:()=>{e&&s.mutate({id:e},{onSuccess:()=>a.success(`Email re-enabled successfully`),onError:()=>a.error(`Failed to re-enable email. Please try again.`)})},children:f?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(B,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Re-enabling email`})]}):`Re-enable email`})]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`ul`,{className:`divide-y divide-border`,children:u.map(e=>{let t=n.includes(e.id);return(0,X.jsxs)(`li`,{className:`flex items-center justify-between gap-4 py-3 first:pt-0 last:pb-0`,children:[(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`div`,{className:`font-medium`,children:e.name}),e.description&&(0,X.jsx)(`p`,{className:`truncate text-sm text-muted-foreground`,children:e.description})]}),(0,X.jsx)(M,{"aria-label":`Subscribe to ${e.name}`,checked:t,"data-testid":`member-subscription-toggle`,disabled:r,onCheckedChange:()=>i(Mt(n,e.id))})]},e.id)})}),(0,X.jsxs)(`p`,{className:`mt-4 text-sm text-muted-foreground`,children:[`If disabled, member will `,(0,X.jsx)(`em`,{children:`not`}),` receive newsletter emails`]})]})})})]})},ln=`complimentary`,un=`gift subscription`;function dn(e){if(e.id)return`paid`;let t=e.plan?.nickname?.toLowerCase()??``;return t===ln?`complimentary`:t===un?`gift`:`paid`}function fn(e){return e===`year`?`yearly`:`monthly`}function pn(e){if(e.trial_end_at&&(0,Z.default)(e.trial_end_at).isAfter(new Date,`day`))return`Free trial`;let t=e.price?.nickname;return t&&t!==`Monthly`&&t!==`Yearly`?t:null}function mn(e){return e.status===`canceled`||e.cancel_at_period_end?`Canceled`:`Active`}var hn=e=>e?(0,Z.default)(new Date(e)).format(`D MMM YYYY`):``,gn=e=>e?(0,Z.default)(e).utc().format(`D MMM YYYY`):``;function _n(e){let t=dn(e);if(t===`complimentary`||t===`gift`){let t=gn(e.tier?.expiry_at);return t?`Expires ${t}`:``}let n=e.status===`canceled`&&!e.cancel_at_period_end?``:hn(e.current_period_end);return e.status===`canceled`?n?`Ended ${n}`:``:e.cancel_at_period_end?n?`Has access until ${n}`:``:e.trial_end_at&&(0,Z.default)(e.trial_end_at).isAfter(new Date,`day`)?`Ends ${hn(e.trial_end_at)}`:n?`Renews ${n}`:``}function vn(e){let t=[],n=new Map;for(let r of e){if(!r.price)continue;let e=r.tier??r.price.tier;if(!e?.id)continue;let i=n.get(e.id);i||(i={tier:e,subscriptions:[]},n.set(e.id,i),t.push(i)),i.subscriptions.push(r)}return t}var yn=[`forever`,`week`,`month`,`half-year`,`year`,`custom`];function bn(e){return yn.includes(e)}function xn(e,t){switch(e){case`forever`:return null;case`week`:return Z.default.utc().add(7,`days`).startOf(`day`).toISOString();case`month`:return Z.default.utc().add(1,`month`).startOf(`day`).toISOString();case`half-year`:return Z.default.utc().add(6,`months`).startOf(`day`).toISOString();case`year`:return Z.default.utc().add(1,`year`).startOf(`day`).toISOString();case`custom`:return t?(0,Z.default)(t,`YYYY-MM-DD`).startOf(`day`).endOf(`day`).set(`millisecond`,0).add((0,Z.default)().utcOffset(),`minutes`).toISOString():null}}var Sn=new Set([`active`,`trialing`,`unpaid`,`past_due`]),Cn=[{value:`forever`,label:`Forever`},{value:`week`,label:`1 Week`},{value:`month`,label:`1 Month`},{value:`half-year`,label:`6 Months`},{value:`year`,label:`1 Year`},{value:`custom`,label:`Custom`}],wn=({open:e,onOpenChange:t,member:n})=>{let{data:r,isLoading:i}=tt({searchParams:{filter:`type:paid+active:true`,limit:`all`}}),o=r?.tiers??[],[s,c]=Y.useState(``),[l,u]=Y.useState(`forever`),[d,f]=Y.useState(``);Y.useEffect(()=>{e&&(c(``),u(`forever`),f(``))},[e]);let p=$e(),m=Be(),[h,g]=Y.useState(!1),_=(n.subscriptions??[]).filter(e=>dn(e)===`paid`&&Sn.has(e.status)),ee=(0,Z.default)().format(`YYYY-MM-DD`),te=!!s&&!h&&(l!==`custom`||!!d),v=async()=>{if(te){g(!0);try{for(let e of _)await p.mutateAsync({memberId:n.id,subscriptionId:e.id,status:`canceled`});let e=xn(l,l===`custom`?d:null),r=e?{id:s,expiry_at:e}:{id:s};await m.mutateAsync({id:n.id,...n.email?{email:n.email}:{},tiers:[r]}),a.success(`Complimentary subscription added`),t(!1)}catch{a.error(`Couldn’t add complimentary subscription`)}finally{g(!1)}}};return(0,X.jsx)(V,{open:e,onOpenChange:e=>{h||t(e)},children:(0,X.jsxs)(W,{"data-testid":`add-comp-modal`,children:[(0,X.jsxs)(K,{children:[(0,X.jsx)(H,{children:`Add complimentary subscription`}),(0,X.jsx)(De,{children:`Grants this member access to a paid tier for the chosen duration. Any active paid subscription is canceled first.`})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(I,{htmlFor:`comp-tier`,children:`Tier`}),(0,X.jsxs)(ce,{value:s,onValueChange:c,children:[(0,X.jsx)(A,{"data-testid":`comp-tier-select`,disabled:i||h,id:`comp-tier`,children:(0,X.jsx)(j,{placeholder:i?`Loading tiers…`:`Select a tier`})}),(0,X.jsx)(k,{children:o.map(e=>(0,X.jsx)(O,{"data-tier-id":e.id,value:e.id,children:e.name},e.id))})]})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(I,{htmlFor:`comp-duration`,children:`Duration`}),(0,X.jsxs)(ce,{value:l,onValueChange:e=>{bn(e)&&u(e)},children:[(0,X.jsx)(A,{"data-testid":`comp-duration-select`,disabled:h,id:`comp-duration`,children:(0,X.jsx)(j,{})}),(0,X.jsx)(k,{children:Cn.map(e=>(0,X.jsx)(O,{value:e.value,children:e.label},e.value))})]})]}),l===`custom`&&(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(I,{htmlFor:`comp-custom-date`,children:`Expires on`}),(0,X.jsx)(z,{"data-testid":`comp-custom-date`,disabled:h,id:`comp-custom-date`,min:ee,type:`date`,value:d,onChange:e=>f(e.target.value)})]})]}),(0,X.jsxs)(U,{children:[(0,X.jsx)(w,{disabled:h,variant:`outline`,onClick:()=>t(!1),children:`Cancel`}),(0,X.jsx)(w,{"data-testid":`comp-add-confirm`,disabled:!te,onClick:()=>void v(),children:h?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(B,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Adding`})]}):`Add subscription`})]})]})})},Tn=({memberId:e,subscription:t})=>{let{isAdmin7:n}=p(),r=$e(),i=je(),o=r.isPending||r.isSuccess&&i,s=t.status===`canceled`,c=t.cancel_at_period_end,l=(n,i,o)=>{r.mutate({memberId:e,subscriptionId:t.id,cancelAtPeriodEnd:n},{onSuccess:()=>a.success(i),onError:()=>a.error(o)})};return(0,X.jsxs)(ze,{children:[(0,X.jsx)(We,{asChild:!0,children:(0,X.jsx)(w,{"aria-label":`Subscription menu`,"data-testid":`subscription-actions`,disabled:o,size:n?`icon`:`sm`,variant:`subtle`,children:o?(0,X.jsx)(B,{size:`sm`}):(0,X.jsx)(y,{})})}),(0,X.jsxs)(Ke,{align:`end`,children:[(0,X.jsx)(G,{asChild:!0,children:(0,X.jsx)(`a`,{href:`https://dashboard.stripe.com/customers/${t.customer.id}`,rel:`noopener noreferrer`,target:`_blank`,children:`View Stripe customer`})}),(0,X.jsx)(Xe,{}),(0,X.jsx)(G,{asChild:!0,children:(0,X.jsx)(`a`,{href:`https://dashboard.stripe.com/subscriptions/${t.id}`,rel:`noopener noreferrer`,target:`_blank`,children:`View Stripe subscription`})}),!s&&(c?(0,X.jsx)(G,{"data-testid":`continue-subscription`,onSelect:()=>l(!1,`Subscription continued`,`Couldn’t continue subscription`),children:`Continue subscription`}):(0,X.jsx)(G,{className:`text-destructive focus:text-destructive`,"data-testid":`cancel-subscription`,onSelect:()=>l(!0,`Subscription canceled`,`Couldn’t cancel subscription`),children:`Cancel subscription`}))]})]})},En=({member:e,tierId:t})=>{let{isAdmin7:n}=p(),r=Be(),[i,o]=Y.useState(!1),s=je(),c=r.isPending||r.isSuccess&&s;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(ze,{children:[(0,X.jsx)(We,{asChild:!0,children:(0,X.jsx)(w,{"aria-label":`Subscription menu`,"data-testid":`subscription-actions`,disabled:c,size:n?`icon`:`sm`,variant:`subtle`,children:c?(0,X.jsx)(B,{size:`sm`}):(0,X.jsx)(y,{})})}),(0,X.jsx)(Ke,{align:`end`,children:(0,X.jsx)(G,{className:`text-destructive focus:text-destructive`,"data-testid":`remove-complimentary`,onSelect:()=>o(!0),children:`Remove complimentary subscription`})})]}),(0,X.jsx)(Le,{open:i,onOpenChange:e=>{r.isPending||o(e)},children:(0,X.jsxs)(qe,{children:[(0,X.jsxs)(Re,{children:[(0,X.jsx)(Ee,{children:`Remove complimentary subscription?`}),(0,X.jsx)(Pe,{children:`The member will lose access to this tier immediately.`})]}),(0,X.jsxs)(Fe,{children:[(0,X.jsx)(Te,{disabled:r.isPending,children:`Cancel`}),(0,X.jsx)(w,{"data-testid":`confirm-remove-complimentary`,disabled:r.isPending,variant:`destructive`,onClick:()=>{let n=(e.tiers??[]).filter(e=>e.id!==t).map(e=>({id:e.id,expiry_at:e.expiry_at??null}));r.mutate({id:e.id,email:e.email,tiers:n},{onSuccess:()=>{a.success(`Complimentary subscription removed`),o(!1)},onError:()=>a.error(`Couldn’t remove complimentary subscription`)})},children:r.isPending?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(B,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Removing`})]}):`Remove`})]})]})})]})},Dn=e=>{let t=e/100;return t.toLocaleString(void 0,t%1==0?void 0:{minimumFractionDigits:2,maximumFractionDigits:2})},On=({sub:e,kind:t})=>{if(t===`complimentary`||t===`gift`)return(0,X.jsx)(`div`,{className:`flex size-20 shrink-0 items-center justify-center rounded-lg bg-muted text-center text-sm font-medium text-muted-foreground`,children:t===`complimentary`?`Comp`:`Gift`});let n=o(e.price.currency),r=Dn(e.price.amount),i=fn(e.price.interval);return(0,X.jsxs)(`div`,{className:`flex size-20 shrink-0 flex-col items-center justify-center rounded-lg bg-muted text-foreground`,children:[(0,X.jsxs)(`div`,{className:`flex items-start leading-none`,children:[(0,X.jsx)(`span`,{className:`mt-1 text-sm font-semibold`,children:n}),(0,X.jsx)(`span`,{className:`text-3xl font-semibold tracking-tight`,children:r})]}),(0,X.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground`,children:i})]})},kn=e=>e?Z.default.utc(e).format(`D MMM YYYY`):``,An=({sub:e})=>{let t=kn(e.start_date),n=e.attribution?.referrer_source,r=n&&n!==`Unknown`,i=e.attribution?.title?{title:e.attribution.title,url:e.attribution.url??null}:null;return(0,X.jsxs)(`div`,{className:`mt-3 space-y-1 border-t border-border pt-3 text-sm text-muted-foreground`,children:[t&&(0,X.jsxs)(`p`,{children:[`Created — `,(0,X.jsx)(`span`,{className:`text-foreground`,children:t})]}),r&&(0,X.jsxs)(`p`,{children:[`Source — `,(0,X.jsx)(`span`,{className:`text-foreground`,children:n})]}),i&&(0,X.jsxs)(`p`,{children:[`Page —`,` `,ot(i.url)?(0,X.jsx)(`a`,{className:`text-foreground hover:underline`,href:i.url,rel:`noopener noreferrer`,target:`_blank`,children:i.title}):(0,X.jsx)(`span`,{className:`text-foreground`,children:i.title})]})]})},jn=({member:e,sub:t,showDivider:n})=>{let[r,i]=Y.useState(!1),a=dn(t),o=mn(t),s=_n(t),c=pn(t);return(0,X.jsxs)(`div`,{className:f(`flex items-start justify-between gap-4 py-5 first:pt-0 last:pb-0`,n&&`border-t border-border`),"data-testid":`member-subscription`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start gap-4`,children:[(0,X.jsx)(On,{kind:a,sub:t}),(0,X.jsxs)(`div`,{className:`min-w-0 flex-1 pt-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`span`,{className:`min-w-0 truncate font-semibold`,"data-testid":`member-subscription-tier`,children:t.tier?.name??`Subscription`}),(0,X.jsx)(de,{"data-testid":`member-subscription-status`,variant:o===`Canceled`?`secondary`:`success`,children:o})]}),(c||s)&&(0,X.jsxs)(`div`,{className:`mt-1 text-sm`,children:[c&&(0,X.jsx)(`span`,{className:`font-semibold text-foreground`,children:c}),c&&s&&(0,X.jsx)(`span`,{className:`text-muted-foreground`,children:` – `}),s&&(0,X.jsx)(`span`,{className:`text-muted-foreground`,children:s})]}),(0,X.jsxs)(`button`,{"aria-expanded":r,className:`mt-1 inline-flex items-center gap-1 text-sm font-medium text-primary hover:underline`,"data-testid":`member-subscription-details-toggle`,type:`button`,onClick:()=>i(e=>!e),children:[`Details`,(0,X.jsx)(se,{className:f(`transition-transform`,r&&`rotate-180`),size:14})]}),r&&(0,X.jsx)(An,{sub:t})]})]}),a===`paid`&&(0,X.jsx)(Tn,{memberId:e.id,subscription:t}),a===`complimentary`&&t.tier?.id&&(0,X.jsx)(En,{member:e,tierId:t.tier.id})]})},Mn=({member:e,canAddComp:t})=>{let[n,r]=Y.useState(!1);if(!e)return(0,X.jsx)(P,{"data-testid":`member-subscriptions`,children:(0,X.jsx)(N,{className:`pt-6`,children:(0,X.jsx)(`div`,{className:`flex flex-col items-center gap-3 py-4`,children:(0,X.jsx)(F,{title:`No subscriptions`,children:(0,X.jsx)(x,{})})})})});let i=vn(e.subscriptions??[]),a=i.length>0,o=t&&(e.tiers?.length??0)===0,s=o?(0,X.jsxs)(w,{"data-testid":`add-complimentary`,variant:`outline`,onClick:()=>r(!0),children:[(0,X.jsx)(C,{className:`mr-1`,size:16}),`Add complimentary subscription`]}):null;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(P,{"data-testid":`member-subscriptions`,children:(0,X.jsx)(N,{className:`pt-6`,children:a?(0,X.jsxs)(X.Fragment,{children:[i.map(t=>(0,X.jsxs)(`div`,{className:`flex flex-col`,children:[t.subscriptions.map((n,r)=>(0,X.jsx)(jn,{member:e,showDivider:r>0,sub:n},n.id||`${t.tier.id}-${r}`)),t.subscriptions.length>1&&(0,X.jsxs)(`div`,{className:`pt-3 text-sm text-muted-foreground`,children:[t.subscriptions.length,` subscriptions`]})]},t.tier.id)),s&&(0,X.jsx)(`div`,{className:`mt-4 flex justify-center border-t border-border pt-4`,children:s})]}):(0,X.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-4`,children:[(0,X.jsx)(F,{title:`No subscriptions`,children:(0,X.jsx)(x,{})}),s]})})}),o&&(0,X.jsx)(wn,{member:e,open:n,onOpenChange:r})]})};function Nn(e){let t=new URLSearchParams(e),n=t.get(`back`);if(n&&n.startsWith(`/members`))return n;let r=t.get(`post`);return r?`/members?post=${encodeURIComponent(r)}`:`/members`}var Pn=`new`,Fn=({paidMembersEnabled:e,newslettersUiEnabled:t,engagementEnabled:n})=>{let{member_id:r=``}=s(),i=l(),o=u(),d=Nn(i.search),f=r===Pn,{data:p,isLoading:g,error:ee,refetch:te}=ke(r,{enabled:!!r&&!f,searchParams:{include:`tiers`},defaultErrorHandler:!1}),v=p?.members?.[0],ne=!f&&!g&&!!ee,y=!f&&!g&&!ee&&!v,b=Be(),x=Je(),S=f?x:b,{data:re}=tt({searchParams:{filter:`type:paid+active:true`,limit:`all`},enabled:e}),ie=(re?.tiers?.length??0)>0,{data:C}=_({searchParams:{filter:`status:active`,limit:`50`}}),ae=C!==void 0,oe=(C?.newsletters?.length??0)>1,se=(re?.tiers?.length??0)>1,[T,E]=Y.useState(void 0),D=Y.useRef(void 0),O=Y.useRef(void 0),k=Y.useRef(!1);Y.useEffect(()=>{if(f){if(D.current!==Pn){D.current=Pn,k.current=!1;let e=Q({});O.current=e,E(e)}return}if(!v)return;let e=Q(v);if(D.current!==v.id){D.current=v.id,O.current=e,E(e);return}let t=O.current;O.current=e,E(n=>Gt(n,t)?e:n)},[v,f]),Y.useEffect(()=>{if(!f||k.current||!C?.newsletters)return;k.current=!0;let e=It(C.newsletters);if(e.length===0)return;let t={...O.current??Q({}),newsletters:[...e].sort()};O.current=t,E(t=>t&&{...t,newsletters:[...e].sort()})},[f,C]);let A=f?O.current:v?Q(v):void 0,j=!!T&&!!A&&!rt(Wt(T),A),{dialogProps:ce,bypassNextNavigation:le}=it({when:j,confirmUnloadWhen:S.isPending||j}),M=!!T&&Nt(T.email,v?.email??void 0),[de,ve]=Y.useState(!1);Y.useEffect(()=>{ve(!1)},[v?.id,f]);let ye=T?Pt(T.email,de,v?.email??void 0):null,[be,xe]=Y.useState({name:``,email:``});Y.useEffect(()=>{if(f){xe({name:``,email:``});return}v&&xe({name:v.name??``,email:v.email??``})},[v?.id,v?.name,v?.email,f]);let F=()=>{T&&xe({name:T.name,email:T.email})},I=e=>{S.isError&&S.reset(),E(t=>t&&{...t,...e})},Se=()=>{if(!(!T||!j||!M||S.isPending)){if(F(),f){x.mutate({email:T.email.trim(),name:T.name.trim()||void 0,note:T.note.trim()||void 0,labels:T.labels.length?T.labels:void 0,newsletters:k.current?T.newsletters.map(e=>({id:e})):void 0},{onSuccess:e=>{let t=e.members?.[0];if(!t){a.error(`Member couldn’t be created`);return}le(),a.success(`Member created`),o(`/members/${t.id}`,{replace:!0})},onError:()=>{a.error(`Member couldn’t be created`)}});return}!v||D.current!==v.id||b.mutate(Rt(v.id,T,Q(v)),{onSuccess:e=>{let t=e.members?.[0];if(t){let e=Q(t);O.current=e,E(e)}a.success(`Member updated`)},onError:()=>{a.error(`Member couldn’t be saved`)}})}},L=`Save`,Ce=`default`,we=!0;S.isPending?L=(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(B,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Saving`})]}):j?(L=S.isError?`Retry`:`Save`,Ce=S.isError?`destructive`:`default`,we=!M):!f&&b.isSuccess&&(L=`Saved`);let Te=!!T&&(f||!!v),R=`Member`;return f?R=`New member`:v?R=Ge(v):y&&(R=`Member not found`),(0,X.jsx)(m,{className:`size-full`,children:(0,X.jsx)(h,{className:`relative flex h-full flex-col`,size:`page`,children:(0,X.jsxs)(J,{"data-testid":`member-detail`,children:[(0,X.jsx)(J.Header,{children:(0,X.jsxs)(q,{blurredBackground:!1,sticky:!1,children:[(0,X.jsx)(q.Left,{children:(0,X.jsx)(_e,{children:(0,X.jsxs)(pe,{children:[(0,X.jsx)(me,{children:(0,X.jsx)(ge,{asChild:!0,children:(0,X.jsx)(c,{"data-test-link":`members-back`,to:d,children:`Members`})})}),(0,X.jsx)(he,{}),(0,X.jsx)(me,{children:!f&&g?(0,X.jsx)(ue,{className:`h-4 w-40`}):(0,X.jsx)(fe,{className:`truncate`,"data-testid":`member-detail-title`,children:R})})]})})}),(f||v)&&(0,X.jsx)(q.Actions,{children:(0,X.jsxs)(q.ActionGroup,{children:[v&&!f&&(0,X.jsx)(Et,{allowLeaveWithUnsavedChanges:le,member:v},v.id),(0,X.jsx)(q.ActionGroup.Primary,{children:(0,X.jsx)(w,{className:`min-w-16`,disabled:we,variant:Ce,onClick:Se,children:L})})]})})]})}),(0,X.jsxs)(J.Body,{children:[ne&&(0,X.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-3`,"data-testid":`member-detail-load-error`,children:[(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:`Couldn’t load this member.`}),(0,X.jsx)(w,{variant:`outline`,onClick:()=>void te(),children:`Retry`})]}),y&&(0,X.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:`This member couldn’t be found.`})}),Te&&T&&(0,X.jsxs)(`div`,{className:`flex flex-1 flex-col gap-8 lg:flex-row lg:items-start lg:gap-12`,children:[(0,X.jsx)(sn,{draftEmail:be.email,draftName:be.name,engagementEnabled:n,member:v}),(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-8`,children:[(0,X.jsx)(P,{children:(0,X.jsx)(N,{className:`p-6`,children:(0,X.jsx)(en,{disabled:S.isPending,draft:T,emailError:ye,onChange:I,onEmailBlur:()=>{ve(!0),F()},onNameBlur:F})})}),v&&(0,X.jsx)(Qt,{disabled:S.isPending,memberId:v.id,metafields:v.metafields}),t&&(f||v)&&(0,X.jsx)(cn,{disabled:S.isPending,emailSuppression:v?.email_suppression,memberId:v?.id,subscribedIds:T.newsletters,onChange:e=>I({newsletters:e})}),e&&(0,X.jsxs)(`section`,{"aria-labelledby":`member-subscriptions-heading`,className:`flex flex-col gap-3`,children:[(0,X.jsx)(`h3`,{className:`text-base font-semibold`,id:`member-subscriptions-heading`,children:`Subscriptions`}),(0,X.jsx)(Mn,{canAddComp:ie,member:v})]}),(f||v&&ae)&&(0,X.jsx)(st,{hasMultipleNewsletters:oe,hasMultipleTiers:se,memberId:v?.id,paidMembersEnabled:e})]})]})]}),(0,X.jsx)(et,{...ce})]})})})},In=()=>{let{data:e,isLoading:t}=Ve({}),n=Ye(),r=Ie();if(t||!e?.settings)return(0,X.jsx)(m,{className:`size-full`,children:(0,X.jsx)(h,{className:`relative flex h-full flex-col`,size:`page`,children:(0,X.jsx)(J,{children:(0,X.jsx)(J.Body,{children:(0,X.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,X.jsx)(B,{size:`lg`})})})})})});let i=Qe(e.settings,`members_signup_access`);return(0,X.jsx)(Fn,{engagementEnabled:i!==`none`&&r===!0,newslettersUiEnabled:r===!0,paidMembersEnabled:n===!0})};export{In as default};