ghost 6.53.0 → 6.54.1

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 (639) hide show
  1. package/components/ghost-storage-base-3.0.0.tgz +0 -0
  2. package/components/tryghost-adapter-base-cache-0.2.0.tgz +0 -0
  3. package/components/tryghost-adapter-base-scheduling-0.2.0.tgz +0 -0
  4. package/components/tryghost-adapter-base-sso-0.1.1.tgz +0 -0
  5. package/components/tryghost-admin-api-schema-0.0.0.tgz +0 -0
  6. package/components/tryghost-custom-field-types-0.0.0.tgz +0 -0
  7. package/components/tryghost-i18n-0.0.0.tgz +0 -0
  8. package/components/tryghost-kg-converters-1.2.3.tgz +0 -0
  9. package/components/tryghost-kg-default-nodes-2.1.3.tgz +0 -0
  10. package/components/tryghost-kg-lexical-html-renderer-1.4.3.tgz +0 -0
  11. package/core/boot.js +9 -6
  12. package/core/built/admin/assets/Combination-CJG7Flp-.js +41 -0
  13. package/core/built/admin/assets/Growth-BTP1LthE.js +3 -0
  14. package/core/built/admin/assets/Newsletters-CSEX0myc.js +1 -0
  15. package/core/built/admin/assets/Overview-BjACEsJF.js +1 -0
  16. package/core/built/admin/assets/{PolarAngleAxis-pciQ0MOy.js → PolarAngleAxis-BGjf7sBu.js} +1 -1
  17. package/core/built/admin/assets/{RadialBarChart-DWmw2PcX.js → RadialBarChart-zeFf9mBz.js} +1 -1
  18. package/core/built/admin/assets/Web-CxxxjCcv.js +2 -0
  19. package/core/built/admin/assets/account-migration-BklF2I_I.js +1 -0
  20. package/core/built/admin/assets/activitypub/{account-migration-BPZG37DJ.js → account-migration-CNovr6W-.js} +13 -13
  21. package/core/built/admin/assets/activitypub/activitypub.js +8 -8
  22. package/core/built/admin/assets/activitypub/{avatar-ZYco0ITb.js → avatar-B3DEDB1l.js} +10 -10
  23. package/core/built/admin/assets/activitypub/{avatar-flipboard-D541lc4F.js → avatar-flipboard-Cqrg0XMx.js} +3 -3
  24. package/core/built/admin/assets/activitypub/{bluesky-sharing-NOHUtHjl.js → bluesky-sharing-Ceslb1_M.js} +38 -37
  25. package/core/built/admin/assets/activitypub/{chunk-KS7C4IRE-B-GOFDPZ.js → chunk-KS7C4IRE-D4HEcEwi.js} +716 -710
  26. package/core/built/admin/assets/activitypub/{content-formatters-bwrp4iEO.js → content-formatters-BpQARh28.js} +229 -181
  27. package/core/built/admin/assets/activitypub/{copy-C7m7ovHw.js → copy-D9UWIAan.js} +2 -2
  28. package/core/built/admin/assets/activitypub/{dist-BqkDUQxJ2.js → dist-ByFmDSNP2.js} +64 -63
  29. package/core/built/admin/assets/activitypub/{dist-B5ira32t.js → dist-DHAjBcV3.js} +5 -5
  30. package/core/built/admin/assets/activitypub/{domain-iqE4YXwD.js → domain-C1qQvJ8C.js} +33 -33
  31. package/core/built/admin/assets/activitypub/{edit-profile-B8MFYh28.js → edit-profile-BcH-jEfM.js} +46 -45
  32. package/core/built/admin/assets/activitypub/{explore-BbdKodp3.js → explore-AxwBh9dI.js} +20 -20
  33. package/core/built/admin/assets/activitypub/{feed-Cl3A5owG.js → feed-BaOlbh7a.js} +15 -15
  34. package/core/built/admin/assets/activitypub/{field-DL6WyR-c.js → field-B7mYYQpN.js} +13 -13
  35. package/core/built/admin/assets/activitypub/{hash-6G3DzwL9.js → hash-BC9Q0N4c.js} +2 -2
  36. package/core/built/admin/assets/activitypub/{inbox-YmhuBice.js → inbox-DQ4ZnC1m.js} +2 -2
  37. package/core/built/admin/assets/activitypub/inbox-vXez-5uJ.js +1221 -0
  38. package/core/built/admin/assets/activitypub/{label-DGbLjDvE.js → label-Chv5T8bw.js} +6 -6
  39. package/core/built/admin/assets/activitypub/layout-CziktJXo.js +1 -0
  40. package/core/built/admin/assets/activitypub/{moderation-qnBtk1zS.js → moderation-DtSM2i1I.js} +32 -31
  41. package/core/built/admin/assets/activitypub/{note-C7ZRoSJv.js → note-Dckp4S-2.js} +21 -21
  42. package/core/built/admin/assets/activitypub/{notifications-DiEA4b1o.js → notifications-CG5T22vg.js} +17 -17
  43. package/core/built/admin/assets/activitypub/{onboarding-_JVgEwgV.js → onboarding-BFDkzeR2.js} +2 -2
  44. package/core/built/admin/assets/activitypub/{onboarding-DG4zu3qM.js → onboarding-D6rcBdPe.js} +5 -5
  45. package/core/built/admin/assets/activitypub/{preferences-B3FtocnP.js → preferences-D_799jdl.js} +1607 -1606
  46. package/core/built/admin/assets/activitypub/{profile-D8ZJfYXB.js → profile-D2JfXBQl.js} +264 -263
  47. package/core/built/admin/assets/activitypub/{reply-C1vggenw.js → reply-CpdMeAO5.js} +2 -2
  48. package/core/built/admin/assets/activitypub/{routes-BOii-V9n.js → routes-CCHe2dQp.js} +1317 -1298
  49. package/core/built/admin/assets/activitypub/{separator-1gNokN5S.js → separator-BI1FLsYM.js} +4 -4
  50. package/core/built/admin/assets/activitypub/{settings--9Sb0nbl.js → settings-kx-9Enkz.js} +14 -14
  51. package/core/built/admin/assets/activitypub/{site-fkMmqv0V.js → site-x4_IjVJ0.js} +10 -10
  52. package/core/built/admin/assets/activitypub/{step-1-QhivSMw2.js → step-1-DIDg4aHb.js} +15 -15
  53. package/core/built/admin/assets/activitypub/{step-2-pMk9YwqD.js → step-2-BfGe8BYt.js} +7 -7
  54. package/core/built/admin/assets/activitypub/{step-3-DvmVC1fo.js → step-3-mE9spAqw.js} +12 -12
  55. package/core/built/admin/assets/activitypub/{tabs-Dc0FEEYD.js → tabs-CyPRQQ1N.js} +241 -237
  56. package/core/built/admin/assets/activitypub/{topic-filter-CuDyM5bD.js → topic-filter-DLHBZT93.js} +4 -4
  57. package/core/built/admin/assets/activitypub/use-activity-pub-queries-VzbN99u_.js +1957 -0
  58. package/core/built/admin/assets/activitypub/{use-navigate-with-base-path-Drx1kdAK.js → use-navigate-with-base-path-CAwXTmqH.js} +165 -175
  59. package/core/built/admin/assets/activitypub/{use-reply-chain-data-BHkCHcW5.js → use-reply-chain-data-BAB6fNGt.js} +8 -8
  60. package/core/built/admin/assets/activitypub/users-BLeiOTHc.js +1464 -0
  61. package/core/built/admin/assets/activitypub/{x-BHCEe-c2.js → x-C8tAnXly.js} +2 -2
  62. package/core/built/admin/assets/{audience-adiFehTD.js → audience-X_XsZivI.js} +1 -1
  63. package/core/built/admin/assets/{automated-emails-UWM02CMr.js → automated-emails-of1MvVsv.js} +1 -1
  64. package/core/built/admin/assets/automations-B7-y3dXt.js +1 -0
  65. package/core/built/admin/assets/automations-DRFjW5fw.js +1 -0
  66. package/core/built/admin/assets/{avatar-flipboard-Lz3F9fNT.js → avatar-flipboard-C6Kj3Awu.js} +1 -1
  67. package/core/built/admin/assets/bluesky-sharing-BbbjWdzs.js +1 -0
  68. package/core/built/admin/assets/box-BWbhXh21.js +1 -0
  69. package/core/built/admin/assets/breadcrumb-B-M9Ip_2.js +1 -0
  70. package/core/built/admin/assets/card-DGoDJzrn.js +1 -0
  71. package/core/built/admin/assets/{chart-ChpW-NzQ.js → chart-BuRT2Y6p.js} +14 -14
  72. package/core/built/admin/assets/chart-helpers-xiSsW8r0.js +1 -0
  73. package/core/built/admin/assets/checkbox-EhJKHFdZ.js +1 -0
  74. package/core/built/admin/assets/{chunk.432.c2caa0b20f03e71d1a35.js → chunk.211.6f7328d63c41536451b3.js} +2025 -2819
  75. package/core/built/admin/assets/{chunk.432.c2caa0b20f03e71d1a35.js.LICENSE.txt → chunk.211.6f7328d63c41536451b3.js.LICENSE.txt} +1 -62
  76. package/core/built/admin/assets/{chunk.831.0703a12e49f51cec3f3a.js → chunk.361.3cdb584b973959e52ccc.js} +78 -85
  77. package/core/built/admin/assets/chunk.524.8365cd9280405c0f6216.js +25 -0
  78. package/core/built/admin/assets/chunk.582.61d078937e6102769f2c.js +27 -0
  79. package/core/built/admin/assets/code-editor-view-CZtJFGhR.js +1 -0
  80. package/core/built/admin/assets/comments-CvyXxOyN.js +1 -0
  81. package/core/built/admin/assets/container-BYz2Ed39.js +1 -0
  82. package/core/built/admin/assets/data-list-16rkJYYi.js +1 -0
  83. package/core/built/admin/assets/date-range-select-CTlyo8zW.js +1 -0
  84. package/core/built/admin/assets/disabled-sources-indicator-qs2GfLvl.js +1 -0
  85. package/core/built/admin/assets/{dist-DJ6c4_De.js → dist-2Tnz2Yfq.js} +1 -1
  86. package/core/built/admin/assets/{dist-CsekE4FL.js → dist-CQJY6SVY.js} +1 -1
  87. package/core/built/admin/assets/dist-CjY-f5Z1.js +1 -0
  88. package/core/built/admin/assets/dist-DGzPJ_bO.js +4 -0
  89. package/core/built/admin/assets/dist-DIC8yz5C.js +1 -0
  90. package/core/built/admin/assets/{dist-BbGrW05X.js → dist-DyViJwIy.js} +1 -1
  91. package/core/built/admin/assets/dist-Ndy-PuGN.js +1 -0
  92. package/core/built/admin/assets/dist-P_ohUlTi.js +1 -0
  93. package/core/built/admin/assets/domain-CPNXKVOV.js +1 -0
  94. package/core/built/admin/assets/dropzone-BmCXnw6J.js +5 -0
  95. package/core/built/admin/assets/edit-profile-SGrJve5M.js +1 -0
  96. package/core/built/admin/assets/editor-BOG2YPUm.js +8 -0
  97. package/core/built/admin/assets/empty-indicator-oX1u1Pkn.js +1 -0
  98. package/core/built/admin/assets/esm-CFX93H5M.js +2 -0
  99. package/core/built/admin/assets/explore-CUYLv9G9.js +1 -0
  100. package/core/built/admin/assets/feed-CPdJMttL.js +1 -0
  101. package/core/built/admin/assets/field-D0XISCK2.js +1 -0
  102. package/core/built/admin/assets/{filter-sources-v39ihhhV.js → filter-sources-Bieps75g.js} +1 -1
  103. package/core/built/admin/assets/filters-CuB-A7ma.js +1 -0
  104. package/core/built/admin/assets/filters-bXkkWro8.js +1 -0
  105. package/core/built/admin/assets/framework-provider-CmtnPXIT.js +4 -0
  106. package/core/built/admin/assets/{ghost-b57f077997b739a8ae9a70772dc016cb.js → ghost-05f9a7182ed56903dba05878a5b8422b.js} +46 -41
  107. package/core/built/admin/assets/ghost-dark-c8d0ab7f515b2010c173e23e9b32ea8a.css +1 -0
  108. package/core/built/admin/assets/gift-link-modal-su8MsRdg.js +1 -0
  109. package/core/built/admin/assets/{gift-links-CY3GwiVi.js → gift-links-nBxJjZiQ.js} +1 -1
  110. package/core/built/admin/assets/growth-Ba6S5FQX.js +1 -0
  111. package/core/built/admin/assets/hooks-BApwwBE0.js +2 -0
  112. package/core/built/admin/assets/{inbox-TEISAmth.js → inbox-Xx1CdnfO.js} +38 -38
  113. package/core/built/admin/assets/index-D8PbzuT9.css +1 -0
  114. package/core/built/admin/assets/index-ukW_0Uie.js +67 -0
  115. package/core/built/admin/assets/inline-EMAm3okk.js +1 -0
  116. package/core/built/admin/assets/input-group-CGOXcy4l.js +1 -0
  117. package/core/built/admin/assets/input-surface-BpAjZXY5.js +1 -0
  118. package/core/built/admin/assets/{react-dom-C6aoWSfl.js → jsx-runtime-DX3WBWVO.js} +1 -1
  119. package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +5 -2
  120. package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +2 -2
  121. package/core/built/admin/assets/{koenig-lexical-Di7b48ED.js → koenig-lexical-B61IALf5.js} +2 -2
  122. package/core/built/admin/assets/kpi-card-BlZaG1Lo.js +1 -0
  123. package/core/built/admin/assets/kpi-card-DCdlyaSS.js +1 -0
  124. package/core/built/admin/assets/kpi-helpers-DpAuS1Nb.js +1 -0
  125. package/core/built/admin/assets/kpi-tabs-Dme44bQS.js +1 -0
  126. package/core/built/admin/assets/label-dSs5aepE.js +1 -0
  127. package/core/built/admin/assets/label-picker-Uq91atex.js +1 -0
  128. package/core/built/admin/assets/{labels-GbxlXWtf.js → labels-Cyayfd-e.js} +1 -1
  129. package/core/built/admin/assets/layout-WUcz6tu1.js +1 -0
  130. package/core/built/admin/assets/limit-service-9fwD33lU.js +20 -0
  131. package/core/built/admin/assets/link-helpers-tOlxmuH5.js +1 -0
  132. package/core/built/admin/assets/list-page-B6ANtzkd.js +1 -0
  133. package/core/built/admin/assets/mailchimp-Ds_NQ04w.svg +9 -0
  134. package/core/built/admin/assets/member-custom-fields-NCzrMuba.js +1 -0
  135. package/core/built/admin/assets/member-detail-DPWDtYnN.js +1 -0
  136. package/core/built/admin/assets/members-B9rO7qr4.js +10 -0
  137. package/core/built/admin/assets/modals-CxRaan1J.js +31 -0
  138. package/core/built/admin/assets/moderation-D8zon60E.js +1 -0
  139. package/core/built/admin/assets/multi-select-combobox-1wYm3nle.js +1 -0
  140. package/core/built/admin/assets/newsletter-DbYMRxRS.js +1 -0
  141. package/core/built/admin/assets/{newsletters-DZm3yLj8.js → newsletters-D1jbtV-h.js} +1 -1
  142. package/core/built/admin/assets/note-PiWPnnrh.js +1 -0
  143. package/core/built/admin/assets/notifications-DEgqqB9G.js +1 -0
  144. package/core/built/admin/assets/nql-lang-B7faUf8D.js +19 -0
  145. package/core/built/admin/assets/{offers-D11QtPXX.js → offers-CrY6nSRR.js} +1 -1
  146. package/core/built/admin/assets/onboarding-route-BzF6HeVn.js +1 -0
  147. package/core/built/admin/assets/overview-DixLeIqY.js +1 -0
  148. package/core/built/admin/assets/page-header-op0eN36I.js +1 -0
  149. package/core/built/admin/assets/{pages-BnObVRrf.js → pages-BbNWFcGj.js} +1 -1
  150. package/core/built/admin/assets/pintura-CXOmq-5H.svg +15 -0
  151. package/core/built/admin/assets/post-analytics-WwRDEnrV.js +1 -0
  152. package/core/built/admin/assets/post-analytics-header-DsMoLx0R.js +1 -0
  153. package/core/built/admin/assets/{post-analytics-provider-DSfBCtnj.js → post-analytics-provider-BJCPLMIb.js} +1 -1
  154. package/core/built/admin/assets/post-share-modal-Dx-MEjhI.js +1 -0
  155. package/core/built/admin/assets/{posts-CwH8VJvB.js → posts-EWpZIjkr.js} +1 -1
  156. package/core/built/admin/assets/preferences-D7-j6A4C.js +5 -0
  157. package/core/built/admin/assets/profile-Dl69QPp0.js +1 -0
  158. package/core/built/admin/assets/{referrers-nxR52jPI.js → referrers-BCfFYSHc.js} +1 -1
  159. package/core/built/admin/assets/router-provider-C1R4AZ2o.js +1 -0
  160. package/core/built/admin/assets/select-C1qDZnW4.js +1 -0
  161. package/core/built/admin/assets/settings-BbmC_Iqq.js +4 -0
  162. package/core/built/admin/assets/settings-H6HxFgfI.js +1 -0
  163. package/core/built/admin/assets/shade-app-B3heOAfz-CGXQwWeO.js +3 -0
  164. package/core/built/admin/assets/share-modal-BJCadJyp.js +1 -0
  165. package/core/built/admin/assets/social-urls-BPL1nADp.js +8 -0
  166. package/core/built/admin/assets/sort-button-DyYlfYp7.js +1 -0
  167. package/core/built/admin/assets/source-icon-_ubRDbg_.js +1 -0
  168. package/core/built/admin/assets/stack-xiN0eQ6Z.js +1 -0
  169. package/core/built/admin/assets/stats-BQZMGMvn.js +1 -0
  170. package/core/built/admin/assets/stats-view-Doei-qCX.js +1 -0
  171. package/core/built/admin/assets/step-1-IKiLBPoC.js +1 -0
  172. package/core/built/admin/assets/step-2-jJ41PsDN.js +1 -0
  173. package/core/built/admin/assets/step-3-CaqFAEqf.js +2 -0
  174. package/core/built/admin/assets/switch-t-WyENU2.js +1 -0
  175. package/core/built/admin/assets/table-DxUL78jU.js +1 -0
  176. package/core/built/admin/assets/tabs-BQcJQ1ke.js +1 -0
  177. package/core/built/admin/assets/tags-CNujGwkT.js +1 -0
  178. package/core/built/admin/assets/text-DwtjwGkh.js +1 -0
  179. package/core/built/admin/assets/textarea-Bjccvh_E.js +1 -0
  180. package/core/built/admin/assets/{tiers-EghDzCKc.js → tiers-BgYLWRJv.js} +1 -1
  181. package/core/built/admin/assets/toggle-group-BeEpQ69p.js +1 -0
  182. package/core/built/admin/assets/topic-filter-Bb5MOD-1.js +1 -0
  183. package/core/built/admin/assets/{use-analytics-data-0l_OHtnR.js → use-analytics-data-Cds6XDjg.js} +1 -1
  184. package/core/built/admin/assets/use-filter-params-DjXkhO54.js +1 -0
  185. package/core/built/admin/assets/use-growth-stats-D8uf98-G.js +1 -0
  186. package/core/built/admin/assets/{use-post-referrers-DwI31Ril.js → use-post-referrers-CRtgyuXB.js} +1 -1
  187. package/core/built/admin/assets/use-reply-chain-data-DbKYX50v.js +1 -0
  188. package/core/built/admin/assets/use-simple-pagination-DC01kpo0.js +1 -0
  189. package/core/built/admin/assets/{use-tinybird-query-DvZBBMG7.js → use-tinybird-query-C7bQRJWw.js} +1 -1
  190. package/core/built/admin/assets/{use-tinybird-token-CQtebkvU.js → use-tinybird-token-Az4tam7_.js} +1 -1
  191. package/core/built/admin/assets/{users-Pc8IRjk9.js → users-CcSCQFcQ.js} +1 -1
  192. package/core/built/admin/assets/virtual-list-Dhuh9fGx.js +1 -0
  193. package/core/built/admin/assets/web-LtHNiNBV.js +1 -0
  194. package/core/built/admin/index.html +22 -22
  195. package/core/frontend/apps/private-blogging/index.js +1 -1
  196. package/core/frontend/apps/private-blogging/lib/middleware.js +1 -1
  197. package/core/frontend/helpers/split.js +2 -1
  198. package/core/frontend/meta/asset-url.js +1 -1
  199. package/core/frontend/meta/author-image.js +1 -1
  200. package/core/frontend/meta/blog-logo.js +1 -1
  201. package/core/frontend/meta/canonical-url.js +1 -1
  202. package/core/frontend/meta/cover-image.js +1 -1
  203. package/core/frontend/meta/get-meta.js +1 -1
  204. package/core/frontend/meta/og-image.js +1 -1
  205. package/core/frontend/meta/paginated-url.js +1 -1
  206. package/core/frontend/meta/twitter-image.js +1 -1
  207. package/core/frontend/meta/url.js +1 -1
  208. package/core/frontend/services/assets-minification/admin-auth-assets.js +1 -1
  209. package/core/frontend/services/llms/handler.js +1 -1
  210. package/core/frontend/services/proxy.js +42 -3
  211. package/core/frontend/services/routing/collection-router.js +1 -1
  212. package/core/frontend/services/routing/controllers/email-post.js +1 -1
  213. package/core/frontend/services/routing/controllers/entry/markdown.js +1 -1
  214. package/core/frontend/services/routing/controllers/entry/markdown.ts +1 -1
  215. package/core/frontend/services/routing/controllers/entry.js +1 -1
  216. package/core/frontend/services/routing/controllers/entry.ts +1 -1
  217. package/core/frontend/services/routing/controllers/previews.js +6 -7
  218. package/core/frontend/services/routing/controllers/unsubscribe.js +7 -3
  219. package/core/frontend/services/routing/email-router.js +1 -1
  220. package/core/frontend/services/routing/events.js +12 -0
  221. package/core/frontend/services/routing/middleware/page-param.js +1 -1
  222. package/core/frontend/services/routing/parent-router.js +1 -1
  223. package/core/frontend/services/routing/preview-router.js +1 -1
  224. package/core/frontend/services/routing/router-manager.js +4 -8
  225. package/core/frontend/services/routing/rss-router.js +1 -1
  226. package/core/frontend/services/routing/static-pages-router.js +1 -1
  227. package/core/frontend/services/routing/static-routes-router.js +1 -1
  228. package/core/frontend/services/routing/taxonomy-router.js +1 -1
  229. package/core/frontend/services/rss/generate-feed.js +1 -1
  230. package/core/frontend/services/sitemap/base-site-map-generator.js +23 -4
  231. package/core/frontend/services/sitemap/site-map-index-generator.js +1 -1
  232. package/core/frontend/services/sitemap/site-map-manager.js +14 -8
  233. package/core/frontend/services/sitemap/utils.js +1 -1
  234. package/core/frontend/services/theme-engine/middleware/update-global-template-options.js +1 -1
  235. package/core/frontend/services/theme-engine/middleware/update-local-template-options.js +1 -1
  236. package/core/frontend/utils/images.js +1 -1
  237. package/core/frontend/web/middleware/admin-toolbar.js +1 -1
  238. package/core/frontend/web/middleware/handle-image-sizes.js +2 -2
  239. package/core/frontend/web/middleware/redirect-ghost-to-admin.js +1 -1
  240. package/core/frontend/web/routers/serve-favicon.js +1 -1
  241. package/core/frontend/web/routers/serve-public-file.js +1 -1
  242. package/core/frontend/web/site.js +5 -5
  243. package/core/server/adapters/cache/AdapterCacheMemoryTTL.js +2 -2
  244. package/core/server/adapters/cache/MemoryCache.js +2 -2
  245. package/core/server/adapters/cache/Redis.js +1 -1
  246. package/core/server/adapters/cache/index.js +1 -1
  247. package/core/server/adapters/lib/redis/AdapterCacheRedis.js +2 -2
  248. package/core/server/adapters/route-settings/FileStore.js +2 -8
  249. package/core/server/adapters/route-settings/FileStore.ts +1 -6
  250. package/core/server/adapters/route-settings/S3RouteSettingsStore.js +206 -0
  251. package/core/server/adapters/route-settings/S3RouteSettingsStore.ts +199 -0
  252. package/core/server/adapters/route-settings/utils.js +13 -0
  253. package/core/server/adapters/route-settings/utils.ts +7 -0
  254. package/core/server/adapters/scheduling/deps.d.ts +0 -2
  255. package/core/server/adapters/scheduling/error-capture.js +76 -0
  256. package/core/server/adapters/scheduling/error-capture.ts +91 -0
  257. package/core/server/adapters/scheduling/utils.js +18 -34
  258. package/core/server/adapters/scheduling/utils.ts +36 -0
  259. package/core/server/adapters/storage/LocalFilesStorage.js +13 -11
  260. package/core/server/adapters/storage/LocalFilesStorage.ts +24 -0
  261. package/core/server/adapters/storage/LocalImagesStorage.js +14 -12
  262. package/core/server/adapters/storage/LocalImagesStorage.ts +24 -0
  263. package/core/server/adapters/storage/LocalMediaStorage.js +13 -11
  264. package/core/server/adapters/storage/LocalMediaStorage.ts +24 -0
  265. package/core/server/adapters/storage/LocalStorageBase.js +107 -167
  266. package/core/server/adapters/storage/LocalStorageBase.ts +342 -0
  267. package/core/server/adapters/storage/S3Storage.js +2 -2
  268. package/core/server/adapters/storage/S3Storage.ts +1 -1
  269. package/core/server/adapters/storage/utils.js +36 -50
  270. package/core/server/adapters/storage/utils.ts +60 -0
  271. package/core/server/api/endpoints/authentication.js +1 -1
  272. package/core/server/api/endpoints/db.js +6 -0
  273. package/core/server/api/endpoints/featurebase.js +1 -1
  274. package/core/server/api/endpoints/files.js +2 -2
  275. package/core/server/api/endpoints/images.js +2 -2
  276. package/core/server/api/endpoints/libraries.d.ts +0 -1
  277. package/core/server/api/endpoints/media.js +8 -5
  278. package/core/server/api/endpoints/member-custom-fields.js +4 -1
  279. package/core/server/api/endpoints/member-custom-fields.ts +4 -1
  280. package/core/server/api/endpoints/members.js +25 -28
  281. package/core/server/api/endpoints/pages.js +6 -1
  282. package/core/server/api/endpoints/posts.js +28 -3
  283. package/core/server/api/endpoints/search-index-public.js +4 -3
  284. package/core/server/api/endpoints/search-index.js +5 -4
  285. package/core/server/api/endpoints/settings-public.js +1 -1
  286. package/core/server/api/endpoints/settings.js +3 -1
  287. package/core/server/api/endpoints/utils/serializers/input/utils/url.js +9 -1
  288. package/core/server/api/endpoints/utils/serializers/output/default.js +7 -0
  289. package/core/server/api/endpoints/utils/serializers/output/files.js +1 -1
  290. package/core/server/api/endpoints/utils/serializers/output/mappers/comments.js +4 -1
  291. package/core/server/api/endpoints/utils/serializers/output/media.js +1 -1
  292. package/core/server/api/endpoints/utils/serializers/output/member-custom-fields.js +7 -4
  293. package/core/server/api/endpoints/utils/serializers/output/member-custom-fields.ts +8 -4
  294. package/core/server/api/endpoints/utils/serializers/output/members.js +27 -106
  295. package/core/server/api/endpoints/utils/serializers/output/pages.js +7 -0
  296. package/core/server/api/endpoints/utils/serializers/output/posts.js +13 -0
  297. package/core/server/api/endpoints/utils/serializers/output/utils/url.js +1 -1
  298. package/core/server/api/endpoints/utils/validators/input/members.js +2 -52
  299. package/core/server/data/db/backup.js +1 -1
  300. package/core/server/data/exporter/export-filename.js +2 -1
  301. package/core/server/data/importer/handlers/image.js +3 -3
  302. package/core/server/data/importer/import-manager.js +6 -4
  303. package/core/server/data/importer/importers/content-file-importer.js +2 -2
  304. package/core/server/data/importer/importers/data/revue-subscriber-importer.js +6 -10
  305. package/core/server/data/importer/importers/json-to-html.js +24 -4
  306. package/core/server/data/migrations/utils/schema.js +4 -2
  307. package/core/server/data/migrations/versions/6.54/2026-07-19-16-59-00-add-content-import-permission.js +10 -0
  308. package/core/server/data/migrations/versions/6.54/2026-07-20-13-59-21-drop-email-tracked-sent-count-from-automation-action-revisions.js +7 -0
  309. package/core/server/data/migrations/versions/6.54/2026-07-21-01-58-20-add-automation-run-steps-poller-index.js +3 -0
  310. package/core/server/data/migrations/versions/6.54/2026-07-21-21-08-15-add-automated-email-recipients-mailgun-message-id-index.js +3 -0
  311. package/core/server/data/migrations/versions/6.54/2026-07-22-10-41-08-add-click-tracking-to-automated-email-recipients.js +13 -0
  312. package/core/server/data/migrations/versions/6.54/2026-07-22-15-10-30-add-email-clicked-count-to-automation-action-revisions.js +7 -0
  313. package/core/server/data/migrations/versions/6.54/2026-07-23-10-24-18-add-automation-action-revision-to-redirects.js +9 -0
  314. package/core/server/data/schema/commands.js +37 -3
  315. package/core/server/data/schema/fixtures/fixtures.json +7 -0
  316. package/core/server/data/schema/lib/default-index-name.js +20 -0
  317. package/core/server/data/schema/schema.js +40 -17
  318. package/core/server/data/seeders/data-generator.js +4 -2
  319. package/core/server/lib/image/image-size.js +7 -23
  320. package/core/server/lib/image/image-utils.js +16 -2
  321. package/core/server/lib/image/index.js +4 -4
  322. package/core/server/lib/lexical.js +3 -3
  323. package/core/server/lib/mobiledoc.js +2 -2
  324. package/core/server/lib/request-external.js +1 -1
  325. package/core/server/lib/validate-password.js +1 -1
  326. package/core/server/models/action.js +9 -0
  327. package/core/server/models/base/plugins/generate-slug.js +1 -1
  328. package/core/server/models/collection.js +1 -1
  329. package/core/server/models/custom-theme-setting.js +1 -1
  330. package/core/server/models/member.js +73 -0
  331. package/core/server/models/newsletter.js +1 -1
  332. package/core/server/models/post.js +19 -5
  333. package/core/server/models/posts-meta.js +1 -1
  334. package/core/server/models/redirect.js +1 -1
  335. package/core/server/models/settings.js +1 -1
  336. package/core/server/models/snippet.js +1 -1
  337. package/core/server/models/tag.js +1 -1
  338. package/core/server/models/user.js +47 -71
  339. package/core/server/models/welcome-email-automated-email.js +1 -1
  340. package/core/server/services/activitypub/activity-pub-service-wrapper.js +1 -1
  341. package/core/server/services/adapter-manager/adapter-manager.js +5 -1
  342. package/core/server/services/adapter-manager/adapter-manager.ts +7 -2
  343. package/core/server/services/adapter-manager/index.js +18 -15
  344. package/core/server/services/adapter-manager/index.ts +23 -17
  345. package/core/server/services/adapter-manager/utils.js +124 -14
  346. package/core/server/services/adapter-manager/utils.ts +130 -14
  347. package/core/server/services/api-version-compatibility/mw-version-rewrites.js +1 -1
  348. package/core/server/services/audience-feedback/index.js +1 -1
  349. package/core/server/services/auth/passwordreset.js +1 -1
  350. package/core/server/services/auth/session/express-session.js +1 -1
  351. package/core/server/services/auth/session/index.js +2 -2
  352. package/core/server/services/auth/session/session-service.js +29 -2
  353. package/core/server/services/automations/automations-api.js +8 -25
  354. package/core/server/services/automations/automations-api.ts +8 -37
  355. package/core/server/services/automations/automations-repository.ts +16 -0
  356. package/core/server/services/automations/database-automations-repository.js +37 -4
  357. package/core/server/services/automations/database-automations-repository.ts +41 -4
  358. package/core/server/services/automations/poll.js +16 -12
  359. package/core/server/services/automations/poll.ts +17 -15
  360. package/core/server/services/automations/service.js +1 -1
  361. package/core/server/services/automations/service.ts +3 -13
  362. package/core/server/services/automations/welcome-email-automation-poll.js +2 -1
  363. package/core/server/services/comments/comments-service-emails.js +4 -1
  364. package/core/server/services/comments/index.js +1 -1
  365. package/core/server/services/custom-redirects/index.js +2 -2
  366. package/core/server/services/email-analytics/email-analytics-service-wrapper.js +14 -13
  367. package/core/server/services/email-analytics/email-analytics-service.js +1 -1
  368. package/core/server/services/email-analytics/events/start-email-analytics-job-event.js +11 -15
  369. package/core/server/services/email-analytics/events/start-email-analytics-job-event.ts +15 -0
  370. package/core/server/services/email-analytics/index.js +2 -3
  371. package/core/server/services/email-analytics/index.ts +1 -2
  372. package/core/server/services/email-analytics/jobs/email-analytics-job-scheduler.js +1 -6
  373. package/core/server/services/email-analytics/jobs/email-analytics-job-scheduler.ts +0 -9
  374. package/core/server/services/email-analytics/jobs/fetch-latest/index.js +1 -1
  375. package/core/server/services/email-analytics/jobs/index.js +0 -2
  376. package/core/server/services/email-service/email-service-wrapper.js +1 -1
  377. package/core/server/services/email-service/email-service.js +20 -4
  378. package/core/server/services/explore-ping/explore-ping-service.js +24 -39
  379. package/core/server/services/explore-ping/explore-ping-service.ts +198 -0
  380. package/core/server/services/explore-ping/index.js +11 -11
  381. package/core/server/services/explore-ping/index.ts +42 -0
  382. package/core/server/services/gifts/gift-reminder-scheduler.js +1 -1
  383. package/core/server/services/gifts/gift-reminder-scheduler.ts +1 -1
  384. package/core/server/services/gifts/gift-service-wrapper.js +1 -1
  385. package/core/server/services/identity-tokens/identity-token-service-wrapper.js +1 -1
  386. package/core/server/services/indexnow-ping/constants.js +30 -0
  387. package/core/server/services/indexnow-ping/constants.ts +32 -0
  388. package/core/server/services/indexnow-ping/index.js +29 -253
  389. package/core/server/services/indexnow-ping/index.ts +37 -0
  390. package/core/server/services/indexnow-ping/indexnow-ping-service.js +229 -0
  391. package/core/server/services/indexnow-ping/indexnow-ping-service.ts +319 -0
  392. package/core/server/services/invites/index.js +1 -1
  393. package/core/server/services/lib/mailgun-client.js +3 -3
  394. package/core/server/services/link-redirection/index.js +2 -2
  395. package/core/server/services/link-redirection/link-redirect-repository.js +1 -1
  396. package/core/server/services/link-redirection/link-redirect.js +12 -13
  397. package/core/server/services/link-redirection/link-redirect.ts +22 -0
  398. package/core/server/services/link-redirection/link-redirects-service.js +1 -1
  399. package/core/server/services/link-tracking/full-post-link.js +2 -2
  400. package/core/server/services/link-tracking/index.js +1 -1
  401. package/core/server/services/mail/ghost-mailer.js +1 -1
  402. package/core/server/services/mail/index.js +1 -1
  403. package/core/server/services/media-inliner/external-media-inliner.js +2 -2
  404. package/core/server/services/media-inliner/service.js +4 -3
  405. package/core/server/services/member-attribution/index.js +1 -1
  406. package/core/server/services/member-welcome-emails/service.js +1 -1
  407. package/core/server/services/members/api.js +8 -2
  408. package/core/server/services/members/import-export/config.js +30 -0
  409. package/core/server/services/members/import-export/config.ts +34 -0
  410. package/core/server/services/members/import-export/csv/index.js +10 -0
  411. package/core/server/services/members/import-export/csv/index.ts +2 -0
  412. package/core/server/services/members/import-export/csv/parse.js +64 -0
  413. package/core/server/services/members/import-export/csv/parse.ts +69 -0
  414. package/core/server/services/members/import-export/csv/serialize.js +13 -0
  415. package/core/server/services/members/import-export/csv/serialize.ts +18 -0
  416. package/core/server/services/members/import-export/export/exporter.js +202 -0
  417. package/core/server/services/members/import-export/export/exporter.ts +325 -0
  418. package/core/server/services/members/import-export/import/completion-email.js +65 -0
  419. package/core/server/services/members/import-export/import/completion-email.ts +119 -0
  420. package/core/server/services/members/import-export/import/importer.js +276 -0
  421. package/core/server/services/members/import-export/import/importer.ts +430 -0
  422. package/core/server/services/members/import-export/import/reader.js +32 -0
  423. package/core/server/services/members/import-export/import/reader.ts +33 -0
  424. package/core/server/services/members/import-export/import/row.js +33 -0
  425. package/core/server/services/members/import-export/import/row.ts +52 -0
  426. package/core/server/services/members/import-export/import/spool.js +30 -0
  427. package/core/server/services/members/import-export/import/spool.ts +38 -0
  428. package/core/server/services/members/import-export/index.js +90 -0
  429. package/core/server/services/members/import-export/index.ts +118 -0
  430. package/core/server/services/members/members-api/controllers/router-controller.js +7 -0
  431. package/core/server/services/members/members-api/members-api.js +4 -2
  432. package/core/server/services/members/members-api/repositories/event-repository.js +13 -2
  433. package/core/server/services/members/members-api/services/member-bread-service.js +42 -19
  434. package/core/server/services/members/middleware.js +1 -1
  435. package/core/server/services/members/service.js +28 -17
  436. package/core/server/services/members/stripe-connect.js +1 -1
  437. package/core/server/services/members-custom-fields/actions.js +3 -0
  438. package/core/server/services/members-custom-fields/actions.ts +6 -2
  439. package/core/server/services/members-custom-fields/config.js +34 -0
  440. package/core/server/services/members-custom-fields/config.ts +38 -0
  441. package/core/server/services/members-custom-fields/definitions-service.js +156 -21
  442. package/core/server/services/members-custom-fields/definitions-service.ts +170 -25
  443. package/core/server/services/members-custom-fields/index.js +16 -3
  444. package/core/server/services/members-custom-fields/index.ts +17 -3
  445. package/core/server/services/members-custom-fields/values-service.js +56 -10
  446. package/core/server/services/members-custom-fields/values-service.ts +62 -10
  447. package/core/server/services/mentions/mention-sending-service.js +22 -2
  448. package/core/server/services/mentions/service.js +21 -5
  449. package/core/server/services/newsletters/index.js +1 -1
  450. package/core/server/services/oembed/oembed-service.js +122 -33
  451. package/core/server/services/oembed/service.js +4 -2
  452. package/core/server/services/offers/service.js +1 -1
  453. package/core/server/services/post-scheduling/index.js +4 -3
  454. package/core/server/services/post-scheduling/index.ts +4 -3
  455. package/core/server/services/post-scheduling/post-scheduling.js +1 -1
  456. package/core/server/services/post-scheduling/post-scheduling.ts +1 -1
  457. package/core/server/services/posts/post-email-handler.js +13 -6
  458. package/core/server/services/posts/post-scheduling.js +1 -1
  459. package/core/server/services/posts/posts-exporter.js +6 -4
  460. package/core/server/services/posts/posts-service-instance.js +1 -1
  461. package/core/server/services/posts/posts-service.js +4 -4
  462. package/core/server/services/posts-public/service.js +1 -1
  463. package/core/server/services/public-config/site.js +1 -1
  464. package/core/server/services/recommendations/recommendation-service-wrapper.js +1 -1
  465. package/core/server/services/recommendations/service/libraries.d.ts +0 -2
  466. package/core/server/services/route-settings/dynamic-routing-service.js +2 -3
  467. package/core/server/services/route-settings/index.js +1 -1
  468. package/core/server/services/route-settings/route-settings-parser.js +134 -124
  469. package/core/server/services/route-settings/route-settings-parser.ts +160 -125
  470. package/core/server/services/route-settings/validation-errors.js +178 -0
  471. package/core/server/services/route-settings/validation-errors.ts +196 -0
  472. package/core/server/services/settings/settings-service.js +2 -2
  473. package/core/server/services/settings-helpers/index.js +1 -1
  474. package/core/server/services/slack-notifications/service.js +1 -1
  475. package/core/server/services/slack-ping/constants.js +16 -0
  476. package/core/server/services/slack-ping/constants.ts +15 -0
  477. package/core/server/services/slack-ping/index.js +26 -204
  478. package/core/server/services/slack-ping/index.ts +35 -0
  479. package/core/server/services/slack-ping/slack-ping-service.js +214 -0
  480. package/core/server/services/slack-ping/slack-ping-service.ts +296 -0
  481. package/core/server/services/staff/index.js +1 -1
  482. package/core/server/services/stats/posts-stats-service.js +1 -1
  483. package/core/server/services/stats/service.js +1 -1
  484. package/core/server/services/stripe/service.js +1 -1
  485. package/core/server/services/tags-public/service.js +1 -1
  486. package/core/server/services/themes/storage.js +9 -0
  487. package/core/server/services/themes/theme-storage.js +1 -1
  488. package/core/server/services/themes/validate.js +1 -1
  489. package/core/server/services/update-check/index.js +1 -1
  490. package/core/server/services/url/lazy-url-service.js +66 -6
  491. package/core/server/services/url/lazy-url-service.ts +73 -6
  492. package/core/server/services/url/url-generator.js +1 -1
  493. package/core/server/services/url/url-service-facade.js +68 -3
  494. package/core/server/services/url/url-service-facade.ts +79 -4
  495. package/core/server/services/url/url-service.js +1 -1
  496. package/core/server/services/url/urls.js +1 -1
  497. package/core/server/services/webhooks/index.js +19 -2
  498. package/core/server/services/webhooks/listen.js +6 -11
  499. package/core/server/services/webhooks/payload.js +1 -3
  500. package/core/server/services/webhooks/serialize.js +16 -1
  501. package/core/server/web/admin/app.js +1 -1
  502. package/core/server/web/admin/middleware/redirect-admin-urls.js +1 -1
  503. package/core/server/web/api/endpoints/admin/routes.js +1 -0
  504. package/core/server/web/api/middleware/cors.js +1 -1
  505. package/core/server/web/api/middleware/upload.js +4 -0
  506. package/core/server/web/gift-preview/controller.js +1 -1
  507. package/core/server/web/shared/middleware/redirect-amp-urls.js +1 -1
  508. package/core/server/web/shared/middleware/uncapitalise.js +2 -2
  509. package/core/server/web/shared/middleware/url-redirects.js +1 -1
  510. package/core/shared/config/defaults.json +10 -2
  511. package/core/shared/config/overrides.json +4 -0
  512. package/core/shared/express.js +6 -1
  513. package/core/shared/labs.js +2 -1
  514. package/core/shared/url-utils.js +19 -15
  515. package/core/shared/url-utils.ts +20 -0
  516. package/ghost.js +0 -1
  517. package/package.json +30 -35
  518. package/pnpm-lock.yaml +681 -2789
  519. package/pnpm-workspace.yaml +31 -17
  520. package/components/tryghost-adapter-base-scheduling-0.0.0.tgz +0 -0
  521. package/components/tryghost-adapter-base-sso-0.0.0.tgz +0 -0
  522. package/core/built/admin/assets/Combination--5EZGaDs.js +0 -43
  523. package/core/built/admin/assets/Growth-C0NoKcHQ.js +0 -3
  524. package/core/built/admin/assets/Newsletters-Ed8kDjdy.js +0 -1
  525. package/core/built/admin/assets/Overview-CArPgRZt.js +0 -1
  526. package/core/built/admin/assets/Web-CjjYoVM3.js +0 -2
  527. package/core/built/admin/assets/account-migration-mfa5mNI9.js +0 -1
  528. package/core/built/admin/assets/activitypub/inbox-B3rjKMTv.js +0 -1221
  529. package/core/built/admin/assets/activitypub/layout-jcurg3rU.js +0 -1
  530. package/core/built/admin/assets/activitypub/use-activity-pub-queries-yqGRcnLn.js +0 -2569
  531. package/core/built/admin/assets/activitypub/users-CfyHIsTG.js +0 -1316
  532. package/core/built/admin/assets/automations-DkUnxNdv.js +0 -1
  533. package/core/built/admin/assets/automations-vjXofmV_.js +0 -1
  534. package/core/built/admin/assets/bluesky-sharing-T-pO3RcP.js +0 -1
  535. package/core/built/admin/assets/breadcrumb-CekPYTCn.js +0 -1
  536. package/core/built/admin/assets/button--i2uMDDn.js +0 -4
  537. package/core/built/admin/assets/card-CSWz_BXq.js +0 -1
  538. package/core/built/admin/assets/chart-helpers-C_4Ka_vT.js +0 -1
  539. package/core/built/admin/assets/chunk.524.8ce2c741473e2f0929dc.js +0 -25
  540. package/core/built/admin/assets/chunk.582.453459d6228d2955408b.js +0 -27
  541. package/core/built/admin/assets/code-editor-view-BfkwQto2.js +0 -1
  542. package/core/built/admin/assets/command-K75Jzs0G.js +0 -1
  543. package/core/built/admin/assets/comments-BEIi1DH-.js +0 -1
  544. package/core/built/admin/assets/container-BNXvlcjA.js +0 -1
  545. package/core/built/admin/assets/data-list-BmK5QMab.js +0 -1
  546. package/core/built/admin/assets/date-range-select-5sKzwbt7.js +0 -1
  547. package/core/built/admin/assets/disabled-sources-indicator-L_ssJTNr.js +0 -1
  548. package/core/built/admin/assets/dist-BBIJuyPg.js +0 -1
  549. package/core/built/admin/assets/dist-BHE0dp6o.js +0 -1
  550. package/core/built/admin/assets/dist-CT46_f_J.js +0 -1
  551. package/core/built/admin/assets/dist-DW0QXQO3.js +0 -1
  552. package/core/built/admin/assets/dist-DxFLceO5.js +0 -1
  553. package/core/built/admin/assets/dist-QcACAOAD.js +0 -1
  554. package/core/built/admin/assets/dist-duxRDcQu.js +0 -177
  555. package/core/built/admin/assets/domain-CLaPZ9Rc.js +0 -1
  556. package/core/built/admin/assets/dropzone-E0bSX4_a.js +0 -5
  557. package/core/built/admin/assets/edit-profile-DqNPKaA4.js +0 -1
  558. package/core/built/admin/assets/editor-CkLXQDRp.js +0 -8
  559. package/core/built/admin/assets/empty-indicator-BTtOlgIo.js +0 -1
  560. package/core/built/admin/assets/esm-TSfGW7nz.js +0 -2
  561. package/core/built/admin/assets/explore-BEstLxKr.js +0 -1
  562. package/core/built/admin/assets/feed-C58p2voG.js +0 -1
  563. package/core/built/admin/assets/field-BSbDUHPv.js +0 -1
  564. package/core/built/admin/assets/filters-BgYv8Gt7.js +0 -1
  565. package/core/built/admin/assets/filters-DvenFkmK.js +0 -1
  566. package/core/built/admin/assets/framework-provider-jQktxm9P.js +0 -4
  567. package/core/built/admin/assets/ghost-dark-8590dea6cd695ff90f27d262c4464538.css +0 -1
  568. package/core/built/admin/assets/gift-link-modal-BPjXkEFt.js +0 -1
  569. package/core/built/admin/assets/growth-D4JNiVTe.js +0 -1
  570. package/core/built/admin/assets/hooks-Cjxexi_I.js +0 -2
  571. package/core/built/admin/assets/index-BacwlcOy.js +0 -67
  572. package/core/built/admin/assets/index-DxRNHH0o.css +0 -1
  573. package/core/built/admin/assets/inline-C22rnPro.js +0 -1
  574. package/core/built/admin/assets/input-group-CKfrILLP.js +0 -1
  575. package/core/built/admin/assets/jsx-runtime-CtMZ-PAS.js +0 -1
  576. package/core/built/admin/assets/kpi-card-DZxQKAIb.js +0 -1
  577. package/core/built/admin/assets/kpi-card-FidQ5zg3.js +0 -1
  578. package/core/built/admin/assets/kpi-helpers-C5T8Vaf1.js +0 -1
  579. package/core/built/admin/assets/kpi-tabs-_VRK6hGV.js +0 -1
  580. package/core/built/admin/assets/label-Cza7hPgn.js +0 -1
  581. package/core/built/admin/assets/label-picker-DgC_zLaw.js +0 -1
  582. package/core/built/admin/assets/layout-BxsXnKFX.js +0 -1
  583. package/core/built/admin/assets/limit-service-CTurluJQ.js +0 -20
  584. package/core/built/admin/assets/link-helpers-C3Gqy2cz.js +0 -1
  585. package/core/built/admin/assets/list-page-BtqCnow_.js +0 -1
  586. package/core/built/admin/assets/member-custom-fields-9uXFBqSt.js +0 -1
  587. package/core/built/admin/assets/member-detail-Dq6ZDIxo.js +0 -1
  588. package/core/built/admin/assets/members-CUWD9jal.js +0 -10
  589. package/core/built/admin/assets/modals-CIdwHVga.js +0 -31
  590. package/core/built/admin/assets/moderation-DTt04UDA.js +0 -1
  591. package/core/built/admin/assets/newsletter-cC8vcc9h.js +0 -1
  592. package/core/built/admin/assets/note-DZU0IY9e.js +0 -1
  593. package/core/built/admin/assets/notifications-NoHpBHJ4.js +0 -1
  594. package/core/built/admin/assets/nql-lang-CvCSOQG3.js +0 -19
  595. package/core/built/admin/assets/onboarding-route-Deg2hNm8.js +0 -1
  596. package/core/built/admin/assets/overview-BQPt_9w3.js +0 -1
  597. package/core/built/admin/assets/page-header-D6bEqPo2.js +0 -1
  598. package/core/built/admin/assets/post-analytics-header-BPw_B2_D.js +0 -1
  599. package/core/built/admin/assets/post-analytics-kp2_--XO.js +0 -1
  600. package/core/built/admin/assets/post-share-modal-Cave3Z4W.js +0 -1
  601. package/core/built/admin/assets/preferences-C7h3j_uy.js +0 -5
  602. package/core/built/admin/assets/profile-B2x4q2oB.js +0 -1
  603. package/core/built/admin/assets/router-provider-5fsX1CYn.js +0 -1
  604. package/core/built/admin/assets/select-PhPjIBBT.js +0 -1
  605. package/core/built/admin/assets/settings-D5P9Gwgo.js +0 -6
  606. package/core/built/admin/assets/settings-zUOzQV5I.js +0 -1
  607. package/core/built/admin/assets/share-modal-EfpfbuWF.js +0 -1
  608. package/core/built/admin/assets/social-urls-DgAF08Xc.js +0 -18
  609. package/core/built/admin/assets/sort-button-WOQYJm2H.js +0 -1
  610. package/core/built/admin/assets/source-icon-hm8Cj-Gx.js +0 -1
  611. package/core/built/admin/assets/stats-CnQDb62m.js +0 -1
  612. package/core/built/admin/assets/stats-view-CCfTJgSe.js +0 -1
  613. package/core/built/admin/assets/step-1-BGlhY4DS.js +0 -1
  614. package/core/built/admin/assets/step-2-D3sDEyFH.js +0 -1
  615. package/core/built/admin/assets/step-3-CvZoUdsc.js +0 -2
  616. package/core/built/admin/assets/switch-CNjkOmwz.js +0 -1
  617. package/core/built/admin/assets/table-C5nZYPnW.js +0 -1
  618. package/core/built/admin/assets/tabs-dtOcExye.js +0 -1
  619. package/core/built/admin/assets/tags-Dhm0FB_g.js +0 -1
  620. package/core/built/admin/assets/textarea-CeKw3wmV.js +0 -1
  621. package/core/built/admin/assets/toggle-group-DfhZIMTW.js +0 -1
  622. package/core/built/admin/assets/topic-filter-Cxe1Il41.js +0 -1
  623. package/core/built/admin/assets/typeof-Ca-duI-z.js +0 -1
  624. package/core/built/admin/assets/use-filter-params-Bub6BqNy.js +0 -1
  625. package/core/built/admin/assets/use-growth-stats-BJORomv0.js +0 -1
  626. package/core/built/admin/assets/use-reply-chain-data-B89YjVoo.js +0 -1
  627. package/core/built/admin/assets/use-simple-pagination-BL2SYXKi.js +0 -1
  628. package/core/built/admin/assets/virtual-list-DNJOSK9I.js +0 -1
  629. package/core/built/admin/assets/web-BHUE3YQc.js +0 -1
  630. package/core/server/adapters/scheduling/scheduling-base.js +0 -5
  631. package/core/server/adapters/sso/SSOBase.js +0 -5
  632. package/core/server/adapters/storage/index.js +0 -17
  633. package/core/server/services/mail/templates/newsletter.html +0 -876
  634. package/core/server/services/members/exporter/query.js +0 -206
  635. package/core/server/services/members/importer/index.js +0 -30
  636. package/core/server/services/members/importer/labels.js +0 -125
  637. package/core/server/services/members/importer/members-csv-importer.js +0 -502
  638. /package/core/server/services/members/{importer → import-export/import}/email-template.js +0 -0
  639. /package/core/server/services/members/{importer/members-csv-importer-stripe-utils.js → import-export/import/stripe-utils.js} +0 -0
@@ -0,0 +1,1464 @@
1
+ import { E as e, S as t, T as n, _ as r, a as i, c as a, d as o, g as s, v as c } from "./_react-D4KM8XEu.js";
2
+ import { A as l, B as u, C as d, D as f, E as p, F as m, I as h, L as g, M as _, N as v, O as y, P as b, R as x, S, T as C, V as w, _ as T, b as ee, j as E, k as D, p as te, v as O, w as k, x as A, y as j, z as M } from "./chunk-KS7C4IRE-D4HEcEwi.js";
3
+ //#region ../../node_modules/.pnpm/@tanstack+query-core@5.101.2/node_modules/@tanstack/query-core/build/modern/queryObserver.js
4
+ var N = class extends w {
5
+ constructor(e, t) {
6
+ super(), this.options = t, this.#e = e, this.#s = null, this.#o = y(), this.bindMethods(), this.setOptions(t);
7
+ }
8
+ #e;
9
+ #t = void 0;
10
+ #n = void 0;
11
+ #r = void 0;
12
+ #i;
13
+ #a;
14
+ #o;
15
+ #s;
16
+ #c;
17
+ #l;
18
+ #u;
19
+ #d;
20
+ #f;
21
+ #p;
22
+ #m = /* @__PURE__ */ new Set();
23
+ bindMethods() {
24
+ this.refetch = this.refetch.bind(this);
25
+ }
26
+ onSubscribe() {
27
+ this.listeners.size === 1 && (this.#t.addObserver(this), F(this.#t, this.options) ? this.#h() : this.updateResult(), this.#y());
28
+ }
29
+ onUnsubscribe() {
30
+ this.hasListeners() || this.destroy();
31
+ }
32
+ shouldFetchOnReconnect() {
33
+ return I(this.#t, this.options, this.options.refetchOnReconnect);
34
+ }
35
+ shouldFetchOnWindowFocus() {
36
+ return I(this.#t, this.options, this.options.refetchOnWindowFocus);
37
+ }
38
+ destroy() {
39
+ this.listeners = /* @__PURE__ */ new Set(), this.#b(), this.#x(), this.#t.removeObserver(this);
40
+ }
41
+ setOptions(e) {
42
+ let t = this.options, n = this.#t;
43
+ if (this.options = this.#e.defaultQueryOptions(e), this.options.enabled !== void 0 && typeof this.options.enabled != "boolean" && typeof this.options.enabled != "function" && typeof b(this.options.enabled, this.#t) != "boolean") throw Error("Expected enabled to be a boolean or a callback that returns a boolean");
44
+ this.#S(), this.#t.setOptions(this.options), t._defaulted && !h(this.options, t) && this.#e.getQueryCache().notify({
45
+ type: "observerOptionsUpdated",
46
+ query: this.#t,
47
+ observer: this
48
+ });
49
+ let r = this.hasListeners();
50
+ r && L(this.#t, n, this.options, t) && this.#h(), this.updateResult(), r && (this.#t !== n || b(this.options.enabled, this.#t) !== b(t.enabled, this.#t) || m(this.options.staleTime, this.#t) !== m(t.staleTime, this.#t)) && this.#g();
51
+ let i = this.#_();
52
+ r && (this.#t !== n || b(this.options.enabled, this.#t) !== b(t.enabled, this.#t) || i !== this.#p) && this.#v(i);
53
+ }
54
+ getOptimisticResult(e) {
55
+ let t = this.#e.getQueryCache().build(this.#e, e), n = this.createResult(t, e);
56
+ return ne(this, n) && (this.#r = n, this.#a = this.options, this.#i = this.#t.state), n;
57
+ }
58
+ getCurrentResult() {
59
+ return this.#r;
60
+ }
61
+ trackResult(e, t) {
62
+ return new Proxy(e, { get: (e, n) => (this.trackProp(n), t?.(n), n === "promise" && (this.trackProp("data"), !this.options.experimental_prefetchInRender && this.#o.status === "pending" && this.#o.reject(/* @__PURE__ */ Error("experimental_prefetchInRender feature flag is not enabled"))), Reflect.get(e, n)) });
63
+ }
64
+ trackProp(e) {
65
+ this.#m.add(e);
66
+ }
67
+ getCurrentQuery() {
68
+ return this.#t;
69
+ }
70
+ refetch({ ...e } = {}) {
71
+ return this.fetch({ ...e });
72
+ }
73
+ fetchOptimistic(e) {
74
+ let t = this.#e.defaultQueryOptions(e), n = this.#e.getQueryCache().build(this.#e, t);
75
+ return n.fetch().then(() => this.createResult(n, t));
76
+ }
77
+ fetch(e) {
78
+ return this.#h({
79
+ ...e,
80
+ cancelRefetch: e.cancelRefetch ?? !0
81
+ }).then(() => (this.updateResult(), this.#r));
82
+ }
83
+ #h(e) {
84
+ this.#S();
85
+ let t = this.#t.fetch(this.options, e);
86
+ return e?.throwOnError || (t = t.catch(_)), t;
87
+ }
88
+ #g() {
89
+ this.#b();
90
+ let e = m(this.options.staleTime, this.#t);
91
+ if (D.isServer() || this.#r.isStale || !E(e)) return;
92
+ let t = x(this.#r.dataUpdatedAt, e) + 1;
93
+ this.#d = M.setTimeout(() => {
94
+ this.#r.isStale || this.updateResult();
95
+ }, t);
96
+ }
97
+ #_() {
98
+ return (typeof this.options.refetchInterval == "function" ? this.options.refetchInterval(this.#t) : this.options.refetchInterval) ?? !1;
99
+ }
100
+ #v(e) {
101
+ this.#x(), this.#p = e, !(D.isServer() || b(this.options.enabled, this.#t) === !1 || !E(this.#p) || this.#p === 0) && (this.#f = M.setInterval(() => {
102
+ (this.options.refetchIntervalInBackground || u.isFocused()) && this.#h();
103
+ }, this.#p));
104
+ }
105
+ #y() {
106
+ this.#g(), this.#v(this.#_());
107
+ }
108
+ #b() {
109
+ this.#d !== void 0 && (M.clearTimeout(this.#d), this.#d = void 0);
110
+ }
111
+ #x() {
112
+ this.#f !== void 0 && (M.clearInterval(this.#f), this.#f = void 0);
113
+ }
114
+ createResult(e, t) {
115
+ let n = this.#t, r = this.options, i = this.#r, a = this.#i, o = this.#a, s = e === n ? this.#n : e.state, { state: c } = e, l = { ...c }, u = !1, d;
116
+ if (t._optimisticResults) {
117
+ let i = this.hasListeners(), a = !i && F(e, t), o = i && L(e, n, t, r);
118
+ (a || o) && (l = {
119
+ ...l,
120
+ ...k(c.data, e.options)
121
+ }), t._optimisticResults === "isRestoring" && (l.fetchStatus = "idle");
122
+ }
123
+ let { error: f, errorUpdatedAt: p, status: m } = l;
124
+ d = l.data;
125
+ let h = !1;
126
+ if (t.placeholderData !== void 0 && d === void 0 && m === "pending") {
127
+ let e;
128
+ i?.isPlaceholderData && t.placeholderData === o?.placeholderData ? (e = i.data, h = !0) : e = typeof t.placeholderData == "function" ? t.placeholderData(this.#u?.state.data, this.#u) : t.placeholderData, e !== void 0 && (m = "success", d = v(i?.data, e, t), u = !0);
129
+ }
130
+ if (t.select && d !== void 0 && !h) if (i && d === a?.data && t.select === this.#c) d = this.#l;
131
+ else try {
132
+ this.#c = t.select, d = t.select(d), d = v(i?.data, d, t), this.#l = d, this.#s = null;
133
+ } catch (e) {
134
+ this.#s = e;
135
+ }
136
+ this.#s && (f = this.#s, d = this.#l, p = Date.now(), m = "error");
137
+ let g = l.fetchStatus === "fetching", _ = m === "pending", x = m === "error", S = _ && g, C = d !== void 0, w = {
138
+ status: m,
139
+ fetchStatus: l.fetchStatus,
140
+ isPending: _,
141
+ isSuccess: m === "success",
142
+ isError: x,
143
+ isInitialLoading: S,
144
+ isLoading: S,
145
+ data: d,
146
+ dataUpdatedAt: l.dataUpdatedAt,
147
+ error: f,
148
+ errorUpdatedAt: p,
149
+ failureCount: l.fetchFailureCount,
150
+ failureReason: l.fetchFailureReason,
151
+ errorUpdateCount: l.errorUpdateCount,
152
+ isFetched: e.isFetched(),
153
+ isFetchedAfterMount: l.dataUpdateCount > s.dataUpdateCount || l.errorUpdateCount > s.errorUpdateCount,
154
+ isFetching: g,
155
+ isRefetching: g && !_,
156
+ isLoadingError: x && !C,
157
+ isPaused: l.fetchStatus === "paused",
158
+ isPlaceholderData: u,
159
+ isRefetchError: x && C,
160
+ isStale: R(e, t),
161
+ refetch: this.refetch,
162
+ promise: this.#o,
163
+ isEnabled: b(t.enabled, e) !== !1
164
+ };
165
+ if (this.options.experimental_prefetchInRender) {
166
+ let t = w.data !== void 0, r = w.status === "error" && !t, i = (e) => {
167
+ r ? e.reject(w.error) : t && e.resolve(w.data);
168
+ }, a = () => {
169
+ let e = this.#o = w.promise = y();
170
+ i(e);
171
+ }, o = this.#o;
172
+ switch (o.status) {
173
+ case "pending":
174
+ e.queryHash === n.queryHash && i(o);
175
+ break;
176
+ case "fulfilled":
177
+ (r || w.data !== o.value) && a();
178
+ break;
179
+ case "rejected":
180
+ (!r || w.error !== o.reason) && a();
181
+ break;
182
+ }
183
+ }
184
+ return w;
185
+ }
186
+ updateResult() {
187
+ let e = this.#r, t = this.createResult(this.#t, this.options);
188
+ this.#i = this.#t.state, this.#a = this.options, this.#i.data !== void 0 && (this.#u = this.#t), !h(t, e) && (this.#r = t, this.#C({ listeners: (() => {
189
+ if (!e) return !0;
190
+ let { notifyOnChangeProps: t } = this.options, n = typeof t == "function" ? t() : t;
191
+ if (n === "all" || !n && !this.#m.size) return !0;
192
+ let r = new Set(n ?? this.#m);
193
+ return this.options.throwOnError && r.add("error"), Object.keys(this.#r).some((t) => {
194
+ let n = t;
195
+ return this.#r[n] !== e[n] && r.has(n);
196
+ });
197
+ })() }));
198
+ }
199
+ #S() {
200
+ let e = this.#e.getQueryCache().build(this.#e, this.options);
201
+ if (e === this.#t) return;
202
+ let t = this.#t;
203
+ this.#t = e, this.#n = e.state, this.hasListeners() && (t?.removeObserver(this), e.addObserver(this));
204
+ }
205
+ onQueryUpdate() {
206
+ this.updateResult(), this.hasListeners() && this.#y();
207
+ }
208
+ #C(e) {
209
+ f.batch(() => {
210
+ e.listeners && this.listeners.forEach((e) => {
211
+ e(this.#r);
212
+ }), this.#e.getQueryCache().notify({
213
+ query: this.#t,
214
+ type: "observerResultsUpdated"
215
+ });
216
+ });
217
+ }
218
+ };
219
+ function P(e, t) {
220
+ return b(t.enabled, e) !== !1 && e.state.data === void 0 && !(e.state.status === "error" && b(t.retryOnMount, e) === !1);
221
+ }
222
+ function F(e, t) {
223
+ return P(e, t) || e.state.data !== void 0 && I(e, t, t.refetchOnMount);
224
+ }
225
+ function I(e, t, n) {
226
+ if (b(t.enabled, e) !== !1 && m(t.staleTime, e) !== "static") {
227
+ let r = typeof n == "function" ? n(e) : n;
228
+ return r === "always" || r !== !1 && R(e, t);
229
+ }
230
+ return !1;
231
+ }
232
+ function L(e, t, n, r) {
233
+ return (e !== t || b(r.enabled, e) === !1) && (!n.suspense || e.state.status !== "error") && R(e, n);
234
+ }
235
+ function R(e, t) {
236
+ return b(t.enabled, e) !== !1 && e.isStaleByTime(m(t.staleTime, e));
237
+ }
238
+ function ne(e, t) {
239
+ return !h(e.getCurrentResult(), t);
240
+ }
241
+ //#endregion
242
+ //#region ../../node_modules/.pnpm/@tanstack+query-core@5.101.2/node_modules/@tanstack/query-core/build/modern/infiniteQueryObserver.js
243
+ var re = class extends N {
244
+ constructor(e, t) {
245
+ super(e, t);
246
+ }
247
+ bindMethods() {
248
+ super.bindMethods(), this.fetchNextPage = this.fetchNextPage.bind(this), this.fetchPreviousPage = this.fetchPreviousPage.bind(this);
249
+ }
250
+ setOptions(e) {
251
+ e._type = "infinite", super.setOptions(e);
252
+ }
253
+ getOptimisticResult(e) {
254
+ return e._type = "infinite", super.getOptimisticResult(e);
255
+ }
256
+ fetchNextPage(e) {
257
+ return this.fetch({
258
+ ...e,
259
+ meta: { fetchMore: { direction: "forward" } }
260
+ });
261
+ }
262
+ fetchPreviousPage(e) {
263
+ return this.fetch({
264
+ ...e,
265
+ meta: { fetchMore: { direction: "backward" } }
266
+ });
267
+ }
268
+ createResult(e, t) {
269
+ let { state: n } = e, r = super.createResult(e, t), { isFetching: i, isRefetching: a, isError: o, isRefetchError: s } = r, c = n.fetchMeta?.fetchMore?.direction, l = o && c === "forward", u = i && c === "forward", d = o && c === "backward", f = i && c === "backward";
270
+ return {
271
+ ...r,
272
+ fetchNextPage: this.fetchNextPage,
273
+ fetchPreviousPage: this.fetchPreviousPage,
274
+ hasNextPage: C(t, n.data),
275
+ hasPreviousPage: p(t, n.data),
276
+ isFetchNextPageError: l,
277
+ isFetchingNextPage: u,
278
+ isFetchPreviousPageError: d,
279
+ isFetchingPreviousPage: f,
280
+ isRefetchError: s && !l && !d,
281
+ isRefetching: a && !u && !f
282
+ };
283
+ }
284
+ }, ie = class extends w {
285
+ #e;
286
+ #t = void 0;
287
+ #n;
288
+ #r;
289
+ constructor(e, t) {
290
+ super(), this.#e = e, this.setOptions(t), this.bindMethods(), this.#i();
291
+ }
292
+ bindMethods() {
293
+ this.mutate = this.mutate.bind(this), this.reset = this.reset.bind(this);
294
+ }
295
+ setOptions(e) {
296
+ let t = this.options;
297
+ this.options = this.#e.defaultMutationOptions(e), h(this.options, t) || this.#e.getMutationCache().notify({
298
+ type: "observerOptionsUpdated",
299
+ mutation: this.#n,
300
+ observer: this
301
+ }), t?.mutationKey && this.options.mutationKey && l(t.mutationKey) !== l(this.options.mutationKey) ? this.reset() : this.#n?.state.status === "pending" && this.#n.setOptions(this.options);
302
+ }
303
+ onUnsubscribe() {
304
+ this.hasListeners() || this.#n?.removeObserver(this);
305
+ }
306
+ onMutationUpdate(e) {
307
+ this.#i(), this.#a(e);
308
+ }
309
+ getCurrentResult() {
310
+ return this.#t;
311
+ }
312
+ reset() {
313
+ this.#n?.removeObserver(this), this.#n = void 0, this.#i(), this.#a();
314
+ }
315
+ mutate(e, t) {
316
+ return this.#r = t, this.#n?.removeObserver(this), this.#n = this.#e.getMutationCache().build(this.#e, this.options), this.#n.addObserver(this), this.#n.execute(e);
317
+ }
318
+ #i() {
319
+ let e = this.#n?.state ?? d();
320
+ this.#t = {
321
+ ...e,
322
+ isPending: e.status === "pending",
323
+ isSuccess: e.status === "success",
324
+ isError: e.status === "error",
325
+ isIdle: e.status === "idle",
326
+ mutate: this.mutate,
327
+ reset: this.reset
328
+ };
329
+ }
330
+ #a(e) {
331
+ f.batch(() => {
332
+ if (this.#r && this.hasListeners()) {
333
+ let t = this.#t.variables, n = this.#t.context, r = {
334
+ client: this.#e,
335
+ meta: this.options.meta,
336
+ mutationKey: this.options.mutationKey
337
+ };
338
+ if (e?.type === "success") {
339
+ try {
340
+ this.#r.onSuccess?.(e.data, t, n, r);
341
+ } catch (e) {
342
+ Promise.reject(e);
343
+ }
344
+ try {
345
+ this.#r.onSettled?.(e.data, null, t, n, r);
346
+ } catch (e) {
347
+ Promise.reject(e);
348
+ }
349
+ } else if (e?.type === "error") {
350
+ try {
351
+ this.#r.onError?.(e.error, t, n, r);
352
+ } catch (e) {
353
+ Promise.reject(e);
354
+ }
355
+ try {
356
+ this.#r.onSettled?.(void 0, e.error, t, n, r);
357
+ } catch (e) {
358
+ Promise.reject(e);
359
+ }
360
+ }
361
+ }
362
+ this.listeners.forEach((e) => {
363
+ e(this.#t);
364
+ });
365
+ });
366
+ }
367
+ };
368
+ S(), o();
369
+ var ae = a(!1), z = () => r(ae);
370
+ //#endregion
371
+ //#region ../../node_modules/.pnpm/@tanstack+react-query@5.101.2_react@18.3.1/node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js
372
+ ae.Provider, o();
373
+ function oe() {
374
+ let e = !1;
375
+ return {
376
+ clearReset: () => {
377
+ e = !1;
378
+ },
379
+ reset: () => {
380
+ e = !0;
381
+ },
382
+ isReset: () => e
383
+ };
384
+ }
385
+ var B = a(oe()), se = () => r(B);
386
+ //#endregion
387
+ //#region ../../node_modules/.pnpm/@tanstack+react-query@5.101.2_react@18.3.1/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js
388
+ o();
389
+ var ce = (e, t, n) => {
390
+ let r = n?.state.error && typeof e.throwOnError == "function" ? g(e.throwOnError, [n.state.error, n]) : e.throwOnError;
391
+ (e.suspense || e.experimental_prefetchInRender || r) && (t.isReset() || (e.retryOnMount = !1));
392
+ }, V = (e) => {
393
+ c(() => {
394
+ e.clearReset();
395
+ }, [e]);
396
+ }, H = ({ result: e, errorResetBoundary: t, throwOnError: n, query: r, suspense: i }) => e.isError && !t.isReset() && !e.isFetching && r && (i && e.data === void 0 || g(n, [e.error, r])), le = (e) => {
397
+ if (e.suspense) {
398
+ let t = 1e3, n = (e) => e === "static" ? e : Math.max(e ?? t, t), r = e.staleTime;
399
+ e.staleTime = typeof r == "function" ? (...e) => n(r(...e)) : n(r), typeof e.gcTime == "number" && (e.gcTime = Math.max(e.gcTime, t));
400
+ }
401
+ }, ue = (e, t) => e.isLoading && e.isFetching && !t, U = (e, t) => e?.suspense && t.isPending, de = (e, t, n) => t.fetchOptimistic(e).catch(() => {
402
+ n.clearReset();
403
+ });
404
+ //#endregion
405
+ //#region ../../node_modules/.pnpm/@tanstack+react-query@5.101.2_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js
406
+ o();
407
+ function fe(t, r, i) {
408
+ let a = z(), o = se(), l = A(i), u = l.defaultQueryOptions(t);
409
+ l.getDefaultOptions().queries?._experimental_beforeQuery?.(u);
410
+ let d = l.getQueryCache().get(u.queryHash), p = t.subscribed !== !1;
411
+ u._optimisticResults = a ? "isRestoring" : p ? "optimistic" : void 0, le(u), ce(u, o, d), V(o);
412
+ let m = !l.getQueryCache().get(u.queryHash), [h] = n(() => new r(l, u)), g = h.getOptimisticResult(u), v = !a && p;
413
+ if (e(s((e) => {
414
+ let t = v ? h.subscribe(f.batchCalls(e)) : _;
415
+ return h.updateResult(), t;
416
+ }, [h, v]), () => h.getCurrentResult(), () => h.getCurrentResult()), c(() => {
417
+ h.setOptions(u);
418
+ }, [u, h]), U(u, g)) throw de(u, h, o);
419
+ if (H({
420
+ result: g,
421
+ errorResetBoundary: o,
422
+ throwOnError: u.throwOnError,
423
+ query: d,
424
+ suspense: u.suspense
425
+ })) throw g.error;
426
+ return l.getDefaultOptions().queries?._experimental_afterQuery?.(u, g), u.experimental_prefetchInRender && !D.isServer() && ue(g, a) && (m ? de(u, h, o) : d?.promise)?.catch(_).finally(() => {
427
+ h.updateResult();
428
+ }), u.notifyOnChangeProps ? g : h.trackResult(g);
429
+ }
430
+ //#endregion
431
+ //#region ../../node_modules/.pnpm/@tanstack+react-query@5.101.2_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useQuery.js
432
+ function W(e, t) {
433
+ return fe(e, N, t);
434
+ }
435
+ //#endregion
436
+ //#region ../../node_modules/.pnpm/@tanstack+react-query@5.101.2_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useMutation.js
437
+ o();
438
+ function G(t, r) {
439
+ let i = A(r), [a] = n(() => new ie(i, t));
440
+ c(() => {
441
+ a.setOptions(t);
442
+ }, [a, t]);
443
+ let o = e(s((e) => a.subscribe(f.batchCalls(e)), [a]), () => a.getCurrentResult(), () => a.getCurrentResult()), l = s((e, t) => {
444
+ a.mutate(e, t).catch(_);
445
+ }, [a]);
446
+ if (o.error && g(a.options.throwOnError, [o.error])) throw o.error;
447
+ return {
448
+ ...o,
449
+ mutate: l,
450
+ mutateAsync: o.mutate
451
+ };
452
+ }
453
+ //#endregion
454
+ //#region ../../node_modules/.pnpm/@tanstack+react-query@5.101.2_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useInfiniteQuery.js
455
+ function pe(e, t) {
456
+ return fe(e, re, t);
457
+ }
458
+ //#endregion
459
+ //#region ../admin-x-framework/dist/utils/errors.js
460
+ var K = class extends Error {
461
+ response;
462
+ data;
463
+ constructor(e, t, n, r) {
464
+ !n && e && e.url.includes("/ghost/api/admin/") && (n = `Something went wrong while loading ${e.url.replace(/.+\/ghost\/api\/admin\//, "").replace(/\W.*/, "").replace("_", " ")}, please try again.`), super(n || "Something went wrong, please try again.", r), this.response = e, this.data = t;
465
+ }
466
+ }, q = class extends K {
467
+ data;
468
+ constructor(e, t, n, r) {
469
+ super(e, t, n, r), this.data = t;
470
+ }
471
+ }, me = class extends q {
472
+ constructor(e, t, n) {
473
+ super(e, t, "API server is running a newer version of Ghost, please upgrade.", n);
474
+ }
475
+ }, J = class extends K {
476
+ constructor(e) {
477
+ super(void 0, void 0, "Something went wrong, please try again.", e);
478
+ }
479
+ }, he = class extends K {
480
+ constructor(e) {
481
+ super(void 0, void 0, "Request timed out, please try again.", e);
482
+ }
483
+ }, ge = class extends K {
484
+ constructor(e, t, n) {
485
+ super(e, t, "Request is larger than the maximum file size the server allows", n);
486
+ }
487
+ }, _e = class extends K {
488
+ constructor(e, t, n) {
489
+ super(e, t, "Request contains an unknown or unsupported file type.", n);
490
+ }
491
+ }, Y = class extends K {
492
+ constructor(e, t, n) {
493
+ super(e, t, "Ghost is currently undergoing maintenance, please wait a moment then retry.", n);
494
+ }
495
+ }, X = class extends K {
496
+ constructor(e, t, n) {
497
+ super(e, t, "You are not authorised to make this request.", n);
498
+ }
499
+ }, ve = class extends X {}, ye = class extends q {
500
+ constructor(e, t, n) {
501
+ super(e, t, "Theme is not compatible or contains errors.", n);
502
+ }
503
+ }, be = class extends q {
504
+ constructor(e, t, n) {
505
+ super(e, t, "A hosting plan limit was reached or exceeded.", n);
506
+ }
507
+ }, xe = class extends q {
508
+ constructor(e, t, n) {
509
+ super(e, t, "Please verify your email settings", n);
510
+ }
511
+ }, Se = class extends q {
512
+ constructor(e, t, n) {
513
+ super(e, t, t.errors[0].message, n);
514
+ }
515
+ };
516
+ function Ce(e, t) {
517
+ return e instanceof Se && e.data?.errors[0] ? e.data.errors[0].context || e.data.errors[0].message : t;
518
+ }
519
+ //#endregion
520
+ //#region ../../node_modules/.pnpm/sonner@2.0.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/sonner/dist/index.mjs
521
+ o();
522
+ function we(e) {
523
+ if (!e || typeof document > "u") return;
524
+ let t = document.head || document.getElementsByTagName("head")[0], n = document.createElement("style");
525
+ n.type = "text/css", t.appendChild(n), n.styleSheet ? n.styleSheet.cssText = e : n.appendChild(document.createTextNode(e));
526
+ }
527
+ var Te = (e) => {
528
+ switch (e) {
529
+ case "success": return Oe;
530
+ case "info": return Ae;
531
+ case "warning": return ke;
532
+ case "error": return je;
533
+ default: return null;
534
+ }
535
+ }, Ee = Array(12).fill(0), De = ({ visible: e, className: t }) => /*#__PURE__*/ i.createElement("div", {
536
+ className: ["sonner-loading-wrapper", t].filter(Boolean).join(" "),
537
+ "data-visible": e
538
+ }, /*#__PURE__*/ i.createElement("div", { className: "sonner-spinner" }, Ee.map((e, t) => /*#__PURE__*/ i.createElement("div", {
539
+ className: "sonner-loading-bar",
540
+ key: `spinner-bar-${t}`
541
+ })))), Oe = /*#__PURE__*/ i.createElement("svg", {
542
+ xmlns: "http://www.w3.org/2000/svg",
543
+ viewBox: "0 0 20 20",
544
+ fill: "currentColor",
545
+ height: "20",
546
+ width: "20"
547
+ }, /*#__PURE__*/ i.createElement("path", {
548
+ fillRule: "evenodd",
549
+ d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",
550
+ clipRule: "evenodd"
551
+ })), ke = /*#__PURE__*/ i.createElement("svg", {
552
+ xmlns: "http://www.w3.org/2000/svg",
553
+ viewBox: "0 0 24 24",
554
+ fill: "currentColor",
555
+ height: "20",
556
+ width: "20"
557
+ }, /*#__PURE__*/ i.createElement("path", {
558
+ fillRule: "evenodd",
559
+ d: "M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",
560
+ clipRule: "evenodd"
561
+ })), Ae = /*#__PURE__*/ i.createElement("svg", {
562
+ xmlns: "http://www.w3.org/2000/svg",
563
+ viewBox: "0 0 20 20",
564
+ fill: "currentColor",
565
+ height: "20",
566
+ width: "20"
567
+ }, /*#__PURE__*/ i.createElement("path", {
568
+ fillRule: "evenodd",
569
+ d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",
570
+ clipRule: "evenodd"
571
+ })), je = /*#__PURE__*/ i.createElement("svg", {
572
+ xmlns: "http://www.w3.org/2000/svg",
573
+ viewBox: "0 0 20 20",
574
+ fill: "currentColor",
575
+ height: "20",
576
+ width: "20"
577
+ }, /*#__PURE__*/ i.createElement("path", {
578
+ fillRule: "evenodd",
579
+ d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",
580
+ clipRule: "evenodd"
581
+ })), Me = /*#__PURE__*/ i.createElement("svg", {
582
+ xmlns: "http://www.w3.org/2000/svg",
583
+ width: "12",
584
+ height: "12",
585
+ viewBox: "0 0 24 24",
586
+ fill: "none",
587
+ stroke: "currentColor",
588
+ strokeWidth: "1.5",
589
+ strokeLinecap: "round",
590
+ strokeLinejoin: "round"
591
+ }, /*#__PURE__*/ i.createElement("line", {
592
+ x1: "18",
593
+ y1: "6",
594
+ x2: "6",
595
+ y2: "18"
596
+ }), /*#__PURE__*/ i.createElement("line", {
597
+ x1: "6",
598
+ y1: "6",
599
+ x2: "18",
600
+ y2: "18"
601
+ })), Ne = () => {
602
+ let [e, t] = i.useState(document.hidden);
603
+ return i.useEffect(() => {
604
+ let e = () => {
605
+ t(document.hidden);
606
+ };
607
+ return document.addEventListener("visibilitychange", e), () => window.removeEventListener("visibilitychange", e);
608
+ }, []), e;
609
+ }, Pe = 1, Z = new class {
610
+ constructor() {
611
+ this.subscribe = (e) => (this.subscribers.push(e), () => {
612
+ let t = this.subscribers.indexOf(e);
613
+ this.subscribers.splice(t, 1);
614
+ }), this.publish = (e) => {
615
+ this.subscribers.forEach((t) => t(e));
616
+ }, this.addToast = (e) => {
617
+ this.publish(e), this.toasts = [...this.toasts, e];
618
+ }, this.create = (e) => {
619
+ let { message: t, ...n } = e, r = typeof e?.id == "number" || e.id?.length > 0 ? e.id : Pe++, i = this.toasts.find((e) => e.id === r), a = e.dismissible === void 0 ? !0 : e.dismissible;
620
+ return this.dismissedToasts.has(r) && this.dismissedToasts.delete(r), i ? this.toasts = this.toasts.map((n) => n.id === r ? (this.publish({
621
+ ...n,
622
+ ...e,
623
+ id: r,
624
+ title: t
625
+ }), {
626
+ ...n,
627
+ ...e,
628
+ id: r,
629
+ dismissible: a,
630
+ title: t
631
+ }) : n) : this.addToast({
632
+ title: t,
633
+ ...n,
634
+ dismissible: a,
635
+ id: r
636
+ }), r;
637
+ }, this.dismiss = (e) => (e ? (this.dismissedToasts.add(e), requestAnimationFrame(() => this.subscribers.forEach((t) => t({
638
+ id: e,
639
+ dismiss: !0
640
+ })))) : this.toasts.forEach((e) => {
641
+ this.subscribers.forEach((t) => t({
642
+ id: e.id,
643
+ dismiss: !0
644
+ }));
645
+ }), e), this.message = (e, t) => this.create({
646
+ ...t,
647
+ message: e
648
+ }), this.error = (e, t) => this.create({
649
+ ...t,
650
+ message: e,
651
+ type: "error"
652
+ }), this.success = (e, t) => this.create({
653
+ ...t,
654
+ type: "success",
655
+ message: e
656
+ }), this.info = (e, t) => this.create({
657
+ ...t,
658
+ type: "info",
659
+ message: e
660
+ }), this.warning = (e, t) => this.create({
661
+ ...t,
662
+ type: "warning",
663
+ message: e
664
+ }), this.loading = (e, t) => this.create({
665
+ ...t,
666
+ type: "loading",
667
+ message: e
668
+ }), this.promise = (e, t) => {
669
+ if (!t) return;
670
+ let n;
671
+ t.loading !== void 0 && (n = this.create({
672
+ ...t,
673
+ promise: e,
674
+ type: "loading",
675
+ message: t.loading,
676
+ description: typeof t.description == "function" ? void 0 : t.description
677
+ }));
678
+ let r = Promise.resolve(e instanceof Function ? e() : e), a = n !== void 0, o, s = r.then(async (e) => {
679
+ if (o = ["resolve", e], i.isValidElement(e)) a = !1, this.create({
680
+ id: n,
681
+ type: "default",
682
+ message: e
683
+ });
684
+ else if (Ie(e) && !e.ok) {
685
+ a = !1;
686
+ let r = typeof t.error == "function" ? await t.error(`HTTP error! status: ${e.status}`) : t.error, o = typeof t.description == "function" ? await t.description(`HTTP error! status: ${e.status}`) : t.description, s = typeof r == "object" && !i.isValidElement(r) ? r : { message: r };
687
+ this.create({
688
+ id: n,
689
+ type: "error",
690
+ description: o,
691
+ ...s
692
+ });
693
+ } else if (e instanceof Error) {
694
+ a = !1;
695
+ let r = typeof t.error == "function" ? await t.error(e) : t.error, o = typeof t.description == "function" ? await t.description(e) : t.description, s = typeof r == "object" && !i.isValidElement(r) ? r : { message: r };
696
+ this.create({
697
+ id: n,
698
+ type: "error",
699
+ description: o,
700
+ ...s
701
+ });
702
+ } else if (t.success !== void 0) {
703
+ a = !1;
704
+ let r = typeof t.success == "function" ? await t.success(e) : t.success, o = typeof t.description == "function" ? await t.description(e) : t.description, s = typeof r == "object" && !i.isValidElement(r) ? r : { message: r };
705
+ this.create({
706
+ id: n,
707
+ type: "success",
708
+ description: o,
709
+ ...s
710
+ });
711
+ }
712
+ }).catch(async (e) => {
713
+ if (o = ["reject", e], t.error !== void 0) {
714
+ a = !1;
715
+ let r = typeof t.error == "function" ? await t.error(e) : t.error, o = typeof t.description == "function" ? await t.description(e) : t.description, s = typeof r == "object" && !i.isValidElement(r) ? r : { message: r };
716
+ this.create({
717
+ id: n,
718
+ type: "error",
719
+ description: o,
720
+ ...s
721
+ });
722
+ }
723
+ }).finally(() => {
724
+ a && (this.dismiss(n), n = void 0), t.finally == null || t.finally.call(t);
725
+ }), c = () => new Promise((e, t) => s.then(() => o[0] === "reject" ? t(o[1]) : e(o[1])).catch(t));
726
+ return typeof n != "string" && typeof n != "number" ? { unwrap: c } : Object.assign(n, { unwrap: c });
727
+ }, this.custom = (e, t) => {
728
+ let n = t?.id || Pe++;
729
+ return this.create({
730
+ jsx: e(n),
731
+ id: n,
732
+ ...t
733
+ }), n;
734
+ }, this.getActiveToasts = () => this.toasts.filter((e) => !this.dismissedToasts.has(e.id)), this.subscribers = [], this.toasts = [], this.dismissedToasts = /* @__PURE__ */ new Set();
735
+ }
736
+ }(), Fe = (e, t) => {
737
+ let n = t?.id || Pe++;
738
+ return Z.addToast({
739
+ title: e,
740
+ ...t,
741
+ id: n
742
+ }), n;
743
+ }, Ie = (e) => e && typeof e == "object" && "ok" in e && typeof e.ok == "boolean" && "status" in e && typeof e.status == "number", Le = Object.assign(Fe, {
744
+ success: Z.success,
745
+ info: Z.info,
746
+ warning: Z.warning,
747
+ error: Z.error,
748
+ custom: Z.custom,
749
+ message: Z.message,
750
+ promise: Z.promise,
751
+ dismiss: Z.dismiss,
752
+ loading: Z.loading
753
+ }, {
754
+ getHistory: () => Z.toasts,
755
+ getToasts: () => Z.getActiveToasts()
756
+ });
757
+ we("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");
758
+ function Re(e) {
759
+ return e.label !== void 0;
760
+ }
761
+ var ze = 3, Be = "24px", Ve = "16px", He = 4e3, Ue = 356, We = 14, Ge = 45, Ke = 200;
762
+ function Q(...e) {
763
+ return e.filter(Boolean).join(" ");
764
+ }
765
+ function qe(e) {
766
+ let [t, n] = e.split("-"), r = [];
767
+ return t && r.push(t), n && r.push(n), r;
768
+ }
769
+ var Je = (e) => {
770
+ let { invert: t, toast: n, unstyled: r, interacting: a, setHeights: o, visibleToasts: s, heights: c, index: l, toasts: u, expanded: d, removeToast: f, defaultRichColors: p, closeButton: m, style: h, cancelButtonStyle: g, actionButtonStyle: _, className: v = "", descriptionClassName: y = "", duration: b, position: x, gap: S, expandByDefault: C, classNames: w, icons: T, closeButtonAriaLabel: ee = "Close toast" } = e, [E, D] = i.useState(null), [te, O] = i.useState(null), [k, A] = i.useState(!1), [j, M] = i.useState(!1), [N, P] = i.useState(!1), [F, I] = i.useState(!1), [L, R] = i.useState(!1), [ne, re] = i.useState(0), [ie, ae] = i.useState(0), z = i.useRef(n.duration || b || He), oe = i.useRef(null), B = i.useRef(null), se = l === 0, ce = l + 1 <= s, V = n.type, H = n.dismissible !== !1, le = n.className || "", ue = n.descriptionClassName || "", U = i.useMemo(() => c.findIndex((e) => e.toastId === n.id) || 0, [c, n.id]), de = i.useMemo(() => n.closeButton ?? m, [n.closeButton, m]), fe = i.useMemo(() => n.duration || b || He, [n.duration, b]), W = i.useRef(0), G = i.useRef(0), pe = i.useRef(0), K = i.useRef(null), [q, me] = x.split("-"), J = i.useMemo(() => c.reduce((e, t, n) => n >= U ? e : e + t.height, 0), [c, U]), he = Ne(), ge = n.invert || t, _e = V === "loading";
771
+ G.current = i.useMemo(() => U * S + J, [U, J]), i.useEffect(() => {
772
+ z.current = fe;
773
+ }, [fe]), i.useEffect(() => {
774
+ A(!0);
775
+ }, []), i.useEffect(() => {
776
+ let e = B.current;
777
+ if (e) {
778
+ let t = e.getBoundingClientRect().height;
779
+ return ae(t), o((e) => [{
780
+ toastId: n.id,
781
+ height: t,
782
+ position: n.position
783
+ }, ...e]), () => o((e) => e.filter((e) => e.toastId !== n.id));
784
+ }
785
+ }, [o, n.id]), i.useLayoutEffect(() => {
786
+ if (!k) return;
787
+ let e = B.current, t = e.style.height;
788
+ e.style.height = "auto";
789
+ let r = e.getBoundingClientRect().height;
790
+ e.style.height = t, ae(r), o((e) => e.find((e) => e.toastId === n.id) ? e.map((e) => e.toastId === n.id ? {
791
+ ...e,
792
+ height: r
793
+ } : e) : [{
794
+ toastId: n.id,
795
+ height: r,
796
+ position: n.position
797
+ }, ...e]);
798
+ }, [
799
+ k,
800
+ n.title,
801
+ n.description,
802
+ o,
803
+ n.id,
804
+ n.jsx,
805
+ n.action,
806
+ n.cancel
807
+ ]);
808
+ let Y = i.useCallback(() => {
809
+ M(!0), re(G.current), o((e) => e.filter((e) => e.toastId !== n.id)), setTimeout(() => {
810
+ f(n);
811
+ }, Ke);
812
+ }, [
813
+ n,
814
+ f,
815
+ o,
816
+ G
817
+ ]);
818
+ i.useEffect(() => {
819
+ if (n.promise && V === "loading" || n.duration === Infinity || n.type === "loading") return;
820
+ let e;
821
+ return d || a || he ? (() => {
822
+ if (pe.current < W.current) {
823
+ let e = (/* @__PURE__ */ new Date()).getTime() - W.current;
824
+ z.current -= e;
825
+ }
826
+ pe.current = (/* @__PURE__ */ new Date()).getTime();
827
+ })() : z.current !== Infinity && (W.current = (/* @__PURE__ */ new Date()).getTime(), e = setTimeout(() => {
828
+ n.onAutoClose == null || n.onAutoClose.call(n, n), Y();
829
+ }, z.current)), () => clearTimeout(e);
830
+ }, [
831
+ d,
832
+ a,
833
+ n,
834
+ V,
835
+ he,
836
+ Y
837
+ ]), i.useEffect(() => {
838
+ n.delete && (Y(), n.onDismiss == null || n.onDismiss.call(n, n));
839
+ }, [Y, n.delete]);
840
+ function X() {
841
+ return T?.loading ? /*#__PURE__*/ i.createElement("div", {
842
+ className: Q(w?.loader, n?.classNames?.loader, "sonner-loader"),
843
+ "data-visible": V === "loading"
844
+ }, T.loading) : /*#__PURE__*/ i.createElement(De, {
845
+ className: Q(w?.loader, n?.classNames?.loader),
846
+ visible: V === "loading"
847
+ });
848
+ }
849
+ let ve = n.icon || T?.[V] || Te(V);
850
+ return /*#__PURE__*/ i.createElement("li", {
851
+ tabIndex: 0,
852
+ ref: B,
853
+ className: Q(v, le, w?.toast, n?.classNames?.toast, w?.default, w?.[V], n?.classNames?.[V]),
854
+ "data-sonner-toast": "",
855
+ "data-rich-colors": n.richColors ?? p,
856
+ "data-styled": !(n.jsx || n.unstyled || r),
857
+ "data-mounted": k,
858
+ "data-promise": !!n.promise,
859
+ "data-swiped": L,
860
+ "data-removed": j,
861
+ "data-visible": ce,
862
+ "data-y-position": q,
863
+ "data-x-position": me,
864
+ "data-index": l,
865
+ "data-front": se,
866
+ "data-swiping": N,
867
+ "data-dismissible": H,
868
+ "data-type": V,
869
+ "data-invert": ge,
870
+ "data-swipe-out": F,
871
+ "data-swipe-direction": te,
872
+ "data-expanded": !!(d || C && k),
873
+ "data-testid": n.testId,
874
+ style: {
875
+ "--index": l,
876
+ "--toasts-before": l,
877
+ "--z-index": u.length - l,
878
+ "--offset": `${j ? ne : G.current}px`,
879
+ "--initial-height": C ? "auto" : `${ie}px`,
880
+ ...h,
881
+ ...n.style
882
+ },
883
+ onDragEnd: () => {
884
+ P(!1), D(null), K.current = null;
885
+ },
886
+ onPointerDown: (e) => {
887
+ e.button !== 2 && (_e || !H || (oe.current = /* @__PURE__ */ new Date(), re(G.current), e.target.setPointerCapture(e.pointerId), e.target.tagName !== "BUTTON" && (P(!0), K.current = {
888
+ x: e.clientX,
889
+ y: e.clientY
890
+ })));
891
+ },
892
+ onPointerUp: () => {
893
+ if (F || !H) return;
894
+ K.current = null;
895
+ let e = Number(B.current?.style.getPropertyValue("--swipe-amount-x").replace("px", "") || 0), t = Number(B.current?.style.getPropertyValue("--swipe-amount-y").replace("px", "") || 0), r = (/* @__PURE__ */ new Date()).getTime() - oe.current?.getTime(), i = E === "x" ? e : t, a = Math.abs(i) / r;
896
+ if (Math.abs(i) >= Ge || a > .11) {
897
+ re(G.current), n.onDismiss == null || n.onDismiss.call(n, n), O(E === "x" ? e > 0 ? "right" : "left" : t > 0 ? "down" : "up"), Y(), I(!0);
898
+ return;
899
+ } else {
900
+ var o, s;
901
+ (o = B.current) == null || o.style.setProperty("--swipe-amount-x", "0px"), (s = B.current) == null || s.style.setProperty("--swipe-amount-y", "0px");
902
+ }
903
+ R(!1), P(!1), D(null);
904
+ },
905
+ onPointerMove: (t) => {
906
+ var n, r;
907
+ if (!K.current || !H || window.getSelection()?.toString().length > 0) return;
908
+ let i = t.clientY - K.current.y, a = t.clientX - K.current.x, o = e.swipeDirections ?? qe(x);
909
+ !E && (Math.abs(a) > 1 || Math.abs(i) > 1) && D(Math.abs(a) > Math.abs(i) ? "x" : "y");
910
+ let s = {
911
+ x: 0,
912
+ y: 0
913
+ }, c = (e) => 1 / (1.5 + Math.abs(e) / 20);
914
+ if (E === "y") {
915
+ if (o.includes("top") || o.includes("bottom")) if (o.includes("top") && i < 0 || o.includes("bottom") && i > 0) s.y = i;
916
+ else {
917
+ let e = i * c(i);
918
+ s.y = Math.abs(e) < Math.abs(i) ? e : i;
919
+ }
920
+ } else if (E === "x" && (o.includes("left") || o.includes("right"))) if (o.includes("left") && a < 0 || o.includes("right") && a > 0) s.x = a;
921
+ else {
922
+ let e = a * c(a);
923
+ s.x = Math.abs(e) < Math.abs(a) ? e : a;
924
+ }
925
+ (Math.abs(s.x) > 0 || Math.abs(s.y) > 0) && R(!0), (n = B.current) == null || n.style.setProperty("--swipe-amount-x", `${s.x}px`), (r = B.current) == null || r.style.setProperty("--swipe-amount-y", `${s.y}px`);
926
+ }
927
+ }, de && !n.jsx && V !== "loading" ? /*#__PURE__*/ i.createElement("button", {
928
+ "aria-label": ee,
929
+ "data-disabled": _e,
930
+ "data-close-button": !0,
931
+ onClick: _e || !H ? () => {} : () => {
932
+ Y(), n.onDismiss == null || n.onDismiss.call(n, n);
933
+ },
934
+ className: Q(w?.closeButton, n?.classNames?.closeButton)
935
+ }, T?.close ?? Me) : null, (V || n.icon || n.promise) && n.icon !== null && (T?.[V] !== null || n.icon) ? /*#__PURE__*/ i.createElement("div", {
936
+ "data-icon": "",
937
+ className: Q(w?.icon, n?.classNames?.icon)
938
+ }, n.promise || n.type === "loading" && !n.icon ? n.icon || X() : null, n.type === "loading" ? null : ve) : null, /*#__PURE__*/ i.createElement("div", {
939
+ "data-content": "",
940
+ className: Q(w?.content, n?.classNames?.content)
941
+ }, /*#__PURE__*/ i.createElement("div", {
942
+ "data-title": "",
943
+ className: Q(w?.title, n?.classNames?.title)
944
+ }, n.jsx ? n.jsx : typeof n.title == "function" ? n.title() : n.title), n.description ? /*#__PURE__*/ i.createElement("div", {
945
+ "data-description": "",
946
+ className: Q(y, ue, w?.description, n?.classNames?.description)
947
+ }, typeof n.description == "function" ? n.description() : n.description) : null), /*#__PURE__*/ i.isValidElement(n.cancel) ? n.cancel : n.cancel && Re(n.cancel) ? /*#__PURE__*/ i.createElement("button", {
948
+ "data-button": !0,
949
+ "data-cancel": !0,
950
+ style: n.cancelButtonStyle || g,
951
+ onClick: (e) => {
952
+ Re(n.cancel) && H && (n.cancel.onClick == null || n.cancel.onClick.call(n.cancel, e), Y());
953
+ },
954
+ className: Q(w?.cancelButton, n?.classNames?.cancelButton)
955
+ }, n.cancel.label) : null, /*#__PURE__*/ i.isValidElement(n.action) ? n.action : n.action && Re(n.action) ? /*#__PURE__*/ i.createElement("button", {
956
+ "data-button": !0,
957
+ "data-action": !0,
958
+ style: n.actionButtonStyle || _,
959
+ onClick: (e) => {
960
+ Re(n.action) && (n.action.onClick == null || n.action.onClick.call(n.action, e), !e.defaultPrevented && Y());
961
+ },
962
+ className: Q(w?.actionButton, n?.classNames?.actionButton)
963
+ }, n.action.label) : null);
964
+ };
965
+ function Ye() {
966
+ if (typeof window > "u" || typeof document > "u") return "ltr";
967
+ let e = document.documentElement.getAttribute("dir");
968
+ return e === "auto" || !e ? window.getComputedStyle(document.documentElement).direction : e;
969
+ }
970
+ function Xe(e, t) {
971
+ let n = {};
972
+ return [e, t].forEach((e, t) => {
973
+ let r = t === 1, i = r ? "--mobile-offset" : "--offset", a = r ? Ve : Be;
974
+ function o(e) {
975
+ [
976
+ "top",
977
+ "right",
978
+ "bottom",
979
+ "left"
980
+ ].forEach((t) => {
981
+ n[`${i}-${t}`] = typeof e == "number" ? `${e}px` : e;
982
+ });
983
+ }
984
+ typeof e == "number" || typeof e == "string" ? o(e) : typeof e == "object" ? [
985
+ "top",
986
+ "right",
987
+ "bottom",
988
+ "left"
989
+ ].forEach((t) => {
990
+ e[t] === void 0 ? n[`${i}-${t}`] = a : n[`${i}-${t}`] = typeof e[t] == "number" ? `${e[t]}px` : e[t];
991
+ }) : o(a);
992
+ }), n;
993
+ }
994
+ var Ze = /*#__PURE__*/ i.forwardRef(function(e, t) {
995
+ let { id: n, invert: r, position: a = "bottom-right", hotkey: o = ["altKey", "KeyT"], expand: s, closeButton: c, className: l, offset: u, mobileOffset: d, theme: f = "light", richColors: p, duration: m, style: h, visibleToasts: g = ze, toastOptions: _, dir: v = Ye(), gap: y = We, icons: b, containerAriaLabel: x = "Notifications" } = e, [S, C] = i.useState([]), w = i.useMemo(() => n ? S.filter((e) => e.toasterId === n) : S.filter((e) => !e.toasterId), [S, n]), T = i.useMemo(() => Array.from(new Set([a].concat(w.filter((e) => e.position).map((e) => e.position)))), [w, a]), [ee, E] = i.useState([]), [D, O] = i.useState(!1), [k, A] = i.useState(!1), [j, M] = i.useState(f === "system" ? typeof window < "u" && window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : f), N = i.useRef(null), P = o.join("+").replace(/Key/g, "").replace(/Digit/g, ""), F = i.useRef(null), I = i.useRef(!1), L = i.useCallback((e) => {
996
+ C((t) => (t.find((t) => t.id === e.id)?.delete || Z.dismiss(e.id), t.filter(({ id: t }) => t !== e.id)));
997
+ }, []);
998
+ return i.useEffect(() => Z.subscribe((e) => {
999
+ if (e.dismiss) {
1000
+ requestAnimationFrame(() => {
1001
+ C((t) => t.map((t) => t.id === e.id ? {
1002
+ ...t,
1003
+ delete: !0
1004
+ } : t));
1005
+ });
1006
+ return;
1007
+ }
1008
+ setTimeout(() => {
1009
+ te.flushSync(() => {
1010
+ C((t) => {
1011
+ let n = t.findIndex((t) => t.id === e.id);
1012
+ return n === -1 ? [e, ...t] : [
1013
+ ...t.slice(0, n),
1014
+ {
1015
+ ...t[n],
1016
+ ...e
1017
+ },
1018
+ ...t.slice(n + 1)
1019
+ ];
1020
+ });
1021
+ });
1022
+ });
1023
+ }), [S]), i.useEffect(() => {
1024
+ if (f !== "system") {
1025
+ M(f);
1026
+ return;
1027
+ }
1028
+ if (f === "system" && (window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? M("dark") : M("light")), typeof window > "u") return;
1029
+ let e = window.matchMedia("(prefers-color-scheme: dark)");
1030
+ try {
1031
+ e.addEventListener("change", ({ matches: e }) => {
1032
+ M(e ? "dark" : "light");
1033
+ });
1034
+ } catch {
1035
+ e.addListener(({ matches: e }) => {
1036
+ try {
1037
+ M(e ? "dark" : "light");
1038
+ } catch (e) {
1039
+ console.error(e);
1040
+ }
1041
+ });
1042
+ }
1043
+ }, [f]), i.useEffect(() => {
1044
+ S.length <= 1 && O(!1);
1045
+ }, [S]), i.useEffect(() => {
1046
+ let e = (e) => {
1047
+ if (o.every((t) => e[t] || e.code === t)) {
1048
+ var t;
1049
+ O(!0), (t = N.current) == null || t.focus();
1050
+ }
1051
+ e.code === "Escape" && (document.activeElement === N.current || N.current?.contains(document.activeElement)) && O(!1);
1052
+ };
1053
+ return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
1054
+ }, [o]), i.useEffect(() => {
1055
+ if (N.current) return () => {
1056
+ F.current && (F.current.focus({ preventScroll: !0 }), F.current = null, I.current = !1);
1057
+ };
1058
+ }, [N.current]), /*#__PURE__*/ i.createElement("section", {
1059
+ ref: t,
1060
+ "aria-label": `${x} ${P}`,
1061
+ tabIndex: -1,
1062
+ "aria-live": "polite",
1063
+ "aria-relevant": "additions text",
1064
+ "aria-atomic": "false",
1065
+ suppressHydrationWarning: !0
1066
+ }, T.map((t, n) => {
1067
+ let [a, o] = t.split("-");
1068
+ return w.length ? /*#__PURE__*/ i.createElement("ol", {
1069
+ key: t,
1070
+ dir: v === "auto" ? Ye() : v,
1071
+ tabIndex: -1,
1072
+ ref: N,
1073
+ className: l,
1074
+ "data-sonner-toaster": !0,
1075
+ "data-sonner-theme": j,
1076
+ "data-y-position": a,
1077
+ "data-x-position": o,
1078
+ style: {
1079
+ "--front-toast-height": `${ee[0]?.height || 0}px`,
1080
+ "--width": `${Ue}px`,
1081
+ "--gap": `${y}px`,
1082
+ ...h,
1083
+ ...Xe(u, d)
1084
+ },
1085
+ onBlur: (e) => {
1086
+ I.current && !e.currentTarget.contains(e.relatedTarget) && (I.current = !1, F.current &&= (F.current.focus({ preventScroll: !0 }), null));
1087
+ },
1088
+ onFocus: (e) => {
1089
+ e.target instanceof HTMLElement && e.target.dataset.dismissible === "false" || I.current || (I.current = !0, F.current = e.relatedTarget);
1090
+ },
1091
+ onMouseEnter: () => O(!0),
1092
+ onMouseMove: () => O(!0),
1093
+ onMouseLeave: () => {
1094
+ k || O(!1);
1095
+ },
1096
+ onDragEnd: () => O(!1),
1097
+ onPointerDown: (e) => {
1098
+ e.target instanceof HTMLElement && e.target.dataset.dismissible === "false" || A(!0);
1099
+ },
1100
+ onPointerUp: () => A(!1)
1101
+ }, w.filter((e) => !e.position && n === 0 || e.position === t).map((n, a) => /*#__PURE__*/ i.createElement(Je, {
1102
+ key: n.id,
1103
+ icons: b,
1104
+ index: a,
1105
+ toast: n,
1106
+ defaultRichColors: p,
1107
+ duration: _?.duration ?? m,
1108
+ className: _?.className,
1109
+ descriptionClassName: _?.descriptionClassName,
1110
+ invert: r,
1111
+ visibleToasts: g,
1112
+ closeButton: _?.closeButton ?? c,
1113
+ interacting: k,
1114
+ position: t,
1115
+ style: _?.style,
1116
+ unstyled: _?.unstyled,
1117
+ classNames: _?.classNames,
1118
+ cancelButtonStyle: _?.cancelButtonStyle,
1119
+ actionButtonStyle: _?.actionButtonStyle,
1120
+ closeButtonAriaLabel: _?.closeButtonAriaLabel,
1121
+ removeToast: L,
1122
+ toasts: w.filter((e) => e.position == n.position),
1123
+ heights: ee.filter((e) => e.position == n.position),
1124
+ setHeights: E,
1125
+ expandByDefault: s,
1126
+ gap: y,
1127
+ expanded: D,
1128
+ swipeDirections: e.swipeDirections
1129
+ }))) : null;
1130
+ }));
1131
+ });
1132
+ //#endregion
1133
+ //#region ../admin-x-framework/dist/hooks/use-handle-error.js
1134
+ o();
1135
+ function Qe(e) {
1136
+ Le.dismiss(), Le.error(e);
1137
+ }
1138
+ var $e = () => {
1139
+ let { sentryDSN: e } = T();
1140
+ return s((t, { withToast: n = !0 } = {}) => {
1141
+ console.error(t), e && !(t instanceof ve) && ee((e) => {
1142
+ t instanceof K && t.response && (e.setTag("api_url", t.response.url), e.setTag("api_response_status", t.response.status)), O(t);
1143
+ }), n && (t instanceof K && t.response?.status === 418 || t instanceof ve ? Le.dismiss() : t instanceof K ? Qe(Ce(t, t.message)) : Qe("Something went wrong, please try again."));
1144
+ }, [e]);
1145
+ };
1146
+ //#endregion
1147
+ //#region ../admin-x-framework/dist/utils/helpers.js
1148
+ function et() {
1149
+ let e = window.location.pathname, t = e.substr(0, e.search("/ghost/"));
1150
+ return {
1151
+ subdir: t,
1152
+ adminRoot: `${t}/ghost/`,
1153
+ assetRoot: `${t}/ghost/assets/`,
1154
+ apiRoot: `${t}/ghost/api/admin`,
1155
+ activityPubRoot: `${t}/.ghost/activitypub`
1156
+ };
1157
+ }
1158
+ //#endregion
1159
+ //#region ../admin-x-framework/dist/utils/api/handle-response.js
1160
+ var tt = async (e) => {
1161
+ if (e.status === 0) throw new J();
1162
+ if (e.status === 503) throw new Y(e, await e.text());
1163
+ if (e.status === 415) throw new _e(e, await e.text());
1164
+ if (e.status === 413) throw new ge(e, await e.text());
1165
+ if (e.status === 401) throw e.headers.get("content-type")?.includes("json") ? new X(e, await e.json()) : new X(e, await e.text());
1166
+ if (!e.ok) {
1167
+ if (!e.headers.get("content-type")?.includes("json")) throw new K(e, await e.text());
1168
+ let t = await e.json();
1169
+ throw e.status === 403 && t.errors?.[0]?.message === "Authorization failed" ? new X(e, t) : t.errors?.[0]?.type === "VersionMismatchError" ? new me(e, t) : t.errors?.[0]?.type === "ValidationError" || t.errors?.[0]?.type === "NoPermissionError" ? new Se(e, t) : t.errors?.[0]?.type === "ThemeValidationError" ? new ye(e, t) : t.errors?.[0]?.type === "HostLimitError" ? new be(e, t) : t.errors?.[0]?.type === "EmailError" ? new xe(e, t) : new q(e, t);
1170
+ } else if (e.status === 204) return;
1171
+ else if (e.headers.get("content-type")?.includes("text/csv")) return await e.text();
1172
+ else return await e.json();
1173
+ };
1174
+ //#endregion
1175
+ //#region ../admin-x-framework/dist/utils/api/fetch-api.js
1176
+ o();
1177
+ var nt = (e) => {
1178
+ let t = new Headers(), n = e.getAllResponseHeaders()?.split("\r\n") || [];
1179
+ for (let e of n) {
1180
+ let n = e.indexOf(":");
1181
+ if (n === -1) continue;
1182
+ let r = e.slice(0, n), i = e.slice(n + 1).trim();
1183
+ t.append(r, i);
1184
+ }
1185
+ return t;
1186
+ }, rt = (e) => new Response(e.response, {
1187
+ status: e.status,
1188
+ statusText: e.statusText,
1189
+ headers: nt(e)
1190
+ }), it = /\/ghost\/api\//, at = /\/ghost\/api\/admin\/session([/?#]|$)/, ot = /^#\/(?:reset|setup|signin|signup)(?:[/?]|$)/, st = !1, ct = (e) => window.location.pathname === e && (!window.location.hash || window.location.hash === "#/" || ot.test(window.location.hash)), lt = (e) => {
1191
+ let t = e.toString();
1192
+ return it.test(t) && !at.test(t);
1193
+ }, ut = () => {
1194
+ let { adminRoot: e } = et();
1195
+ !st && !ct(e) && (st = !0, window.location.replace(e));
1196
+ }, dt = (e, t, { method: n, headers: r, credentials: i, body: a, signal: o }) => new Promise((s, c) => {
1197
+ let l = () => {
1198
+ c(new DOMException("Aborted", "AbortError"));
1199
+ };
1200
+ if (o.aborted) {
1201
+ l();
1202
+ return;
1203
+ }
1204
+ let u = new XMLHttpRequest();
1205
+ switch (u.open(n, t.toString(), !0), i) {
1206
+ case "omit": throw Error("\"omit\" credentials cannot be represented with legacy XMLHttpRequest. Consider \"same-origin\".");
1207
+ case "same-origin":
1208
+ u.withCredentials = !1;
1209
+ break;
1210
+ case "include":
1211
+ u.withCredentials = !0;
1212
+ break;
1213
+ default: throw Error(i);
1214
+ }
1215
+ u.responseType = "arraybuffer";
1216
+ for (let [e, t] of Object.entries(r)) u.setRequestHeader(e, t);
1217
+ u.upload.onprogress = (t) => {
1218
+ t.lengthComputable && e(t.loaded / t.total * 100);
1219
+ }, u.onload = () => {
1220
+ s(rt(u));
1221
+ }, u.onerror = () => {
1222
+ c(/* @__PURE__ */ TypeError("Network request failed"));
1223
+ }, u.onabort = l;
1224
+ let d = () => u.abort();
1225
+ o.addEventListener("abort", d), u.onloadend = () => {
1226
+ o.removeEventListener("abort", d);
1227
+ }, u.send(a);
1228
+ }), ft = () => {
1229
+ let { ghostVersion: e, sentryDSN: t } = T();
1230
+ return s(async (n, { method: r = "GET", headers: i = {}, body: a, credentials: o = "include", timeout: s, retry: c = !0, onUploadProgress: l } = {}) => {
1231
+ let u = new AbortController(), d = {
1232
+ method: r,
1233
+ headers: {
1234
+ "app-pragma": "no-cache",
1235
+ ...e ? { "x-ghost-version": e } : {},
1236
+ ...typeof a == "string" ? { "content-type": "application/json" } : {},
1237
+ ...i
1238
+ },
1239
+ credentials: o,
1240
+ mode: "cors",
1241
+ body: a,
1242
+ signal: u.signal
1243
+ }, f = 0, p = 0, m = Date.now(), h = [500, 1e3], g = [
1244
+ J,
1245
+ Y,
1246
+ TypeError
1247
+ ], _ = (e, t) => {
1248
+ let r = {
1249
+ errorName: e?.name,
1250
+ attempts: f,
1251
+ totalSeconds: p / 1e3,
1252
+ endpoint: n.toString()
1253
+ };
1254
+ return n.toString().includes("/ghost/api/") && (r.server = t?.headers.get("server")), r;
1255
+ }, v = l ? dt.bind(null, l) : fetch, y = s ? setTimeout(() => u.abort(), s) : void 0;
1256
+ try {
1257
+ for (; f === 0 || c;) try {
1258
+ return await tt(await v(n, d));
1259
+ } catch (e) {
1260
+ if (p = Date.now() - m, c && g.some((t) => e instanceof t) && p <= 15e3) {
1261
+ await new Promise((e) => {
1262
+ setTimeout(e, h[f] || h[h.length - 1]);
1263
+ }), f += 1;
1264
+ continue;
1265
+ }
1266
+ if (f !== 0 && t && j("Request failed after multiple attempts", { extra: _() }), e && typeof e == "object" && "name" in e && e.name === "AbortError") throw new he();
1267
+ if (e instanceof X && lt(n)) throw ut(), new ve(e.response, e.data, { cause: e });
1268
+ let r = e;
1269
+ throw e instanceof K || (r = new J({ cause: e })), r;
1270
+ }
1271
+ } finally {
1272
+ clearTimeout(y);
1273
+ }
1274
+ }, [e, t]);
1275
+ }, { apiRoot: pt, activityPubRoot: mt } = et(), $ = (e, t = {}, n = !1) => {
1276
+ let r = new URL(`${n ? mt : pt}${e}`, window.location.origin);
1277
+ return r.search = new URLSearchParams(t).toString(), r.toString();
1278
+ };
1279
+ //#endregion
1280
+ //#region ../admin-x-framework/dist/api/current-user.js
1281
+ o();
1282
+ var ht = "UsersResponseType", gt = $("/users/me/", { include: "roles" }), _t = [ht, gt], vt = () => {
1283
+ let e = ft(), t = $e(), n = W({
1284
+ queryKey: _t,
1285
+ queryFn: () => e(gt),
1286
+ select: (e) => e.users[0]
1287
+ });
1288
+ return c(() => {
1289
+ n.error && t(n.error);
1290
+ }, [t, n.error]), n;
1291
+ }, yt = (e) => {
1292
+ let { data: t } = vt();
1293
+ if (!e || e.length === 0) return !0;
1294
+ let n = t?.roles.map((e) => e.name);
1295
+ return n ? e.some((e) => n.includes(e)) : !1;
1296
+ };
1297
+ //#endregion
1298
+ //#region ../admin-x-framework/dist/utils/api/hooks.js
1299
+ o();
1300
+ var bt = (e) => ({ searchParams: n, ...r } = {}) => {
1301
+ let i = $(e.path, n || e.defaultSearchParams, e?.useActivityPub), a = ft(), o = $e(), s = yt(e.permissions), l = W({
1302
+ ...r,
1303
+ enabled: s && (r.enabled ?? !0),
1304
+ queryKey: [e.dataType, i],
1305
+ queryFn: () => a(i, { ...e })
1306
+ }), u = t(() => l.data && e.returnData ? e.returnData(l.data) : l.data, [l.data]);
1307
+ return c(() => {
1308
+ l.error && r.defaultErrorHandler !== !1 && o(l.error);
1309
+ }, [
1310
+ o,
1311
+ l.error,
1312
+ r.defaultErrorHandler
1313
+ ]), {
1314
+ ...l,
1315
+ data: u
1316
+ };
1317
+ }, xt = (e) => ({ searchParams: n, getNextPageParams: r, ...i } = {}) => {
1318
+ let a = ft(), o = $e(), s = yt(e.permissions), l = r || e.defaultNextPageParams || (() => ({})), u = pe({
1319
+ ...i,
1320
+ enabled: s && (i.enabled ?? !0),
1321
+ queryKey: [e.dataType, $(e.path, n || e.defaultSearchParams, e?.useActivityPub)],
1322
+ queryFn: ({ pageParam: t }) => a($(e.path, t || n || e.defaultSearchParams, e?.useActivityPub)),
1323
+ initialPageParam: void 0,
1324
+ getNextPageParam: (t) => l(t, n || e.defaultSearchParams || {})
1325
+ }), d = t(() => u.data && e.returnData(u.data), [u.data]);
1326
+ return c(() => {
1327
+ u.error && i.defaultErrorHandler !== !1 && o(u.error);
1328
+ }, [
1329
+ o,
1330
+ u.error,
1331
+ i.defaultErrorHandler
1332
+ ]), {
1333
+ ...u,
1334
+ data: d
1335
+ };
1336
+ }, St = ({ fetchApi: e, path: t, payload: n, searchParams: r, options: i }) => {
1337
+ let { defaultSearchParams: a, body: o, ...s } = i, c = $(t, r || a, i?.useActivityPub), l = n && o?.(n), u;
1338
+ return l instanceof FormData ? u = l : l && (u = JSON.stringify(l)), e(c, {
1339
+ body: u,
1340
+ ...s
1341
+ });
1342
+ }, Ct = ({ path: e, searchParams: t, defaultSearchParams: n, updateQueries: r, invalidateQueries: i, ...a }) => () => {
1343
+ let o = ft(), c = A(), { onUpdate: l, onInvalidate: u, onDelete: d } = T();
1344
+ return G({
1345
+ mutationFn: (r) => St({
1346
+ fetchApi: o,
1347
+ path: e(r),
1348
+ payload: r,
1349
+ searchParams: t?.(r) || n,
1350
+ options: a
1351
+ }),
1352
+ onSuccess: s((e, t) => {
1353
+ if (i && "dataType" in i ? (c.invalidateQueries({ queryKey: [i.dataType] }), u(i.dataType)) : i && c.invalidateQueries(i.filters, i.options), r) {
1354
+ if (c.setQueriesData({ queryKey: [r.dataType] }, (n) => r.update(e, n, t)), r.emberUpdateType === "createOrUpdate") l(r.dataType, e);
1355
+ else if (r.emberUpdateType === "delete") {
1356
+ if (typeof t != "string") throw Error("Expected delete mutation to have a string (ID) payload. Either change the payload or update the createMutation hook");
1357
+ d(r.dataType, t);
1358
+ }
1359
+ }
1360
+ }, [
1361
+ u,
1362
+ l,
1363
+ d,
1364
+ c
1365
+ ])
1366
+ });
1367
+ }, wt = (e, t) => (n, r) => {
1368
+ if (!r) return r;
1369
+ let i = (t || ((t) => t[e].reduce((e, t) => ({
1370
+ ...e,
1371
+ [t.id]: t
1372
+ }), {})))(n);
1373
+ if (typeof r == "object" && "pages" in r) {
1374
+ let { pages: t } = r;
1375
+ return {
1376
+ ...r,
1377
+ pages: t.map((t) => ({
1378
+ ...t,
1379
+ [e]: t[e].map((e) => i[e.id] || e)
1380
+ }))
1381
+ };
1382
+ }
1383
+ return {
1384
+ ...r,
1385
+ [e]: r[e].map((e) => i[e.id] || e)
1386
+ };
1387
+ }, Tt = (e, t) => (n, r, i) => {
1388
+ if (!r) return r;
1389
+ let a = t?.(i) || [i];
1390
+ if (typeof r == "object" && "pages" in r) {
1391
+ let { pages: t } = r;
1392
+ return {
1393
+ ...r,
1394
+ pages: t.map((t) => ({
1395
+ ...t,
1396
+ [e]: t[e].filter((e) => !a.includes(e.id))
1397
+ }))
1398
+ };
1399
+ }
1400
+ return {
1401
+ ...r,
1402
+ [e]: r[e].filter((e) => !a.includes(e.id))
1403
+ };
1404
+ }, Et = ht, Dt = xt({
1405
+ dataType: Et,
1406
+ path: "/users/",
1407
+ defaultSearchParams: {
1408
+ limit: "100",
1409
+ include: "roles"
1410
+ },
1411
+ defaultNextPageParams: (e, t) => ({
1412
+ ...t,
1413
+ page: (e.meta?.pagination.next || 1).toString()
1414
+ }),
1415
+ returnData: (e) => {
1416
+ let { pages: t } = e, n = t.flatMap((e) => e.users), r = t[t.length - 1].meta;
1417
+ return {
1418
+ users: n,
1419
+ meta: r,
1420
+ isEnd: r ? r.pagination.pages === r.pagination.page : !0
1421
+ };
1422
+ }
1423
+ }), Ot = Ct({
1424
+ method: "PUT",
1425
+ path: (e) => `/users/${e.id}/`,
1426
+ body: (e) => ({ users: [e] }),
1427
+ searchParams: () => ({ include: "roles" }),
1428
+ updateQueries: {
1429
+ dataType: Et,
1430
+ emberUpdateType: "createOrUpdate",
1431
+ update: wt("users")
1432
+ }
1433
+ });
1434
+ Ct({
1435
+ method: "DELETE",
1436
+ path: (e) => `/users/${e}/`,
1437
+ updateQueries: {
1438
+ dataType: Et,
1439
+ emberUpdateType: "delete",
1440
+ update: Tt("users")
1441
+ }
1442
+ }), Ct({
1443
+ method: "PUT",
1444
+ path: () => "/users/password/",
1445
+ body: ({ newPassword: e, confirmNewPassword: t, userId: n, oldPassword: r }) => ({ password: [{
1446
+ user_id: n,
1447
+ oldPassword: r || "",
1448
+ newPassword: e,
1449
+ ne2Password: t
1450
+ }] })
1451
+ }), Ct({
1452
+ method: "PUT",
1453
+ path: () => "/users/owner/",
1454
+ body: (e) => ({ owner: [{ id: e }] }),
1455
+ updateQueries: {
1456
+ dataType: Et,
1457
+ emberUpdateType: "createOrUpdate",
1458
+ update: wt("users")
1459
+ }
1460
+ });
1461
+ //#endregion
1462
+ export { Ze as a, G as c, vt as i, W as l, Ot as n, Le as o, bt as r, pe as s, Dt as t };
1463
+
1464
+ //# sourceMappingURL=users-BLeiOTHc.js.map